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