بایسته‌های یک برنامه‌نویس خوب

نویسنده : سید ایوب کوکبی ۱۵ خرداد ۱۳۹۸
بایسته‌های یک برنامه‌نویس خوب

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

قاطعانه تصمیم بگیرید

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

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

یادگیری فعال

من در حال حاضر هیچ اطلاعاتی در مورد یادگیری ماشینی ندارم. ولی طی چند ماه می‌توانم اطلاعات زیادی از آن به دست آورم. امروز صبح در مورد الگوریتم خوشه‌بندی meanshift چیز زیادی نمی‌دانستم ولی حالا اندکی در موردش اطلاعات دارم. گاهی لازم است چیزهای سخت یاد بگیریم ولی هیچگاه نباید زمان زیادی روی آن‌ها بگذاریم.

Mark Essien

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

بخوانید  چند توصیه به برنامه‌نویسان و مدیران پروژه

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

در قدم اول گیر نکنید

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

آن‌ها برای کوچکترین مسائل ساعت‌ها یا روزها وقت می‌گذارند و معمولاً به خاطر بررسی‌های فراوان برنامه را به پایان نمی‌رسانند. در واقع برنامه‌ای که میشد در یک دو روز نوشت را چندین هفته یا ماه به درازا می‌کشانند و آخرِ سر بی‌خیالش می‌شوند. چرا؟ چون مدام چیزهای جدیدی که یاد می‌گیرند را می‌خواهند در پروژۀ جاری به کار برند.

سعی کنید با همان دانسته‌های فعلی سریعاً برنامه را به پایان ببرید. وقت برای ریفکتور و بهسازی پروژه همیشه هست. خودتان را درگیر بهبود مداوم نکنید. به پایان رساندن برنامه باید هدف اصلی شما باشد. وقتی برنامه‌ای هرچند کوچک و ناقص به پایان می‌برید از شرِ ترافیک ذهنی رها می‌شوید و بهتر با مفاهیم برنامه‌نویسی آشنا می‌شوید؛ ولی وقتی مدام برنامه‌ای که هنوز کامل نشده را بهبود می‌دهید پیچیدگی مفاهیم بیشتر می‌شود. در واقع چیزهای زیادی بلدید ولی چون اطلاعات عملی خوبی دربارۀ آن‌ها ندارید در پروژه نمی‌توانید به کار گیرید و این باعث دلزدگی و افسردگی شما می‌شود.

بخوانید  آموزش زبان کاتلین – درس 17 (کلاس و اشیاء)

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

با دیگران ارتباط برقرار کنید

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

خودتان را معرفی کنید

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

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

عظمت و جلال چیزی بیشتر از اشتباهات تصحیح شده نیست.

وقتی در تیمی با یک مدیر خوب فعالیت کنید، در همان چند ماه اول اشتباهات خود را پیدا می‌کنید. در یک تیم خوب خواهید فهمید که چرا بعضی از تصمیمات شما اشتباه است و چرا باید شیوۀ کار خود را عوض کنید.

بخوانید  MVP در اندروید با یک مثال ساده

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

و چند پیشنهاد دیگر:

  • کار با سورس‌کنترل‌ها را یاد بگیرید؛
  • تا می‌توانید پروژه‌های متن‌باز بررسی کنید؛
  • کتاب‌های خوب برنامه‌نویسی بخوانید و همۀ تمریناتش را انجام دهید؛ خواندن کتاب‌هایی مثل Clean Code, Code Complete به همه برنامه‌نویسان توصیه می‌شود؛
  • برنامه‌نویسان حرفه‌ای را در شبکه‌های اجتماعی مثل توییتر دنبال کنید؛
  • در رویدادها و محافل برنامه‌نویسی شرکت کنید؛
  • یک زبان برنامه‌نویسی را به عنوان زبان اصلی خوب فرا بگیرید و یکی دو زبان دیگر به عنوان مکمل بیاموزید. کار با زبان‌های متعدد ساختارهای برنامه‌نویسی را بهتر در ذهن شما تثبیت می‌کند؛
  • جستجو در گوگل و پرسش در سایت‌های خوبی مثل Stackoverflow را فراموش نکنید؛
  • سعی کنید آموخته‌های جدید را به زبان خودتان در وبلاگ منتشر کنید. نوشتن و آموزش به دیگران بهترین روش یادگیری است؛
  • در مسابقات و ماراتن‌های برنامه‌نویسی شرکت کنید؛
  • در پروژه‌های متن‌باز و گروهی مشارکت کنید؛
  • فقط کد ننویسید، دربارۀ ساختارهای داده، الگوریتم‌ها، الگوهای طراحی و معماری نرم‌افزار هم اطلاعات کسب کنید.

سید ایوب کوکبی

نویسنده و مترجم...

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *