با توجه به بازار کار گسترده، فرصتهای شغلی متعدد موجود و البته درآمد و جایگاه شغلی خوبی که برای برنامهنویسها وجود دارد، بسیاری از افراد علاقهمند به ورود به این حوزه هستند. یادگیری زبان برنامهنویسی برای بسیاری از افراد در یک نیمه شب و با جستوجوی چیزی شبیه عبارت زیر در گوگل، آغاز شده است:
«یادگیری …»
اما چگونه این افراد انتخاب میکنند که کدام زبان برنامهنویسی را بیاموزند؟ پرسشهایی وجود دارد که پاسخگویی به آنها میتواند در انتخاب زبان برنامهنویسی که یک فرد نیاز دارد بیاموزد، کمک شایان توجهی کند.
تصمیمگیری برای انتخاب اولین زبان برنامهنویسی میتواند فرایندی جالب باشد. چیزی شبیه تستهای شخصی وبسایتهایی که با پاسخ به چند سوال به شما میگوید شبیه کدام ابرقهرمان فیلمها هستید. اما پیش از اینکه مثلا به خاطر آنکه در کودکی به خمیربازی علاقه داشتند، زبان برنامهنویسی «روبی» (Ruby) را یاد بگیرید، به خاطر داشته باشید که اینجا قمار بزرگتری پیش روی شماست. صدها ساعت زمان برای تمرین و حتی رقابتهای از راه دور لازم است تا فردی اولین زبان برنامهنویس خود را بیاموزد. بنابراین، موارد زیر را به خاطر داشته باشید.
- بازار کار یک زبان برنامهنویسی
- چشمانداز بلند مدت یک زبان
- سادگی یادگیری یک زبان
- پروژههای قابل انجام به وسیله آن زبان
هر سال، زبانهای برنامهنویسی جدیدی به میان میآیند و همزمان با آنها، مقالات دانشگاهی گوناگون منتشر میشود. هنگامی که بحث از انتخاب اولین زبان برنامهنویسی میشود، هیچ کمبودی در لیست گزینههای پیش رو وجود ندارد. اما در حال حاضر، به دلایل گوناگون، چند زبان برجستهتر هستند و افراد معمولا به انتخاب از میان آنها میپردازند. آگاهی از این زبانها، لیست گزینههای قابل انتخاب به وسیله کاربران را کوتاهتر میکند. این زبان ها عبارتند از:
- پایتون (Python)
- جاوا (Java)
- جاوااسکریپت (JavaScript)
- گو (Go)
- روبی (Ruby)
- کاتلین (Kotlin) و سوئیفت (Swift) (برای پلتفرمهای موبایل)
جاوا (Java)، پستیها و بلندیهای خودش را داشته و پایتون به تدریج مبدل به محبوبترین زبان برنامهنویسی شده است. این در حالی است که جاوا اسکریپت نیز طی سالهای اخیر با پشت سر گذاشتن مسیری طویل و به آرامی، به محبوبیت قابل توجهی دست پیدا کرده است. پیش از آنکه درباره این زبانها صحبت شود، لازم است به چند نکته پیرامون این مطلب اشاره شود:
- قصد این مطلب آن نیست که بگوید کدام زبان از دیگری بهتر است.
- توسعهدهندگان نیاز دارند که به تدرج زبانهای برنامهنویسی بیشتری را بیاموزند.
- هر فردی ابتدا باید یک زبان را به خوبی بیاموزد و بعد زبانهای دیگر را فرا بگیرد.
در ادامه به این پرسش که چطور میتوان زبان برنامهنویسی مورد نظرتان را انتخاب کنید، پاسخ داده شده است.
دانشگاهها همچنان به شیوهای سنتی، برنامهنویسی را زیر چتر علوم کامپیوتر آموزش میدهند، که خود افزونهای از ریاضیات است و یا به مهندسی الکترونیک گره خورده است. جمله زیر، احتمالا حرف دل بسیاری از دانشجویان مهندسی و علوم کامپیوتر است:
آموزش علوم کامپیوتر نمیتواند از هیچ کس برنامهنویس متخصص کامپیوتر بسازد، همانطور که اگر کسی قلموها و رنگها را بشناسد نقاش نخواهد بود.
– اریک اس. ریموند
تا سال ۲۰۱۶، بسیاری از دانشگاهها هنوز هم با برنامهنویسی مانند علوم کامپیوتر برخورد میکردند و البته نباید فراموش کرد که علوم کامپیوتر نیز ماهیت ریاضیات دارد. در نتیجه، بسیاری از دورههای مقدماتی برنامهنویسی روی زبانهای برنامهنویسی سطح پایینتری مانند C یا زبانهایی با تمرکز ریاضیات مانند «متلب» (MATLAB) متمرکز شده بودند. هیئت علمیها به طور کلی زبانهایی را برای آموزش در دانشگاهها انتخاب میکردند که در صدر لیست سالانه TIOBE Index یا برای مثال IEEE قرار داشتند.
در حال حاضر، بسیاری از زبانهای پیشگام در حوزههای آکادمیک، تقریبا مشابه مواردی هستند که طی ده سال گذشته بودهاند. اما تغییر بلاخره اتفاق میافتد، به ویژه در فضای دانشگاهی. در سال ۲۰۱۴، پایتون از جاوا به عنوان زبان برتر برنامههای علوم کامپیوتر ایالات متحده آمریکا سبقت گرفت. اما همچنان تغییرات دیگری در ادامه به وقوع پیوستند. طی سالهای پس از آن، زبانهای دیگری مانند جاوااسکریپت نیز توانستند به محبوبیت بسیاری زیادی دست پیدا کنند و حتی جزو چند زبان اول برنامهنویسی در دنیا شوند.
در حال حاضر با وجود پیشتاز و اول بودن پایتون در اغلب لیستهای مربوط به زبان های برنامهنویسی برتر، توسعهدهندگان زیادی و به ویژه توسعهدهندگان وب از جاوا اسکریپت استفاده میکنند. میتوان گفت که جاوااسکریپت برای توسعه وب فرانت-اند (front-end)گزینهای الزامی است و البته در توسعه بک-اند نیز بسیار پرکاربرد است. جاوا اسکریپت طی سالهای اخیر توانسته است به به زمینههایی مانند توسعه بازی و «اینترنت اشیا» (Internet of Things) نیز وارد میشود.
مشاغلی که برای توسعهدهندگان جاوااسکریپت وجود دارد بسیار زیاد و در رقابت با مشاغل موجود برای جاوا و پایتون است. اما هر فردی چطور میتواند زبان برنامهنویسی مناسب برای خودش را انتخاب کند و در واقع، در چه معیارهایی در انتخاب یک زبان برنامهنویسی برای یادگیری و فعالیت، باید در نظر گرفته شود؟
فرصتهای شغلی
افرادی که برنامهنویسی را صرفا از روی کنجکاوی دنبال میکنند، شاید بتوانند از این فاکتور مهم و قابل توجه، چشمپوشی کنند. البته، این روزها کمتر کسی وجود دارد که یک مهارت را صرفا از روی علاقه محض و یا کنجکاوی بیاموزد. اغلب افراد به دنبال یادگیری مهارتهایی هستند که از جنبههای گوناگون برای آنها مفید باشد و یکی از این جنبهها، پیدا کردن شغلی با درآمد مناسب و جایگاه شغلی خوب است.
همچنین، افراد علاقهمند به یادگیری مهارتی هستند که فرصتهای شغلی بیشتری در انتظارش باشد و در واقع، قدرت انتخاب بیشتری به آنها داده شود. داشتن ویژگی پیشرفت شغلی نیز یکی دیگر از معیارهای مربوط به شغل است که افراد ضمن یادگیری یک مهارت جدید به آن فکر میکنند.
اما، به طور کلی افرادی که برنامهنویسی را با در نظر داشتن این معیار یاد میگیرند که فرصتهای شغلی خوبی کسب کنند، حتما باید در هنگام انتخاب یک زبان برنامهنویسی بررسی و تحقیقات متعددی پیرامون فرصتهای شغلی موجود برای زبان مورد نظرشان و البته، جایگاه شغلی و درآمد برنامهنویسان به آن زبان، انجام دهند. جاوا، جاوا اسکریپت، پایتون، گو و روبی از جمله زبانهایی هستند که فرصتهای شغلی متعدد، خوب و با درآمد بالایی در انتظارشان است.
چشمانداز بلند مدت
پروژههای نرمافزاری بسیار زیادی در جهان، در گیتهاب وجود دارند. این نکته مهم و جالب توجه درباره یک زبان وجود دارد که میزان مشارکت برنامهنویسان کدام زبانها در گیتهاب بیشتر است و یا به بیان بهتر، کدام زبانهای برنامهنویسی سهم بیشتری از پروژههای در حال انجام در جهان را دارند. بررسی این موضوع، به فرد کمک میکند تا چشمانداز بلند مدتی از زبان برنامهنویسی که قصد یادگیری آن را دارد به دست آورد.
البته، نباید فراموش کرد که این آمار میتواند نشانهای از عظمت جامعه کاربری یک زبان نیز باشد که خود یک فاکتور مهم در انتخاب زبان برنامهنویسی است. زبانهایی با جامعه کاربری بزرگتر، معمولا خود سریعتر توسعه پیدا میکنند و البته، مشکلات احتمالی که یک فرد با آنها برخورد میکند، احتمالا پیشتر برای افراد دیگر مطرح بوده و پاسخ آنها ارائه شده است.
همچنین، در صورتی که فرد با مشکلی مواجه شود که پاسخ آن پیش از این داده نشده و در وب موجود نباشد (که این اتفاق از موارد نسبتا نادر محسوب میشود) افراد بیشتری وجود دارند که فرد میتواند با طرح پرسش خود در محل مناسب (مانند استکاورفلو) توجه آنها را به خود جلب و پاسخ پرسش خود را دریافت کنید.
سهولت یادگیری
یکی از ویژگیهای مهمی که باید در هنگام انتخاب زبان برنامهنویسی جهت یادگیری مد نظر داشت، سهولت یادگیری آن زبان برنامهنویسی است. جاوا تا سال ۲۰۱۶، زبان اول آموزش برنامهنویسی در جهان بود و دانشگاهها، کالجها، آموزشگاهها، پژوهشکدهها و سایر مراکز، این زبان را به فراگیران نیازمند برنامهنویسی آموزش میدادند.
اما، در سال ۲۰۱۶، پایتون توانست جاوا را کنار بزند و به زبان اول آموزش برنامهنویسی در جهان مبدل شود. دلیل این امر، چیزی جز سهولت یادگیری نحو و البته ساختار شفاف پایتون نبود. برای بسیاری از افراد نیز، سهولت یادگیری یک زبان از اهمیت ویژهای برخوردار است. پایتون از جمله زبانهایی است که این ویژگی را با قدرت فراوان در خود دارد و بنابراین به افرادی که درصدد یادگیری یک زبان برنامهنویسی هستند و به ویژه زبان اولیها، یادگیری آن اکیدا توصیه میشود.
پروژههای قابل انجام با یک زبان
برخی از افراد، به دنبال یادگیری یک زبان برنامهنویسی برای یک هدف خاص برای مثال، برنامهنویسی موبایل و یا برنامهنویسی محاسباتی و علمی هستند. این افراد، باید بررسی کنند و زبان مناسب برای انجام آن کار خاص را انتخاب کنند. این کار معمولا خیلی هم دشوار نیست.
اما، در بیشتر مواقع افراد به دنبال یادگیری زبانی هستند که بتوانند از آن در زمینههای گوناگونی استفاده کنند. در این شرایط، یادگیری یک زبان «همهمنظوره» (General Purpose) به این افراد توصیه میشود. پایتون، جاوا و گو هر سه از جمله زبانهای همه منظورهای هستند که این روزها توجهات زیادی را به خود جلب کردهاند. البته، با وجود همه منظوره بودن این زبانها، هر یک از آنها در یک زمینه خاص قدرتمندتر هستند.
برای مثال، پایتون در بحث «علمداده» (Data Science) و «یادگیری ماشین» (Machine Learning) و همچنین، در حوزه توسعه وب بسیار قدرتمند است. حال آنکه گو در زمینه توسعه وب (بکاند) حرفهای زیادی برای گفتن دارد. ولی به طور کلی، هر سه این زبانها همه منظوره هستند. هرچند که به دلایل مختلفی، برنامهنویسان ارشد زیادی، یادگیری پایتون را به افراد مختلف پیشنهاد میکنند. در مجموعه مقالاتی که د ر ادامه معرفی شده است، برخی از محبوبترین زبانهای برنامهنویسی با پایتون مقایسه شدهاند.
- پایتون یا متلب کدام بهتر است؟ — راهنمای جامع
- پایتون یا جاوا کدام بهتر است؟ — راهنمای جامع
- پایتون یا جاوا اسکریپت کدام بهتر است؟ — راهنمای جامع
- پایتون یا سی شارپ کدام بهتر است؟ — راهنمای جامع
- کدام زبان برای داده کاوی بهتر است، پایتون یا R؟
- پایتون، R یا SAS؟ کدام بهتر است؟
بررسی پروژههایی که پیش از این نیز با یک زبان خاص انجام شدهاند، به فرد در انتخاب دقیقتر و هوشمندانهتر کمک قابل توجهی میکند.
یک پند کلی
ابتدا یک زبان را خیلی خوب یاد بگیرید؛ سپس به سراغ زبانهای دیگر بروید. افراد زیادی هستند که در حین یادگیری برنامهنویسی، برای داشتن آینده شغلی بهتر و تسلط بر زبانی که قدرتمندتر است، مرتب از یک زبان به زبان دیگر تغییر انتخاب میدهند؛ در حالیکه هیچ یک از این زبانها را به خوبی نمیآموزند. اما نکته مهمی که اکثر افراد از آن بیاطلاع هستند این است که در بحث یادگیری زبان یک برنامهنویسی، مسئله در وهله اول یادگیری نحو یا قابلیتهای خاص آن زبان نیست. بلکه، مسئله یادگیری مفاهیم پایهای برنامهنویسی است که در کلیه زبانها مشترک است.
بنابراین، هنگام یادگیری یک زبان، به طور خاص افراد تازهوارد به دنیای برنامهنویسی، باید به این نکته توجه داشته باشند که ابتدا یک زبان خاص و به تبع مفاهیم اساسی برنامهنویسی را به خوبی یاد بگیرند. سپس، به سراغ یادگیری دیگر زبانهای برنامهنویسی بروند.
این کار نه تنها یادگیری دیگر زبانهای برنامهنویسی را آسان میکند، بلکه به فرد کمک میکند تا از همان زبانی که آموخته، به بهترین نحو ممکن و با قدرت تمام استفاده کند. نباید فراموش کرد که یادگیری اولین زبان برنامهنویسی شاید سخت باشد، ولی اگر فرد آن زبان را به همراه مفاهیم برنامهنویسی به خوبی بیاموزد، یادگیری زبان دوم برای او آسانتر و بعد از آن، یادگیری دیگر زبانهای برنامهنویسی ساده و سادهتر میشود.
منبع : برگزیدههای مجله فرادرس (https://virgool.io/@faradarsmag)