زبان مناسب برای شروع برنامه نویسی ۳

تقریبا هر روز اینطور سوالاتی از من پرسیده میشه:برای شروع برنامه نویسی کدام زبان بهتره؟بهترین زبان کدنویسی کدومه؟میخوام برنامه نویس بشم؛ چه زبانی یاد بگیرم؟و پرسش هایی از این دست. احتمالا شما هم که الان این مقاله را می خوانید دنبال پاسخ این سوال، وارد این صفحه شده اید. امیدوارم بتونم در چند دقیقه آینده، برای روشن شدن موضوع کمک تان کنم.مساله از جایی شروع می‌شود که بیشتر افراد تصور می‌کنند باید این سوال یک پاسخ واضح و مشخص داشته باشد! اما بیشتر اوقات جواب دادن به این سوال به این سادگی ها هم نیست. باید حوصله کنیم.معمولا این سوال از طرف دو دسته از دوستانم مطرح میشه. اول، دوستانی که اصلا آشنایی با برنامه نویسی ندارند و تازه می خواهند شروع کنند. دوم، دوستانی که کمی با دنیای کدنویسی آشنا هستند اما مطمئن نیستند چکار می‌کنند.1. من هیچ تجربه ای ندارم:بهترین زبان برنامه نویسی برای تازه کارها کدام است؟با کمال احترام باید بگویم هیچ زبانی! اگر شما قبلا حتی یک خط کدنویسی نکرده اید و در این موضوع مطالعه‌ای نداشته‌اید، سوال اشتباهی در زمان اشتباهی، می‌پرسید.اولویت مهمتر برای یک تازه وارد، قبل از انتخاب زبان برنامه نویسی، این است که روی "مبانی برنامه نویسی" مطالعه کند. و البته هر آنچه که برای درک "مبانی" می تواند لازم باشد؛ مثلا کمی ریاضی (در حد دبیرستان).شما قبل از درک مفاهیمی مثل متغیر، ثابت، آرایه، تابع، کلاس و... چندان آماده ورود به دنیای برنامه نویسی نیستید. البته می‌توانید پابرهنه وارد شوید، اما تا مدت‌ها اذیت خواهید شد (البته اگر فراری نشوید) ?پس بهتر است نردبان را پله پله بالا بیایید تا مجبور نباشید چند مرتبه همان نردبان را بالا بیایید!پس از مطالعه و درک مفاهیم اولیه و مبانی برنامه نویسی، شما آماده پرسیدن "این سوال" هستید.2. من کمی مطالعه داشته ام؛ من دانشجوی کامپیوتر ام؛ من رشته IT خوانده ام؛ چند واحد درس برنامه‌نویسی پاس کرده‌ام؛ مدتی آموزش دیده ام؛ کمی از یوتوب ویدیوی کدنویسی دیدم:بهترین زبان برنامه نویسی برای شروع کدام است؟مجبورم مجددا تاکید کنم? خودتان بهتر از هر کسی دیگر می دانید که چقدر بر مبانی و مفاهیم پایه ای مسلط هستید. نکته مهمی است که قبل از مطالعه مبانی و مفاهیم پایه، پیگیرِ ادامه کار نشوید.هیچ نوزادی یکهو بلند نشده راه بره! اولش یه مدتی فقط "دَمَر" می افته و هِن هِن می کنه ?عجله نکنید، هیچکس یک شبه دولوپر نمیشه، و این خیلی خوبه!مبانی برنامه نویسی را از کجا یاد بگیرم؟اینترنت بزرگترین و به روزترین منبع و مرجع برای یادگیری برنامه نویسی می تواند باشد. از سایت هایی مثل "فرادرس" می توانید دوره هایی با عنوان "مبانی برنامه نویسی" را پیدا کنید.کتابها و جزوه های "مبانی برنامه نویسی" هم با کمی جستجو پیدا میشه! من لینکی برای دانلود نخواهم داد تا تمرینِ سرچ هم بکنید. "جستجوی خوب" یکی از ارکان برنامه نویسِ خوب شدن است. از همینجا تمرین کنید ?پس حالا که همگی کمی مطالعه داشته ایم و "مبانی" را می دانیم، برویم سر اصل مطلب:بالاخره کدام زبان؟در نگاه اول، زبان های برنامه نویسی "سطح بالا" به دلیل سادگی ساختاری (سینتکس) و نزدیکی به زبان انسانی، گزینه‌های بهتری برای شروع یادگیری برنامه نویسی می توانند باشند. زبان‌هایی مثل جاوااسکریپت و پایتون.و یا با نگاهِ درآمدی، می توان گفت در بازار کار ایران (استخدامی ها) فضا و شانس بیشتری برای دولوپرهای ASP.net و خصوصا سی شارپ وجود دارد.در منابع زیادی ممکن است به "پایتون" به عنوان بهترین زبان برای شروع کدنویسی برخورد کنید. دلایل اصلی دوستداران این زبان، می تواند سادگیِ ساختاری (Syntax) و راهنمای جامع آن باشد.در این صفحه می‌توانید نتایج نظرسنجی 2019 استک‌اورفلو (که یکی از جامع‌ترین‌هاست) را ببینید که بخشی از آن مربوط به تعداد طرفداران فناوری‌ها و زبان‌های برنامه نویسی است.اما موضوع به همین سادگی ها نیست. زبان های برنامه نویسیِ مختلف، کاربردهای متعددی دارند.هر زبانی شخصیت و دنیای خاصی دارد با مزایا و معایب خودش.در ضمن، انسان ها هم شخصیت، روحیات و استعدادهای متفاوتی دارند. اگر شنیده اید زبانی خوب است، این نمی‌تواند لزوما برای "شما" هم خوب باشد.اگر بخواهیم معیارهای اصلی برای انتخاب زبان برنامه نویسی را ارائه کنیم:1. معمولا افراد اولویت را به بازارِ کار و درآمد می‌دهند2. ببینید متخصصان، افق بلند مدت برای این زبان را چگونه ترسیم می‌کنند3. یادگیری این زبان خاص، چقدر سخت یا آسان است4. مهمتر از همه؛ با این زبان خاص، چه کار می‌کنید، چه برنامه ها و ابزارهایی می توانید بسازید (که علاقمندید بسازید، دنیا را زیبا و دیگران را خوشحال کنید، تا در این مسیر نه چندان آسان، انگیزه بگیرید)می‌بینید؟ نمی‌توان به پاسخی قطعی و همیشگی برای این سوال رسید.از کجا می توانیم شروع کنیم؟برنامه نویسی صرفا انتخابِ یک زبان خاص، و تلاش برای فهمیدن ساختار و یادگرفتن استانداردهایش نیست. اگر می‌خواهید دِوِلوپر (Developer) شوید و هنوز مطمئن نیستید از کجا شروع کنید، من به شما می‌گویم:از آخرش شروع کنید! دقیقا آخرش کجاست؟ببنید می‌خواهید چه بسازید یا داشته باشید.?لطفا قبل از اینکه بدانید چه انتظاری از خودتان و برنامه نویسی تان دارید، درگیر هیچ زبانی نشوید.اینطوری معیار و هدف اصلی خودش را به شما نشان خواهد داد؛ مثلا:می‌خواهید "بازی موبایل" بسازید؟پس شروع کنید به جستجو و آشنایی با برنامه نویسی برای موبایل؛ خیلی زود کشف می‌کنید بهترین زبان کدام است.می‌خواهید "وبسایت" یا "وب اپ" بسازید؟پس روی "برنامه نویسی و طراحی وب" متمرکز شوید.می خواهید "حقوق" بگیرید و "شغل" داشته باشید؟پس ببینید کدام زمینه ها بیشترین بازار کار را دارد که یادگیری اش هم آسان باشد!شاید هم بخواهید "مهاجرت" کنید.در این صورت به ترندهای جهانی توجه کنید و ضمنا بسته به نوع مهاجرت و تقاضای بازارِ مقصد می‌توان به موضوع نگاه کرد.شاید می‌خواهید صرفا "پول" بسازید؟!شرمنده ام؛ مسیر را اشتباه آمده اید، در این مورد کمکی از من ساخته نیست!بازی‌های کامپیوتری، اپلیکیشن‌های موبایلی، میکروکنترلرها، تحلیل داده، هوش مصنوعی، امنیت، بیگ دیتا، انیمیشن و... زمینه های دیگری هستند که ممکن است هدف شما باشند. برای هدف، به اندازه کافی بررسی و فکر کنید.ممکن است به شما بگویند که مهم نیست در زمان یادگیری با چه زبانی کد می‌زنید؛ بله اگر عمر نوح دارید مشکلی نیست! در غیر اینصورت بهتر است کمی بیشتر دقت کنید تا انرژی و عمرتان را در راستای هدفی مشخص و مفید هزینه کنید.تقریبا همه مان در دوران مدرسه و دانشگاه چند واحد درسی به زبان های "بیسیک" و یا "پاسکال" کدنویسی کرده ایم که هیچوقت به کارمان نیامد! ?اگر بی هدف شروع کنید، مثل این است که یک زبان خارجی دارید یاد می‌گیرید که مطمئن نیستید مربوط به کدام کشور است؛ یا آیا اصلا کسی در دنیا به آن زبان صحبت می‌کند؟!?اگر بی هدف باشید، با انتخاب‌های رنگارنگِ فراوان، سردرگم می‌شوید.موضوع مثل مسافرت است؛ با توجه به انتظارات، اهداف، امکانات و علایق شخصی مان اول مشخص می کنیم کجا می خواهیم برویم، بعد درباره مسیر، وسیله و جزئیاتش تصمیم می‌گیریم.زبان های برنامه نویسی، هدف نیستند؛ ابزارهایی هستند که به ما اجازه می دهند چیزهایی که می‌خواهیم (یا دیگران از ما می‌خواهند) را بسازیم!جمع بندیانتخاب زبان برای شروع یادگیری برنامه نویسی، جواب مشخص و جهان شمول ندارد. لطفا قبل از طرحِ این سوال، کمی روی مبانی برنامه نویسی زمان بگذارید. بعد بسته به شرایط، معیارها، انتظارات و نیز شخصیت خودتان، انتخاب زبان خاصی می تواند برایتان بهتر از بقیه باشد. اگر اهداف و علاقمندی های خود را مشخص کنید، انتخاب زبان اصلا چالش سختی نخواهد بود.در این مقاله سعی کردم مشکل اصلی را روشن کنم و مقایسه فنی زبان‌های کدنویسی و انتخاب را به خودتان می‌سپارم؛ شما با کمی تلاش راهتان را پیدا خواهید کرد. اگر همچنان فکر می کنید ابهامی باقیست بپرسید. سعی می‌کنم در حد توان پاسخ بدهم.