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

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

كسی در برنامه‌نویسی بهتر است که این 4 ویژگی زیر را در خود تقویت کند:

?- توجه به جزئیات

در برنامه‌نویسی جزئیات مهم هستند. کامپیوترها به‌معنای واقعی کلمه نادان هستند و نمی‌توانید سه‌چهارم برنامه را بنویسید و بعد به آن بگویید: «خودت که می‌دانی منظورم چیست؟» و انتظار داشته باشید کامپایلر بقیه کارها را بکند. اگر زبان برنامه‌نویسی تاکید کند که باید قبل از استفاده از متغیرها آن‌ها را تعریف کنید، باید این کار را بکنید. اگر بگوید پرانتز را فلان‌جا بگذارید و آکولاد را بهمان جا، باید این کار را بکنید.

?- اطاعت

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

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

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

?- حافظه خوب

چیزهای زیادی هستند که هنگام برنامه‌نویسی باید به یاد داشته باشید: گرامر آن زبان، توابع از پیش نوشته شده و پارامترهایی که می‌گیرند، توابع و متغیرهایی که در برنامه خود نوشته‌اید و از آن‌ها استفاده کرده‌اید، تکنیک‌هایی که استفاده کرده‌اید و باگ‌هایی که از برنامه رفع کرده‌اید. هر چه بیشتر این اطلاعات را در ذهن خود نگاه دارید، برنامه‌نویس بهتری خواهید بود.

?- انتزاعی و چندسطحی اندیشیدن

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

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

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

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

بهتر است در مورد عملکرد ساختار سلسله‌مراتبی برنامه فكر كنید و از این ساختار سلسله‌مراتبی استفاده کنید تا در مورد هر سطح و هر تابع برنامه نگران نباشید.