مقالات و اخبار
 
نويسندگان
عضویت
نام کاربری :
پسورد :
تکرار پسورد:
ایمیل :
نام اصلی :
آمار
امروز : 18
دیروز : 19
افراد آنلاین : 1
همه : 527
چت باکس

واقعيت اين است كه اگر ديدگاهي خطي نسبت به برنامه‌نويسي داشته باشيم، وجود برنامه‌نويسي كه ۱۰ برابر قدرتمندتر از يك برنامه‌نويس عادي باشد، فرضي محال خواهد بود؛ مثلاً دونده‌اي را در نظر بگيريد كه ۱۰ برابر سريع‌تر از يك دوندۀ خوب مي‌دود و بديهي است اين تصور در عمل نمي‌تواند رخ دهد. اما كاري كه برنامه‌نويس انجام مي‌دهد مانند كار يك دونده نيست! برنامه‌نويسي شامل يك رشته فعاليت‌هاي طراحي شده است كه به نحو بسيار ويژه‌اي با هم در ارتباط هستند. به عبارت ديگر يك برنامه‌نويس بايد قادر به طراحي و اجراي مجموعه‌اي از فعاليت‌هاي مرتبط با هم باشد.

ماهان گستر طاها ارائه دهنده كامل ترين بانك موبايل مشاغل ايران

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

با چنين ديدگاهي، معناي قدرت ۱۰ برابري يك برنامه‌نويس نسبت به برنامه‌نويس ديگر روشن‌تر مي‌شود؛ يك برنامه‌نويس اسطوره‌اي، هدف‌گرا بوده و توانايي‌هاي خود را براي دستيابي به هدف در كمترين زمان و با كمترين تلاش به كار مي‌گيرد. حالا سوال اينجا است كه ويژگي‌هاي برنامه‌نويس اسطوره‌اي كه بهره‌وري او را تا اين حد افزايش مي‌دهد چيست؟ چه چيزي يك برنامه‌نويس اسطوره‌اي را از يك برنامه‌نويس عادي متمايز مي‌كند؟ در ادامه به شرح اين موارد خواهيم پرداخت.

برخورداري از مهارت‌هاي پايه‌اي برنامه‌نويسي‌‌ + تفكر الگوريتميك
يكي از بارزترين تفاوت‌هاي برنامه‌نويس اسطوره‌اي با برنامه‌نويس عادي، توانايي پرداختن به وظايف جزئي در حين برنامه‌نويسي است. اين وظيفۀ جزئي مي‌تواند نوشتن يك فانكشن، يك الگوريتم و يا هر چيز ديگري باشد؛ شايد بگوييد اين كاري است كه همۀ برنامه‌نويسان انجام مي‌دهند اما اين‌طور نيست و همۀ برنامه‌نويسان قادر نيستند اين كار را در كوتاه‌ترين زمان و با كمترين كدنويسي انجام دهند. حتي گاهي ممكن است برنامه‌نويسي با سطح دانش پايين‌تر اما برخورداري از تفكر الگوريتيمك و نگاه كردن به قضايا از زواياي مختلف، راه‌حل به مراتب بهتر و ساده‌تري را نسبت به يك برنامه‌نويس با سطح دانش تئوري بالاتر ارائه دهد.

تجربه و تطابق با الگوها
منظور از تجربه، آگاهي عملي نسبت به مجموعه‌اي از راه‌حل‌هاي آزموده ‌شده و تكراري براي يك مسئله است؛ يك برنامه‌نويس اسطوره‌اي با تكيه بر تجاربي كه از الگوي‌هاي ارائه شده براي مسائل مشابه قبلي اندوخته است، در نهايت راه‌حلي بهينه براي صرفه‌جويي در وقت و هزينه و همچنين دوري از خطاهاي طراحي و ساده‌نويسي كدها پيدا مي‌كند.

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

بديهي است كه وجود اين دلايل و تلاش براي افزايش تمركز، به طور جانبي سبب كاهش كارايي برنامه‌نويس خواهد شد. برنامه‌نويس اسطوره‌اي قبل از شروع كار، عوامل دروني و بيروني كاهش تمركز را برطرف مي‌كند و همكاران، دوستان و اطرافيانش به خوبي مي‌دانند كه در حين كار، نمي‌بايست مزاحم وي شوند.

