محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

10 نکته برای افزایش مهارتهای برنامه نویسی که باید بدانید

چگونه مهارت برنامه نویسی را تقویت کنیم؟ چطور برنامه نویس بهتری بشویم؟ یکی از اقوام سابق ( الان دیگه جزو فامیل حسابش نمی کنم D: ) وقتی وارد رشته نرم افزار کامپیوتر شدم به من گفت ، رشته کامپیوتر یک رشته اشباع شده است و دیگه جایی برای رشد ندارد ... این حرف شاید تا حدودی درست باشد .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

امروزه هر کسی می تواند ادعا کند کارشناس شبکه های کامپیوتری است اما چند نفر می توانند ادعا کنند یک طراح خوب شبکه هستند که در سطح کلان می توانند راهکار ارائه کنند ؟ امروزه هر کسی می تواند ادعای برنامه نویس بودن داشته باشد اما چند نفر واقعا علم و دانش و قدرت برنامه نویسی دارند ؟

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

چگونه یک برنامه نویس خوب شویم ؟

1- بصورت کاملا شفاف مسئله را تجزیه و تحلیل کنید و نیازمندی های برنامه را کاملا مکتوب کنید

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

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

چگونه یک برنامه نویس خوب شویم ؟

2- همیشه دو بار یا بیشتر برای حل یک مشکل فکر کنید و راهکارهای متنوع ایجاد کنید

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

باید راهکارهای مختلف برای حل یک مشکل را داشته باشید ، دید تک بعدی باعث می شود همیشه برای یک مشکل یک راهکار بیشتر نداشته باشید، این روش عملکرد انعطاف پذیری شما را کم می کند. یک برنامه نویس عالی همیشه انعطاف پذیر است و برای حل یک مسئله چند راهکار را مد نظر می گیرد و بهترین را پیاده سازی می کند.

چگونه یک برنامه نویس خوب شویم ؟

3- یک طرح یا مدل کامل پیاده سازی بنویسید

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

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

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

چگونه یک برنامه نویس خوب شویم ؟

4- روی کدهای خود حتما توضیحات بنویسید

یکی از مشکلاتی که متاسفانه اکثر برنامه نویس های ما با آن مواجه هستند این است که هیچ مستنداتی حتی برای خودشان در زمان کدنویسی ایجاد نمی کنند که از طریق آن متوجه بشوند که کدی که در حال حاضر نوشته اند چه کاری انجام می دهد ؟ البته برخی برنامه نویس ها اعتقاد دارند که می دانند کدهایشان چه کاری انجام می دهند اما آیا یک سال دیگر هم حضور ذهن حال حاضر خود را دارند ؟

یا شاید اگر احتمالش را بدهیم که قرار باشد سورس کد برنامه را به یک نفر دیگر بدهیم آیا آن شخص مورد نظر از کد ما سر در می آورد ؟البته در ایران همیشه سعی اکثر برنامه نویسان این هست که دیگران از کد آنها سر در نیاورند ( باور کنید ... میگید نه ... بپرسید D: ) البته حق هم دارند به دلایلی ...

اگر احساس می کنید قطعه کدهایی که نوشته اید نیاز به توضیحات دارند در همان سورس و روبروی کد نوشته شده توضیحات مربوطه را برای خودتان حداقل بنویسید. هر Function در یک برنامه باید حداقل یک یا دو خط توضیحات داشته باشند که در خصوص آرگومان ها و مقادیر بازگشتی نرم افزار توضیح دهد. همیشه یک برنامه نویس حرفه ای برای کدهایش توضیحات می نویسد و البته بعد از اضافه کردن و تغییر دادن کدها توضیحات کدها را نیز بروز رسانی می کند.

فردا خودمو تعطیل کردم تا دیروقت بیدارم

5- برای نامگذاری متغیرها یک قاعده و قانون ثابت در نظر بگیرید

قطعا شما به عنوان یک برنامه نویس کاربرد متغیر یا Variable را می دانید ، مفهومی که دائما در حال تغییر است و مقادیر آن دائما در حال تغییر هستند. شما باید به عنوان یک برنامه نویس حرفه ای بدانید که در هر جای کد برنامه اگر متغیری را پیدا کردید از روی نام آن متوجه شوید که کاربردش چیست و چه مقداری درون آن قرار می گیرد.

برای مثال شما می دانید که در کدی مثل x=a+b×c مقدار x یک متغیر یا Variable است که ممکن است در طی برنامه تغییر کند اما آیا می توانید در برنامه واقعی خود نیز از x به عنوان یک نام متغیر استفاده کنید ؟ x در اینجا چه مفهومی دارد و چه مقداری را بر می گرداند ؟

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

