سفر اکثر مردم به سمت دنیای برنامه نویسی اغلب با یک جستجوی گوگل در اواخر شب آغاز میشود.معمولاً چیزی شبیه این است " یادگیری ____"
اما آنها چگونه تصمیم میگیرند که کدام زبان را جستجو کنند؟
"آنها همیشه درباره جاوا در دره سیلیکون شنیدهاند. پس فکر میکنند باید آن را یاد بگیرند."
یا:
"Haskell. خیلی جذاب است پس Haskell را یاد میگیرم. "
یا:
"Go خیلی بامزه است پس آن را انتخاب میکنم"
و بعضی از ما هم هستیم که یه همچین چیزهایی سرچ میکنیم
" کدام زبان برنامه نویسی را بهتر است زودتر از بقیه یاد بگیریم"
و یه تعداد سوال هم است که جواب آن داخل این اینفوگرافی است:
منبع اصلی تصویر (البته فیلتره)
تصمیم گرفتن در مورد اولین زبان برنامه نویسی که میخواهید یاد بگیرید یک فرایند سرگرم کننده است " مثلا شبیه کدام یکی از شخصیتهای فیلمهای کوئنتین تارانتینو هستید؟" تست شخصیت.
قبل از اینکه بخواهید روبی را یاد بگیرید چون به بازی play-doh علاقه دارید باید به شما یاداوری کنم که: یادگیری آن زمانبر است.
صدها ساعت تمرین نیاز است که شما به یک زبان برنامه نویسی مسلط شوید.
بنابراین باید عوامل زیر را در نظر بگیرید:
- بازار کار آن زبان
- چشمانداز بلند مدت برای زبان
- یادگیری زبان چقدر آسان است
- هنگام یادگیری چه پروژههایی میتوانید انجام دهید (و با دوستان به اشتراک بگذارید تا بتوانید با انگیزه بمانید)
هر ساله زبانهای برنامه نویسی جدیدی به همراه مقالاتی در مورد آن میآیند.
وقتی بحث انتخاب اولین زبان برنامه نویسی مطرح میشود، هیچ محدودیتی در بین گزینهها وجود ندارد. برای محدود کردن آن، در اینجا رایجترین تحقیقات گوگل در ارتباط با یادگیری برنامه نویسی در طول ۱۲ سال گذشته را میبینید:
جاوا فراز و نشیبهای خود را داشته است.
پایتون به تدریج تبدیل به محبوبترین انتخاب شده است.
اما کمی پایینتر از اینها یک موتور کوچک است که توانسته است به آرامی در طول چند سال گذشته محبوبیت پیدا کند. و آن موتور جاوااسکریپت است.
قبل از اینکه در مورد این زبانهای برنامه نویسی صحبت کنم، اجازه دهید توضیح دهم:
- من هیچ بحثی در مورد اینکه کدام زبان از بقیه بهتر است نمیکنم.
- من موافقم که توسعهدهندگان باید در نهایت بیش از یک زبان یاد بگیرند
- من دارم بحث میکنم که اول باید یک زبان را خوب یاد بگیرند. و همانطور که داخل سر تیتر مقاله دیدید به نظر من آن زبان جاوااسکریپت است.
بیایید با بررسی اینکه در حال حاضر چگونه برنامه نویسی در مدرسه تدریس میشود، شروع کنیم.
علوم کامپیوتر 101
دانشگاهها به طور سنتی برنامهنویسی را از منظر علوم رایانه تدریس میکنند که اغلب به عنوان یک دنباله از ریاضیات یا رشته مهندسی برق دیده میشود.
البته، همان طور که ممکن است قبلا شنیده باشید:
"آموزش علوم رایانه نمیتواند کسی را به یک برنامهنویس خبره تبدیل کند همانطور که خواندن در مورد برس و رنگدانه نمیتواند کسی را به یک نقاش حرفهای تبدیل کند." - Eric S. Raymond
از سال 2016، بسیاری از دانشگاهها همچنان با برنامهنویسی مانند علوم کامپیوتر و با علوم کامپیوتر مانند ریاضیات رفتار میکردند.
در نتیجه، بسیاری از دورههای برنامهنویسی مقدماتی روی زبانهای سطح پایین مانند C، یا زبانهای بر پایه ریاضیات مانند MATLAB تمرکز دارند.
اما تغییر اتفاق میافتد. حتی در دانشگاه.
در سال ۲۰۱۴، پایتون از جاوا به عنوان محبوبترین زبان آموزش در برنامههای علوم کامپیوتر آمریکا پیشی گرفت.
و با این حال یک تغییر دیگر … بالاخره … اتفاق میافتد.
چون اگر نگاه کنید میبینید که زبانهایی واقعا توسط برنامهنویسان مورد استفاده قرار میگیرند، تصویر بسیار متفاوتی را خواهید دید:
جاوا اسکریپت به مراتب محبوبترین زبانی است که از نظرسنجی که در سال ۲۰۱۶ بین ۴۹۳۹۷ توسعهدهنده انجام شده بود انتخاب شد.
بیش از نیمی از توسعه دهندگان از جاوا اسکریپت استفاده میکنند. این برای توسعه فرانت-اند وب بسیار حیاتی است و به طور فزایندهای برای توسعه بک-اند هم نیز استفاده میشود. و به سرعت در زمینههایی مانند توسعه بازی و اینترنت اشیا گسترش مییابد.
همچنین آگهیهای شغلی بیش از هر زبان دیگری بعد از جاوا برای جاوااسکریپت وجود دارد.
تصادفی نیست که ما برنامه آموزشی متنباز خود را برای جاوااسکریپت ایجاد کردیم. در طی دو سال گذشته، بیش از ۵۰۰۰ نفر از Free Code Camp برای به دست آوردن اولین کار توسعهدهنده استفاده کردهاند.
من از جاوااسکریپت دفاع نمیکنم به این دلیل که آن را آموزش میدهم. من جاوااسکریپت را آموزش میدهم زیرا مطمئنترین راه برای به دست آوردن اولین کار توسعهدهنده است.
اما آیا جاوا اسکریپت برای شما مناسب است؟ آیا ارزش این را دارد اولین زبان برنامهنویسی شما باشد؟ بیایید آن فاکتورهایی را که قبلا ذکر کردم را بررسی کنیم.
عامل شماره 1: بازار کار
اگر صرفاً از روی کنجکاوی میخواهید برنامهنویسی را یاد بگیرید، از این عامل صرف نظر کنید. اما اگر شما مانند اکثریت قریب به اتفاق افرادی که در حال یادگیری برنامهنویسی هستند میخواهید از این مهارت برای به دست آوردن شغل استفاده کنید، این یک نکته مهم است.
همانطور که قبلا نیز اشاره کردیم زبان جاوا نسبت به بقیه زبانها در این قسمت بهتر عمل کرده و شغل بیشتری برای آن است و جاوااسکریپت هم با اختلاف اندکی در رتبه دوم قرار دارد.
اما در اینجا چیزی در مورد جاوااسکریپت وجود دارد: حتی با وجود اینکه ۲۰ سال از عمر آن نگذشته، اما به تازگی به یک ابزار جدی تبدیل شدهاست که شرکتهایی مانند نت فلیکس، والمارت، و پی پال از آن برای ساخت برنامههای خود استفاده کردهاند.
در نتیجه، بسیاری از شرکتها برنامهنویسی توسعهدهندگان جاوااسکریپت را استخدام میکنند.
۲.۷ توسعهدهنده جاوا وجود دارند که برای هر موقعیت شغلی جاوا رقابت میکنند. رقابت برای PHP و iOS نیز به طور مشابه است و این واقعا بیرحمانه است.
اما برای هر موقعیت شغلی که برای جاوااسکریپت وجود دارد فقط ۰.۶ توسعهدهنده وجود دارد و این یعنی یک بازار کار خوب برای جاوااسکریپت.
عامل شماره 2: چشمانداز بلند مدت
میانگین درخواست برای هر پروژه جاوااسکریپت به طور متوسط دو برابر بیشتر از میانگین درخواست برای هر پروژه جاوا، پایتون یا روبی است. علاوه بر این، جاوااسکریپت سریعتر از هر زبان محبوب دیگری در حال رشد است.
اکوسیستم جاوااسکریپت همچنین از سرمایهگذاریهای سنگین پول و استعداد مهندسان شرکتهایی مانند Google ، Microsoft ، Facebook و Netflix بهره میبرد.
به عنوان مثال، typescript (یک superset با نوع ایستا از جاوا اسکریپت) بیش از ۱۰۰ کاربر متنباز دارد که بسیاری از آنها از کارمندان مایکروسافت و گوگل هستند که روی آن کار میکنند.
پیدا کردن این نوع همکاری برای زبانی مثل جاوا بسیار سخت است چون Oracle که به طور کامل از طریق Sun Microsystems صاحب جاوا است، غالبا از شرکتهایی که سعی در گسترش جاوا دارند، شکایت میکند.
عامل شماره 3: سختی برای یادگیری
اکثر برنامهنویسان بر این باورند که یادگیری زبان برنامهنویسی سطح بالا نسبتا آسان است. جاوا اسکریپت به همراه پایتون و روبی در این رده قرار میگیرد.
حتی اگر دانشگاهها هنوز زبانهایی مانند جاوا و c++ را به عنوان اولین زبان تدریس میکنند، یادگیری آنها به طور قابل توجهی دشوار است.
عامل شماره 4: پروژه هایی که می توانید با آن بسازید
اینجاست که جاوا اسکریپت واقعا میدرخشد. جاوااسکریپت در هر دستگاهی که دارای یک مرورگر است، درست در همان مرورگر اجرا میشود. اساساً میتوانید هر چیزی را با جاوااسکریپت بسازید و در هر کجا به اشتراک بگذارید.
به دلیل گستردگی جاوااسکریپت، جف اتوود یکی از بنیانگذاران Stack Overflow قانون معروف خود را ابداع کرد:
"هر برنامه ای که بتواند در جاوا اسکریپت نوشته شود، در نهایت با جاوا اسکریپت نوشته خواهد شد."
و با گذشت هر ماه قانون اتوود قوی تری میشود.
جاوا هم یک بار قول داد که آن را همه جا اجرا کند. شاید جاوا Applets را به خاطر داشته باشید. اوراکل این گروه را در اوایل سال جاری رسما نابود کرد.
پایتون هم از همان مشکل رنج میبرد.
"چگونه می توانم این بازی را که ساختهام به دوستم بدهم؟ حتی بهتر، آیا راهی وجود دارد که بتوانم این را بر روی تلفن خود قرار دهم تا بدون نیاز به نصب آن بتوانم آن را به بچه های مدرسه نشان دهم؟ " - James Hague
در مقابل، برخی برنامهها وجود دارد که اعضای جامعه متن باز آنها را برای مرورگرها در codePen ساختهاند. میتوانید آنها را با یک کلیک در مرورگر خود اجرا کنید:
Star Wars-themed Wikipedia Search
A roguelike dungeon crawler game
یک زبان را خوب یاد بگیرید. سپس به دنبال یک زبان دیگر بروید.
اگر از یک زبان به زبان دیگر بپرید در هیچکدام حرفهای نخواهید شد. برای اینکه به یک زبان مسلط شوید، باید اولین زبان خود را به خوبی یاد بگیرید. بعد یادگیری زبان دوم بسیار سادهتر خواهد شد.
از آنجا، میتوانید با یادگیری زبانهای مختلف، به یک برنامهنویس فوق حرفهای تبدیل شوید:
- C زبانی عالی برای یادگیری چگونگی عملکرد کامپیوترها از نظر مدیریت حافظه است و برای محاسبات با کارایی بالا، مفید است
- ++C برای توسعه بازی عالی است.
- پایتون برای علم و آمار عالی است.
- اگر میخواهید در شرکتهای بزرگ فنآوری کار کنید جاوا مهم است.
اما ابتدا جاوا اسکریپت را یاد بگیرید.
اکنون میخواهم یک کار غیر ممکن انجام دهم میخواهم اعتراضهایی که ممکن است برای من کامنت بگذارید را پیشبینی کنم.
اعتراض شماره 1: اما آیا جاوا اسکریپت کند نیست؟
جاوا اسکریپت - برای اکثر اهداف عملی - به همان سرعت زبانهای دیگر عمل میکند.
جاوا اسکریپت به شدت سریعتر از پایتون، روبی و PHP عمل میکند.
همچنین تقریبا به همان سرعتی است که زبانهای دارای کارایی بالا مثل ++C، جاوا، و Go هستند.
در اینجا نتایج جامعترین بنچمارکی که به تازگی منتشر شدهاست را برای شما آوردهام:
شماره ۲: اما جاوااسکریپت را نمیتوان به صورت ایستا استفاده کرد.
مانند پایتون و روبی، جاوا اسکریپت نیز از نوع پویا است که خوب است. اما ممکن است باعث ایجاد مشکل شود. در اینجا قصد دارم یک مثال از آرایهها برای شما بزنم. من آن را مقداردهی میکنم و سپس طول ( تعداد عناصر آرایه ) آن را محاسبه میکنم.
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2
اما بعد تصادفا آن را به یک رشته تبدیل کردم.
exampleArray = “text”
-> “text”
exampleArray.length
-> 4
این نوع خطاها به طور معمول در زبانهای پویا اتفاق میافتد. اغلب برنامهنویسان برای چک کردن آنها تست مینویسند.
اگر شما برای برنامهنویسی خود به زبانی ایستا نیاز دارید باز هم به شما توصیه میکنم جاوااسکریپت را یاد بگیرید چون بعد از آن به سرعت میتوانید TypeScript را یاد بگیرید.
TypeScript دارای یک منحنی یادگیری پیچیده است اما اگر جاوااسکریپت را یاد گرفته باشید آن منحنی برای شما هموار خواهد بود.
اعتراض شماره 3: اما من میخواهم یک برنامه موبایل بسازم
من هنوز هم توصیه میکنم ابتدا جاوااسکریپت را یاد بگیرید.
- جاوااسکریپت دارای چندین ابزار برای ساخت برنامههای موبایل است، مانند Angular، Cordova و React Native.
- برای اینکه یک برنامه موبایل با کارایی جالب داشته باشید. احتمالا به یک بک-اند مناسب نیاز داشته باشید، شما میتوانید از یک فریمورک مناسب مثل Node.js + Express.js برای این کار استفاده کنید.
برای شروع، همانطور که میبینید تقریبا نیمی از مشاغل برنامهنویسی مربوط به توسعهدهنده وب است درحالی که فقط 8 درصد از آن مشاغل مربوط به توسعهدهنده موبایل است.
مطمئنا – شرکتهایی هنوز هستند که از برنامههای موبایل استفاده میکنند. بیشتر فیسبوک، گوگلمپ و تعداد انگشت شماری دیگر. به این ترتیب، بیشتر تقاضا برای توسعهدهندگان برنامههای موبایل از طرف شرکتهای بزرگ است.
پیشبینی آینده برای مشاغل توسعهدهنده موبایل دشوار است. بسیاری از جنبههای توسعه، نگهداری و توزیع برنامههای تلفن همراه با جاوااسکریپت سادهتر است. بنابراین شرکتهایی مثل فیسبوک و گوگل به شدت در حال سرمایهگذاری روی ابزارهای بهتر برای ساخت این برنامهها با استفاده از جاوااسکریپت هستند.
از سال 2016، تقریبا وب بسیار پیشرفت کرده است. همه چیز از وب استفاده میکنند. و موج بعدی دستگاههایی که از آنها استفاده میکنیم با استفاده از وب به یکدیگر پیوند میخورند.
و این به معنای این است: جاوااسکریپت!!!
شما میتوانید جاواسکریپت را به صورت حرفهای به کمک دورههای آموزشی راکت فرا بگیرید
اعتراض شماره 4: آیا جاوااسکریپت یک زبان بچگانه نیست که در 10 روز نوشته شده است؟
جاوا اسکریپت تاریخ عجیب و غریبی دارد. شما بدون شک تمسخر بقیه را نسبت به جاوااسکریپت میشنوید. خب، افراد زیادی هستند که از ++C نیز متنفر باشند. و مثل جاوا اسکریپت، ++C علیرغم این نفرت، موفق شدهاست، و حالا همه جا هم وجود دارد.
بنابراین اگر کسی را دیدید که درباره جاوااسکریپت فقط حرف میزند، فقط سخن خالق ++C را به یاد بیاورید که میگوید:
"فقط دو نوع زبان برنامهنویسی وجود دارد: که فقط افراد در مورد آن حرف میزنند ولی هیچکس از آن استفاده نمیکند." Bjarne Stroustrup
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید