وضعیت بازارکار زبان های برنامه نویسی در ایران

کارفرماها به دنبال کدام مهارت ها هستند؟ درآمد برنامه نویسان کدام زبان ها بیشتر است ؟ و چند تا چیز دیگه! انتخاب زبان برنامه نویسی احتمالا یکی اولین موضوعاتی که به ذهن کسانی که می خوان برنامه نویسی رو شروع کنن میرسه. معیار های متفاوتی ممکنه برای انتخاب یه زبان برنامه نویسی وجود داشته باشه. در این میان بازار کارش تو کشور از اون دسته معیار های غیر قابل صرف نظره. چون بالاخره میخوایم از مهارتمون کسب درآمد داشته باشیم. البته سایت هایی خارجی هستن که زبان های برنامه نویسی رو بر اساس کاربرد، محبوبیت، درآمد و... تقسیم بندی کردن. ولی از اونجایی که تقاضای بازار جهانی و داخلی تفاوت محسوسی داره، نمی شه خیلی رو این نتایج برای انتخاب زبان برنامه نویسی حساب کرد. پس وضعیت زبان های برنامه نویسی تو بازار ایران رو چه طور میشه فهمید؟ یه راه مطمئن برای پاسخ به این سوال اینه که آگهی های شغلی حوزه برنامه نویسی رو تحلیل کنیم و تقاضای کارفرماها رو برای هر زبان برنامه نویسی به دست بیاریم. از اونجا که تعداد آگهی هایی شغلی خیلی زیاده انجام این کار عملا تنها به صورت ماشینی ممکنه. پس من تصمیم گرفتن اینکار رو روی آگهی های شغلی سایت جابینجا با زبان پایتون انجام بدنم. این سایت رو انتخاب کردم چون اولا آگهی هاش از بقیه بیشتر بود و دوما مهارت های هر آگهی به صورت تگ آخر هر آگهی چسیبده شده بود. اگه نمی دونید اسم اینکار چیه بهش WebScraping میگن.دوبار با فاصله زمانی پنج ماه از این سایت اطلاعات آگهی هارو دانلود کردم که مجموعا اطلاعات تقریبا 4200 تا آگهی ذخیره شد. بعد اطلاعات مطلوب رو استخراج و بر اساس زبان برنامه نویسی دسته بندی شون کردم. برای مثال آگهی با تگ asp.net رو در دسته سی شارپ و تگ node.js رو داخل دسته جاوا اسکریپت قرار دادم. نتیجه مصور شده میزان تقاضا برای هفت زبان برنامه نویسی محبوب در تصویر زیر می بیند.جاوا اسکریپت در صدر و بعد از آن به ترتیب سی شارپ و پی اچ پی قرار دارند. درصد تقاضا برای زبان های برنامه نویسی محبوب در آگهی های شغلی جابینجادر بررسی نمودار دایره ای بالا باید به چند نکته توجه کرد:1. مشخصا تمام زبان های برنامه نویسی در این هفت دسته قرار نمی گیرن و درصد قابل توجهی از آگهی ها به زبان های غیر از این هفت زبان (مثل زبان Go) قرار گرفتن که در نمودار نمایش داده نشدن چون از نظر محبوبیت در ایران جز رتبه های 1 تا 7 نبودن.2. منظور از Apple در نمودار بالا زبان های سویفت و objective c و منظور از Android زبان های جاوا و کاتلین است.3. درصد ها با هم همپوشانی دارند. یعنی ممکنه آگهی های مربوط به برنامه نویسی اندروید و جاوا با هم اشتراک داشته باشن. نگاه عمیق تر به بازار کار علاوه بر متوجه شدن وضعیت زبان های برنامه نویسی می توان نگاهی عمیق تر بر مهارت های بازار داشت. مثلا اینکه متخصصان سی شارپ این زبان رو برای چه منظوری استفاده می کنند یا در کنارش چه تکنولوژی هایی رو استفاده میکنن. من اینکار رو برای زبان سی شارپ انجام دادم و نتیجه در نمودار زیر قابل مشاهده است. برای مثال در بین برنامه نویسان سی شارپ فرمورک ASP.net با اختلاف محبوب ترین تکنولوژی برای کارفرماهای داخل ایران است. یعنی کاربرد عمده این زبان در ایران مربوط به برنامه نویسی وب است.تکنولوژی های محبوب برای برنامه نویسان سی شارپ نتایج حاصل از بررسی داده ها نشان می دهد که بعد از html & css و جاوا اسکریپت فرمورک React بیشترین محبوبیت را بین متخصصان فرانت اند دارد:تکنولوژی های ترند بین متخصصان فرانت اند بحث انتخاب دیتابیس پروژه ها همیشه داغ بوده و هست. بررسی اطلاعات اگهی های شغلی نشان می دهد دو دیتابیس MySQL و SQL Server محبوب ترین سیستم های مدیریت داده در بین شرکت های ایرانی هست و بعد از آن با اختلاف MongoDB که از نوع غیر رابطه ای است قرار دارد. میزان تقاضا برای شش سیستم مدیریت پایگاه داده در مورد اندروید نتایج نشان می دهد حدود یک سوم شرکت ها از کاتلین برای توسعه برنامه های تحت اندروید استفاده می کنند و مابقی هنوز زبان جاوا را برای این منظور به کار می برند.پردرآمد ترین ها گرچه نگاه کاملا کمیتی به شغل و زندگی باعث کاهش توجه ما به ارزش های دیگه می شود اما میزان درآمد از معیار های مهم انتخاب شغل هست. بنابراین من هم تصمیم گرفتم حالا که بعضی آگهی ها بازه دستمزد مشخص کردن درآمد ها رو بر اساس زبان برنامه نویسی مرتب کنم تا کف درآمد برنامه نویس های هر زبان مشخص شود. دقت کنید که من ابتدای بازه حقوق های ذکر شده در جابینجا رو در نظر گرفتم. نتیجه مطابق تصویر زیر شد و پایتون در صدر نمودار قرار گرفت. واحد اعداد ریال است که چهار صفر آنها حذف شده است.کف درآمد برنامه نویسان هفت زبان برنامه نویسی محبوبدر مورد نتیجه گیری از نمودار بالا باید محتاط بود چون اطلاعات مثل سابقه کار و تقاضای کارفرما رابطه مستقیم با درآمد برنامه نویس دارند که در این نمودار لحاظ نشده است و ممکن است باعث گمراه کردن خواننده شود.جمعیت آماری برای تحلیل دستمزد برنامه نویسان کم است زیرا تعداد آگهی های شغلی که میزان درآمد را ذکر کردند بسیار پایین است که می تواند باعث بروز خطا در نتایج شود. برنامه نویسان زبان ها رو برای مقاصد مختف استفاده می کنند که میزان درآمد بسته به کاربرد زبان تغییر می کنه. برای مثال از پایتون علاوه بر وب برای اهداف تحلیل داده و یادگیری ماشین استفاده می شود اما زبان php تقریبا منحصر به وب است.سخن پایانینمودار های حاصل از تحلیل داده های بالا می توانند گمراه کننده باشند. همیشه در استفاده از داده های آماری باید به نکات ظریفی که ممکن است کل نتیجه گیری ما رو نامعتبر کند توجه کرد. نمودار های بالا گرچه میزان تقاضا را برای مهارت های مختلف نشان می دهد ولی نمودار عرضه در آن وجود ندارد. عرضه در اینجا به معنی تعداد برنامه نویسان یا افراد مسلط به یک مهارت خاص هست. برای قضاوت درست تر وضعیت زبان های برنامه نویسی باید هر دو پارامتر عرضه و تقاضا بررسی شود که ما در نوشته بالا تنها تقاضا را بررسی کردیم. کم بودن تقاضا برای یک مهارت لزوما به معنای مشکل بودن پیدا کردن کار نیست چون کم بودن محبوبیت یک زبان برنامه نویسی یعنی برنامه نویسان آن هم به همان نسبت کم اند و بعضی مواقع حتی کارفرماها مجبور اند حقوق بیشتری برای راضی کردن این متخصصان پرداخت کنن.در پایان بهتر است این نکته رو اضافه کنم که یادگیری مهارت ها بر اساس ترند بازار ممکن است آینده شغلی ما رو تضمین کند ولی در عوض خلاقیت و ابداع رو کاهش می دهد. اگه همه بر اساس نیاز شرکت ها آموزش داده می شدن و سمت چیزهای جدید نمی رفتن، آیا اصلا تکنولوژی جدیدی به وجود می آمد و چیزی اختراع می شد؟