در خدمت شما هستیم با مقاله برنامه نویسی به سبک یک اسطوره از وب سایت آموزش برنامه نویسی سورس باران. برنامه نویسی بیشتر از آنکه یک تخصص باشد یک هنر است. همه مردم میتوانند برنامه نویسی یاد بگیرند، اما تنها تعداد کمی از آنها برنامه نویسان حاذق یا به عبارت دقیقتر یک اسطوره میشوند.
یک برنامه نویس اسطورهای فردی است که میتواند چند برابر بیشتر از یک برنامه نویس عادی در زمان یکسان کدنویسی کند. یک برنامه نویس عادی، فردی است که با کد نویسی آشنایی دارد و میتواند کدهای خوبی بنویسد، اما تواناییهای خارقالعاده یک برنامه نویس حاذق را ندارد
برنامه نویسی به سبک یک اسطوره
جامعه برنامه نویسان دیدگاه خاصی در ارتباط با یک برنامه نویس اسطورهای دارند. برخی معتقد هستند که اساساً چنین فردی وجود ندارد که بتواند چند برابر بیشتر از یک برنامه نویس عادی کدنویسی کند، گروه دیگر بر این باور هستند که چنین فردی در حال حاضر وجود ندارد، اما اگر کمی در تاریخچه برنامه نویسی جستوجو کنیم، احتمالا چنین شخصی را میتوانیم بیابیم. شاید با خواندن این چند خط سوال کنید یک برنامه نویس اسطورهای کیست و چه مهارتهایی دارد که او را متفاوت از سایر برنامه نویسان میکند. در این یادداشت کوتاه میخواهم به نکاتی اشاره کنم که با رعایت آنها میتوانید در مسیر اسطوره شدن گام بردارید.
ابتدا باید دیدگاه خود را تغییر دهید و بدانید که برنامه نویسی یک رویکرد خطی نیست. برنامه نویسی زنجیره ای از کارهای مرتبط است که به شکل مستقیمی با یکدیگر در ارتباط هستند. یک برنامه نویس خبره میداند که چگونه طراحی کند و عناصر تشکیلدهنده یک پروژه را با یکدیگر مرتبط کند. با این توصیف طراحی، کدنویسی و اجرای برنامهها یک قابلیت خطی نیستند، زیرا فاکتورهای دیگری همچون تجربه، مهارت کدنویسی، سطح دانش و تخصص، شناسایی مولفههای غیرضروری یک برنامه هم مطرح هستند. هر یک از این خصلتها به شکلی کاملا ظریف و پیچیده با یکدیگر مرتبط شدهاند. پیچیدگی فوق زمانی دو چندان میشود که یک برنامه نویس به شکل منفرد هر سه فرآیند طراحی، پیادهسازی و اجرا را انجام میدهد. برنامه نویسانی که خارج از ایران به شکل قراردادی با شرکتهای بزرگ نرمافزاری کار میکنند چنین ویژگی را دارند. با نگاهی موشکافانه به این مسئله متوجه میشویم که ایده کدنویسی چند برابری نسبت به یک برنامه نویس عادی دور از واقعیت نیست. کد نویسان نخبه، واقعیتگرا و هدفگرا هستند و سعی میکنند از تواناییهای ذاتی خود برای رسیدن به هدف ترسیم شده در کمترین زمان و با کمترین زحمت ممکن استفاده کنند.
یکی از ملموسترین تفاوتهای برنامه نویسان عادی با نخبه در طرز نگرش آنها به جزییات برنامه نویسی مستتر است. کنکاش در جزییات میتواند در ارتباط با نوشتن یک تابع، الگوریتم یا هر موضوع مرتبط با پروژه باشد. ممکن است جمله من را اینگونه نقد کنید که همه برنامه نویسان اینکار را انجام میدهند، اما در عمل اینگونه نیست و هر برنامه نویسی نمیتواند در کوتاهترین زمان و با کمترین کد نویسی به چنین هدف دست پیدا کند. به عبارت دقیقتر تفکر الگوریتمیک و نگاه کردن به مشکلات از زوایای مختلف اجازه میدهد راهکاری ساده و کم دردسرتر برای حل مشکل ابداع شود. تجربه فاکتور مهم دیگری است. تجربه همان شناخت یا به عبارت دقیقتر آگاهی در ارتباط با راهحلهای آزمایش شده در مورد یک مسئله است. برنامه نویسان نخبه به الگوها و راهحلهای ابداع شده برای مسائل مشابه نگاه میکنند و در ادامه با صرف کمی وقت، الگوریتمهای خود را برای حل یک مسئله ارائه میکنند. دقت کنید در این جا منظور ما کپیبرداری از یک راهحل نیست، بلکه الهام گرفتن از راهحلها است. نکته دیگر تمرکز است. تمرکز در اینجا مدت زمانی است که ذهن میتواند به طور پیوسته روی یک کار و یا هدف مشخص فعال بماند. عدم تمرکز به معنای آن است که زمان کدنویسی کارهای دیگری همچون جستوجوهای غیرمرتبط با موضوع در اینترنت انجام میدهید، تلویزیون روشن کنید، به ایمیلها نگاه کنید و کارهایی از این دست انجام میدهید که باعث میشوند مدت زمان اسمی کدنویسی بیشتر شود و راندمان واقعی کاهش پیدا کند. عوامل مختلفی باعث از بین رفتن تمرکز میشوند که درگیریهای ذهنی و بعد از آن مشکلات جسمانی اصلیترین عوامل عدم تمرکز هستند. هر پروژهای فارغ از هدف اصلی که برای آن ترسیم شده، اهداف فرعی دیگری نیز دارد. یکی دیگر از دلایل عدم تمرکز بر هدف اصلی، صرف وقت بیش از اندازه روی اهداف فرعی است که همین مسئله در برخی موارد تشخیص اهداف اصلی از اهداف فرعی را مشکل میکند.
یک برنامهنویس نخبه به درستی میتواند اهداف اصلی و ثانویه را تشخیص دهد و اگر لازم باشد از اهداف فرعی عبور کند. سادهنویسی محدود به دنیای برنامهنویسی نیست و هر آن چیزی که به آن فکر کنید را شامل میشود. زمانیکه هدف اصلی در میان اهداف دیگر گم شود و در طراحی اشتباهات مکرری صورت گیرد، پیچیدگی کدنویسی زیاد میشود. هر زمان قطعه کدی مینویسید و در زمان کامپایل با خطایی روبرو میشوید و تصمیم میگیرد به جای بازبینی طرح به سراغ راهکارهای دیگری برای رفع خطا بروید، به شکل غیرمستقیم در دام پیچیدگی گرفتار شدهاید. اگر در حفظ کدهای اشتباه پافشاری کنید و سعی کنید راهحلهای عجیبوغریبی برای آنها ارائه کنید در حقیقت به پرتگاه پیچیدگی نزدیک شدهاید. جمعآوری اطلاعات مرتبط درباره یک پروژه از خصایص یک برنامهنویس نخبه است. در بیشتر موارد راهحلها به جای آنکه در کدنویسی پنهان باشند در اطلاعات جانبی قرار دارند.
شاید برایتان جذاب باشد :
بهترین زبان های برنامه نویسی سال 2021
موضوع مهم دیگری که باید به آن دقت کنید ریاضیات است. بیشتر راهحلها در فرمولهای ریاضی پنهان هستند و در برخی موارد عدم آشنایی با دنیای ریاضیات اجازه نمیدهد یک پروژه به درستی تکمیل شود. پروژههای یادگیری ماشین از جمله برنامههایی هستند که کدنویسی آنها بدون اطلاع از ریاضیات امکانپذیر نیست. هنر اشکالزدایی کدها یکی دیگر از مهارتهای کد نویسان اسطورهای است. پیدا کردن خطاها، اشکالزدایی در چند مرحله منطقی، ساده نویسی کدها که باعث میشوند خطاها کمتر شوند، بازدهی یک برنامه نویس را بهبود میبخشند. همانگونه که مشاهده کردید ترکیب این مهارتها با یکدیگر باعث میشوند یک برنامه نویس از حالت متوسط یا حرفه ای به یک اسطوره تبدیل شود. اسطوره شدن موضوع ماورایی نیست و شما میتوانید با تمرکز بر نکاتی که به آنها اشاره شد به یک اسطوره کد نویسی تبدیل شوید تا برای جامعه خود مفید و نه دردسرآفرین باشید!
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- مدت زمان دوره : 00:08:59
- انتشار: ۲۵ دی ۱۴۰۰
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- رپورتاژ
- فروشگاه
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- Go
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس