وقت آن رسیده تا در مورد بهبود مهارتهای برنامهنویسی خود جدی برخورد کنید. پس بگذارید با هم این کار را انجام دهیم.
بهبود مهارتهای برنامهنویسی یکی از اهداف آسان در زمینه پیشرفت شغلی است، اما تبدیل شدن به یک برنامهنویس خفن اصلاً چیز آسانی نخواهد بود. وقتی میگویید که میخواهید "بهتر" شوید، فرض را بر این میگیریم که میدانید منظور از بهتر چیست. خیلی از مردم بهبود پیدا کردن را هدف قرار میدهند، اما اصلاً نمیدانند که چگونه باید به آن دست پیدا کنند.
بنابراین اجازه دهید ۸ دستورالعمل را به اشتراک بگذارم که میتوانند در بهبود مهارتهای برنامهنویسی به شما کمک کنند. این نکات حاصل ۳۵ سال سابقه در عرصه کامپیوتر است و بسیاری از آنها دست رنج افرادی بوده که آنها را جمعآوری و یادداشت کردهاند.
۱. به خودتان یادآوری کنید که چقدر باید یاد بگیرید
اولین قدم در یاد گرفتن یک چیز این است که بفهمید آن را نمیدانید. این موضوع به نظر واضح میآید، اما برنامهنویسان با تجربه زمان زیادی را صرف غلبه بر این ذهنیت شخصی کردهاند. خیلی از دانشجویان علوم کامپیوتر با این طرز فکر مغرورانه فارغ التحصیل میشوند که حالا بهترین چیزها را میدانند. آنها واقعاً احساس میکنند که حتماً باید این موضوع را به همکاران جدید خود ثابت کنند. این نگرش "میدانم چکار میکنم" میتواند مانع یادگیری چیزهای جدید شود.
۲. از تلاش برای اثبات درست بودن خود دست بردارید
برای فوقالعاده شدن، باید از تجربههای خود درس بگیرید. اما مراقب باشید زیرا تجربه میتواند به ما تکرار رفتارهای ضعیف را یاد داده و سبب ایجاد عادات بد شود. همهی ما با برنامهنویسهایی مواجه شدهایم که ۸ سال تجربه کار داشتهاند. برای آنها همان تجربههای سالانه تنها ۸ بار تکرار شده است. اگر میخواهید از این معضل جلوگیری کنید، باید بعد از انجام دادن هر کاری درست به آن نگاه کرده و از خودتان بپرسید که چگونه میتوانم آن را بهتر کنم؟
بسیاری از توسعهدهندگان نرم افزار تازهکار و همچنین افراد با تجربه، تنها برای تحسین کردن کدهای خود به آنها نگاه میکنند. آنها به جای نوشتن تستهایی که باعث شکست کدهایشان میشود، سعی میکنند تستهایی را بنویسند تا نشان دهند که کدهایشان کار میکند. برنامهنویسان واقعی به دنبال جاهایی میگردند که در آن اشتباه کردهاند، زیرا میدانند که بلاخره کاربران نقصهایی که آنان جا گذاشتهاند را پیدا خواهند کرد.
۳. "کد کار میکند" جایی نیست که شما متوقف میشوید؛ بلکه همان جایی است که شما شروع میکنید
اولین قدم شما همیشه نوشتن نرم افزاری با کیفیت است که بتواند انتظارات را برآورده کند. برنامهنویسان معمولی در این مرحله کار را رها کرده و به سراغ مورد بعدی میروند.
وقتی به اصطلاح کارهایتان "تمام میشود"، متوقف کردن اقدامات بعدی مثل این است که شما یک عکس فوری بگیرید و انتظار داشته باشید که آن یک اثر هنری باشد. کدهایتان کار میکند؟ تبریک میگویم اما کارهای شما هنوز تمام نشده است. حالا باید کاری کنید تا آن کد بهتر شود.
بخشی از این فرایند را میتوان تعریف معنای "بهتر" دانست. آیا سرعت بخشیدن به آن ارزشش را دارد؟ نوشتن آن آسانتر است؟ قابلیت استفاده مجدد را دارد؟ قابل اعتماد است؟ پاسخها میتوانند بسته به برنامه متفاوت باشند اما فرایند آن تغییر نخواهد کرد.
۴. آن را سه بار بنویسید
برنامهنویسان خوب نرم افزاری مینویسند که کار میکند، اما برنامهنویسان عالی نرم افزاری را مینویسند که فوقالعاده کار میکند. این کار به ندرت در نخستین تلاش اتفاق میافتد. معمولاً بهترین نرم افزار سه بار نوشته میشود:
ابتدا نرم افزار را مینویسید تا به خودتان یا مشتری ثابت کنید که راهحل مورد نظر قابلیت اجرا دارد. شاید دیگران متوجه نشوند که این تنها یک اثبات است اما شما از این موضوع مطلع هستید.
بار دوم کاری میکنید تا آن طرح کار کند. بار سوم کاری میکنید تا آن طرح به درستی کار کند. وقتی به کارهای بهترین توسعهدهندگان نگاه میکنید، ممکن است این سطح از فعالیت به درستی مشخص نباشد. کارهایی که آنها انجام میدهند به نظر فوقالعاده میآید اما چیزی که ما نمیبینیم این است که حتی توسعهدهندگان درجه یک هم قبل از نشان دادن نرم افزار نهایی خود به دیگران یک نسخهی یک و دو را ساختهاند. دور ریختن کدها و از نو شروع کردن میتواند روشی عالی برای بهتر کردن همه چیز باشد.
۳ بار نوشتن به شما روشهای مختلف مقابله با یک مشکل را یاد میدهد و سبب میشود تا همیشه در حال فعالیت باشید و در موقعیتی خاص گیر نکنید.
۵. کد بخوانید، کدهای خیلی زیادی را بخوانید
احتمالاً حدس میزدید که این نکته را بیان خواهم کرد. در واقع این کار رایجترین و ارزشمندترین کار برای بهبود مهارتهای برنامهنویسی است. چیزی که کمتر دیده میشود، دلایل اهمیت خواندن کدهای دیگران است.
وقتی کدهای دیگران را میخوانید، میتوانید ببینید که دیگران چگونه یک مشکل برنامهنویسی را حل کردهاند. آن را به عنوان یک درس یا چالشی برای بهتر شدن تلقی کنید. از خودتان بپرسید:
چگونه میتوانم آن مجموعه کد را بنویسم؟ حالا که یک راهحل دیگر را مشاهده کردهاید، چه کار متفاوتی را میتوانید انجام دهید؟ چه چیزی یاد گرفتم؟ چگونه میتوانم آن تکنیک را روی کدی که در گذشته نوشتهام اعمال کنم؟ چگونه میتوانم این کد را بهبود ببخشم؟ اگر یک پروژه متن باز در اختیار دارید و از راهحل خود مطمئن هستید، بهتر است آن را انجام دهید. کد را به سبک نویسندهها بنویسید. انجام این کار میتواند به شما کمک کند تا وارد ذهن شخصی که نرم افزار را نوشته شوید و این به نوبه خودش میتواند همدلی شما را بهبود بخشد.
بدون فکر به سراغ این مراحل نروید. پاسخهای خود را در یک ژورنال شخصی، یک وبلاگ، یک فرایند بررسی کد و یا در یک فرم بنویسید. همچنین میتوانید پاسخهای خود را در جوامع توسعهدهندگان نیز مطرح کنید. همانطور که توضیح دادن یک مشکل برای یک دوست میتواند در پیدا کردن راهحل به شما کمک کند، نوشتن و به اشتراکگذاری آنالیزهایتان میتواند به شما کمک کند تا بفهمید که چرا واکنش مشخصی را نسبت به کدهای شخص دیگری از خود نشان میدهید. اینها تماماً بخشی از همان درون بینی است که قبلاً هم ذکر کردم. این کار به شما کمک میکند تا با قاطعیت نقاط قوت و ضعف خود را قضاوت کنید.
اینکه کدهای زیادی را بخوانید و به یک برنامهنویس عالی تبدیل نشوید امری آسان است؛ همانطور که یک نویسنده میتواند ادبیات خوبی را بخواند بدون اینکه نثر خودش را بهبود بخشد. خیلی از توسعهدهندگان در پروژههای متن باز و سایر نرم افزارها به دنبال پاسخهای خود میگردند. آنها کدی را کپی میکنند که به نظر میرسد مشکل مشابهی را حل میکند. در واقع انجام این کار میتواند شما را به یک برنامهنویس بدتر تبدیل کند، چون شما کورکورانه روشهای دیگران را بدون بررسی کردن پذیرفتهاید. ممکن است کدهایی که استفاده میکنید خیلی بزرگ باشند، اما چون شما برای درک کردن آن زمان نگذاشتهاید، هرگز نمیتوانید متوجه شوید که تنها یک منبع باگ را وارد محصول خود کردهاید.
۶. به عنوان تکلیف کدنویسی نکنید
کار بر روی پروژههای شخصی در برنامهنویسی دارای مزایای بسیاری است. این به شما روشی را نشان میدهد تا بتوانید ابزارها و تکنولوژیهایی را بیاموزید که در حرفه فعلی شما در دسترس نیستند اما میتوانند باعث شوند تا بازاریابی بیشتری برای کارهای آتی داشته باشید. چه در یک پروژه متن باز مشارکت داشته باشید و چه در یک سازمان محلی کار کنید، شما مهارتهای فنی و اعتماد به نفس کسب خواهید کرد. همچنین پروژههای شخصی شما به کارفرمایان احتمالی نشان میدهد که شما یک فرد خودآموز هستید و هرگز از یادگیری دست نمیکشید.
یکی دیگر از مزایای تفریحی کدنویسی کردن این است که شما را مجبور میکند تا با روش خاص خودتان به برخی مسائل پی ببرید. نمیتوانید کارهای سخت را به شخص دیگری بسپارید، بنابراین بهتر است ابتدا خودتان به آن مشکل فکر کرده و راهحلی را کشف کنید.
پروژههایی را انتخاب نکنید که هرگز در آنها شکست نمیخورید. شما باید شکست بخورید.
۷. به هر روشی که میتوانید با سایر توسعهدهندگان کار کنید
این کار به شما کمک میکند تا به دیگران گوش دهید. شاید به نظر شما این مثل برنامهنویسی دونفره یا پیوستن به یک گروه برنامهنویسی باشد. وقتی در یک پروژه متن باز شرکت میکنید، به بازخورد گرفته شده از سایر کاربران و توسعهدهندگان دقت داشته باشید. چه نقاط مشترکی را در انتقادات آنها میبینید؟
شاید آنقدر خوش شانس باشید که بتوانید یک مربی شخصی پیدا کنید. میتوانید به او اعتماد کنید تا شما را در کارهایی مثل تکنیکهای کدنویسی، تصمیمات شغلی و غیره راهنمایی کند. این فرصتها را بیهوده هدر ندهید.
۸. به جای ابزار، تکنیک یاد بگیرید
زبانها، ابزارها و روشهای برنامهنویسی گذرا هستند. به همین خاطر است که کسب تجربه در بیشترین زبانها و فریمورکها هزینه زیادی را به همراه دارد. بر روی اصول برنامهنویسی تمرکز کنید، زیرا اصول اولیه هرگز تغییر نمیکند. به جای برنامهنویسی، بیشتر به معماری دقت کنید. اگر مطمئن هستید که تنها یک روش درست برای انجام کاری وجود دارد، یعنی زمان آن رسیده تا واقعیت را بررسی کنید. عقاید تعصبآمیز میتوانند توانایی شما را در یادگیری چیزهای جدید و سازگاری با تغییرات مختل کنند.
من میتوانم این لیست را همچنان ادامه دهم، اما یکی از قوانین اصلی در توسعه شخصی این است که بدانید چه زمانی باید متوقف شوید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید