پنج اشتباه رایج در مورد برنامه نویس ارشد

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

تنها برنامه نویس بهتری بودن کافیست

بهتر است برای مطالعه بیشتر در این مورد به مطلب قبل سری بزنید. درست است که برنامه نویس خوبی بودن یکی از الزامات ارشد بودن در محیط کار است. ولی پیش نیاز کافی برای این موضوع نیست. این که فرد شخصیت قابل اتکایی داشته باشد. خوش رو باشد. دانش خود را تا حد امکان به رایگان در اختیار دیگران بگذارد. تمام کننده باشد و … و …. نقش بسیار مهمی در این موضوع خواهند داشت.

ارشد نباشی حتما دانش پایینی داری

باز هم با توجه به مورد قبل و مطلب قبلی در این زمینه نمی توان از ارشد نبودن فرد چنان برداشتی کرد. خیلی از برنامه نویس های خوب را می شناسم که از چنین امتیازی استقبال نمی کنند. نکته دیگر اینکه در کجا؟! در یک شرکت دسته سوم و چهارم برنامه نویس ارشد بودن هم چنان لطفی ندارد. و این که فردی در شرکتی مثل مایکروسافت software engineer 3 باشد چندان شکست محسوب نمی شود. زیر این آسمان آبی همه چیز نسبی است.

ارشد خود خوانده!

خیلی از دوستان را دیده ام که از یک زمانی در رزومه خود عنوان سمت را به senior تغییر داده اند. باید بگویم زمانی که وقت ارشد بودنتان رسیده باشد، از شواهد و قراین محیط به این موضوع پی خواهید برد! زیاد عجله نکنید. ارشد خود خوانده معمولا مشروعیت زیادی بین همکاران دیگر نخواهد داشت. برنامه نویس معمولی بودن چندان هم سر افکندگی نیست!

ارشد یعنی مدیر

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

یک برنامه نویس ارشد همیشه و همه جا ارشد است

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


برنامه نویس ارشد کیست؟

مهارت های غیر فنی یک برنامه نویس

آیا سابقه کاری در درآمد برنامه نویسی نقش مهمی دارد؟

برنامه نویس ارشد کیست؟

برنامه نویس ارشد

چند سال اخیر با تعداد زیادی از دوستان برنامه نویس به واسطه کارهای مختلف، آشنا شدم. بعضی از آنها تازه کار بودند. بعضی ها کهنه کار. همکارانم عناوین مختلفی برای خود انتخاب می کردند.

نکته جالبی که مدت هاست به آن فکر می کنم عناوینی است که برنامه نویس ها معمولا با آنها شناخته می شوند.

  • Programmer
  • Senior programmer
  • Software developer
  • Senior software developer
  • Software architect
  • Software development engineer
  • Senior software development engineer

موارد دیگری نیز وجود دارد که از نظر آماری تعداد کمتری از آنها مشاهده کرده ام.

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

در حالت کلی یک برنامه نویس ارشد:

برنامه نویس خیلی خوبی است

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

دانشمند برنامه نویسی نیست

وقتی صحبت از برنامه نویس خوب پیش می آید بعضی افراد تصور می کنند منظور از برنامه نویس خوب برنامه نویسی است که همیشه در حال یادگیری و استفاده از جدیدترین فناوری ها و بروزترین روش هاست. البته وجود این خصلت برای یک برنامه نویس خوب است. به شرطی که برنامه نویس خروجی نیز داشته باشد! نه این که تمام وقت و فکر خود را صرف یادگیری کند و یا بدتر از آن، کارهای روزمره خود را به عنوان موش آزمایشگاهی برای آموخته های خود ببیند و همیشه در حال آزمودن فناوری ها و روش های برنامه نویسی در محل کار خود باشد. عموم شرکت ها صرفا برای آزمودن فناوری ها به ما حقوق نمی دهند.

بیان قوی ای دارد

موضوعات فنی را به راحتی می تواند منتقل کند. با توجه به سطح دانش طرف مقابل می تواند موضوع مورد نظر خود را مطرح نماید. در موضوعات تحلیل نیازمندی ها می تواند به خوبی با کاربران و صاحبان محصول صحبت کند. مبهم صحبت نمی کند.

آموزگار  و الگوی خوبی است

آموخته های خود را در هر زمینه ای که باشد بدون درنظر گرفتن سطح معلومات  و جایگاه افراد در اختیار دیگران قرار می دهد. هم تیمی های خود را از نظر دانشی پشتیبانی می کند، صرفا نه به این خاطر که ثابت کند دانش بیشتری دارد. به این دلیل که نشان دهد پشتیبان خوبی برای روزهای سخت است. از نظر فنی و اخلاقی الگوی خوبی است، هم تیمی ها روی او حساب می کنند. نه این که به خاطر جایگاهش از او بترسند!

مذاکره کننده خوبی است

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

اخلاق حرفه ای دارد

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

تصمیم گیرنده خوبی است

خیلی وقت ها پیش می آید که برنامه نویس های ارشد باید تصمیمات کلیدی بگیرند. این تصمیم گیری ها می تواند در آینده شغلی فردی تاثیر زیادی بگذارد. یا در آینده پروژه آنها نقش مهمی ایفا کند. یک برنامه نویس ارشد می تواند تحلیل خوبی از نیازمندی ها، هزینه ها، امکانات داشته باشد و در نهایت تصمیم فنی به نسبت درستی بگیرد.

خصوصیات اصلی یک برنامه نویس ارشد را به صورت اجمالی بیان کردم. اصولا پیشرفت فنی یکی از اولویت های اصلی یک برنامه نویس است. ولی برای راه یافتن به رده های بالاتر در سازمان و به طور کلی در حرفه مهندسی نرم افزار ، همیشه نیاز به مهارت های مکملی احساس می شود. متاسفانه خیلی از ما برنامه نویس ها توجه زیادی به مهارت های غیر فنی خود نداریم.


مطالب مرتبط:

مهارت های غیر فنی یک برنامه نویس

پرکاری و بدهی فنی

درسی از یک نرم افزار ۱۵ دقیقه ای

آیا سابقه کاری در درآمد برنامه نویسی نقش مهمی دارد؟