چگونه به یک Super Senior Developer تبدیل شویم؟

هفت یا هشت سالم بود که یکی از دوستامون که الان توی اپل کار می کنه و اون موقع هم فوق لیسانس الکترونیک داشت و برنامه نویس خیلی ماهری هم بود، تصمیم گرفت که بررسی کنه و ببینه که میشه به یک کودک هم، برنامه نویسی یاد داد یا نه؟!با این نگرش، من با آموزش های ایشون، شروع به یادگیری برنامه نویسی کردم. همیشه از اینکه یک چیزی رو خلق می کردم، خیلی لذت می بردم. این ادامه داشت تا نوجوان و بعدش جوان شدم و به دنبال کسب تخصص، به مراکز علمی و دانشگاه های بسیار معتبر در سراسر جهان رفتم. بعدش هم خودم، شدم یکی از مدرسین این مراکز و دانشگاه ها.دقیقا زمانی که فکر می کردم که به بالاترین جایگاه تخصص در برنامه نویسی رسیدم و بهترین برنامه نویس و استاد برنامه نویسی شدم، دچار بحران های مختلفی شده بودم. اگر مشکلات فیزیکی مثل گردن درد و کمر درد رو کنار بگذاریم، مشکلات روحی مثل عدم تمرکز کافی، خستگی مفرط از کدنویسی، و حتی ناتوانی در حل برخی از مسائل پیچیده تر، روز به روز داشت من رو از برنامه نویسی دورتر می کرد. هر چه به سی سالگی نزدیکتر می شدم، این مسائل رو بیشتر حس می کردم.برای کمتر کردن کارهای برنامه نویسیم، به سراغ دنیای مدیریت رفتم و یک شرکت تاسیس کردم و برنامه نویس های مختلفی، از سطوح مختلف رو استخدام کردم. دیدن مشکلات و اشتباهات سبک زندگی ده ها برنامه نویس در شرکتم و هزاران برنامه نویس در میان دانشجوهام، باعث شد که کمی به فکر فرو برم و به بررسی وضعیت اونها بپردازم. وضعیت فیزیکی برنامه نویس ها که اصلا خوب نیست. حداقل این مورد، در ظاهرشون و اضافه وزن بسیاری از دوستان پیداست. اوضاع کمر و گردن و مچ دست دوستان هم که فاجعه است. هر کدام از ما، بالاخره به یکی از این عارضه ها دچار هستیم. جالبه که چند وقت پیش برای یک موردی به دکتر مراجعه کرده بودم، گفت شغلت چیه؟ گفتم برنامه نویس هستم. گفت: ای کاش به شما برنامه نویس ها در دانشگاه، به جای کد زدن، رعایت ارگونومی رو آموزش میدادن. وضعیت غذا خوردن، ورزش کردن، و بهداشت سلامت ما برنامه نویس ها هم که اصلا تعریفی نداره. وضعیت روحمون هم بدتر هست. به عنوان مثال، چند تا برنامه نویس میشناسید که به طور منظم Mindfulness انجام بدن تا ذهن آرام و متمرکز و بی استرسی داشته باشن؟قضیه فقط به مسائل فیزیکی و روحی هم ختم نمی شه؛ خیلی از زیربناهای دیگه ی مورد نیاز ما برنامه نویسها، نه در موسسات، و نه در دانشگاه، آموزش داده نمیشن. مثلا، وقتی در شرکتم، به سراغ پروژه های هوش مصنوعی رفتیم، متوجه شدم که پایه ی ضعیف ریاضی بچه ها در جبر خطی و احتمالات، معضل بزرگیه. از درک کامل الگوریتم ها، روش های حل مسئله، راه حل های توسعه، زیرساخت های برنامه نویسی، دانش تجربه کاربری، تجربه مشتری، و رابط کاربری هم که بگذریم، که اصلا تعریفی نداره.مشکل دیگه ای که وجود داره، ضعف زبان انگلیسیه. یک برنامه نویس، باید به طور مداوم، منابع روز دنیا رو مطالعه کنه، و متاسفانه بسیاری از برنامه نویس ها به مهارت های خواندن و شنیدن در زبان انگلیسی به اندازه کافی تسلط ندارن و نمیتونن منابع روز دنیا رو مطالعه کنن!!! همین، باعث شده که توانمندی اونها در تحقیق و جستجو هم به شدت کاهش پیدا کنه.توی همه ی موسسات و دانشگاه ها، یکسری کدهای سی پلاس پلاس، سی شارپ، جاوا، پایتون و ... بهمون یاد میدن، این موارد ضروری و جالبن، اما آیا واقعا تمام سبک زندگی و موفقیت یک انسان، یک برنامه نویس، در این هست که تفاوت ساختار حلقه رو با ساختار شرطی بدونه؟! چرا هیچ کجا بهمون تایپ صحیح و سریع با رعایت ارگونومی رو یاد نمیدن؟ چرا هیچ کجا بهمون مدیریت زمان که مهم ترین بخش از زندگی یک برنامه نویس هست رو آموزش نمیدن و همونطور که میبینید، بسیاری از برنامه نویس ها دچار مشکل مدیریت زمان هستند و به تفریح و ورزش نمیرسن؟ مهارت هایی مثل روش مطالعه ی منابع برنامه نویسی، تندخوانی، فن بیان، آداب و معاشرت کاری، نظم شخصی، و روابط اجتماعی، همه و همه، مهارت های فردی بسیار مهمی هستند که تک تک برنامه نویس ها باید یاد بگیرند.بگذارید به محیط کار برم و در مورد مسائل مربوط به استخدام در یک شرکت معتبر داخلی یا خارجی ازتون چند تا سال ازتون بپرسم. چند نفر از ما برنامه نویس ها بلدیم پروپوزال بنویسیم؟ رزومه ی صحیح بنویسیم؟ (در مورد رزومه در یک مقاله ی جداگانه به طور مفصل صحبت خواهم کرد) آیا بلدیم پورتفولیو حرفه ای بسازیم؟ میگن رزومه و .C.V و Portfolio برای ما برنامه نویس ها مثل بروشور فروش محصول یک کارخونه میمونه، منتها در اینجا محصول ما، خودمون و مهارت هامون هستیم. رزومه مثل تیزر فیلم میمونه، باید طوری گیرا باشه، که خواننده ی رزومه (کافرما)، مشتاق باشه که ازتون دعوت کنه و فیلم کامل رو از نزدیک ببینه.زیاد دیدم برنامه نویس هایی که به مراتب تخصص بالاتری دارن از کسانی که الان دارن پول زیاد و موفقیت زیادی کسب می کنن، اما بخاطر اینکه بلد نبودن رزومه ی حرفه ای و تمیز برای درخواست هر موقعیت شغلی به طور مجزا بنویسن، بلد نبودن در جلسه مصاحبه کاری درست رفتار کنن، و بلد نبودن که چطور سر حقوقشون مذاکره کنن، الان در جایگاه واقعیشون نیستند. این افراد، در واقع از دانش پرسونال برندینگ، قدرت شبکه سازی، مارکتینگ، و قدرت فروش خودشون ناآگاهند و مهارت هاشون رو در این زمینه ها هرگز افزایش ندادن و فقط کدنویسی یاد گرفتند که متاسفانه کافی نیست. ما در دنیایی داریم زندگی می کنیم، چه خوب چه بد، چه بخوایم چه نخوایم، که هر کسی که بهتر خودش رو پرزنت کنه، موفق تر، ثروتمند تر، و خوشبخت تر خواهد بود.از این مورد هم نگذریم که معمولا برنامه نویس ها که در یک شرکت استخدام میشن، تازه مشکلات کارفرما شروع میشه. زیاد پیش میاد که کارفرماها منو میبینن و بهم میگن فلانی، لطفا به ما چند تا برنامه نویس درست و حسابی معرفی کن که اذیتمون نکنن. چرا چنین ذهنیتی برای کارفرماها ساختیم؟ نظم کاریمون چقدره؟ هنر ارتباطاتمون در محیط کار چقدره؟ توانمندی کار تیمیمون چقدره؟این موضوع هم فقط یک طرفه نیست. خود ما برنامه نویس ها هم زیاد مورد بی مهری کارفرماها قرار می گیریم. چون از مسائل حقوقی و مالی به طور کامل آگاه نیستیم، قراردادهایی میبندیم که نباید! و این موضوع ما رو حسابی به دردسر میندازه. موقع استخداممون هم نمیدونیم که چه چیزهایی رو باید امضا کنیم و زیر بار چه چیزهایی نباید بریم. حتی نمیدونیم که حقوقمون دقیقا چقدر باید باشه و بلد نیستیم که برای گرفتن حقمون، درست مذاکره کنیم.بسیاری از حرف هایی که زدم، به یادگیری مربوط میشه. اما نه آموزش برنامه نویسی، بلکه آموزش مهارت های نرم (Soft Skills) برای یک برنامه نویس که گاهی بسیار بسیار مهم تر از یادگیری زبان های برنامه نویسی هستند.میخوام بحثم رو با توضیح تیتر اولین مقاله ای که در ویرگول میگذارم، به پایان برسونم. ما برنامه نویس ها به کسی که تازه برنامه نویس شده میگیم Junior Developer و به کسی که خیلی سابقه داره و حسابی حرفه ای شده میگیم Senior Developer. من به گروه اول میگم JD (جِی دی) و به گروه دوم میگم SD (اِس دی). در این سالها، در تلاشم که با آموزش مهارت های از جنس مهارت های نرم (Soft Skills) و مهارت های فردی (Personal Skills)، رفقای متخصص SD رو به SSD (اِس اِس دی)، یعنی Super Senior Developer تبدیل کنم. این اسم رو هم خودم روش گذاشتم و به کسی میگم SSD که هم برنامه نویس خیلی بزرگی باشه و هم همه ی مهارت های مربوط به امور فردی و کاری رو به بالاترین درجه ی مورد نیاز یک برنامه نویس، داشته باشه.چندین ساله که دارم روی این مهارت های نرم کار می کنم و حالا تصمیم گرفتم که تجربیات و حاصل مطالعاتم رو با شما عزیزان، تحت عنوان How to Become an SSD به اشتراک بگذارم. یادتون باشه که SSD یک سبک زندگیه، یک مسیر قهرمانیه، و یک تجربه ی زندگی از جنس واقعیت، تلاش، دانش، موفقیت، سلامتی، و نهایتا زیبایی.اینستاگرام: https://instagram.com/mehrdad_naderi_faلینکدین: https://www.linkedin.com/in/mehrdad-naderi