محمدرضا سخایی
محمدرضا سخایی
خواندن ۶ دقیقه·۲ ماه پیش

چیکار کنم که برنامه نویس بدی باشم؟

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

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

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


هیچ وقت دنبال یادگیری الگوریتمها، ساختمان داده و مباحث پایه ای نباش :

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

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


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

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

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


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

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

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


بزار کدهای کثیف و شلوغ قبلی ت انقد رو هم بمونن که بوی گند بگیرن

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

فقط کافیه همیشه اولین راه حلی که به ذهنت میرسه رو کد بزنی و بعد هم بری سراغ تسکهای بعدی. حالا که کسی قرار نیست تو رو ارزیابی کنه یا برات code review بنویسه.

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


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

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

بزار عقب بیفتن. دنبال تحلیل کردن و فکر کردن به راه حل های بزرگ نباش. شاید اصن بعد از گذشت چندروز همه یادشون بره که یه همچین تسکی قرار بود کد زده بشه. نه؟ یه بار امتحان کن و حالشو ببر. بعد هم از نظر علمی ثابت شده که

به تعویق انداختن تسکها دوپامین آزاد میکنه :)

دیگه چی بهتر از این میخوای؟


همه چی رو از روز اول بلد باش

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

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

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


یاد بگیر همیشه کارهای نفر قبلی یا هم تیمی هاتو بی اهمیت نشون بدی

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

یعنی :

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

پس به جای تلاش برای "اصلاح" یه پروژه و بهینه کردن کدهای قدیمی، سعی کن همه چی رو "بکوبی و از نو شروع کنی"


میدونم این موارد میتونن خیلی بیشتر از این بشن. من اما گزینه های اساسی رو گفتم. اگه همینارو تمرین کنی و توی خودت جا بندازی، به مرور کلی عادتِ بدِ جدیدِ دیگه هم بهت اضافه میشه که میتونه به موفقیتت بیشتر کمک کنه و تو رو جلو بندازه.

و مثل همیشه،

اگه تو هم ایده جدید یا تجربه مشابهی داری ممنون میشم به من بگی تا به این لیست اضافه کنیم

برنامه نویسیکدنویسیبرنامه نویسنرم افزارمثبت اندیشی
اگه بار اولیه که تو زندگیت تِر زدی ناراحت نشو، اسمشو بزار ورژن 1.0
شاید از این پست‌ها خوشتان بیاید