اشتباهات من در مسیر یادگیری برنامه نویسی

black-box-of-learning-programming

سلام!

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

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

در این نوشته می‌خواهم درباره اشتباهاتی بنویسم که در مسیر یادگیری برنامه نویسی مرتکب شدم؛ اشتباهاتی که بعضی از آن‌ها باعث اتلاف زمان شدند و بعضی دیگر مسیر رشد من را تغییر دادند. هدفم از نوشتن این مقاله، هم مرتب کردن ذهن خودم است و هم شاید کمک به کسی که در ابتدای این مسیر قرار دارد.

رویکرد جعبه سیاه

اخیراً در کتاب هنر خوب زندگی کردن با مفهومی آشنا شدم که نگاه من به گذشته را تغییر داد. رولف دوبلی در بخشی از کتاب به ایده‌ای اشاره می‌کند که برای رشد هر سیستم مفید است: اگر بتوانیم داده‌های گذشته را درست تحلیل کنیم، آینده را بهتر خواهیم ساخت.

جعبه سیاه چیست؟

در تاریخ هوانوردی، یکی از مهم‌ترین ابزارها برای فهم خطاها «جعبه سیاه» یا همان flight recorder است. این دستگاه داده‌های پرواز و صداهای کابین را ثبت می‌کند تا پس از حادثه بتوان علت خطاها را بررسی کرد و از تکرار آن‌ها جلوگیری کرد.

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

تفکر جعبه سیاه و ارتباط آن با یادگیری برنامه نویسی

جعبه سیاه، گذشته همه ماست

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

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

زمان دوست شماست یا دشمن؟

معیاری ذهنی در من وجود دارد که به کمک آن سعی می‌کنم تشخیص دهم آیا مطابق ارزش‌هایم زندگی می‌کنم یا نه.

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

در واقع خود زمان تغییر نمی‌کند؛ این انتخاب‌های ما هستند که مشخص می‌کنند گذر زمان به نفع ماست یا علیه ما.

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

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

یادگیری برای یک عمر

یکی از اولین واقعیت‌هایی که در مسیر یادگیری برنامه نویسی با آن روبه‌رو می‌شوید این است که یادگیری در این حوزه هیچ‌وقت تمام نمی‌شود.

حتی زمانی که وارد بازار کار می‌شوید و پروژه می‌گیرید، باز هم باید در حال یادگیری باشید. تکنولوژی دائماً تغییر می‌کند و هر پروژه مسئله‌های جدیدی دارد که تجربه قبلی به‌تنهایی برای حل آن کافی نیست.

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

صبور بودن در یادگیری

عنوان‌هایی مثل «آموزش برنامه نویسی در یک هفته» بیشتر شبیه تبلیغات هستند تا واقعیت.

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

یکی از چیزهایی که باعث شد من در این مسیر دوام بیاورم، علاقه به ساختن و حل مسئله بود. بدون علاقه، احتمال زیادی وجود دارد که در میانه راه خسته شوید.

نکته اول: صبر، یکی از مهم‌ترین عوامل ادامه دادن در مسیر یادگیری برنامه نویسی است.

تمرکز روی یک حوزه مشخص

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

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

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

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

دوره‌های آموزشی، فیلم سینمایی نیستند

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

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

  • وقتی با خطاهای طولانی روبه‌رو می‌شوید
  • وقتی کد شما طبق انتظار اجرا نمی‌شود
  • وقتی مجبور می‌شوید ساعت‌ها دنبال دلیل یک مشکل بگردید
  • و زمانی که بالاخره راه‌حل را پیدا می‌کنید

تحمل ابهام و ادامه دادن در این شرایط، بخش مهمی از مسیر رشد در برنامه نویسی است.

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

شما به عادت‌های جدید نیاز دارید

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

در این مسیر، ذهنیت شما هم تغییر می‌کند. کم‌کم متوجه می‌شوید که پیشرفت بزرگ، نتیجه تصمیم‌های کوچک و تکرارشونده روزانه است.

نکته چهارم: ذهنیت و عادت‌های درست، مسیر یادگیری را پایدارتر می‌کنند.

پیدا کردن شغل ساده نیست

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

اما چیزی که به من کمک کرد ادامه بدهم این بود که فهمیدم هرچه مهارت بیشتری داشته باشم، رقابت حرفه‌ای‌تر و محدودتر می‌شود.

رسیدن به این مرحله زمان می‌برد، اما اگر به مسیر علاقه داشته باشید، این سختی‌ها قابل‌تحمل‌تر خواهند شد.

نکته پنجم: در ابتدای مسیر، کسی منتظر تشویق کردن شما نیست. باید آن‌قدر ادامه دهید تا برای خودتان و دیگران اعتبار بسازید.

و اما نکات مثبت…

با وجود همه سختی‌ها، برنامه نویسی برای من جذابیت‌های مهمی دارد.

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

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

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

همچنین من در بین نوشته های قبلی خودم در مورد نقشه راه یادگیری مهارت‌های جدید نکات کامل تری را بهش اشاره کردم و میتونه برای یادگیری، نکات و راه های جدیدی در خودش داشته باشه.

و یک وب سایت خیلی خوبی هست به نام Roadmap.sh که میشه مسیر های یادگیری زبان های برنامه نویسی و حوضه های کار مختلف را دقیق داخلش دید. میتوانید به عنوان یک منبع خوب روش حساب کنید.

جمع‌بندی

اگر بخواهم کل این نوشته را در یک جمله خلاصه کنم، می‌گویم:

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

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