تکیاد چه طور یک برنامه نویس یا طراح سایت شویم؟ - قسمت2

چه طور یک برنامه نویس یا طراح سایت شویم؟ - قسمت2

مدرس محمد جواد بخشی
این دوره آموزشی تکمیل شده است.
انجمن پرسش و پاسخ این آموزش

در مقاله قبلی در این مورد صحبت کردیم که دوستانی که می خواهند برنامه نویسی را در حوزه وب شروع کنند 3 انتخاب دارند، یا می توانند طراح وب شوند یا برنامه نویس وب و یا هر دوی این موارد که اصطلاحا به آن Full Stack Developer گفته می شود.
در ارتباط با انتخاب اول در مقاله قبلی به طور کامل صحبت کردیم و اما انتخاب های دیگه را در این مقاله توضیح می دهیم. ( در نهایت انتخاب با شما هست که کدام راه را برای آینده شغلی خود انتخاب می کنید)

برنامه نویس وب (Web programmer) کیست؟

این دسته از برنامه نویسان بر خلاف طراحان وب خیلی کم با ظاهر گرافیکی سایت در ارتباط هستند و بیشتر تمرکز آنها روی بخش های پردازشی یک وب اپلیکیشن (web application) است.
منظور از بخش های پردازشی چیست؟ برای مثال فرض کنید قرار است در صفحه اول سایت ( صفحه home page ) لیست محصولات پر فروش نمایش داده شود. طراحان وب صفحه خانگی را به طور کامل کدنویسی و طراحی می کنند یعنی با کد های HTML و CSS و JavaScript نحوه نمایش لیست محصولات ، باکس هر محصول و ... را طراحی می کنند. اما این اطلاعات ایستا (ثابت) هستند. در صورتی که وب سایت هایی مثل فروشگاه های اینترنتی کاملا پویا هستند و هر بار که شما به وب سایت سر می زنید یک مجموعه از این محصولات را می بینید. آیا این طراحان سایت هر چند وقت یک بار ، تعداد فروش هر محصول را می شمارن و بیشترین آنها را جدا می کنن بعد با کدهای HTML و ... این محصولات را برای صفحه اول طراحی می کنند؟ خیر!
این گونه وب سایت ها پویا (dynamic) هستند و طراحان وب همان بار اول ، قالب نمایش لیست محصولات را با اطلاعات آزمایشی ساختند و تحویل برنامه نویسان وب داده اند.
اینجاست که معنای بخش پردازشی معلوم می شود. برنامه نویسان وب ، اطلاعات محصولات را از جایی به اسم پایگاه داده (database) که محل ذخیره و بازیابی اطلاعات هست با کمک دستوراتی می خوانند. چجوری ؟ با زبان های مختص برنامه نویسی وب مثل PHP .بعد که اطلاعات خوانده شد ، محاسبه می کنند کدام محصول پر فروش هست و به کمک دستوراتی که بلد هستند این لیست محصولات را در صفحه خانگی چاپ می کنند. این مراحل همان کار های پردازشی هست که وظیفه اصلی برنامه نویسان وب هست.
در واقع طراحان وب فقط قالب سایت را کد نویسی می کنند و برنامه نویسان وب با استفاده از دستوراتی که در زبان های برنامه نویسی وب هست ، این قالب را تبدیل به یک وب سایت پویا می کنند.

یک مثال دیگه بزنیم: مثلا قرار است در وب سایت یک بخشی به اسم تماس با ما داشته باشیم که مشتریان بتونن با وارد کردن اطلاعاتی مثل نام، نام خانوادگی و پیام، پیام خودشون یا حالا سوالی که دارند را از مدیر سایت بپرسند ( مثلا چه زمانی گوشی سامسونگ مدل نوت 10 را در سایت قرار میدهید؟)
خب وظیفه طراح وب ، طراحی صفحه تماس با ما ، فرم تماس با ما، نحوه چیدمان فیلدهای فرم و رنگ دکمه ارسال پیام و .. است.
وظیفه برنامه نویس سایت دریافت اطلاعاتی که از سمت کاربر میاد و اعتبار سنجی برای بررسی صحت اطلاعات ( آیا کاربر پیامی وارد کرده یا الکی خواسته یک چیزی فقط بفرسته سمت سرور؟) و در صورت درستی اطلاعات ، ذخیره اطلاعات هست. حالا بعدا مدیر سایت می تونه این پیام های ذخیره شده را بخونه.
پس وقتی که شما یک پیامی را از طریق این جور وب سایت ها ارسال می کنید در واقع پشت صحنه آن وب سایت کد هایی نوشته شده که درخواست ارسال پیام شما را پردازش می کند. این کد هارو برنامه نویس های محترم نوشتن.

