خیلی ها در خصوص یادگیری برنامه نویسی چنان ابهامی در ذهن دارند که هیچگاه بصورت کاربردی و جدی بخود اجازه ورود به این عرصه را نداده اند و اغلب در زمان تحصیل یکی دو واحدی را بصورت اجباری و البته فشرده و غیر اصولی به قصد پاس کردن درس گذرانده اند. به نظر و البته تجربه ی من دو دانشی که اغلب ماها در دوران تحصیل بخوبی یاد نمیگیریم یادگیری زبان خارجه و زبان برنامه نویسی است.

این در صورتی است که یادگیری زبانهای خارجی و نیز یادگیری زبانهای های برنامه نویسی برای خیلی ها لذت محسوب می شود و شغل برنامه نویسی به عنوان یکی از مشاغل پردآمد در دنیا شناخته شده است و همچنان در حال گسترش و پیشرفت است. برنامه نویسی به شاخه های مختلفی تقسیم می شود که توسعه وب یکی از این شاخه ها است و شخصی که در این زمینه کار میکند را توسعه دهنده وب می نامند. در واقع یک توسعه دهنده وب فردی است که براساس دانش و مهارت های برنامه نویسی در خصوص توسعه نرم افزارهای تحت وب فعالیت دارد.

 ؛بحث مهارت در برنامه نویسی خیلی اهمیت دارد و در مقابل ارائه مدرک تحصیلی به نسبت مهارت اهمیت چندانی ندارد و این بشکلی است که شما می توانید برنامه نویسان زیادی را پیدا کنید که رشته تحصیلی آنها ارتباطی با برنامه نویسی نداشته باشد. در این مقاله قصد دارم مشخص کنم که نقطه شروع برای یادگیری زبان های برنامه نویسی تحت وب و تبدیل شدن به یک توسعه دهنده وب کجاست؟

جواب کوتاه: نقطه ی شروع یادگیری سه زبان HTML، CSS و Javascript است که به ترتیب به این شکل خوانده می شوند:

اچ تی ام ال، سی اس اس و جاواسکریپت.

جواب بلند:

برنامه نویس ها و توسعه دهندگان وب عموما به دو دسته کلی تقسیم می شوند. دسته ای را تحت عنوان توسعه دهنده فرانت اند Front-End Developer و دسته ی دیگر را توسعه دهنده بک اند Back-End Developer می نامند.

توسعه دهنده فرانت اند Front-End Developer

توسعه دهندگان فرانت اند افرادی هستند که قسمت های قابل روئیت برای کاربران را در وبسایت ها را می سازند. به بیانی مشابه، آن چیزی که کاربر در یک وبسایت می بیند و با آن بصورت مستقیم تعامل دارد را توسعه دهندگان فرانت اند می سازند و سه زبان HTML ، CSS و javascript سه هسته اصلی در ساخت صفحات وب هستند. HTML و CSS هرکدام یک نوع زبان نشانه گذاری محسوب می شوند. html برای ساخت بخشهای یک صفحه وب و css برای تعیین سبک آنها به لحاظ فونت، رنگ و طرح استفاده می شود و اما جاوااسکریپت که یک زبان برنامه نویسی است و برای کنترل محتوای پویا دریک صفحه وب مانند پخش ویدئوها و یا گرافیک های متحرک استفاده می شود.

در بسیاری از مقالات برای درک بهتر، بدن انسان را مثال زده اند.

تمثیلی از درک زبان های HTML-CSS و جاوااسکریپت

اگر تنها و البته تنها اسکلت بدن یک انسان را در نظر بگیرید، می توان این وضعیت را همان مفهوم html دانست که باعث ایستایی بدن انسان می شود و براحتی میتوان متوجه شد کدام قسمت از این اسکلت مربوط به سر انسان و کدام قسمت مربوط به سایر اعضا مثل دست ها و پاها می شوند. حالا اگر رگ ها و ماهیچه های بدن انسان که امکان تحرک را بوجود می آورند را در نظر بگیرید، می توان به مفهوم زبان جاوااسکریپت اشاره داشت که باعث تحرک بخشی به عناصر مختلف وبسایت می شود و برای درک بهتر css نیز می توان سبک لباس هایی که یک انسان می پوشد و یا آرایشی که برای موها و چهره ی خود استفاده می کند را در نظر بگیرید.

توسعه دهنده بک اند Back-End Developer :

توسعه دهندگان بک اند با قسمت هایی از وبسایت سروکار دارند که برای کاربران وبسایت قابل نمایش نیستند. در واقع همه ی وبسایت اونچیزی نیست که کاربران وبسایت می بینند و بخش بزرگی از وبسایت وضعیتی است که در پشت صحنه ی فرانت اند در جریان است. برنامه نویسی برای استخراج داده ها از پایگاه داده و ارائه آنها به بخش فرانت اند برای نمایش و همچنین دریافت اطلاعات از بخش فرانت اند و ذخیره سازی آنها در پایگاه داده  ؛که زبان های برنامه نویسی مخصوص به همین کارها را دارند بر عهده برنامه نویسان و توسعه دهندگان بک اند است به زبان هایی که قابلیت انجام چنین کارهایی را دارند زبانهایی سمت سرور و یا زبانهایی با قابلیت سمت سرور گفته می شود. برای مثال پی اچ پی PHP که یک زبان سمت سرور است و پایتون Python که یک زبان با قابلیت برنامه نویسی سمت سرور است.

