همانطور که میدانید صنعت IT با سرعت فوق العاده ای در حال رشد است و تکنولوژی ها یا زبان های برنامه نویسی که امروز بسیار محبوب هستند فردا از رده خارج می شوند و دیگر کسی به آن ها نگاه هم نمی کند! این سرعت رشد و تغییر و جایگزینی زبان ها و تکنولوژی های مختلف خیلی از ما را سردرگم می کند تا جایی که نمی دانیم به سراغ کدام تکنولوژی برویم و کدام زبان برنامه نویسی را یاد بگیریم. برای انتخاب یک زبان برنامه نویسی فاکتورهای زیادی وجود دارد، مانند:
در این مقاله می خواهیم برخی از مهم ترین موارد در انتخاب و یادگیری زبان های برنامه نویسی را به شما ارائه دهیم.
قبل از انجام هر کاری باید هدفتان را مشخص کرده باشید؛ چرا می خواهید یک زبان برنامه نویسی را یاد بگیرید؟ می خواهید چه چیزی را به دست بیاورید؟ سوال های بسیاری را می توانیم از خودمان بپرسیم اما یکی از سوالات مهم این است: آیا می خواهیم توانایی هایمان را عمودی گسترش دهیم یا افقی؟! گسترش افقی مهارت ها یعنی پا گذاشتن در یک عرصه ی جدید که قبلا آن را تجربه نکرده ایم؛ به طور مثال زمانی که یک توسعه دهنده ی front-end می خواهد یک توسعه دهنده ی full-stack شود، یا مثلا زمانی که با زبان هایی مانند Java آشنایی دارید و حالا می خواهید یک زبان دیگر مانند Python را یاد بگیرید. در گسترش افقی مهارت ها، یادگیری از صفر شروع می شود و زحمت بیشتری دارد.
گسترش عمودی مهارت ها یعنی در زمینه ای که با آن آشنایی دارید دانش بیشتری کسب کنید. مثلا تصور کنید که یک توسعه دهنده ی Python هستید و حالا می خواهید وارد مبحث machine learning (یادگیری ماشینی) شوید و دانش قبلی خود از Python را در این زمینه به کار ببرید. واضح است که در این حالت نیازی به شروع از صفر نیست، بلکه به احتمال بسیار زیاد بسیاری از تکنولوژی ها، کتابخانه ها، روش های انجام کار و ... را می دانید و نیازی به یادگیری کاملا جدید نیست.
زمانی که هدف خود را انتخاب کردید وقت آن است که برای به دست آوردنش برنامه ریزی کنید. در اکثر مواقع یک هدف از راه های مختلفی به دست می آید و محصور به یک روش نیست. به طور مثال اگر بخواهید توسعه دهنده ی back-end شوید می توانید از زبان های مختلفی مانند PHP یا Java یا Python یا NodeJS و ... استفاده کنید.
نکته اینجاست که بهتر است زبان مورد نظر را بر اساس مهارت فعلی خود انتخاب کنید؛ به طور مثال اگر یک زبان پایه ی C را میدانید ساده تر است که زبانی را انتخاب کنید که در همین خانواده باشد، یا اگر قبلا توسعه دهنده ی front-end بوده اید و بر جاوا اسکریپت تسلط دارید انتخاب NodeJS صدها بار آسان تر از انتخاب و یادگیری Java خواهد بود.
بنابراین بهتر است لیستی از مهارت های خود و تکنولوژی ها و زبان هایی که با آن ها آشنا هستید ایجاد کنید تا راه برایتان مشخص تر شود. اگر تصمیم خود را گرفته اید و مهارت هایتان را می شناسید نوبت مرحله ی بعدی است.
تصور کنید که بر اساس مهارت هایتان انتخاب خود را انجام داده اید و حالا پس از گذشت مدتی به یک تخصص در حوزه ی کاری خود رسیده اید، اما اگر بازار کار نیازی به شما نداشته باشد، چه؟ تبدیل به متخصصی بیکار می شوید! برای جلوگیری از چنین سناریوی وحشتناکی باید بازار کار را مطالعه کرد و حداقل تحقیقاتی سطحی در موردش انجام داد. ابزارهای اصلی تحقیق در مورد بازار کار عبارتند از:
1. شاخص TIOBE: شاخص یا معیار TIOBE (همان TIOBE Programming Community Index) یکی از مواردی است که تمایل بازار کار را نشان می دهد. این شاخص هر ماه منتشر می شود و نشان می دهد که زبان های برنامه نویسی از نظر محبوبیت نسبت به ماه گذشته ارتقاء پیدا کرده و یا افت داشته اند. همچنین به دنبال این گزارش ماهانه، تحلیلی خلاصه از وضعیت بازار کار ارائه می دهند که به درک شما بسیار کمک خواهد کرد.
2. GitHub Octoverse: حتما با سایت GitHub آشنا هستید؛ GitHub Octoverse یک گزارش سالانه است که توسط GitHub منتشر شده و trend های بازار (تکنولوژی هایی که به شدت مشهور و محبوب می شوند) را به صورت خلاصه گزارش می دهد. البته نگذارید کلمه ی «خلاصه» شما را گول بزند! این گزارش شامل موارد زیر است:
پیشنهاد ما به شما این است که حتما به این صفحه نیز سر بزنید و از اطلاعات بسیار مفید آن استفاده کنید. البته وب سایت GitHub صفحه ی Explore نیز دارد که در آن repository ها، موضوعات، برنامه ها، فریم ورک های محبوب را معرفی می کند. از این صفحه نیز غافل نشوید!
3. Stack Overflow’s Insights: این مورد یکی از مهم ترین مواردی است که به شما معرفی می کنیم. همانطور که میدانید وب سایت Stack Overflow بزرگترین و محبوب ترین وب سایت پرسش و پاسخ برای برنامه نویسان است و Stack Overflow’s Insights به شما اطلاعات در زمینه های مختلفی می دهد که می توانید از بین آن ها انتخاب کنید اما مهم ترین مورد بحث ما یکی از این موضوعات است: Annual Developer Survey
Annual Developer Survey در فارسی به معنی «نظرسنجی سالانه ی توسعه دهندگان» است و همانطور که از نامش مشخص است یک نظرسنجی است که سالانه توسط وب سایت Stack Overflow برگزار می شود و به خاطر جامعه ی آماری عظیم و معتبر این سایت یک منبع بسیار عالی برای درک بازار کار به حساب می آید. به طور مثال در سال 2019 حدود 90,000 توسعه دهنده در این نظر سنجی 20 دقیقه ای شرکت کردند و به سوالات بسیار زیادی (مانند جنسیتشان، تکنولوژی های مورد علاقه شان، ترجیحات شغلی شان و ....) پاسخ داده اند.
پس از مطالعه ی این نظر سنجی که در وب سایتشان منتشر می شود (لینک بالا) می توانید سری به Stack Overflow Insights بزنید و از تحلیل های عمقی، برخی از داده های جمع آوری شده و دیگر مسائل بهره ببرید.
4. Google Trends: وب سایت گوگل برای همه ی مردم شناخته شده است و Google Trends یکی از خدماتی است که توسط این وب سایت ارائه می شود. این وب سایت trend های مختلف را از سال 2004 در آرشیو خود نگه می دارد! شما می توانید محبوبیت بسیاری از زبان های برنامه نویسی و کتابخانه ها، فریم ورک ها و هزاران مورد دیگر را بر اساس سال و منطقه ی جغرافیایی بررسی کنید. Google Trends یکی از ابزارهای قدرتمند برای تحقیقات شما است و بهترین نکته اش این است که رایگان است!
5. وب سایت های استخدام برنامه نویس: شما می توانید با بررسی وب سایت هایی که برای استخدام برنامه نویسان وجود دارند به اطلاعات بسیار مهمی از بازار کار دست پیدا کنید. به طور مثال ببینید که اگر شرکتی توسعه دهنده ی front-end می خواهد، چه نوع تکنولوژی هایی برایشان مهم است؟ آیا از شما می خواهند به تمام تکنولوژی های اصلی front-end مسلط باشید یا به دنبال تکنولوژی خاصی هستند؟
حالا که تا این قسمت آمده ایم، وقت بررسی منابع آموزشی رسیده است. ما می خواهیم به دانش خود اضافه کنیم و مسائل جدیدی را یاد بگیریم اما اگر منابعی برای یادگیری نداشته باشیم با مشکلی بزرگ مواجه می شویم. تکنولوژی ها و زبان هایی مانند جاوا اسکریپت و PHP در دنیای وب بسیار محبوب هستند بنابراین منابع آموزشی کامل و بسیار زیادی دارند که اکثرا به صورت رایگان در دنیای وب در اختیار شما خواهند بود اما فریم ورک ها یا تکنولوژی های جدید ممکن است این طور نباشند.
اگر منابع آموزشی محدود باشند سه حالت پیش می آید:
همچنین اگر منابع آموزشی خوبی در دنیای وب برای بعضی از تکنولوژی ها وجود نداشته باشد احتمالش زیاد است که کمتر جایی برای پرسیدن سوال هایتان خواهید داشت و افراد کمتری می توانند به شما کمک کنند. بنابراین منابع آموزشی یکی از مهم ترین فاکتور های یادگیری هستند.
دوست دارم به یاد داشته باشید که مواردی که به شما گفته شد تنها پیشنهاداتی هستند که اکثر افراد آن را قبول دارند و الزامی نیست که شما به آن ها پایبند باشید. این پیشنهادات در حالت کلی ارائه شده اند و ممکن است در شرایط خاص حالت خاصی به خود بگیرند. به طور مثال اگر علاقه ی شما یادگیری تکنولوژی جدیدی است که به بازار آمده و از نظر شما آینده ی دنیای وب است، می توانید با تمام سختی های راه به دنبالش بروید و شاید موفق شوید. بنابراین آخرین نظر، نظر شما است!
امیدوارم از این قسمت لذت برده باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.