چگونه برنامهنویسی یاد بگیریم؟ (بخش آخر)
متنباز
اگر پروژهٔ متن بازی وجود دارد که واقعاً میخواهید روی آن کارکنید، ببینید آنها چه چیزی لازم دارند و فقط روی آن کارکنید. اغلب، پروژههای متنباز فهرستی از تسک ها برای تازهواردان دارند و شما میتوانید تسک دلخواهی را انتخاب کرده و روی آن کارکنید. مزیت این روش آن است که مهلتی وجود ندارد و معمولاً انجمنی از داوطلبان بسیار حامی وجود دارد که میتوانند پاسخ سؤالات شمارا روی فهرستهای میل، در چت رومها و … بدهند. ازآنجاییکه اغلب پروژههای متنباز فرآیندی به نام “مرور یا بررسی کد” دارند و شما میتوانید بازخورد کدهایتان را از یک مهندس ارشد دریافت کنید که بهعنوان یک برنامهنویس به شما کمک میکند رشد کنید. مهمتر از همه اینها، کار روی پروژههای متنباز، برای شما رزومه و شواهدی فراهم میکند که میتوانید به هر کارفرمایی نشان دهید. (زمانی که برای شرکتی روی کدها کار میکنید، معمولاً نمیتوانید کدها را خارج از کمپانی ببرید و بهعنوان شواهد و مدارکِ اینکه برنامهنویس خوبی هستید به کارفرمای دیگری نشان دهید) علاوه بر این شرکتها معمولاً علاقه دارند در رزومه شما مشارکت در پروژههای متنباز ببینید، ازآنجاییکه نشان میدهد شما در مورد برنامهنویسی علاقهمند و پرشور هستید.
مربیگری
زمانی که اولین شغل خود را بهعنوان برنامهنویس بر عهده میگیرید، موقعیتهایی را که شمارا به برنامهنویس بهتری تبدیل میکند در نظر بگیرید. آیا شرکت مهندسان نرمافزار باتجربهای دارد که بتوانند به شما کمک کنند تا رشد کنید؟ یا کاملاً از تازه فارغالتحصیلان دانشگاهی با عنوان بدون تجربه حرفهای تشکیلشده است؟ آیا کمپانی بررسی کد انجام میدهد جایی که هر تغییری که در کد میدهید توسط یک مهندس ارشدتر موردبررسی قرار گیرد تا به شما کمک کند در برنامهنویسی پیشرفت کنید؟ و شاید مهمتر از همه، زمانی که شغلی را میپذیرید مطمئن شوید که شرکتی باشد که به بهترین تمرینها اهمیت دهد. این موضوع اغلب در مورد شرکتهای نرمافزاری درست است- شرکتهایی که تولید اصلی آنها نرمافزار است- تا شرکتهای دیگر (برای مثال، مؤسسات مالی که برنامه نویسان بسیاری استخدام میکنند، اما اینکه چقدر عمیقاً به کیفیت نرمافزار اهمیت دهند بستگی زیادی به کمپانی و حتی به اینکه در چه بخشی از کمپانی کار میکنید، دارد). ممکن است این تجربه را بیشتر در کمپانی تازه تأسیس داشته باشید یا حداقل در شرکتی که زیر فشار سنگینِ مهلت تحویل و در حال فروپاشی نباشد (برای مثال مانند استارتاپی که بودجهاش در حال اتمام است).
من نمیگویم که شما باید تنها پیشنهاد کاری خود را به علت اینکه ممکن است کمپانی کاملی برای کار کردن نباشد رد کنید. اما یادتان باشد که اگر دنبال حرفه و رشد مهارت بهعنوان برنامهنویس هستید، با هک کردن کد در مهلتهای زمانیِ کوتاه برای کاربرانی که از محصولات شما متنفرند اما به هر نحوی مجبور به استفاده از آن هستند، نمیرسید.
مطالعه
محتوای بسیاری در مورد بهترین تمرینهای نرمافزار به شکل آنلاین وجود دارد. همچنین کتابهای خوبی هم وجود دارد. (حتی بعضی از آن کتابها را من نوشتهام، که اگر در حال یادگیری برنامهنویسی هستید احتمالاً خوشتان میآید.) مطالعه آنلاین در مورد بهترین تمرینهای مختلف نرمافزار ارزشش را دارد، مخصوصاً اگر به برخی از مسائلی که در حال حل آنها هستید، مرتبط باشند. به مطالعه کتابها، بلاگ ها، وبسایتها و … ادامه دهید. راه خوبی برای بهروز بودن است، گاهی اوقات حتی زمانی که مستقیماً عملی نیستند. برای مثال، من هرچند وقت یکبار در مورد بعضی زبانهای برنامهنویسی جدید یا برخی ویژگیهای CPU مطالعه میکنم، نه اینکه به کاری که میکنم ارتباطی داشته باشند، بلکه فقط به خاطر اینکه به نظر اطلاعات مفید و خوبی برای دانستنِ من بهعنوان برنامهنویس دارند.