حالا که دنبال یادگیری تفاوت برنامه نویس جونیور با سینیور هستین، یعنی اینکه قبلا این عبارتو شنیدین و یا حتی دیدین. اصولا تو کمپانیهای بزرگی که با برنامهنویسها و توسعهدهندهها کار میکنن، جونیور و سینیور زیاد گفته میشن. به همین خاطر ممکنه شما هم تو آگهیهای استخدامی با این واژهها برخورد کرده باشین.
سوالی که بوجود میاد اینه که اصلا جونیور و سینیور چی هستن. کندو با تولید این مقاله از بلاگ کندو قصد داره به هر سوالی که درباره تفاوت برنامه نویس جونیور با سینیور داره، جواب بده. پس اگه فقط چند دقیقه پای گوشیها یا کامپیوترهاتون بمونین، میتونین فورا به جواب سوالاتون برسین.
اما اول از همه بگین که میدونستین برنامهنویسها به چند سطح تقسیمبندی میشن یا نه؟ اگه نه، یه نگاهی به بخش بعدی بندازین.
چند سطح در حوزه برنامهنویسی وجود دارد؟
توی برنامهنویسی، هر فردی رو با توجه به فاکتورهای مختلف سبک و سنگین میکنن و اون رو با کلماتی مثل جونیور خطاب میکنن. برای اینکه تفاوت برنامه نویس جونیور با سینیور رو بدونین، باید اول با تقسیمبندی و سطوح برنامهنویسی آشنا بشین. در کل هر فرد شاغل تو حوزهی برنامهنویسی تو یکی از این 4 دستهبندی قرار میگیره:
- کارآموز: اگه یه نفر تو حوزهی کاری مثل برنامهنویسی هیچ سابقهی کاری نداشته باشه، بهش میگن کارآموز. بعلاوه کارآموز کسیه که نه تنها سابقه، بلکه اطلاعات دقیق و جزئی هم راجع به کاری که باید بکنه نداره. سادهتر بگیم اطلاعاتش، آکادمیک و تئوریه.
- جونیور: کسی که تو این سطح کاریه، تا حدی از کارآموز جلوتره. اطلاعات بیشتری داره و بعلاوه نمونه کارایی هم انجام داده. با این وجود این باعث نمیشه که تو پروژههای اصلی کار کنه.
- میدلول (Mid-Level): این شخص معمولا مربیگری چند جونیور و یا کارآموز رو به عهده میگیره. در ضمن تو پروژههای اصلی هم برنامهنویسی انجام میده.
- سینیور: راهنمایی و آموزش برنامه نویسی میدلول هم به عهدهی سینیوره. مدیریت و سازماندهی تیم برنامهنویسی رو به این اشخاص میسپرن.
از اونجایی که قراره بحث اصلی ما تو این مقاله از آموزشگاه مهندسی کندو، تفاوت برنامه نویس جونیور با سینیور باشه، دیگه تا همین حد از کارآموز و میدلول گفتن کافیه. در ادامه بیشتر راجع به برنامهنویسای جونیور و سینیور حرف میزنیم.
تفاوت برنامه نویس جونیور با سینیور
تا اینجا برنامهنویسای جونیور و سینیور رو تا حدی شناختین؛ اما الان وقت اینه که بفهمین واقعا چی باعث تفاوت برنامه نویس جونیور با سینیور میشه. در این بخش میتونین کاملا اختلاف سطحی که بین این دو گروه از برنامهنویسا وجود داره رو بفهمین.
دانش
یه تفاوت برنامه نویس جونیور با سینیور، میزان دانشه. برنامهنویسایی که بهشون سینیور میگن، دانش و مهارت بیشتری نسبت به برنامهنویسای با لول پایینتر دارن. وقتی میگیم دانش، منظورمون از هر جنبهایه. از سرچ و آشنایی با پترنها و آنتیپترنها گرفته تا معماری، بررسی عملکرد و امنیت، مدیریت، تستنویسی و حتی آموزش.
برنامهنویس سینیور حداقل به 2 زبان تسلط داره. سطح دانش برنامهنویس سینیور جوریه که شخص به استراتژیها و تکنیکهای مختلفی تسلط داره و میدونه که در چه شرایطی از چه تکنولوژی و به چه نحوی استفاده کنه.
کدنویسی
دومین تفاوت برنامه نویس جونیور با سینیور در نحوهی کدنویسیه؛ اما کدنویسی اصلا چیه؟ کدنویسی یعنی برقراری ارتباط بین انسان و کامپیوتر. کدهای نوشتهشده هم در نهایت کامپایل میشن. خب، حالا فرض کنین یه برنامهنویسی بیاد و کدنگاری انجام بده؛ اما چند وقت دیگه که نیاز به اصلاح یا هر تغییری بود، اون یا کس دیگهای بیاد و هیچی از کدنویسیها نفهمه.
ماجرا از این قراره که برنامهنویسی سینیورها بصورت کدنویسی مرتبه؛ به اصطلاح بهش میگن Clean Code. برنامهنویسهای سینیور کدهای مرتب، خوانا و واضحی مینویسن که بهراحتی بازگشایی میشن و قابلفهم هستن. با این حال جونیور درست برعکس اینه و کدنگاری اونو نمیشه بهراحتی توسعه داد. برای همین ممکنه برنامهنویس بعدی مجبور به کدنگاری مجدد بشه.
همین تفاوت در کدنگاری باعث میشه که سطح هر برنامهنویسی رو بشه تشخیص داد. به همین خاطر تفاوت برنامه نویس جونیور با سینیور در این زمینه به وضوح دیده میشه.
توانایی منتورینگ
قبل از اشاره به تفاوت برنامه نویس جونیور با سینیور تو بخشی که بطور خلاصه از سطوح مختلف برنامهنویسها حرف زدیم، در رابطه با سینیورها به یه مهارت خاص اشاره کردیم. راهنمایی و آموزش که بهش منتورینگ هم میگن، این یه تواناییه که از عهدهی هر کسی برنمیاد.
مطمئنا رسیدن به مرحلهای که فردی توانایی آموزش به بقیه رو بدست بیاره، نیاز به درجهی بالایی از مهارت، دانش، تجربه و خیلی چیزای دیگه است. پس یه تفاوت برنامه نویس جونیور با سینیور اینه که یه سینیور بر خلاف جونیور توانایی منتورینگ داره درحالیکه جونیور هنوز اول کاره.
انتقادپذیری
انتقادپذیری هم یه تفاوت برنامه نویس جونیور با سینیوره. همیشه یه شخص حرفهای یا برنامهنویس سینیور از انتقادها یا فیدبکهای کوچیک و بزرگی که بهش میکنن، استقبال میکنه؛ اما دلیلش چیه؟ تا جایی که برنامهنویس نسبت به همه چی گارد داشته باشه، ضعفهاشو نمیبینه و اونا رو نمیپذیره.
به عبارت دیگه جونیور نمیدونه که نمیدونه؛ اما یه سینیور میدونه که نمیدونه. بخاطر همین هم با فیدبکهایی که یه سینیور میپذیره، مهارتش به قدری تقویت میشه که میتونه شرایط رو تحلیل کنه و پیچیدهترین مسائل رو به سادهترین اونها تبدیل کنه.
توانایی انجام کار گروهی
اگه بخوایم از تفاوت برنامه نویس جونیور با سینیور بگیم، باید به کار گروهی هم اشاره کنیم. بر خلاف تصور بعضیها برنامهنویسی همیشه یه کار فردی نیست. تو شرایطهای مختلف برنامهنویس مجبور میشه که همراه با سایر برنامهنویسها بهعنوان یک تیم کار کنه.
یه سینیور در کنار مهارت و تخصصهای لازم برای پروژههای اصلی توانایی کار گروهی و حتی مدیریت تیم رو داره. برنامهنویس جونیور، یه مبتدیه و بدلیل کمبود دانش، تخصص و سطح کار تیمیاش تو پروژههای اصلی و یا گروهی کار نمیکنه.
میزان تسلط به احساسات
آخرین تفاوت برنامه نویس جونیور با سینیور، کنترل هیجاناته. برنامهنویس جونیور دوست داره که مهارتهاشو روکنه و خودشو هر چه سریعتر به سطح بالاتر برسونه. به همین دلیل سعی میکنه همیشه از پیچیدهترین راهها استفاده کنه. در حالیکه سینیور با کنترل خوبی که رو احساساتش داره در هر شرایطی بهترین راهو انتخاب میکنه نه پیچیدهترین.
حالا بهعنوان یه جمعبندی از این همه تفاوت برنامه نویس جونیور با سینیور که گفته شد، میشه تعریفهای دقیقتری از برنامهنویسهای جونیور و سینیور انجام داد.
بیشتر بخوانید: مدت زمان یادگیری برنامه نویسی | راهنمای برنامه نویس ارشد شدن
برنامهنویس جونیور
توسعهدهندههای جونیور تجربهی چندانی ندارن. اغلب کسایی که تازه از دانشگاه فارغالتحصیل میشن و یا به تازگی کار تماموقت خودشونو برای اولین بار شروع میکنن تو این سطح از برنامهنویسی هستن. در نتیجه دانش، مهارت و سطح کدنویسی اونها پایینه. به کدنگاری تمیز فکر نمیکنن و بیشتر درهم و عجیب غریب مینویسن.
سعی میکنن از الگوها و تکنیکهای پیچیده استفاده کنن و گروهی هم نمیتونن کار کنن. خب، این از تعریفی که با ذکر تفاوت برنامه نویس جونیور با سینیور دستگیرمون شد.
کاری که به این افراد سپرده میشه، تمرکز رو بخشهای کامپیوتری کده و نه کارایی مثل معماری و دیزاین پترن. اونها وظایفی رو انجام میدن که بهشون سپرده شده و انجام کارای مستقلی مثل ساخت اپلیکیشن توسط سینیور انجام میشه. هزینهی این افراد توسط کاربران و همکاران (بخش انسانی) پرداخت میشه.
برنامهنویس سینیور
نگاهی که برنامهنویسهای سینیور به مسائل و کدنویسی دارن، کاملا تحلیلیه. اونا برای برنامهنویسی به این فکر میکنن که باید چیزی تولید کنن که قابلیت نگهداری، توسعه و کارایی داشته باشه. در غیر اینصورت به کار نمیاد. بعلاوه همونطورکه در بخش تفاوت برنامه نویس جونیور با سینیور گفته شد، توسعهدهندگان سینیور کدها رو کاملا ساده، تمیز، خوانا و تا حد ممکن بدون پیچیدگی مینویسن.
این اشخاص روی هیجانات خودشون کنترل کافی دارن و انتقادهایی که ازشون میشه رو کاملا میپذیرن. بخاطر همین نواقص کارشون رو رفع میکنن. به علاوه توانایی مدیریت گروه و آموزش برنامه نویسی مانند آموزش پایتون را هم دارن.
سخن پایانی
به نظر میاد که هر چی درباره تفاوت برنامه نویس جونیور با سینیور لازم بود رو گفتیم. شاید با جزئیات دقیقی که گفته شد، از این به بعد با شنیدن اسم برنامهنویس جونیور و سینیور، بتونین این افراد رو عینا تصور کنین. با این حال اگه بازم سوال دیگهای تو زمینه تفاوت برنامه نویس جونیور با سینیور دارین، کارشناسهای حرفهای کندو آمادهی پاسخگویی به شما هستن.