اگرچه برنامه نویس بک اند با زبان های سمت سرور بصورت تخصصی کار می کند اما قبل از هر چیزی باید سه زبان HTML، CSS و Javascript را یاد بگیرد تا بتواند با بخش فرانت اند تعامل داشته باشد.

گام بعد از یادگیری HTML، CSS و JavaScript چیست؟

بعد از یادگیری این سه زبان اصلی شما قادر خواهی بود صفحات وب جذاب با ظاهری آراسته بسازید اما بوجود آمدن فریم ورک ها و کتابخانه های متنوع باعث شده تا روند برنامه نویسی هم در بخش فرانت اند و هم بک اند راحت تر و همچنین با سرعت بالاتری انجام شود. با توجه به اینکه قصد دارید برنامه نویس فرانت اند شوید و یا بک اند می توانید فریم ورک های مختص به همان دسته بندی را برای یادگیری انتخاب کنید.

مایلم در همین قسمت به مفهوم فریم ورک برنامه نویسی هم اشاره ای داشته باشم. هر فریمورک برنامه نویسی یک چهارچوب مشخص از زبان برنامه نویسی است که مجموعه ای از کدهای از پیش تعریف شده، کتابخانه ها و قوانین توسعه نرم افزاری را در خود جای داده است و هدف از بوجود آمدن فریمورکهای برنامه نویسی این است که انجام کار برای برنامه نویس راحت تر شود و البته سرعت و امنیت پروژه نیز ارتقا یابد. برای درک بهتر مفهوم فریمورک مثالی را ارائه میکنم؛ حتما شما یک ساختمان در حال ساخت را دیده اید. هر ساختمان دارای یک سیستم اسکلت بندی است و معمولا در ایران یا از سیستم اسکلت بندی آهن و یا از سیستم اسکلت بندی بتن یا همان آلماتوربندی استفاده می شود. هر کدام از این سیستم ها را می توان یک فریمورک ساختمان سازی نامید که سرعت کار و امنیت را نسبت به شیوه های سنتی خیلی بالاتر برده اند. پس با ادبیات برنامه نویسی، آلماتور بندی یک فریمورک و اسکلت تیرآهن فریمورکی دیگر در صنعت ساختمان سازی محسوب می شوند.

جدول زیر برای هر زبانی که تا به الان اشاره داشته ام  ؛دو نمونه از فریم ورک های محبوب را معرفی می کند.

Python PHP Javascript CSS
Django Codeigniter React.js Bootstrap
Flask Laravel Vue.js Titan

در مقاله ای جدا حتما به معرفی دقیق تر فریمورکهای برنامه نویسی تحت وب خواهم.

یادگیری مهارت های برنامه نویسی و بکارگیری آنها در پروژه ها:

قرار نیست که برای یادگیری زبانهای html، css و javascript سه سال زمان صرف کنید. شما می توانید در یک دوره کوتاه مدت هر سه زبان را بخوبی یاد بگیرید و از آنها در تمرین ها و پروژه ها استفاده کنید. در این وبسایت سری ویدئوهای آموزشی ارائه می شوند که می توانید بصورت رایگان از آنها در یادگیری این سه زبان پایه برای تبدیل شدن به یک توسعه دهنده وب استفاده کنید. با یک برنامه ریزی مناسب و البته غیرفشرده و راحت می توانید ظرف مدت دو ماه و شاید کمتر، هر سه مهارت را بخوبی یاد بگیرید.

علاوه بر یادگیری مهارت های اولیه از طریق آموزشها، نیاز است در جوامع برنامه نویسی آنلاین مانند GitHub و Stack Overflow  ؛شرکت کنید. گیت هاب انجمنی است که توسعه دهندگان وب می توانند پروژه های خود را با دیگر توسعه دهندگان به اشتراک بگذارند. با این کار هم از نظرات دیگران نسبت به کارهای خود بهره مند می شوند و هم اینکه در دنیای برنامه نویسی سریعتر شناخته خواهند شد. علاوه بر اینها امکان همکاری در پروژه ها پیش خواهد آمد و دوستان و همکاران ارزشمندی را در زمینه توسعه وب خواهند یافت. استک آورفلو نیز بستری برای تعامل موضوعات برنامه نویسی در قالب پرسش و پاسخ است. اگر در برنامه نویسی به مساله ای برخوردید می توانید سوال خود را در Stack Overflow مطرح کنید. برنامه نویسان زیادی هستند که به سوال شما با دقت پاسخ خواهند داد و در حل مساله، شما را کمک خواهند کرد و البته این رابطه می تواند دو طرفه باشد و شما نیز به سوالات دیگران پاسخ دهید و ازین بابت رتبه ی خود را در این انجمن بالا ببرید که همین فعالیتها علاوه بر کمک به پیشرفت شما در برنامه نویسی می تواند رزومه خوبی محسوب شود.

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

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

امیدوارم با مطالعه ی این مطلب، درکی واضح و روشن از تبدیل شدن به یک توسعه دهنده وب را کسب کرده باشید و در همین خصوص منتظر دیدگاه های ارزشمند شما چه در قالب انتقاد و پیشنهاد و یا سوال هستم.

دیدگاه ارزشمندت را در رابطه با این مطلب با ما در میان بگذار

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