تبدیل شدن به یک برنامه نویس عالی
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 9 دقیقه

تبدیل شدن به یک برنامه نویس عالی

انسان‌ها همیشه می‌خواهند بیشتر از آنچه که هستند، باشند. این میل به بیشتر بودن، انسان‌ها را به سمت عظمت هدایت خواهد کرد. برای اینکه در هر زمینه‌ای مهارت کسب کنید، باید دائماً تمرین داشته باشید. اگر تمرینات شما نسنجیده باشد، تنها زمان خود را هدر خواهید داد.

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

شاید تمرینات سنجیده به معنای تکرار کردن باشد، اما تکرار بدین معنا نیست که باید بدون فکر یک کار را بارها انجام دهیم. ما کارهای خود را تکرار می‌کنیم چون می‌خواهیم تسلط خود بر یک یا چند جنبه از کار را افزایش دهیم.

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

آلبرت انیشتین گفته است:«تسلط پیدا کردن، تمام وجود یک شخص را می‌طلبد.»

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

از خودتان بپرسید: چقدر از زمان‌تان را صرف توسعه بخشیدن به محصول دیگران می‌کنید؟ حالا چقدر از این زمان را به توسعه دادن خودتان اختصاص داده‌اید؟

پیتر نورویگ محبوب ترین کتاب مربوط به هوش مصنوعی را نوشته است. او در یکی از پست‌های معروف خود گفته :« شاید 10 هزار ساعت یک عدد جادویی باشد». من مقاله‌ی او را در نوجوانی خواندم و با خودم می‌گفتم که چه کسی می‌تواند چنین زمانی را به انجام یک کار اختصاص دهد. به یاد داشته باشید که هیچ چیزی نمی‌تواند جایگزین تجربه شود. 

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

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

کمیت، کیفیت را به دنبال خواهد داشت

در کتاب «Art and Fear» نوشته شده است:« استاد کوزه‌گری در اولین روز کلاس اعلام کرد که دانش‌آموزان را به دو گروه تقسیم خواهد کرد. دانش‌آموزان سمت چپ از نظر کمیت و دانش‌آموزان سمت راست از لحاظ کیفیت رتبه‌بندی می‌شوند.

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

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

هرگز تسلیم نشوید

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

خیلی از مردم با رسیدن به یک سطح خاص از مهارت، دیگر بیخیال تلاش کردن می‌شوند. آن‌ها به کارهای روزمره خود بسنده می‌کنند و به سراغ چالش‌ها نمی‌روند. به عنوان مثال Shinji در جهان به عنوان باشکوه‌ترین شناگر شناخته می‌شود. او شنا کردن را در اواخر دهه 30 سالگی خود شروع کرد و حالا ویدیوهای شنای او در یوتیوب از مایکل فلپس هم محبوب‌تر است. چگونه یک شخص معمولی توانست به چنین عملکرد خوبی دست پیدا کند؟ مطمئناً تمرینات زیاد او را به چنین جایگاهی رساند. او گفته است:« هدفم این بود که به باشکوه‌ترین شناگر دنیا تبدیل شوم. معمولاً وقتی در ژاپن بودم، 4 روز در هفته از ساعت 10 شب تا 2 صبح در استخر شنا می‌کردم. سپس نقص‌های کوچک را پیدا کرده و آن ها را اصلاح می‌کردم.»

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

میزان استعداد یا تلاش‌های شما همیشه ملاک نیست، چون رسیدن به بعضی چیزها زمان می‌برد. وارن بافت می‌گوید:« با باردار کردن 9 زن نمی‌توانید در عرض 1 ماه صاحب فرزند شوید.»

Mary Poppendieck در تالیف برخی از کتاب‌های موفق نقش داشته و نرم‌افزارهای متعددی را توسعه داده است. او در یکی از کتا‌ب‌های خود می‌گوید:« افراد نخبه برای تبدیل شدن به یک متخصص به حداقل 10 هزار ساعت تمرین سنجیده و متمرکز نیاز دارند».

تخصص به تدریج و به مرور زمان بدست خواهد آمد. 10 هزار ساعت زمان بسیار زیادی است. یعنی باید این کار را هفته‌ای 20 ساعت به مدت 10 سال انجام دهید. شاید احساس کنید که برای این کار ساخته نشده‌اید. به خودتان ایمان داشته باشید. Ralph Waldo Emerson گفته است:« تمام هنرمندان در ابتدا یک آماتور بوده‌اند.»

شما نیازی به دیدن تمام راه‌پله ندارید، فقط باید اولین قدم را بردارید

تحقیقات انجام شده در دو دهه گذشته ثابت کرده که تمرینات سنجیده جزو مهم‌ترین فاکتور در بدست آوردن یک مهارت هستند. محققان زیادی بر این باورند که استعداد ذاتی تنها تا یک حد می‌تواند تاثیرگذار باشد. برای اینکه یک ورزش یا حرفه را شروع کنید، باید حداقل توانایی طبیعی را داشته باشید. معمولاً افراد برتر همان کسانی هستند که بیشترین تلاش را می‌کنند.

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

برنامه نوشتن همیشه نباید احساس بدی را به شما منتقل کند، اما باید دائماً شما را با مشکلات متعددی روبرو کند. تمرین سنجیده در مورد یادگیری است. این نوع یادگیری، شما را تغییر خواهد داد. به یاد داشته باشد که موقعیت یادگیری همیشه یکسان نیست. ما می‌توانیم چیزهای زیادی را با تنها کار کردن بیاموزیم. با کار کردن در یک گروه هم می‌توانید به تجربه‌ها و مهارت‌های خاصی دست پیدا کنید.

Seneca می‌گوید:« این یک مسیر دشوار است که به عظمت منتهی می‌شود.»

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

در هر اپلیکیشن دارای چیزهای آسان زیادی مثل تخصیص متغیرها، تعاریف توابع و تنظیم دیتابیس است. البته شاید آستانه توانایی‌های شما روی الگوریتم‌های پیچیده‌تر، ساختار داده‌ها یا معادلات ریاضی باشد. اگر کورکورانه تمرین کنید، احتمالاً 90 درصد از زمان خود را صرف اصول اولیه خواهید کرد. آن 10 درصد باقیمانده همان کارهایی هستند که واقعاً باعث پیشرفت شما خواهند شد. این یعنی به ازای هر یک ساعت تمرین، تنها 6 دقیقه واقعاً پیشرفت خواهید داشت. ما باید برای رفع اشکالات برنامه نویسی خود به گونه‌ای تمرین کنیم که هر بار مجبور شویم یک الگوریتم یا ساختار داده جدید را یاد بگیریم.

قانون 10 هزار یک افسانه است

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

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

منبع

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
4.5 از 4 رای

/@Pemi.razmi
علیرضا داداشی
دانشجوی مهندسی پزشکی

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

علیرضا داداشی

دانشجوی مهندسی پزشکی