چه مهارت هایی باید کسب کنیم تا یک برنامه نویس حرفه ای وب شویم؟

دانش خیلی متوسط از HTML :

درسته که برنامه نویسان وب نیازی ندارند که مهارت های مختص طراحی سایت را کسب کنند ولی باید دانش متوسطی از این زبان داشته باشند. برای مثال وقتی داریم لیست محصولات پر فروش را چاپ می کنیم ، در واقع یک مشت tag مربوط به HTML را داریم چاپ می کنیم پس باید بدونیم چی داریم چاپ می کنیم.

دانش متوسطی از PHP:

PHP یک زبان برنامه نویسی سمت سرور است. یعنی چی؟ اگر نمیدونی سرور چیه به مقاله چند تعریف کلیدی در طراحی و برنامه نویسی سایت  یک نگاه بنداز اگر نمیدونی زبان برنامه نویسی چیه مقاله برنامه نویسی یا کد نویسی چیست و چطور می تونیم با این مهارت درآمد کسب کنیم؟ را بخون. یعنی کد ها و دستورات این زبان روی سرور اجرا میشه نه کامپیوتر من و شما. یعنی کامپیوتر من که با مرورگر فایرفاکس یا کروم در حال باز دید وب سایت هست، کد های بخش های پردازشی سایت را اجرا نمی کند بلکه این کد ها در کامپیوتری روی اینترنت به اسم سرور ( میزبان وب سایت ) دارن اجرا می شن.
به طور خلاصه اگر می خواهیم اطلاعاتی بازیابی کنیم، ذخیره کنیم ، پردازش کنیم یا چاپ کنیم باید با دستورات این زبان این کارها را انجام بدیم. PHP یک قالب ایستا را تبدیل به یک سایت پویا می کنه. شاید تا چند سال اخیر نیاز بود اکثر دستورات این زبان را بلد باشید تا یک برنامه نویس حرفه ای باشید. اما الان با توجه به اینکه کد نویسی با این زبان به تنهایی کار سختیه و زمان بره ، از فریمورک هایی که برای این زبان نوشتن استفاده می کنند. اگر نمیدونی فریم ورک چیه بیا این مقالرو یک نگاه بنداز. چطور وب فریمورک باعث می شود درآمد بیشتری کسب کنیم؟

دانش خوبی از پایگاه داده :

میشه گفت 99 درصد برنامه های تحت وب حتما از پایگاه داده استفاده می کنند. من در مثال های بالا گفتم محصولات را بخوانیم، پیام کاربر را ذخیره کنیم اما کجا؟ داخل پایگاه داده (Database) پایگاه داده را سیستمی در نظر بگیرید که اطلاعات را در مجموعه از فایل ها می نویسد و به روشی که خودش بلده می خونه همین!
امروزه یکی از قدرتمندترین و پر کاربرد ترین نوع پایگاه داده ها، پایگاه داده های رابطه ای هستند. یعنی چی؟ یعنی به ازای هر چیزی که میخواهیم ذخیره کنیم یک جدول طراحی می کنیم مثلا: جدول محصولات، جدول کاربران، جدول پیام ها و ... . بعد اطلاعاتی که ذخیره می کنیم میشه سطر های این جداول و هر جدولی هم میدونید یکسری ستون داره.
مثلا برای محصولات ، ستون های : عنوان محصول، آدرس عکس محصول، قیمت محصول را داریم و اطلاعات میشن :
سامسونگ نوت 3 note3.jpg و 3000000 پایگاه داده های زیادی وجود دارد اما کدومو یاد بگیریم؟ در واقع در قدم اول ابتدا باید مفاهیم پایه ای پایگاه داده را یاد بگیرید و سپس دستوراتی که با آن می توانیم درخواست های خواندن و نوشتن را به پایگاه داده اعلام کنیم را یاد بگیریم. دستوراتی که نیاز هست اطلاعات با آن ذخیره و بازیابی کنیم توسط زبان SQL طراحی شده است. این زبانی هست که ما باهاش می تونیم با پایگاه داده صحبت کنیم. یعنی بگیم چه اطلاعاتی دوس داریم بخونیم ، چی دوس داریم بنویسیم و ... پس ما باید آشنایی خوبی با مفاهیم و دستورات SQL داشته باشیم.