یکی از معروف ترین روش ها و تکنیک های تعریف کردن اسامی متغیرها به نام روش مجارستانی یا Hungarian است. در این تکنیک به شما گفته می شود که نوع متغیر را بصورت خلاصه در ابتدای نام متغیر بیاورید و در ادامه اسم کامل متغیر را بنویسید. برای مثال برای تغریف یک متغیر از نوع Integer برای شمارش ردیف کافیست آن را به شکل intRowCounter معرفی کنیم . یا برای تعریف نام کاربری از جنس String به شکل strUserName استفاده می کنیم.

6- کدهای خود را سازماندهی کنید

برای کدنویسی خود یک سری قاعده و قانون تعریف کنید که از نظر نمایشی هم کدهای شما زیبا جلوه کند. از نظر کامپیوتر شما به هر شکلی که کد نویسی کنید فرقی نمی کند اما از نظر یک برنامه نویس حرفه ای ، کد نویسی یک هنر است و باید در نحوه نمایش کدها نیز دقت کنید.

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

حتی قرار دادن یک فاصله بین اسم متغیر و جمع و تفریق و ... می تواند به زیبایی هر چه بیشتر کد شما کمک کند. اینکار باعث می شود کد شما زیبا شود و بعدها بتوانید راحت تر با آن ارتباط برقرار کنید و رفع اشکال یا Debug را انجام دهید به قطعه کد زیر توجه کنید :

<!-- directives -->
<% @Page Language="C#" %>

<!-- code section -->
<script runat="server">

   private void convertoupper(object sender, EventArgs e)
   {
      string str = mytext.Value;
      changed_text.InnerHtml = str.ToUpper();
   }
</script>

<!-- Layout -->
<html>
   <head> 
      <title> Change to Upper Case </title> 
   </head>
   
   <body>
      <h3> Conversion to Upper Case </h3>
      
      <form runat="server">
         <input runat="server" id="mytext" type="text" />
         <input runat="server" id="button1" type="submit" value="Enter..." OnServerClick="convertoupper"/>
         
         <hr />
         <h3> Results: </h3>
         <span runat="server" id="changed_text" />
      </form>
      
   </body>
   
</html>

حالا همان کد بالا را به شکل زیر تصور کنید ، به نظر شما کدامیک زیباتر کد نویسی شده است ؟

<!-- directives -->
<% @Page Language="C#" %>
<!-- code section -->
<script runat="server">
private void convertoupper(object sender, EventArgs e)
{
string str = mytext.Value;
changed_text.InnerHtml = str.ToUpper();
}
</script>
<!-- Layout -->
<html>
<head> 
<title> Change to Upper Case </title> 
</head>
<body>
<h3> Conversion to Upper Case </h3>
<form runat="server">
<input runat="server" id="mytext" type="text" />
<input runat="server" id="button1" type="submit" value="Enter..." OnServerClick="convertoupper"/>
<hr />
<h3> Results: </h3>
<span runat="server" id="changed_text" />
</form>
</body>
</html>
چگونه یک برنامه نویس خوب شویم ؟

7- همه چیز را تست کنید

هر کدام از ماژول ها و یا Function های نرم افزار خود را به دقت بررسی کنید و آزمایش ها و تست های لازم در خصوص نحوه عملکرد و ورودی و خروجی های هر کدام را انجام دهید. این کاری است که بیشتر Bug های ناپیدای نرم افزار شما را نمایش خواهد داد. تست کردن یک نرم افزار برای پیدا کردن خطاهای احتمای یک هنر است که یک برنامه نویس بر اثر تمرین زیاد به دست می آورد.

همیشه برای فیلدهای ورودی نرم افزارهای خود به ویژه نرم افزارهای آنلاین تحت وب وارد شدن مقادیر غیر منتظره و ناشناخته را که ممکن است ساختار شما را دچار مشکل کند در نظر بگیرید و مکانیزم های Input Validation را در نرم افزار پیاده سازی کنید.

چگونه یک برنامه نویس خوب شویم ؟

8 - تمرین کنید ، تمرین کنید و تمرین کنید

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

برنامه نویسی یک موجودیت ایستا و ثابت نیست و دائما در حال رشد است. همیشه و همیشه چیز جدیدی برای یادگیری وجود دارد و همیشه هم یک چیز قدیمی برای یادگیری وجود دارد که شما آن را فراموش کرده اید. یکی از زیبایی هایی که در عرصه تولید نرم افزار وجود دارد همین به روز بودن و یادگیری مستمر است. بنابراین برای اینکه یک برنامه نویس حرفه ای بشوید همیشه سعی کنید تمرین کنید و یاد بگیرید.

چگونه یک برنامه نویس خوب شویم ؟

9- همیشه آماده تغییر باشید

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

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

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

گرفتن تاییده در هر مرحله باعث می شود با خیال آسوده تری ادامه پروژه را انجام دهید و نگران تغییرات ناگهانی نباشید. با اینکار شما در هر مرحله از پروژه یک مدت زمان مشخص برای معرفی مرحله کاری خود خواهید داشت که تمامی تمرکز شما به آن مختص می شود.

10- ساده شروع کنید و کم کم پیچیدگی ها را اضافه کنید

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


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات