توسعه وب چه فرانت اند (Front End) و چه بک اند (Back End) حوزهای محسوب میشود که قرار نیست به این زودیها رونق خود را از دست بدهد و جایی برود. وب به سرعت در حال حرکت است و به عنوان ابزاری سودمند در نظر گرفته میشود که بسیاری از مردم روزانه از طریق دستگاههای مختلف از آن استفاده میکنند.
اپلیکیشنهای مبتنی بر فضای ابری ما را قادر ساختهاند که کارهای سنگین را در این فضا را انجام دهیم و از مرورگرهای وب به عنوان پلی برای اتصال سرورهای بک اند قدرتمند به کمقدرتترین فرانت اندها کمک بگیریم.
به همین دلیل اگر به دنبال یادگیری هستید، اکنون بهترین زمان برای توسعه وب است. توسعه وب نه تنها موقعیتهای خارقالعادهای را پیش پای شما میگذارد بلکه به لطف آن قادر به کد زدن و کامل کردن پروژههایی هستید که تقریباً تمام جمعیت زمین میتوانند از آنها استفاده کنند.
از آنجایی که اکثر افراد به یک مرورگر دسترسی دارند، هر کسی تنها به اندازه یک URL از وبسایتی که فرضاً شما کد زدهاید، فاصله دارد. اگر این را با اپلیکیشنهای دسکتاپ یا محصولات مبنی بر سختافزار مقایسه کنید، میبینید که هیچ یک از آنها به اندازه وب مقیاسپذیر نیستند.
حالا که به خوبی اشاره کردیم که چرا وب محل خوبی برای شروع توسعه است، اکنون وقت آن است به این موضوع بپردازیم که شما چطور میتوانید تبدیل به یک توسعه دهنده یا به عبارت دیگر، برنامهنویس این حوزه شوید و روند آموزش را شروع کنید.
کوچک شروع کنید و کوچک ادامه دهید
احتمالاً تاکنون نام فریمورکها و کتابخانههای زیادی از جاوا اسکریپت از جمله ریاکت، انگولار، Vue، امبر، jQuery، XYZ و … را شنیدهاید. برخی از پرتکرارترین سوالاتی که مردم بعد از دیدن چنین مواردی به ذهنشان خطور میکند و بعداً نیز از برنامهنویسها میپرسند، اینها هستند: (X، Y و Z به این موارد اشاره دارند)
- آیا باید X را یاد بگیریم؟
- آیا X بهتر از Y است؟
- حوزه کاری Z چیست؟
در پاسخ باید این را بگوییم که همیشه درباره فناوری مخصوصاً وب، دو چیز را به یاد داشته باشید:
- حجم چیزهایی که بلد هستید هرگز اهمیتی ندارد. اگر در کار کردن با زبان/فریمورکی که در آن تخصص دارید، به اندازه کافی خوب باشید، همیشه برنده خواهید بود.
- هرگز نیاز نیست که شما همه چیز را یاد بگیرید. هرگز. شما میتوانید ترکیبی از موارد مختلف را یاد بگیرید اما مطمئن شوید که در یکی از آنها استاد باشید.
حالا میتوانیم این بخش را خلاصه کنیم به این که، وقتی میخواهید شروع کنید باید بسیار کوچک فکر کنید. معمولاً افراد در شروع کار بسیار ساده تحت تاثیر فریمورکهای داغی قرار میگیرند که به تازگی عرضه شدهاند. سعی نکنید چنین مسابقهای را با رها کردن فناوریهای قدیمی و انتخاب کردن فناوریهای جدید بدون انجام تحقیقات کافی، شروع کنید.
با HTML و CSS شروع کنید
بسیاری از افراد پیش از آن که HTML و CSS را یاد بگیرند، شروع میکنند به پرسیدن سوالاتی درباره نحوه استفاده از ریاکت. این مسئله اصلاً خوب نیست. جاوا اسکریپت در ابتدا تنها یک زبان اسکریپت نویسی ساده مرورگر بود. اگرچه اکنون بسیار فراتر از آن است اما هنوز هم این واقعیت را تغییر نمیدهد که این زبان برنامه نویسی، HTML و CSS را کامل میکند.
با پیشرفت استانداردهای وب، اکنون موارد زیادی وجود دارند که شما میتوانید با استفاده از CSS به آنها دست یابید. در حقیقت برای بسیاری از چیزها حتی نیازی به استفاده از جاوا اسکریپت نیست. میخواهید برخی عناصر صفحه را متحرک کنید؟ به آن نیازی نیست. ویژگی کشیدن و رها کردن را نیاز دارید؟ HTML این کار را انجام میدهد. لایهها؟ APIهایی مانند فلکسباکس (Flexbox) یا گرید CSS قابلیت آن را دارند.
چیزهای جذاب زیادی وجود دارند که شما میتوانید با HTML و CSS آنها را انجام دهید. نیاز نیست سریع به سراغ جاوا اسکریپت بروید، آن هم تنها به این خاطر که همه این کار را میکنند. کتابخانهها و فریمورکهای اضافهای که نامشان را میشنوید، قرار نیست فرار کنند!
عمیق پیش برویم یا عریض؟
وقتی شروع به یادگیری توسعه وب میکنید، دو روش وجود دارد: یادگیری عمیق و یادگیری عریض.
یادگیری عریض به این معناست که شما شروع به یادگیری همزمان چیزهای زیادی در کنار یکدیگر میکنید. این شاید برای بعضی از افراد جواب داد اما نه برای همه. با انجام این کار احتمال این که با تعداد زیادی آموزش، تمرین، ویدیو و مقاله احاطه و در نهایت تسلیم شوید، زیاد است.
یادگیری عمیق به این معناست که شما شروع به یادگیری یک چیز و سعی میکنید تا جای ممکن درباره آن یاد بگیرید. این روش هم مزایا و معایب خودش را دارد. ممکن است خسته شوید یا چون نتیجه نمیبینید، دست از کار بکشید و مانند سناریوی قبل تسلیم شوید.
پس راه حل چیست؟ راه حل خیلی ساده است: هیچ کدام را انجام ندهید. یک دسته فناوری کوچک مانند HTML/CSS/جاوا اسکریپت را انتخاب کنید و تا جای ممکن در همه آنها عمیق شوید. این روش چندین مزیت دارد:
- شما خسته نمیشوید، چون هر سه اینها اهداف متفاوتی دارند و شما هم آنها را به شکلهای متفاوتی مینویسید.
- شما میتوانید هر سه را مخلوط کنید و چیزی معنادار را که نیازی به ماهها سعی و تلاش نداشته باشد را ببینید (ماهها آموزش برای رسیدن به نتیجه در سایر زبانها نظیر C یا C++ رایج است). این فرایند در طول مسیر شما را باانگیزه نگه میدارد.
ریاکت و انگولار را زود انتخاب نکنید
وقتی مردم شروع به کار با جاوا اسکریپت میکنند، روی انتخاب یک کتابخانه مثل ریاکت، یک سیستم رابط کاربری مثل متریال UI و عمیق شدن در آنها اختلاف نظر وجود دارد.
متاسفانه این موضوع به چیزی ختم نمیشود جز آسیب زدن به خودتان و روند یادگیری. شما اگر موارد پایهای جاوا اسکریپت را به خوبی یاد نگیرید، هرگز و هرگز نمیتوانید یک پروژه متوسط یا حرفهای را با این پروژهها بسازید. از سمتی هم اعمال کردن جاوا اسکریپت نیازمند زمان است.
توجه کنید که چطور در خط پیش از عبارت اعمال کردن به جای یاد گرفتن استفاده کردیم. تفاوت بزرگی بین یادگیری چیز و اعمال کردن آن چیزی که یاد گرفتهاید، وجود دارد. یک پروژه کوچک اما عملی شامل HTML/CSS/جاوا اسکریپت بسازید. زمانی که آن را به پایان بردید، یکی دیگر بسازید و سپس بعد از اتمامش، باز هم یکی دیگر بسازید.
بار هر قدم در مسیر، پیچیدگی و انتظارات از پروژه را افزایش دهید تا دانش برنامهنویسی شما غیرقابل مدیریت شود. در این نقطه شما به جایی رسیدهاید که «مرز یادگیری برتر» نامیده میشود.
همانطور که احتمالاً میدانید، فریمورکها به وجود آمدهاند تا کارهای تکراری را از دوش شما بردارند. پس زمانی که اولین بار فریمورکی مانند ریاکت یا انگولار را انتخاب میکنید باید مطمئن باشید که میتوانید بدون وجود آنها یک پروژه را بسازید و همانطور که میخواهید، به پایان برسانید.
در یکی استاد شوید
حالا زمانی که کار شما با HTML/CSS/جاوا اسکریپت خوب است، زمان آن رسیده که به سمت استانداردهای موجود حرکت کنید. حقیقت این است که مهم نیست چقدر توسعه دهنده جاوا اسکریپت خوبی هستید، شما در اغلب موارد باید با فریمورکهای مدرنی مانند ریاکت کار کنید و تنها با دانشی که از جاوا اسکریپت دارید، چنین چیزی بلافاصله ممکن نیست.
مدتی طول میکشد تا جزئیات، قواعد و مفاهیم و همچنین نحوه کار فریمورکها در پشت صحنه رایاد بگیرید و درک کنید. پس در این مرحله یک فریمورک را انتخاب کنید و در آن استاد شوید. شاید بپرسید، چطور؟ جواب ساده است: به شما بستگی دارد.
یک پروژه ساده در همه فریمورکهای اصلی بسازید و ببینید که کدام یک بیشتر با شما سازگار است. یکی را انتخاب کنید و دیگر به عقب نگاه نیندازید. سپس همه پروژههای خودتان را با آن فریمورک بسازید. تصمیم بگیرید کاری را انجام دهید که در حال حاضر نمیدانید چطور باید انجامش دهید. این بهترین روش برای هل دادن خود به خارج از منطقه امن و یادگیری چیزهای جدید است.
اما بقیه را هم فراموش نکنید
به همان اندازه که استاد شدن در یک فریمورک اهمیت دارد، توجه به سایر آنها نیز مهم است. این موضوع نه تنها شامل توجه به رقبای فریمورک محبوب شما بلکه توجه به برخی از ابزار ارزشمند توسعه وب نیز میشود. البته نیاز نیست در آن ابزارها استاد شوید زیرا زمان و تلاش زیادی را میطلبد. اما همیشه خوب است که آنها را در چک لیست مهارتهای خود داشته باشید.
این شامل چندین چیز میشود. برای مثال یونیت تست با Jest، تست اند تو اند با Cypress، وب پک، بابل یا پارسل، لینوکس، پیادهسازی سرور و … برخی از آنها هستند. همیشه میتوانید اصول اولیه این مهارتها در مدت کوتاهی یاد بگیرید زیرا آنها مدتهاست که وجود دارند و توسعه مییابند. به همین دلیل، منابع مفیدی در خصوص آنها وجود دارند.
ادامه دهید
در جهان امروز، بسیار آسان است که شما اشتباهاتی را که برنامهنویسان گذشته انجام دادهاند، انجام ندهید. زیرا آن اشتباهات اکنون به صورت عمومی موجود هستند تا همه آنها را ببینند. منابع زیادی برای یادگیری وجود دارند. از کانالهای یوتیوب، وبسایتهای آموزشی، کتابها، ویدیوها، تمرینها و دانش دوستانتان برای یادگیری برنامهنویسی فرانت اند وب استفاده کنید.
حس خندهداری است اما به محض این که پروژههای زیادی را توسعه میدهید و کدهای زیادی را با فناوریهای مورد علاقه خود مینویسید، کم کم احساس میکنید قادر به انجام هر کاری هستید. در این مقطع، شما میتوانید شغلی در این زمینه پیدا کنید و این فرایند را بارها و بارها تکرار کنید که البته کاملاً عادی است.
از طرفی میتوانید مهارتتان را افزایش و به پیشرفت ادامه دهید. فراموش نکنید که وب عظیم است. پس اگر کارتان با HTML/CSS/جاوا اسکریپت/ریاکت/انگولار/Vue تمام شد، به سمت سرورها حرکت کنید. درباره پیادهسازی سرور، NGiNX، HAProxy، توازن بارگذاری، راهاندازی زیرساختهای ابری، فایروالها و مقیاسهای خودکار یاد بگیرید.
وقتی آنها را هم پشت سر گذاشتید، چه؟ به وباسمبلی، زبان نسل بعد وب مهاجرت کنید. کارتان با وباسمبلی هم تمام شد؟ خب، دیگر نمیدانیم که چه چیزی بگوییم. شاید بهتر باشد به سایر زبانهای برنامهنویسی سایر حوزهها … یا آشپزی مهاجرت کنید؟ 😁 یا شاید هم بهتر است شما به ما بگویید که بعد از آن چه کار باید بکنیم؟
سوالات متداول
برای شروع برنامه نویسی فرانت اند باید چه زبانهایی را یاد بگیریم؟
- شما ابتدا باید در فناوریهای HTML و CSS کسب مهارت کنید. سپس نوبت به یادگیری جاوا اسکریپت میرسد.
آیا کتابخانه و فریمورک برای شروع کار بهتر است؟
- پیش از انتخاب هر کتابخانه یا فریمورکی، ابتدا در سه فناوری بالا حرفهای شوید. همانطور که احتمالاً میدانید، فریمورکها به وجود آمدهاند تا کارهای تکراری را از دوش شما بردارند. پس زمانی که اولین بار فریمورکی مانند ریاکت یا انگولار را انتخاب میکنید باید مطمئن باشید که میتوانید بدون وجود آنها یک پروژه را بسازید و همانطور که میخواهید، به پایان برسانید.
بعد از فرانت اند، چه حوزهای برای یادگیری وجود دارد؟
- این شامل چندین چیز میشود. برای مثال یونیت تست با Jest، تست اند تو اند با Cypress، وب پک، بابل یا پارسل، لینوکس، پیادهسازی سرور و … برخی از آنها هستند. همیشه میتوانید اصول اولیه این مهارتها در مدت کوتاهی یاد بگیرید زیرا آنها مدتهاست که وجود دارند و توسعه مییابند. به همین دلیل، منابع مفیدی در خصوص آنها وجود دارند. سپس اگر بخواهید، میتوانید به سراغ بک اند، برنامهنویسی موبایل و … بروید.
نظرات