فرق سنیور و جونیور در برنامه نویسی چیست ؟

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

قبلا در مدارس مختلف دانش آموزان را با نمره هایی بین 0 تا 20 مورد سنجش قرار می دادند اما آن نمرات امروزه با نمرات توصیفی مثل خوب، خیلی خوب، عالی، نیاز به تلاش و … جایگزین شده اند. امروزه به کمک همین نمرات توصیفی دانش آموزان را دسته بندی کرده و از این دسته بندی در انتخاب رشته آن ها استفاده می کنند.

همین دسته بندی و سطح بندی در حوزه برنامه نویسی نیز وجود دارد که به کمک کلماتی مثل سنیور، جونیور و … تعیین می شوند.

زمانی که یک شرکت در پلتفرم های مختلف آگهی استخدامی منتشر می کند، بنا به نیاز خود یکی از این کلمات را در آگهی خود ذکر می کنند.

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

چند سطح در حوزه برنامه نویسی وجود دارد؟

فرق سنیور و جونیور چیست ؟اکثر افراد در مورد سطح بندی برنامه نویس ها فقط کلمات جونیور، میدلول و سنیور را می شناسند و سطح کارآموزی را جزو سطح بندی به حساب نمی آورند.

در حالی که به صورت کلی در حوزه برنامه نویسی چهار سطح داریم که به ترتیب از مبتدی به حرفه ای کارآموز، جونیور، میدلول و سنیور هستند.

اگر بخواهیم مفهوم هر کدام از این چهار سطح را به طور مختصر بیان کنیم:

کارآموز: کارآموز شخصی است که در هیچگونه نمونه کاری نداشته و اطلاعات دقیق و درستی از حوزه کاری خود (مثلا فرانت اند) ندارد. اطلاعات یک کارآموز در حد تئوری و آکادمیک است.

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

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

سنیور: برنامه نویس های سنیور می توانند برنامه نویس های میدلول را منتور کرده و همچنین می توانید یک تیم برنامه نویسی و چندین میدلول را مدیریت، تسک بندی و سازماندهی کند.

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

سطح کارآموزی در برنامه نویسی

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

کارآموز کسی است که هیچ گونه تجربه ای در حوزه برنامه نویسی ندارد و با مفاهیم، اصطلاحات و تکنولوژی های موجود در این حوزه آشنایی ندارد.

علاوه بر این یکی از سوالات برنامه نویسان در این سطح این است که “چه زبانی بازار کار خوبی دارد؟”، “چه زبان را یاد بگیرم؟”، “در چه مدت زمانی می توانم یاد بگیرم؟” و … .

پس اگر شما همچین سوالاتی ذهنتان را مشغول کرده است، در سطح کارآموز قرار دارید.

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

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

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

اما اگر از برنامه نویسان حرفه ای مشورت کنید، درصد بسیار زیادی از آن ها کارآموزی در شرکت را به شما پیشنهاد نمی کنند! جالب است برایتان سوال باشد که دلیل این پیشنهاد نکردن چیست!

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

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

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

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

فرق سنیور و جونیور چیست ؟ رابطه کارآموز و حقوق

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

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

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

مدت زمان مطرح نیست!

به جرئت می توان گفت یکی از سوالاتی که توسط افراد تازه وارد به این حوزه پرسیده می شود این است که “در مدت چند ماه یا چند سال می توان به فلان سطح رسید؟” یا “در چه مدت زمانی می توانم وارد بازار کار برنامه نویسی شوم؟”.

اگر این سوالات ذهن شما را هم درگیر کرده اند، جالب است بدانید که مدت زمان در حوزه برنامه نویسی به هیچ وجه مطرح نیست. ممکن است یک شخص یکی از تکنولوژی های این حوزه مثل ری اکت، جاوا اسکریپت، پایتون و … را در مدت زمان 6 ماه در حد خیلی خوب و قابل قبول برای بازار کار یاد بگیرد اما شخص دیگر همان تکنولوژی را در مدت زمان 10 ماه هم نتواند در سطح قابل قبول یاد بگیرد!

پس در نتیجه به هیچ وجه نمی توان در مورد مدت زمان یادگیری برنامه نویسی توسط یک شخص اظهار نظر کرد و هیچ مدت زمان ثابتی در این زمینه وجود ندارد.

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

برای حدس مدت زمان یادگیری یک شخص باید تمام این پارامتر ها تعیین شوند و بدون تعیین همچین پارامتر هایی به هیچ وجه نمی توان در مورد مدت زمان یادگیری صحبتی کرد.

شما نیز سعی کنید همچین سوالاتی را از هیچ شخصی نپرسید؛ چون پرسیدن این سوالات شما را سطح پایین جلوه می دهند و شخصی که این سوالات را بپرسد در سطح کارآموز و جونیور است.

پس تا همین قسمت از مقاله متوجه شدید که اگر دغدغه و سوال یک برنامه نویس این باید که “در چه مدت زمانی می توانم یاد بگیرم؟”، او در سطح کارآموز یا جونیور است.

در ادامه به جزئیات بیشتری در مورد از سطح ها خواهیم پرداخت.

چه برنامه نویسی جونیور است؟

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

برنامه نویس جونیور چند گام از یک کاراموز جلوتر بوده و می تواند نمونه کار های متعددی نیز داشته باشد اما نمی تواند یک کارآموز را مدیریت و منتور کند.

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

یک برنامه نویس جونیور فقط به خروجی کدی که می نویسد توجه می کند و هدف او کار کردن کدی است که می نویسد و هیچ توجهی به نحوه کد نویسی و رعایت استانداردها نمی کند.

