ویرگول
ورودثبت نام
محمد ابراهیمی اول
محمد ابراهیمی اول
خواندن ۱۳ دقیقه·۲۴ روز پیش

چرا استفاده از عنوان‌های Mid-Level ،Junior و Senior اغلب اشتباه هست؟!

چون سطح خبرگی ما به دو نکته بستگی داره و این دو نسبی هستن و نه مطلق پس سطح تخصص ما نیز مطلق و ثابت نمی‌تونه بشه!

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

نکته اول: دریای بی‌انتها و هم پوشان علوم

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

بخشی‌ از شاخه‌های مهندسی نرم‌افزار
بخشی‌ از شاخه‌های مهندسی نرم‌افزار

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

نقشه‌ای از وابستگی و ارتباطات علوم
نقشه‌ای از وابستگی و ارتباطات علوم

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

تغییر سطح تخصص بسته به نیازمندی‌های پروژه
تغییر سطح تخصص بسته به نیازمندی‌های پروژه

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


نکته دوم: مکانیزیم مغز در مدیریت حافظه

مغز ما انسان‌ها هم مثل کامپیوترها هست!‌ حافظه سریع کوتاه مدت (RAM, CPU CACHE,...) و حافظه کند بلند مدت(SSD, HDD,...) داریم. بخش‌های که به میزان لازم تکرار و تاکید شده بشن در حافظه بلند مدت ثبت خواهند شد تا اگر در اینده لازم شد بازیابی بشن و اون بخش‌های هم که مدام مورد استفاده قرار بگیرن در حافظه کوتاه مدت قرار می‌گیرن. چون ظرفیت حافظه کوتاه مدت کم هست مغز به صورت اتوماتیک اون بخش‌هایی که مدتی بگذره و استفاده نشه رو به مرور از اون حذف می‌کنه.

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

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

Studying for Memory & Comprehension
Studying for Memory & Comprehension


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


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

بروزرسانی‌ها: تقریبا همه علوم مدام در حال توسعه و بروزرسانی هستن و در برخی نرخ بروزرسانی‌ها به حدی هست که اگر چند سال دور باشیم رسما دانش گذشته ما منسوخ و ناکارامد خواهد بود! به عبارتی حتی اگر در مباحث گذشته عمیق و در سطح ارشدی خبره هم بوده باشیم و خوش‌شانس باشیم و تمام اون‌ها رو بازیابی کنیم دوباره به سطح متخصص ارشد باز نخواهیم گشت!

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


مثال داستانی:

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

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

اخرای سال بود که شرکت به مشکل خود و ورشکست شد و جمع شد و منم مثل بقیه رفتم دنبال کار در شرکت جدید. چون خیلی دقیق و حرفه‌ای شده بودم در توسعه فرانت اند و تو شرکتم رشد کرده بودم و حقوق ارشد می‌گرفتم الانم با عنوان Senior FrontEnd developer دنبال کار بودم و خودم رو ارشد می‌دونستم اخه تسکی نبود که تو شرکت به من بدن و سه سوته نزنمش!

در کمال تعجب در همه ده مصاحبه‌ای که رفتم رد شدم و شروع کردم به نقد و غر زدن به فرایند مصاحبه‌ها. اخه چه کاریه تو مصاحبه به من می‌گی یک پلیر صوت واسم بنویس به من بگو یک تولید کننده فرم پیچیده بنویس تا سه سوته واست بنویسم! از من چرا سوال React می‌پرسی از من jQuery بپرس تا هیچ سوالت رو بی جواب نذارم! وقتی کمی سعی کردم واقعیت رو درک کنم و با چندتا از دوستان مشورت کردم دیدم ظاهرا یه جای کار من می‌لنگه! من وارد مصاحبه‌های ارشد فرانت‌اند میشد در حالی که پروژه و نیازهای اونها اصلا با دانش و تجربه من همخوانی نداشته! در واقع من فرانت اند دولوپر بودم اونا هم فرانت اند دولوپر می‌خواستن ولی من مسلط به jQuery و الگوریتم‌ها و بدون توجه به ظاهر بودم ولی اونها اتفاقا اولویتشون ظاهر و بحث رسپانسیو بود که من در پروژه قبلی اصلا لازم نبود! از اون طرف تو این مدت jQuery منسوخ شده بود ReactJs همه جا رو گرفته بود ولی چون من خیلی درگیر تسک‌های شرکت خودمون با jQuery بودم و حسابی هم به اون مسلط شده بودم حتی حس نیاز نمی‌کردم که برم ببینم چی هست و یه بار البته دیدم و خیلی چرت به نظرم رسید پس بیخیالش شدم!

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

تا این که یک روز پروژه‌ای مشابه پروژه ۸ سال پیش به من پیشنهاد شد!‌ چون در گذشته ارشد بودم سریع قبول کردم در حالی که چهار سال بود که حتی سمت jQuery هم نرفته بودم! واقعا فاجعه بار بود! خیلی از مباحث رو فراموش کرده بودم، دیگه سریع نبودم چون خیلی از بخش‌ها و متدهاش تغییر کرده بود منم چون به محیط React عادت کرده بودم بعضی از موارد رو قاطی می‌کردم و مدام نیاز بود تا فکر کنم. به هر زحمتی بود با سه برابر زمان تخمین زده شده تکمیل کردم و تحویل دادم. ماه بعد دوباره یه پروژه مشابه همون رو دیدم و پیشنهاد دادم که انجام بدم و به توافق رسیدیم. تخمین زمانیم رو بر اساس تجربه اخیر گذاشتم ولی جالب بود که زودتر از تمام کردم و تحویل دادم و تقریبا دوباره مثل گذشته در این سبک پروژه‌ها دستم گرم شده بود و سریع شده بودم.

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

(این مثال ساختگی و از ترکیب تجربه‌های خودم، دوستان و همکارانم با هم خلق شده!)


نتیجه‌گیری:

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

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





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