راهنمای کامل انتخاب شغل (مهندسی نرم افزار) ۲

بخش دوم: مشکلات و چالشها در بازار کار مهندسی نرم افزار

این توییت نمونه ای است از هزاران توییت و کامنت نوشته شده توسط مهندسان نرم افزار و برنامه نویسان و توسعه دهندگان. موضوع مورد بحث همه آنها انتخاب درست مسیر شغلی است.

مهندسی نرم افزار نیز همانند سایر رشته های مهندسی دارای مشکلات و مسائل خاص در زمینه بازار کار است.

به عنوان مثال، بازار کار توسعه frontend بویژه در سالهای اخیر دچار دگرگونی محسوسی شده است. با پیشرفت بسیار سریع تکنولوژیهای وب و پیچیدگی بیشتر ابزارهای توسعه وب بازار کار این بخش از مهندسی نرم افزار نیز کاملاً متحول شده است.

برای مثال مقاله ای با این عنوان:

که در وبسایت hackernoon منتشر شده است به وضوح این تحول و دگرگونی را نشان میدهد.

بنابراین بواسطه این تحول مفاهیم کلی گرایی و تخصص گرایی در زمینه توسعه وب نیز دچار تغییرات محسوسی شده اند. به این ترتیب که اگر شما توسعه دهنده frontend و فردی کلی گرا هستید، باید علاوه بر مباحث عمومی مهندسی نرم افزار و IT در تمامی ابزارها و مفاهیم مربوط به توسعه frontend دانش و مهارت کافی را داشته باشید. همچنین اگر شما برنامه نویس javascript و توسعه دهنده react هستید، باید علاوه بر مباحث عمومی و اختصاصی مهندسی نرم افزار و IT در مجموعه ای از ابزارها و مفاهیم خاص و هر آنچه که در اکوسیستم react وجود دارد دانش و مهارت بالا داشته باشید.

برای درک بیشتر این مطلب به این نقشه راه توجه کنید:

این نقشه راه ابتدای هر سال بروز رسانی میشود.

با توجه مطالب گفته شده در بخش اول و نقشه راه اشاره شده در این بخش، انتخاب مسیر شغلی نیازمند تحقیق و بررسی است و هرگونه خطا و اشتباه در انتخاب باعث از دست دادن فرصتهای شغلی و در نهایت منجر به مهاجرت به شغلهای غیر مرتبط (غیر مرتبط با توسعه وب) میشود.

حال اگر فرض کنیم تعداد زیادی از توسعه دهندگان تخصص گرا باشند چه اتفاقی خواهد افتاد؟

با توجه به این نمودار در میابیم که توسعه دهندگان با مهارت بالاتر (متخصص) با تولید و معرفی ابزارهای جدید باعث افزایش پیچیدگی ابزارها و در نتیجه عقب ماندگی توسعه دهندگان با مهارت پایین تر و در نهایت باعث ایجاد خلاء مهارتی در چرخه توسعه میشوند.

کارفرمایان در جستجوی چه کسانی هستند؟ کلی گرایان؟ یا متخصصان؟

همانطور که در بخش اول به چگونگی شرایط کلی بازار کار در زمینه های شغلی مختلف پرداختیم، در این بخش بطور ویژه، شرایط بازار کار در زمینه مهندسی نرم افزار را بررسی میکنیم.

بنظر عده ای از برنامه نویسان با تجربه، اغلب شرکتهای بزرگ به دنبال جذب افراد کلی گرا و همه فن حریف هستند - افرادی که در هر شرایطی قابلیت انعطاف پذیری داشته باشند. به باور این عده برای مدیران شرکتهای بزرگ و موفق، تجربیات گذشته کارمندان و مهارتهایی که آنها در گذشته کسب کرده اند مهمتر از تجربیات و مهارتهایی است که کارمندان در حال حاضر کسب میکنند. به عبارت دیگر، در شرکتهای موفق تجربیات و مهارتهای فردی کارمندان مهمتر از تجربیات و مهارتهای جمعی آنان است. (این مهارتها و تجربیات عبارتند از ابزارها و زبانهای برنامه نویسی و الگوهای طراحی و پارادایمهای برنامه نویسی و اصول و تکنیکهای برنامه نویسی و هر آنچه که در اکوسیستم توسعه نرم افزار وجود دارد.)

البته هر شرکت استراتژی و نقشه راه خاص و ویژه ای برای استفاده از تکنولوژیهای جدید دارد. همچنین مهارتهای لازم جهت استخدام در هر شرکت طبق نقشه راه آن شرکت تعیین میشوند.

منظور از همه فن حریف بودن چیست؟ آیا طبق کتاب برنامه نویس عملگرا، هر برنامه نویس واقعاً باید هر سال حداقل یک زبان برنامه نویسی جدید یاد بگیرد؟

بسیاری از برنامه نویسان معتقدند که قبل از یادگیری هر زبان برنامه نویسی ابتدا باید کاربرد آن زبان را بررسی کرد. همچنین پارامترهای دیگر مانند علاقه شخصی، منحنی یادگیری، میزان محبوبیت زبان، تعداد اعضای فعال در جامعه توسعه دهنده، نحوه پاسخگویی توسعه دهندگان به سؤالات و حل مشکلات، نحوه برگزاری کنفرانسها و سخنرانیها، کمیت و کیفیت منابع آموزشی (ویدیوهای آموزشی و کتابها و مقالات) نقش مهم و مؤثری در انتخاب زبان برنامه نویسی دارند. این موضوع در هنگام انتخاب مسیر شغلی اهمیت فراوان دارد.