توانايي تمايز قائل شدن مابين اهداف اصلي و فرعي پروژه
همۀ پروژه‌ها علاوه بر اهداف اصلي، شامل اهداف فرعي متعددي نيز هستند؛ اغلب پيچيدگي‌هاي طراحي هنگامي به وجود مي‌آيند كه طراح به جاي تمركز بر اهداف اصلي، بيشتر وقت خود را صرف پرداختن به اهداف فرعي مي‌كند. اين موضوع گاهي ممكن است دستيابي به هدف اصلي را نيز با مشكل مواجه كند، از اين رو توانايي تشخيص اهداف اصلي از اهداف فرعي براي يك طراح بسيار مهم است.

يك برنامه‌نويس اسطوره‌اي براي اين‌كه بتواند با كمترين تلاش و در كمترين زمان به بهترين نتيجه برسد، بايد قادر به تشخيص اهداف اصلي از فرعي بوده و بتواند در صورت لزوم از پرداختن به اهداف فرعي صرف نظر كند.

ساده‌نويسي
براي درك مفهوم سادگي بهتر است به درك عوامل ايجاد پيچيدگي بپردازيم. نداشتن اولويت اهداف اصلي نسبت به اهداف فرعي و مرتكب شدن اشتباهات بيش از حد در طراحي، يكي از عوامل عمدۀ ايجاد پيچيدگي در پياده‌سازي پروژه‌هاي نرم‌افزاري است.

اگر هر بار كه با يك خطاي طراحي مواجه مي‌شويد، به جاي طراحي مجدد آن بخش، به ارائه راه‌حل ديگري براي رفع اين اشكال مي‌پرازيد، بايد بدانيد كه اين كار شما را از راه‌حل بهينه دورتر و دورتر مي‌كند! حفظ اين بخش‌هاي نادرست و تلاش براي حل آن‌ها، خود اشتباه ديگري است و اين اشتباهات پي‌درپي در نهايت موجب پيچيدگي طراحي خواهند شد.

راه‌كار درست اين است كه بخش‌هاي اشتباه به طور كامل حذف شده و مورد طراحي مجدد قرار بگيرند. برنامه‌نويس اسطوره‌اي با ساده‌نويسي بخش به بخش مسئله، در نهايت به راه‌حل ساده‌اي براي كل مسئله دست خواهد يافت. علاوه بر اين، تجربه و مهارت‌هاي شخصي طراح نرم‌افزار نيز در اين زمينه به كمك او آمده و ارائهٔ راه‌حل‌هاي معقول‌تر و ساده‌تر را دست يافتي‌تر مي‌كند (بنابراين هر وقت متوجه شديد كه راه‌حل پيچيده‌اي را ارائه داده‌ايد، ابتدا به ساده‌سازي آن فكر كنيد و اگر مشخص شد كه ساده‌سازي آن امكان‌پذير نيست، اين راه‌حل را كنار گذاشته و به دنبال يك راه‌حل جايگزين و ساده باشيد.)

كمال گرايي
كمال‌گرايي ممكن است به صورت يك ويژگي شخصيتي و يا به صورت يك تعصب مهندسي -مبني بر اين‌كه بايد به بهترين و كامل‌ترين راه‌حل دست پيدا نمايم- بروز نمايد. صرف نظر از اين‌كه اين ويژگي در كدام يك از اين دو حالت ظاهر شود، كمال‌گرايي مي‌تواند بزرگ‌ترين سد دستيابي يك برنامه‌نويس به راه‌حل‌هاي سريع و ساده باشد.

كمال‌گرايي و ترس از قضاوت بيروني، منجر به تصميم‌گيري بر اساس عوامل صرفاً روانشناختي و بي‌اهميت شده و سبب مي‌شود تا عوامل مهمي مانند بهينگي، سادگي و سرعت ناديده گرفته شوند! برنامه‌نويس اسطوره‌اي عليرغم اين‌كه حداكثر تلاش خود را براي دستيابي به بهترين نتيجه انجام ‌مي‌دهد، كمال‌گرا نبوده و اصراري بر خاص و بي‌بديل بودن برنامۀ نوشته شدۀ خود ندارد!

