در ادامه پست قبلی که «میخوام برنامهنویس بشم» بود، نقشههای راه را جدا کردم و در دو پست جداگانه مینویسم تا خواندن آن برای خواننده و ویرایش آنها برای خودم راحتتر باشد.
در این پست مسیر بکندیها را مرور میکنیم.
اول یک زبان انتخاب کنید. چه زبانی انتخاب کنیم؟ میتونید یه زبان اسکریپتی انتخاب کنید مثل: PHP, Ruby, Python یا یک زبان فانکشنال مثل Scala یا انتخابهای دیگهای مثل Go, Java, .Net, Rust. آیا برای همه این زبانها کار هست؟ بله حتما هست. میتونید یه سرچ تو سایت جابینجا یا کارلیب بزنید و ببینید کدوما تو ایران بیشتر رو بورسن یا اگه قصد مهاجرت دارید تو سایتهایی مثل لینکدین یا indeed سرچ کنید. اگر رنج حقوق هم براتون مهمه برای شرکتای خارجی میتونید تو سایت glassdoor میانگین حقوقها رو هم ببینید. البته پیشنهادی که میکنن بزرگان امر، این هست که اول از زبانهای اسکریپتی شروع کنید و بعد سراغ بقیه زبانها برید.
روی زبانی که انتخاب کردید وقت بزارید و سعی کنید تمرین کنید باهاش. در کنار یادگیری زبان باید یک packageManager هم بتونید استفاده کنید. مثلا برای PHP از Composer، برای روبی از Gem استفاده میشود. زمانی که تمرین میکنید سعی کنید استانداردهای اون زبان رو هم یادبگیرید، مانند PSRs برای PHP. اینجوری عادت به نوشتن کدهای خوب میکنید. همچنین برای حل هر مشکلی و نوشتن هر کدی best practice اون رو سرچ کنید. شما یه خط کد رو به شکلهایی مختلف ممکنه بتونید بنویسید ولی باید ببینید که افراد حرفهای اون رو چجوری مینویسن و در اصلاح best practice اون چیه.
بعد از اینکه زبان رو خوب یاد گرفتین باید بتونین برای اون زبان تست بنویسید. بعد از اینکه انواع تست رو یادگرفتین و تونستین برنامههاتون رو با تست بنویسین باید یک دیتابیس یاد بگیرین بهترین حالت اینه که از یک دیتابیس رابطهای شروع کنید. باز هم در اینجا بزرگان پیشنهاد میدن که با MySql شروع کنید. چون با اکثر زبانها سازگاره و با یادگیری اون میتونید بقیه دیتابیسهای رابطهای رو راحت یادبگیرید.
حالا میتونید یه اپلیکیشن کوچیک برای خودتون بنویسید که CRUD داشته باشه یعنی بشه از طریق اون یه سطر در دیتابیس درج کرد و ویرایش کرد یا پاک کرد و یا نمایش داد. برای شروع یک اپلیکیشن وبلاگ سادهترین و بهترین اپلیکیشن برای یادگیری هست. چون از انواع مختلف رابطه در آن استفاده میشه.
بعد از اینکه یک اپلیکیشن ایجاد کردین و دیتابیس و زبان رو خوب یاد گرفتین وقت انتخاب یک فریمورک برای کار کردنه. مثلا برای PHP فریمورکهایی مثل laravel یا symfony بسیار پرطرفدار هستند. تا اینجا شما یک بکند کار هستین که بهتره یه چیزهایی مثل caching, REST APIs, Web Servers رو هم بشناسه.
البته به این موضوع دقت داشته باشید که مثالها برای Package Manager یا فریم ورک، برای PHP مثال آوردهشده، اما شما بسته به زبانی که انتخاب میکنید فریمورکهای متفاوتی وجود دارد که میتوانید انتخاب کنید و اینها صرفا مثالهای برای آشنایی هستند.
پ.ن. من سعی میکنم در روزهای آیند این پست را تکمیل کنم و منابع آموزشی در هر بخش معرفی کنم.