پس اگر شما همچین حالتی دارید، یک برنامه نویس جونیور هستید.

موضوع بعدی این که خطاهایی که یک برنامه نویس مبتدی با آن رو به رو می شوند، اکثرا در حد سینتکس هستند. پس از روی باگ های یک برنامه نویس نیز می توان سطح او را تشخیص داد.

موضوع بعدی این است که سوالاتی که ممکن است برای یک برنامه نویس جونیور پیش بیاید در حد مقایسه تکنولوژی های مختلف است. مثلا ممکن است برای یک برنامه نویس جونیور سوال باشد که لایبرری ری اکت بهتر است یا فریمورک ویو یا مثلا ممکن است سوال باشد که برای ادامه مسیر کدام تکنولوژی را انتخابی کنم.

پس اگر برای شما نیز همچین سوالاتی پیش می آید، می توان گفت که در سطح جونیور هستید.

جونیور با جونیور متفاوت است!

تا اینجای مطلب فرق سینیور و جونیور به موراد متفاوتی پرداختیم. یک برنامه نویس جونیور با یک برنامه نویس جونیور دیگر صرفا برابر نبوده و متفاوت هستند.

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

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

چه برنامه نویسی میدلول است؟

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

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

توسعه و کدنویسی یک پروژه در شرکت های برنامه نویس بر عهده برنامه نویس های میدلول بوده و آن ها با کمک هم دیگر پروژه ها از صفر تا صد کد نویسی می کنند.

همچنین یک برنامه نویس میدلول بر خلاف یک برنامه نویس جونیور علاوه بر خروجی کدی که می نویسند، به خود کد، نحوه نوشتن آن و رعایت استاندارد ها نیز اهمیت می دهد و همچنین از اتفاقاتی که پشت پرده اتفاق می افتند نیز خبر دارد (مثلا نحوه کار کردن جاوا اسکریپت، وب پک، ری اکت و ارتباط آن ها با مرورگر یا Api و …)

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

چه برنامه نویسی سنیور است؟

سطح سنیور یک قله ای بلند و راهی بسیار طولانی است. یک برنامه نویس سنیور به مباحث سافت اسکیل (مهارت های نرم)، الگوریتم، ساختمان داده، معماری کامپیوتر، دیزاین پترن ها و … تسلط کافی دارد و می توانید چندین برنامه نویس میدلول را نیز منتور کند.

همچنین یک برنامه نویس سنیور چندین به پارادایم برنامه نویسی مسلط است و می تواند در یک شرکت کل سیستم را مدیریت کرده و مشکلات پیش آمده را برطرف کند.

همان طور که می دانید دو نوع یادگیری سطحی و عمقی وجود دارند. یک برنامه نویس سنیور در حوزه فعالیت خود در تکنولوژی های لازم به طور عمیق مسلط بوده و تجربه کاری بالایی دارد.

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

اگر شما این ویژگی ها را دارید، به شما تبریک می گویم. شما یک برنامه نویس سنیور هستید و می توانید هم با ایران و هم با خارج از کشور به صورت ریموت همکاری کرده و درآمد های بسیار بالایی را داشته باشید.

ثابت نبودن سطح هر برنامه نویس

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

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

پس این موضوع را نیز به یاد داشته باشید که نمی توانید همیشه سطح خود را ثابت نگه دارید و به سطح شما به تیم مورد نظر نیز بستگی دارد.فرق سنیور و جونیور چیست؟

سطح چه تاثیری در حقوق برنامه نویس دارد؟

برای جواب دادن به این سوال باید به منابعی که در زمینه بازار کار و فرصت های شغلی فعالیت می کنند مراجعه کنیم.

از همچین وب سایت هایی می توان به جابینجا، جاب ویژن، کوئرا، آی استخدام و … اشاره کرد.

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

تشخیص سطح یک برنامه نویس توسط کد نوشته شده توسط او

فرق سنیور و جونیور چیست ؟حوزه برنامه نویسی شبیه ریاضی یا فیزیک نیست که هر مسئله فقط و فقط یک جواب مطلق و ثابت داشته باشد. به عنوان مثال حاصل محاسبه 2 +2 + 3 برابر است با 7. در همه جای دنیا این موضوع یک امر ثابت است.

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

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

ممکن است برایتان سوال باشد که چطور می شود با مشاهده کد های یک برنامه نویس سطح او را تشخیص داد!

در حوزه برنامه نویسی یک مبحث بسیار مهمی به اسم Clean Code یا همان کد نویسی مرتب. کد نویسی مرتب یکی از مهم ترین اصول برنامه نویسی است که برنامه نویس های حرفه ای نکات و قواعد آن را رعایت می کنند اما برنامه نویس های مبتدی (کارآموز و جونیور) به اصول کد مرتب توجهی نمی کنند و برای آن ها مهم فقط این است که کدشان کار کند.

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

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

تجربه و پیشنهاد شخصی + شرکت های ایرانی

فرق سنیور و جونیور چیست ؟ در این قسمت قصد دارم تجربه اندکی که در این حوزه دارم برای شما صحبت کنم. ممکن است مطالبی که در این مقاله گفته شد با مواردی که در شرکت های ایرانی مشاهده کرده اید کمی متفاوت باشد.

شخصا در شرکتی حضور داشتم که اشخاصی به مدت بالای 2 سال به عنوان کارآموز در آن شرکت حضور داشتند و این عمق فاجعه است!

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

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

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

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

سخن پایانی

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

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

منبع:

https://sabzlearn.ir/senior-vs-junior/