بارها پیش آمده بود که در مورد تفاوت بین برنامه نویسان جونیور، متوسط (Mid-Level) و سینیور فکر کنم. در نتیجه، تصمیم گرفتم درباره این موضوع یک مقاله کوتاه بنویسم.
قبل از هر چیز، باید بگویم که شرکتها به روشهای مختلفی تشخیص میدهند که برنامه نویسان واجد شرایط آنجا هستند یا خیر، و میتوانند معیارهای مختلفی را در نظر بگیرند. برای مثال، تعداد سالهای تجربه کاری. که لزوماً با مدرک تحصیلی مرتبط نیست. مثلاً یک برنامه نویس میتواند کارهای ساده برنامه نویسی را برای چندین سال و بدون کسب هیچ تجربه ارزشمند و بدون حل حتی یک مشکل واقعی، به سادگی انجام دهد. یا میتواند در یک سال تجربه واقعی کسب کند و مدرک و سطح خود را ارتقا دهد. بنابراین، ممکن است در یک شرکت، برنامه نویس کمتجربهتر به عنوان سینیور و برنامه نویس باتجربه به عنوان متوسط در نظر گرفته شود. و بالعکس.
به عنوان معیار اصلی، من میزان استقلال یا عمومیت کارهایی که یک متخصص در سطوح مختلف حل میکند را مشخص میکنم.
برنامه نویس جونیور
جونیور مشکلات فنی ساده را با توضیحات واضح و دقیق حل میکند. به عنوان مثال: پیادهسازی یک کلاس، در حالی که توضیحات آن باید دارای الزامات دقیق باشد. یا به عنوان مثال: یک رابط یا design pattern برای اعمال کردن. جونیور مشکلات تجاری را حل نمیکند، در معماری سیستم کار نمیکند و تحت نظارت دقیق برنامه نویسان سینیور کار میکند.
سطح متوسط
برنامه نویس Mid-Level ، برخلاف جونیور مشکلات تجاری را با یک فرمول کلیتر حل میکند. این کار نیاز به یک شرح مفصل از پیادهسازی ندارد، اما نیازمند الزامات تجاری واضح در قالب شرح عملکرد مورد نظر است. او میتواند به تنهایی در مورد کلاسها، جدولها و template ها و … که نیاز دارد و همچنین در مورد مسائل مربوط به عملکرد، فکر کند.
برنامه نویس سینیور
برنامه نویس سینیور چه تفاوتی با دیگران دارد؟ او نیازی به بیان واضح مشکل ندارد. به عنوان یک قاعده، درک خوبی از حوزه موضوعی این حرفه دارد و میتواند برای مشکلات تجاری راهکار ارائه دهد. و نیازی به محصول با جزئیات بالا یا الزامات فنی ندارد. در صورت لزوم، برای روشن شدن قضیه خودش سؤالاتی میپرسد. همچنین او قادر به تقسیم وظایف است و میتواند برخی از آنها را به برنامه نویسان متوسط یا جونیور بسپارد و نحوه انجام دادن آنها را کنترل کند. یک برنامه نویس سینیور به صورت سیستماتیک فکر میکند. آموزش برنامه نویسان جونیور نیز میتواند بر دوش یک سینیور بیفتد.
همچنین اگر هیچ معمار سیستم یا مدیر فنی در پروژه وجود نداشته باشد، همان سینیور است که میتواند مشکلات معماری را حل کند. علاوه بر همه اینها، او مسئولیت کل معماری و چشمانداز تکنولوژیکال پروژه را بر عهده دارد.
علاوه بر سطوح بالا، که به پشته فناوری بستگی ندارند، میتوان صلاحیتهای فنی را هم تشخیص داد. این مربوط به داشتن دانش در فناوریهای خاصی است و همیشه به سطوحی که در بالا توضیح دادیم مرتبط نیست. این اتفاق زمانی میافتد که یک برنامه نویس وارد پروژهای میشود که یک پشته جدید برای او دارد. به عنوان مثال، یک برنامه نویس سینیور که در جاوا تخصص دارد، وارد یک پروژه پایتون میشود که مال خودش نیست. او سطح «سینیوریتی» را حفظ میکند و میتواند در مدت کوتاهی آن زبان را هم یاد بگیرد.
منبع: hackernoon نویسنده: رومان بلینوف
Leave feedback about this