در خدمت شما هستیم با مقاله برنامه نویسی به سبک یک اسطوره از وب سایت آموزش برنامه نویسی سورس باران. برنامه نویسی بیشتر از آنکه یک تخصص باشد یک هنر است. همه مردم میتوانند برنامه نویسی یاد بگیرند، اما تنها تعداد کمی از آنها برنامه نویسان حاذق یا به عبارت دقیقتر یک اسطوره میشوند.
یک برنامه نویس اسطورهای فردی است که میتواند چند برابر بیشتر از یک برنامه نویس عادی در زمان یکسان کدنویسی کند. یک برنامه نویس عادی، فردی است که با کد نویسی آشنایی دارد و میتواند کدهای خوبی بنویسد، اما تواناییهای خارقالعاده یک برنامه نویس حاذق را ندارد
برنامه نویسی به سبک یک اسطوره
جامعه برنامه نویسان دیدگاه خاصی در ارتباط با یک برنامه نویس اسطورهای دارند. برخی معتقد هستند که اساساً چنین فردی وجود ندارد که بتواند چند برابر بیشتر از یک برنامه نویس عادی کدنویسی کند، گروه دیگر بر این باور هستند که چنین فردی در حال حاضر وجود ندارد، اما اگر کمی در تاریخچه برنامه نویسی جستوجو کنیم، احتمالا چنین شخصی را میتوانیم بیابیم. شاید با خواندن این چند خط سوال کنید یک برنامه نویس اسطورهای کیست و چه مهارتهایی دارد که او را متفاوت از سایر برنامه نویسان میکند. در این یادداشت کوتاه میخواهم به نکاتی اشاره کنم که با رعایت آنها میتوانید در مسیر اسطوره شدن گام بردارید.
ابتدا باید دیدگاه خود را تغییر دهید و بدانید که برنامه نویسی یک رویکرد خطی نیست. برنامه نویسی زنجیره ای از کارهای مرتبط است که به شکل مستقیمی با یکدیگر در ارتباط هستند. یک برنامه نویس خبره میداند که چگونه طراحی کند و عناصر تشکیلدهنده یک پروژه را با یکدیگر مرتبط کند. با این توصیف طراحی، کدنویسی و اجرای برنامهها یک قابلیت خطی نیستند، زیرا فاکتورهای دیگری همچون تجربه، مهارت کدنویسی، سطح دانش و تخصص، شناسایی مولفههای غیرضروری یک برنامه هم مطرح هستند. هر یک از این خصلتها به شکلی کاملا ظریف و پیچیده با یکدیگر مرتبط شدهاند. پیچیدگی فوق زمانی دو چندان میشود که یک برنامه نویس به شکل منفرد هر سه فرآیند طراحی، پیادهسازی و اجرا را انجام میدهد. برنامه نویسانی که خارج از ایران به شکل قراردادی با شرکتهای بزرگ نرمافزاری کار میکنند چنین ویژگی را دارند. با نگاهی موشکافانه به این مسئله متوجه میشویم که ایده کدنویسی چند برابری نسبت به یک برنامه نویس عادی دور از واقعیت نیست. کد نویسان نخبه، واقعیتگرا و هدفگرا هستند و سعی میکنند از تواناییهای ذاتی خود برای رسیدن به هدف ترسیم شده در کمترین زمان و با کمترین زحمت ممکن استفاده کنند.
یکی از ملموسترین تفاوتهای برنامه نویسان عادی با نخبه در طرز نگرش آنها به جزییات برنامه نویسی مستتر است. کنکاش در جزییات میتواند در ارتباط با نوشتن یک تابع، الگوریتم یا هر موضوع مرتبط با پروژه باشد. ممکن است جمله من را اینگونه نقد کنید که همه برنامه نویسان اینکار را انجام میدهند، اما در عمل اینگونه نیست و هر برنامه نویسی نمیتواند در کوتاهترین زمان و با کمترین کد نویسی به چنین هدف دست پیدا کند. به عبارت دقیقتر تفکر الگوریتمیک و نگاه کردن به مشکلات از زوایای مختلف اجازه میدهد راهکاری ساده و کم دردسرتر برای حل مشکل ابداع شود. تجربه فاکتور مهم دیگری است. تجربه همان شناخت یا به عبارت دقیقتر آگاهی در ارتباط با راهحلهای آزمایش شده در مورد یک مسئله است. برنامه نویسان نخبه به الگوها و راهحلهای ابداع شده برای مسائل مشابه نگاه میکنند و در ادامه با صرف کمی وقت، الگوریتمهای خود را برای حل یک مسئله ارائه میکنند. دقت کنید در این جا منظور ما کپیبرداری از یک راهحل نیست، بلکه الهام گرفتن از راهحلها است. نکته دیگر تمرکز است. تمرکز در اینجا مدت زمانی است که ذهن میتواند به طور پیوسته روی یک کار و یا هدف مشخص فعال بماند. عدم تمرکز به معنای آن است که زمان کدنویسی کارهای دیگری همچون جستوجوهای غیرمرتبط با موضوع در اینترنت انجام میدهید، تلویزیون روشن کنید، به ایمیلها نگاه کنید و کارهایی از این دست انجام میدهید که باعث میشوند مدت زمان اسمی کدنویسی بیشتر شود و راندمان واقعی کاهش پیدا کند. عوامل مختلفی باعث از بین رفتن تمرکز میشوند که درگیریهای ذهنی و بعد از آن مشکلات جسمانی اصلیترین عوامل عدم تمرکز هستند. هر پروژهای فارغ از هدف اصلی که برای آن ترسیم شده، اهداف فرعی دیگری نیز دارد. یکی دیگر از دلایل عدم تمرکز بر هدف اصلی، صرف وقت بیش از اندازه روی اهداف فرعی است که همین مسئله در برخی موارد تشخیص اهداف اصلی از اهداف فرعی را مشکل میکند.
یک برنامهنویس نخبه به درستی میتواند اهداف اصلی و ثانویه را تشخیص دهد و اگر لازم باشد از اهداف فرعی عبور کند. سادهنویسی محدود به دنیای برنامهنویسی نیست و هر آن چیزی که به آن فکر کنید را شامل میشود. زمانیکه هدف اصلی در میان اهداف دیگر گم شود و در طراحی اشتباهات مکرری صورت گیرد، پیچیدگی کدنویسی زیاد میشود. هر زمان قطعه کدی مینویسید و در زمان کامپایل با خطایی روبرو میشوید و تصمیم میگیرد به جای بازبینی طرح به سراغ راهکارهای دیگری برای رفع خطا بروید، به شکل غیرمستقیم در دام پیچیدگی گرفتار شدهاید. اگر در حفظ کدهای اشتباه پافشاری کنید و سعی کنید راهحلهای عجیبوغریبی برای آنها ارائه کنید در حقیقت به پرتگاه پیچیدگی نزدیک شدهاید. جمعآوری اطلاعات مرتبط درباره یک پروژه از خصایص یک برنامهنویس نخبه است. در بیشتر موارد راهحلها به جای آنکه در کدنویسی پنهان باشند در اطلاعات جانبی قرار دارند.
شاید برایتان جذاب باشد :
بهترین زبان های برنامه نویسی سال 2021
موضوع مهم دیگری که باید به آن دقت کنید ریاضیات است. بیشتر راهحلها در فرمولهای ریاضی پنهان هستند و در برخی موارد عدم آشنایی با دنیای ریاضیات اجازه نمیدهد یک پروژه به درستی تکمیل شود. پروژههای یادگیری ماشین از جمله برنامههایی هستند که کدنویسی آنها بدون اطلاع از ریاضیات امکانپذیر نیست. هنر اشکالزدایی کدها یکی دیگر از مهارتهای کد نویسان اسطورهای است. پیدا کردن خطاها، اشکالزدایی در چند مرحله منطقی، ساده نویسی کدها که باعث میشوند خطاها کمتر شوند، بازدهی یک برنامه نویس را بهبود میبخشند. همانگونه که مشاهده کردید ترکیب این مهارتها با یکدیگر باعث میشوند یک برنامه نویس از حالت متوسط یا حرفه ای به یک اسطوره تبدیل شود. اسطوره شدن موضوع ماورایی نیست و شما میتوانید با تمرکز بر نکاتی که به آنها اشاره شد به یک اسطوره کد نویسی تبدیل شوید تا برای جامعه خود مفید و نه دردسرآفرین باشید!
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- مدت زمان دوره : 00:08:59
- انتشار: ۲۵ دی ۱۴۰۰
دسته بندی موضوعات
- آموزش برنامه نویسی
- آموزش کریپتو کارنسی (ارز دیجیتال)
- آموزش متنی برنامه نویسی
- پروژه برنامه نویسی
- فروشگاه
- فیلم های آموزشی
- #F
- ++C
- 3ds max
- Ada
- ADO.NET
- Adobe Flash
- Agile
- Ajax
- AngularJS
- Anime Studio
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- assembly
- AVR
- Azure
- Bootstrap
- Cassandra
- CCNA
- CCNP
- CCSP
- ChatGPT
- Cisco
- CMD
- COBOL
- CSS
- Cython
- Django
- Dreameaver
- Elixir
- EntityFramework
- Erlang
- Flash
- Go
- Groovy
- Haskell
- Htaccess
- HTML
- IOS
- Jade
- jquery
- Kendo UI
- Linq
- Linux
- LUA
- MariaDB
- maya
- Meteor
- MongoDB
- Mono Android
- MonoGame
- Mysql
- NoSQL
- Oracle
- Orchard
- Perl
- php
- PHPMyAdmin
- R
- Rational Rose
- Ruby
- Rust
- Scala
- Scrum Master
- SFML
- SharePoint
- SignalR
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- Vue 3
- WPF
- Xml
- آردوینو
- آموزش های پروژه محور
- آیونیک
- اتوکد
- الگوریتم تقریبی
- الگوریتم نویسی و فلوچارت
- امنیت
- اندروید
- اندروید استودیو
- انیمیشن سازی
- بازی سازی با Scratch
- بک ترک
- بیسیک فور اندروید
- پایتون
- پرولوگ
- پریمیر
- جاوا
- جاوا اسکریپت
- جنگو
- جوملا
- دارت
- دلفی
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- ساخت اتوران
- ساختمان داده ها
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کاتلین
- کامپایلرها
- کانستراکت
- کریستال ریپورت
- کلوژر
- گوگل آنالیتیکس
- گیت
- لاراول
- مای بی بی
- مایکروسافت پروجکت
- متریال دیزاین
- متلب
- معماری کامپیوتر
- مهندسی اینترنت
- میکروتیک
- نود جی اس
- نیوک
- هوش مصنوعی
- ویبولوتین
- ویژوال استودیو
- یونیتی
- کتاب های آموزشی
- Ada
- Ajax
- Android
- ASP.NET
- ASP.NET Core
- AVR
- clips
- CNC
- COBOL
- CQRS
- Cython
- Dreamweaver
- Elixir
- Entity Framework 4.0
- Erlang
- Go
- Groovy
- Haskell
- LINQ
- Lua
- Matlab
- MFC
- Node.js
- PERL
- php
- PLC
- Prolog
- React
- Rust
- Scala
- SFML
- SharePoint
- silver light
- VHDL
- VMware
- WinJS
- Workflow
- WPF
- XHTML
- Yii Framework
- اتوکد
- اچ تی ام ال
- اسمبلی
- اکتیو ایکس
- الگوریتم و فلوچارت
- انگولار
- اوبونتو
- اوراکل
- بازی سازی
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- بک ترک
- پاسکال
- پایان نامه
- پایتون
- پرولوگ
- جاوا
- جاوا اسکریپت
- جی کوئری
- حوملا
- داده کاوی
- دلفی
- رباتیک
- روبی
- زبان ماشین
- سئو
- ساختمان داده ها
- سایر کتاب ها
- سخت افزار
- سوئیفت
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- سیستم عامل
- سیستم های خبره
- شبکه و مجازی سازی
- شبیه سازی کامپیوتر
- طراحی الگوریتم
- فتوشاپ
- فریم ورک گتنا
- کاتلین
- کالی لینوکس
- کریستال ریپورت
- گزارش کارآموزی
- گوگل
- لیسپ
- متلب
- مقاله
- مهندسی نرم افزار
- نیوک
- هوش مصنوعی
- وب مستر
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس