نقشه راه برای شروع برنامه نویسی در سال ۲۰۱۹ (قسمت اول)

مدتی است که با خیل عظیمی از سوال های این شکلی برخورد میکنم:-من برنامه نویسی رو از کجا باید شروع کنم؟-چه زبانی واسه اندروید یا آی او اس بهتره؟-آیا میتونم زبانی یاد بگیرم که باهاش برای همه پلتفرما برنامه بنویسم؟-فلان زبان بهتره یا بیسار زبان؟-فرق زبان فلان با بیسار چیه؟و …اگر شما هم از اون دسته آدم هایی هستید که سوالات مشابه دارید، پیشنهاد میکنم حتما این مقالرو تا تهش بخونید.این مقاله حاصل چندین سال برنامه نویسی و تحصیل در علوم کامپیوتر و تجربیات شخصی خودمه.خب…قبل از همه چی: زبان انگلیسی یاد بگیرید!بدون زبان نمیتونید هیچوقت برنامه نویس خوبی بشید. چرا؟ به هزار و یک دلیل.اول اینکه تمام مستندات و آموزشات اصلی هر زبان برنامه نویسی کاملا به زبان انگلیسی هستش. مثل ترجمه قرآن که هیچوقت قرآن نمیشه، ترجمه مستندات و آموزش های زبان های برنامه نویسی هم هیچوقت به کاملی اصلش نیست.این از این.دوم اینکه گوگل (Google) بهترین دوست و همراه یه برنامه نویسه. شما به هر مشکلی که توی برنامه نویسی بخورید، در ۹۹.۹۹٪ مواقع حتما یه نفر دیگه هم به این مشکل خورده و یه جا سوال کرده و یه نفر دیگم جوابشو داده. اما خبر بد اینکه همش به زبان انگلیسیه! و حتی باید انگلیسی جستجو کنید تا به اون جواب برسید. برای اون ۰.۰۱٪ بقیه هم خودتون باید یه جا مثل سایت Stackoverflow یا فوروم ها یا گیت هاب خود اون زبان به زبان انگلیسی سوالتون رو مطرح کنید تا بهتون پاسخ بدن.پس قدم اول شد زبان انگلیسی.من اینجا زبان های برنامه نویسی مختلف رو با توجه به اهداف مختلفی که میتونید ازشون استخراج کنید لیست میکنم و توضیحات و برتری های هرکدوم رو میگم. یادتون باشه که این مقاله در سال ۲۰۱۹ نوشته شده. زمانی که شما این رو میخونید ممکنه شرایط فرق کرده باشه.برای شروع برنامه نویسی شما اول باید به این سوال جواب بدید که برای چه پلتفرمی میخواید برنامه نویسی کنید؟ پلتفرم های مختلف از این قرار هستند:-وب (مثل وبسایت ها یا Web API ها)-موبایل (اندروید، iOS و سیستم عامل منقرض شده WindowsPhone)-دسکتاپ (Windows، macOS یا Linux)-یا حتی Embedded System ها و Info Structure ها (مثل کامپیوتر های ماشین، ربات ها، Core یا هسته هر چیزی و …)وباگر انتخاب شما پلتفرم وب هست، اول باید مشخص کنید که میخواید روی Frontend کار کنید یا Backend؟ فرانت اند (Frontend) در واقع همون ظاهر برنامه و قسمتی هست که کاربر به چشم میبینه.بک اند (Backend) اتفاقی هست که در پشت قضیه داره میافته تا برنامه شما کارایی داشته باشه.**(یادتون باشه یه برنامه نویس حرفه ای هیچوقت فقط یک زبان بلد نیست. زبان های مختلف بلده ولی حداقل یکی دوتا رو کاملا حرفه ای بلده و اصطلاحا مستر (Master) کرده. پس نگران نباشید میتونید چند تا زبان یاد بگیرید و هرکدوم رو بیشتر خوشتون اومد ادامه بدید و توش حرفه ای بشید.)**برای یادگیری Frontend شما اول باید زبان های HTML و CSS رو کامل یاد بگیرید. بعد از اون میتونید کتابخانه های این هارو مثل Bootstrap یاد بگیرید تا کارتون تمیز تر بشه. ولی HTML و CSS زبان های برنامه نویسی نیستن! اینا فقط شروع کار هستن. بعد از این حتما باید Javascript رو یاد بگیرید. Javascript یه زبان برنامه نویسیه که میاد Frontend شما رو اصطلاحا Responsive و Interactive میکنه. بعد از اون پیشنهاد من اینه که یکی از فریمورک های جاوا اسکریپت رو مثل React ،Angular ،Vue یا خیلی های دیگرو حتما یاد بگیرید. در واقع با یادگیری اینها شما میتونید ادعا کنید که یک برنامه نویس Frontend هستید. من خودم انتخابم React بود. فریمورک React با React Native که هر دو برای شرکت فیسبوک هستن به شما قابلیت اینو میدن که خیلی کار های پیچیده رو به سادگی انجام بدین. React Native مشابه React هست با این تفاوت که برای پلتفرم موبایل هست و خروجی crossplatform اندروید و iOS و WindowsPhone بهتون میده. تا یادم نرفته اشاره کنم که زبان جاوا اسکریپت در چند سال گذشته خیلی پیشرفت کرده و به یه زبان crossplatform تبدیل شده. یعنی شما با Javascript میتونید برای پلتفرم های وب، موبایل و دسکتاپ، با یادگیری مایهتاج هر سیستم عامل به راحتی برنامه بنویسید و لذت ببرید! برای یادگیری Backend زبان های مختلفی وجود دارن. برای مثال میشه به Asp.Net که برای شرکت مایکروسافت هستش، یا PHP اشاره کرد. من خودم PHP یاد گرفتم. بعد از یادگیری PHP باید حداقل یکی از کتابخانه هاش مثل Laravel و Lumen رو یاد بگیرید و توی دنیای امروز باید حتما با RESTFul API ها آشنا باشید و بدونید که توی زبانی که بلد هستید چطوری میشه RESTFul API رو پیاده سازی کرد. امااااا…!شما میتونید همون Backend رو هم با جاوااسکریپت بنویسید! چجوری؟ با node.js نود جی اس (node.js) نسبت به زبان های دیگه ای که برای این کار هست فوق العاده سریع تر و کارآمد تر هستش.در قسمت بعدی با ادامه توضیحات همراه باشید.قسمت دوم به زودی.