دنیای برنامه‌نویسی دنیای وسیعی هست و به نظر من برای رقابت و حضور ماندگار توی این حوزه، مفیدترین و بهترین راه استفاده از تجربیات اهل فن این حوزه هست :)

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

۱. من چیزی نمیدونم!

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

تمام چیزی که میدونم، اینه که هیچ چیزی نمیدونم

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

۲. کدهای خودتون رو به چالش بکشین

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

(منظور از نوار سبز اینه که برنامه‌نویس تلاش میکنه که تست‌هایی بنویسه که ثابت کنه کدهاش کار میکنه. و همچنین زمانی با خط قرمز مواجه میشیم که کد ما دچار اشکال باشه)

۳. "کد من کار میکنه" زمان خوبی برای دست کشیدن نیست!

شاید وقتی که یک قسمتی از یک برنامه رو مینویسیم و این قسمت درست کار میکنه، اولین چیزی که به ذهنمون میرسه این باشه: "خب بریم سراغ قسمت بعدی".
ولی صبر کنین؛ اولین چیزی که به ذهنمون میرسه باید این باشه: چه جوری میتونم بهترش کنم؟
ملاک فقط کار کردن کد نیست! باید از خودمون بپرسیم که چه جوری میتونم این قسمت رو بهینه تر کنم؟ سریع تر کنم؟ سبک تر کنم؟ خواناتر کنم؟

بهتره که همینجا دست به کار بشیم، تا اینکه بعدا کل پروژه رو Refactor کنیم!

۴. خوندن کدهای دیگران

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

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

در نظر داشته باشین که خوندن کدهای دیگران به منظور کپی/پیست کردن کدهای اونها نیست که در اون صورت مسیر رشد نزولی میشه. چون چشم بسته تبعیت کردن از کدهای دیگران 2 نکته منفی داره:

کوتممکنه کدهای اونها بهینه نباشه و یا دارای اشکال باشه
باعث میشه > کوتخودمون درباره حل مسئله فکر نکنیم

۵. شروع یک پروژه شخصی واقعی

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

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

۶. رفت و آمد با برنامه‌نویس های خوب‌تر از ما

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

کوتاگه شما باهوش‌ترین فرد توی یک اتاق هستین، شما توی یک اتاق اشتباه هستین.

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

۷. تکنیک‌ها رو یاد بگیریم، نه ابزارها!

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

منبع: ditty.ir