دانش
آگاهي كلي در زمينه‌هاي مرتبط با مسئله يكي ديگر از ويژگي‌هاي برنامه‌نويس اسطوره‌اي است. در هنگام مواجهه با مسائل پيچيده، آگاهي از ساختار داده‌ها، محدوديت‌هاي محاسباتي اصلي و الگوريتم‌هاي متناسب با مسئلۀ پيش‌رو و ...، مي‌تواند بر توانايي حل مسئله تاثيرگذار باشد. البته منظور ما اين نيست كه در همۀ اين زمينه‌ها بايد متخصص باشيد، منظور داشتن يك دانش كلي و در حد مورد نياز براي ارائه راه‌حل مناسب است.

درك سطح پايين و آگاهي از نحوۀ عملكرد كامپيوتر
ويژگي ديگري كه موجب افزايش چشمگير قدرت و توانايي برنامه‌نويس مي‌شود، درك نحوۀ عملكرد كامپيوتر است. حتي هنگامي كه برنامه‌نويسي در يك زبان سطح بالا صورت مي‌گيرد، باز هم عدم درك درست از اين موضوع مي‌تواند منجر به بروز مشكلاتي شود. چنين مشكلاتي ممكن است با طراحي و اجراي مجدد برنامه نيز حل نشوند زيرا مشكل اصلي كه در ابزارها و الگوريتم‌هاي مورد استفاده است، همچنان پابرجا است. در چنين مواردي، داشتن يك دانش نسبي در مورد زبان C، درك نحوۀ كار CPU و آگاهي از نحوۀ كار پردازند و نحوهٔ اجراي دستورات در سيستم است كه مي‌تواند به برنامه‌نويس كمك كند (توصيه مي‌كنيم براي درك بهتر اين موضوع، به مقالهٔ آيا واقعا با وجود زبان‌هاي پيشرفته، نيازي به يادگيري زبان C هست؟ مراجعه نماييد.)

مهارت ديباگ كردن
يك برنامه‌نويس اسطوره‌اي مهارت خوبي در ديباگ نمودن كدها دارد؛ مجموع مهارت‌هاي يك برنامه‌نويس در يافتن باگ‌ها، ديباگ كردن در طي چند مرحلۀ منطقي، گرايش به ساده‌نويسي كد‌ها -كه خود موجب كاهش باگ‌ها مي‌شود- مي‌تواند موجب افزايش بهره‌وري برنامه‌نويس شود.

سخن پاياني
در اين مقاله به بيان ويژگي‌هاي مرتبط با يك برنامه‌نويس به اصطلاح «اسطوره‌اي» پرداختيم كه موجب افزايش بهره‌وري و كارايي برنامه‌نويسان مي‌شوند. اگر مجموعه مهارت‌هايي كه در بالا گفته شد در يك برنامه‌نويس جمع شوند، اصلاً عجيب نيست كه وي كارايي ۱۰ برابري نسبت به ساير برنامه‌نويسان داشته باشد. جمع شدن همۀ اين مهارت‌ها در كنار يكديگر، فضايي براي برنامه‌نويس ايجاد مي‌كند كه در هر محله از توسعهٔ نرم‌افزار، توسعه‌دهنده به دنبال ساده‌ترين و كوتاه‌ترين راه‌حل بوده و تمام تلاش خود را به كار مي‌بندد تا مسئلۀ پيش‌رو را با كمترين تلاش و در كمترين زمان حل نمايد.

امتیاز:
 
بازدید:
[ ۲۲ اسفند ۱۳۹۵ ] [ ۰۸:۰۵:۳۰ ] [ vahid ]
ارسال نظر
نام :
ایمیل :
سایت :
پیام :
خصوصی :
کد امنیتی :
[ ]
.: Weblog Themes By tinablog :.

درباره وبلاگ

طراحي فروشگاه اينترنتي و سايت ساز با بيش از 130 امكان مختلف و منحصر بفرد در ايران سايت ما : pineportal.com
پنل کاربری
نام کاربری :
پسورد :
لینک های تبادلی
فاقد لینک
تبادل لینک اتوماتیک
لینک :
خبرنامه
عضویت   لغو عضویت
امکانات وب

|