قدم آخر : یادگیری فریم ورک لاراول

در بالا اشاره کردم نوشتن برنامه با زبان PHP به تنهایی مستلزم نوشتن کدهای زیاد هست ولی با فریمورک ، کار خیلی ساده تر می شود. لاراول (Laravel) یکی از محبوب ترین و پر استفاده ترین فریمورک های PHP هست. اکثر آگهی های برنامه نویسی الان، افرادی را می خواهند که مسلط به این فریم ورک باشند. پس نیاز نیست کل PHP را یاد بگیریم چون اکثر کار ها در لاراول انجام شده. لاراول یک زبان نیست بلکه یک سری کد های از قبل نوشته شده هست که کار های رایج هر پروژه را ساده تر انجام میده و کد نویسی کمتر و پیاده سازی سریع تر به همراه دارد. اگر دوسداری راجب مزایاش بدونی توضیحات دوره آموزشی لاراول تکیاد را حتما بخون.

خلاصه بکنیم: اول بیا HTML به صورت کاربردی یاد بگیر ( دستورات پر کاربردش) بعد بیا دستوراتی از PHP را یاد بگیر که نیاز است تا فریمورک لاراول بتونی باهاش کار کنی، بعد پایگاه دادرو خوب یاد بگیر و در قدم آخر لاراول یاد بگیر. همه این موارد را می تونی با دوره پیش نیاز لاراول و دوره صفر تا صد لاراول یاد بگیری.

چقدر زمان می بره برنامه نویس وب سایت شویم؟

یادگیری تمام این مهارت ها در صورتی که به صورت مداوم باشد در زمان حدود 5 ماه به طور متوسط ، بستگی به دانش قبلی شخص متغیر است. اما آیا تنها یادگیری کفایت می کند؟ خیر. تمرین ، تمرین و تمرین. با پیاده سازی واقعی یک پروژه وب سایت است که همه این مهارت ها در کنار هم معنا پیدا می کنند. علاوه بر این حضور یک فرد و گروه آشنا به این موارد ، حین یادگیری ، انگیزه را بالا می برد و خیال آدم راحت است که افرادی هستند در صورت اشکال پشتیبانی کنند.
ما در دوره های پیش نیاز لاراول و آموزش صفر تا صد لاراول مختص بازار کار در مجموع دو پروژه حرفه ای را با هم کار می کنیم و دانشجویان پس از یادگیری این دو دوره قطعا حرفی برای گفتن و درک خوبی از برنامه نویسی و طراحی وب اپلیکیشن حرفه ای خواهند داشت.

به چه افرادی full stack developer گفته می شود؟

همانطور که قبلا هم اشاره کردم، افرادی که در هر دو زمینه علاقه دارند می توانند تمام مهارت های این دو دسته را کسب کنند و نقش هر دو گروه را به تنهایی ایفا کنند. البته که حقوق این افراد بیشتر است و گاهی اوقات هم برابر با گروه های بالا.

این انتخاب مزایا و معایبی دارد :
یک برنامه نویس Full stack به تنهایی و به صورت freelancer می تواند پروژه بگیرد و انجام دهد. ولی از لحاظ کیفی سایتی که توسط دو گروه مجزا ، طراح سایت و برنامه نویس سایت ، ساخته می شود به مراتب بالاتر از این است که یک فرد به تنهایی تمام این موارد را پیاده سازی کند. در صورت تقسیم کار هر گروه تمرکزش روی وظیفه خود هست و نتیجه حاصل هم ، کیفیتی عالی خواهد داشت. در طرف مقابل زمان پیاده سازی بالا می رود، امکان به وجود آمدن باگ ها و خطاها بیشتر می شود. این امر باعث شده است  در چند سال اخیر شرکت های فعال در حوزه طراحی و برنامه نویسی سایت دو تیم مجزا برای پیاده سازی پروژه های خودشون داشته باشند.

برای ارسال دیدگاه باید ابتدا وارد حساب کاربری خود شوید.