کارکردن به عنوان یک برنامه نویس نرمافزار در صنعت IT دارای چیزی است که ما را به طور روزانه به محل کار میکشاند؛ شوق و علاقهای که در برنامهنویسی نهفته است. اما برای اینکه این شوق و علاقه دائمی باشد، فرد باید بداند در گام اول، یادگیری و پیروی از برخی اصول اولیه است که او را به یک برنامه نویس خوب تبدیل میکند.
" برنامه نویس خوب کسی است که همیشه قبل از عبور از یک خیابان یک طرفه، به هر دو طرف نگاه میکند " داگ لیندر
قرار نیست در این مقاله فرمول جادویی به شما بگویم تا با استفاده از آن تبدیل به یک برنامه نویس خوب شوید اما هدف این است لیستی از نکاتی را که من در این حوزه یاد گرفتم و آنها را پیاده کردهام و به واسطه آنها به نتایج خوبی رسیدم را به شما ارائه کنم.
تعریف مشخصی از یک برنامه نویس خوب وجود ندارد اما ما در اینجا برای این تعریف، به دستهای از برنامهنویسان اشاره میکنیم که راهحلهای خوبی در صنعت IT پیدا کردهاند و به رشد کلی این حوزه کمک شایانی کردهاند.
۱. کار روی مبانی
درک مفهومی از اصول کلی در هر شغل و صنعتی، کلید موفقیت در آن حوزه به شمار میرود. اگر کسی پایه و اساس مفهومی قوی نداشته باشد، هرگز نمیتواند یک برنامه نویس خوب باشد. درک مفاهیم اصلی به شما کمک میکند تا بهترین راهحلها را به بهترین وجه ممکن طراحی و پیادهسازی کنید. اگر هنوز در مفاهیم اصلی رایانه و مفاهیم جزئی در زبان برنامهنویسی خود، احساس ضعف میکنید، هرچه سریعتر به عقب برگردید و برای تقویت آنها تلاش کنید.
۲. با نوشتن هر قطعه کد از خود بپرسید چه چیزی / چگونه
من در طول دوران فعالیتم متوجه شدم که خط جداکننده میان برنامهنویسان خوب و باقی آنها، این است که برنامهنویسان خوب میدانند چه چیزی اتفاق میافتد و چگونه اتفاق میافتد. گروه کوچکی از برنامهنویسان وجود دارند که هرگز نمیتوانند کد خود را بدون اینکه بدانند دقیقا در حین اجرا چه کار میکند، رها کنند. من میدانم که در برخی اوقات که زمان کافی وجود ندارد، این آزادی را نداریم که کد خود را کاملا درک کنیم و به اینکه کد تنها خود را انجام دهد، اکتفا میکنیم. اگر چه مساله کنترل و ادارهکردن شرایط سخت موضوعی متفاوت است اما بهعنوان یک برنامهنویس همیشه باید سعی کنید تا کد خود را عمیقا درک کنید و باور کنید این کار با گذشت زمان تبدیل به عادت خواهد شد و بعد از مدتی به صورت ناخودآگاه آن را انجام خواهید داد.
۳. با کمک به دیگران بیشتر یاد میگیرید
بیشتر ما تمایل داریم که تنها در صورت نیاز به کمک به انجمنها و فرومهای اینترنتی مراجعه کنیم. مجددا یک خط جداکننده دیگر میان برنامهنویسان خوب و باقی برنامهنویسان این است که برنامهنویسان خوب در اکثر مواقع برای کمک به دیگران به این انجمنها مراجعه میکنند. این باعث میشود آنها یاد بگیرند که بیشتر بدانند و مشکل خود را توسط شخص دیگری حل کنند. همچنین برنامهنویسان خوب در تیم نیز به دیگران کمک میکنند تا مشکلات خود را حل کنند. باور کنید درک مشکلات دیگران، تحقیق درباره آنها و ارائه راهحل مناسب و کارآمد، بسیار بیشتر از مطالبی که در گذشته آموختید به شما میآموزد.
۴. کدهای خود را ساده، قابل فهم اما منطقی بنویسید
مانند بسیاری از جنبههای زندگی، فرمول ( آن را کوتاه و ساده نگه دارید KISS (keep it short and simple، در برنامهنویسی نیز صدق میکند. کدی منطقی بنویسید و تا حد امکان از پیچیدگی در نوشتن کدها خودداری کنید. برخی اوقات افراد تنها برای اثبات تواناییهای خود در برنامهنویسی، کدهای پیچیده و غیرقابل فهم مینویسند. تجربه من میگوید که کدهای ساده اما منطقی همیشه بهتر کار میکنند، منجر به باگهای کمتری میشوند و به راحتی توسعهپذیر هستند. یک نقل قول عالی را به خاطر میآورم:
"کدهای خوب به تنهایی بهترین مستندات برای یادگیری هستند. در حین اضافهکردن کامنت به کد خود و توضیح درباره آن، از خود بپرسید چگونه میتوانم این کد را بهبود ببخشم تا نیازی به این کامنت نباشد؟" استیو مک کانل
۵. برای تجزیه و تحلیل مشکل زمان بیشتری صرف کنید تا رفع آن کمتر طول بکشد
زمان بیشتری را برای درک و تحلیل مساله و طراحی راهحل برای آن صرف کنید تا انجامدادن باقی موارد سادهتر شود. طراحی همیشه به معنای استفاده از زبانها یا ابزارهای مدلسازی نیست بلکه میتواند به آسانی نگاه کردن به آسمان و فکرکردن درباره راهحل در ذهن شما باشد. برخی افراد عادت دارند در همان ابتدا شروع به کدنویسی کنند و مشکلات پیشآمده را به صورت لحظهای برطرف میکنند و معمولا چیزی متفاوت از نیاز کارفرما را تحویل خواهند داد.
"اگر در هنگام دوشگرفتن نتوانید ساختار کلی برنامه را در ذهن خود مجسم کنید، برای نوشتن کد آن آماده نیستید." ریچارد پاتیس
۶. اولین کسی باشید که کد خود را تجزیه و تحلیل میکند
اگر چه ممکن است کمی دشوار باشد اما سعی کنید قبل از دیگران، کد خود را عیبیابی کنید. با انجام این کار و گذشت زمان یاد خواهید گرفت که کدی را بدون عیب و نقص بنویسید. همیشه یک بررسی دقیق و بیطرفانه از کد خود انجام دهید. همچنین هرگز از اینکه دیگران کد شما را ببینند، نترسید. کار با برنامهنویسان خوب و گرفتن بازخورد از آنها مطمئناً به شما کمک میکند تا به یک برنامهنویس خوب تبدیل شوید.
۷. خود را با نگاهکردن به تغییرات دنیای فناوری، ناراحت نکنید
در طی دوران فعالیتم در این حوزه با افراد زیادی روبرو شدم که از کار خود ناامید شده بودند یا بعضا آن را ترک بودند تا به دنبال شغل جدیدی بگردند و میگفتند که میخواهند آخرین فناوریهای روز را یاد بگیرند و در آن حوزهها کار کنند. من مشکلی با این آرزو ندارم اما مساله اصلی من با عبارت نادرست "آخرین فناوری" است. عبارتی که ما هر روز آن را میشنویم اما حقیقتا ابزارهای جدید، APIها، فریمورکها و موارد دیگر روز به روز در حال پیشرفت هستند تا برنامهنویسی را آسانتر و سریعتر کنند. این فرآیند به هر حال در دنیای فناوری ادامه خواهد یافت اما آنچه باید درک شود این است که هسته اصلی و فناوریهای اساسی با سرعت بسیار کمتری نسبت به فریمورکها، ابزارها و APIهای مرتبط با خود، تغییر میکنند. این مانند دریایی است که آبهای سطحی در آن به سرعت حرکت میکنند اما آبهای نسبتا عمیق آرام و متمرکز هستند و بیشتر آبزیان در آنها زنده میمانند. بنابراین خود را در آن آب عمیق و نزدیک به فناوریهای اساسی احساس کنید. برای مثال در دنیای جاوا، فریمورکهای زیادی وجود دارند و هر هفته نیز به تعداد آنها اضافه میشود اما مفاهیم اصلی مانند ارتباط مبتنی بر درخواست کلاینت-سرور، الگوی MVS، فیلترها، سرویسها، JSP، تجزیه و تحلیل XML و... همچنان یکسان هستند. بنابراین به جای نگرانی در مورد تغییر فریمورکها و ابزارهای مربوط به آنها، بیشتر وقت خود را برای یادگیری مفاهیم اصلی صرف کنید. باور کنید با درک درست از مفاهیم اصلی، یادگیری فریمورکها، ابزارها و APIهای جدید بسیار آسانتر خواهند شد.
۸. راهحلهای مناسب ارائه دهید
بسیاری از اوقات برنامهنویسان راهحلهایی را ارائه میدهند که در آینده به دلایل مختلفی مانند کمبود وقت، عدم درک صحیح مساله یا عدم داشتن تجربه، مشکلساز میشوند؛ مشکلاتی مانند عدم قابلیت توسعهپذیری و دشواری در فهم راهحل برای افراد دیگر. این راهحلهای مشکلساز زمان زیادی را تلف میکنند و بهتر است که در همان ابتدا از راهحلی استفاده شود که در آینده نیز قابلیت توسعه داشته باشد. من میدانم در بعضی مواقع شرایط اجتنابناپذیر میشود اما مانند این است که انسان باید همیشه راستگو باشد اما در برخی شرایط نیز دروغ میگوید.
۹. داکیومنتها (مستندات) را بخوانید
یکی از عادتهای مهم برنامهنویسان خوب این است که داکیومنتهای زیادی را میخوانند. ممکن است که این داکیومنتها، داکیومنت JSR، داکیومنت API و یا داکیومنتهای فنی دیگر باشد. خواندن داکیومنتها به شما کمک میکند تا پایه فنی خود را محکم کنید و جزئیترین مطالب را بیاموزید.
۱۰. از کدهای دیگران بیاموزید
من همیشه با تعدادی از برنامهنویسان حرفهای جاوا در تعامل بودهام و خواندن کدهای آنها را در برنامه روزانهام قرار میدادم. از شما هم میخواهم که این کار را انجام دهید. خواندن کدهای برنامهنویسان حرفهای نه تنها به یادگیری بهتر اصول کمک میکند بلکه راههای نوشتن یک برنامه خوب را نیز به شما آموزش میدهد. همچنین خواندن کد پروژههای Open Source به شما در تبدیلشدن به یک برنامه نویس خوب کمک میکند.
و بهعنوان آخرین مورد که در بالا اشارهای به آن نشد باید بگویم: خود را با دیگران مقایسه نکنید.
مقایسهکردن خودتان با دیگران تنها منجر به ایجاد احساسات منفی و رقابت غیرسالم خواهد شد. هر کسی نقاط ضعف و قوت خود را دارد. مهمتر این است که ما خودمان را درک کنیم و روی رشد خودمان کار کنیم. من بارها دیدهام که حرفهایترین برنامهنویسان نیز مرتکب اشتباهاتی شدند. بنابراین خود را تجزیه و تحلیل کنید و زمینههایی که باید در آنها رشد کنید را بیابید و روی آنها کار کنید تا تقویت شوند. در پایان به خاطر داشته باشید که برنامهنویسی یک سرگرمی واقعی است؛ از آن لذت ببرید.
"هر احمقی میتواند کدی بنویسد که یک کامپیوتر آن را بفهمد. برنامهنویسان خوب کدی را مینویسند که انسان بتواند آن را بفهمد." مارتین فاولر
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید