برنامه نویس Generalist یا Specialist؟ برنامه نویس باید شکل T باشد.

سلام، من، حمیدرضا معدنی نزدیک به 20 سال است که برنامه نویس هستم و همیشه پیشرفت و یادگیری دغدغه های اصلی ام بوده است. می دانم کمتر کسی هست که در دنیای #برنامه_نویسی قدم بذاره و به پیشرفت خودش و به روز نگه داشتن توانایی هاش فکر نکنه. از طرف دیگر در دنیای تکنولوژی، هرروز شاهد یک زبان، تکنولوژی، تکنیک و... جدید هستیم که از یک طرف نگرانی عقب ماندن از قطار پرسرعت تکنولوژی و از طرف دیگر عدم تمرکز و قوی شدن در یک چیز مشخص، هرروز فکرمان را درگیر خودش کرده است.

مهندس نرم افزار باید شکل T باشد.
مهندس نرم افزار باید شکل T باشد.


برای برطرف کردن این نگرانی ها، راه حلی مفید با ترکیبی از دو مفهوم Generalist و Specialist ارائه شده است.
برخلاف چیزی که خیلی ها فکر می کنند، در سال 1401 مهندس نرم افزار یا Software Engineer بودن کار خیلی سختی شده است. مثلا اگر بخواهید یک Full-stack Developer قابل قبول باشید، نیاز است هم به Front-end و Back-end تسلط نسبی داشته باشید، هم راه ها و ابزارهایی را بشناسید که با استفاده از آنها کدهایی که نوشته اید را روی سرور Production منتقل کنید و مطمئن شوید همه چیز همانطور که می خواهید به دست کاربر نهایی برسد. یعنی لازم است بخشی از مهارت های یک کارشناس DevOps را داشته باشید. همچنین لازم است اطلاعات زیادی درباره ی ترفندهای مختلف داشته باشید که بهره وری شما را بالاتر می برد.

به طور خلاصه، شما باید خیلی چیزها را بدانید.

اینکه شما درباره ی چیزهای مختلف یک مقدار یاد بگیرید، ممکن است سرگرم کننده باشد ولی وقتی نوبت به محیط کاری می رسد، دانش سطحی درباره ی بسیاری از موضوعات به شما هیچ کمکی نمی کند. مثلا فرض کنید شما می توانید با 10 زبان برنامه نویسی مختلف Hello World را چاپ کنید، این مهارت ممکن است دوستان شما توی دانشگاه یا مدرسه را تحت تاثیر قرار بدهد، ولی برای مدیر شما تقریبا هیچ ارزشی ندارد. از نظر مدیر شما، لازم است یک لیست مشخص از زبان و تکنولوژی های مرتبط با آن را به صورت عمیق بلد باشید تا بتوانید برای کسب و کار ارزشمند شوید.

مهندس نرم افزار به شکل T یعنی چی؟

مهندس نرم افزار T شکل، ترکیبی است از دو نفری که یکی از آنها در یک حوزه ی خاص تخصص دارد و دیگری فردیست که در موضوعات زیادی اطلاعات زیاد ولی کم عمق دارد. برای مثلا یک دریاچه را که در تمام جاهای آن عمق آب 50 سانتی متر است را در برابر یک چاهی با عمیق 50 متر و دهانه ای به قطر یک متر فرض کنید. مهندسی که مهارت هایش به شکل T است،  قادر به حل مسائل دشوار در حوزه تخصصی خود است، همچنین به لطف تعداد زیادی از مفاهیم و الگوهایی که با آنها آشنایی دارد، می‌تواند مشکلات جدید را درک کند و به سرعت با فناوری‌ها، ابزارها یا شیوه‌های جدیدی که اندکی درباره ی آنها می داند و حالا می تواند بیشتر درباره آنها بیاموزد و تجربه کند، مشکلات را برطرف کند.



در مقاله ی جدیدم در سایت SokanAcademy سعی کردم این دو مسیر را برای یک برنامه نویس تشریح کنم.

اگر دوست داشتید بیشتر درباره ی گسترش کلاه و پایه ی T تخصص تان بدانید، می توانید این مقاله ی من را با عنوان "مهندس نرم افزار باید شکل T باشد" به صورت کامل بخوانید.
با آگاهی داشتن درباره ی این دو مسیر و برنامه ریزی کردن برای پیشرفت در هر دوی آنها به طور همزمان، تبدیل به الماسی ? می شوید که همیشه درخشان می ماند.

خوشحال میشم بخوانید و از تجربه های شخصی تان در این باره بهم بگید.