شاید شما هم تصمیم گرفته باشید برای اولین بار به دنیای برنامهنویسی قدم گذاشته و زبان برنامهنویسی خاصی را بیاموزید و یا علاوه بر تجربیاتی که در یک یا چند زبان برنامهنویسی دارید، قصد دارید زبان جدیدی را نیز به رزومهٔ حرفهای خود اضافه کنید. در همین راستا، در این مقاله یکسری تکنیک و استراتژی برای یادگیری یک زبان برنامهنویسی جدید را به شما معرفی میکنیم؛ اما در عین حال به خاطر داشته باشید که هر کسی روش یادگیری خاص خود را دارا است. به عبارت دیگر، برخی روشها ممکن است بازدهی فوقالعادهای در مورد شما داشته باشند در حالی که ممکن است با برخی دیگر هیچ رابطهای برقرار نکنید! لذا توصیه میشود به دنبال روش مناسب خود باشید و اگر از روش خاصی نتیجهای نگرفتید، به سراغ روش بعدی بروید.
زبان جدید را با زبانهای قبلی که یاد گرفتهاید مقایسه کنید
اگر تاکنون مراحل یادگیری اولیه را در مورد زبان دیگری انجام دادهاید، سعی کنید زبان جدید را با زبان قبلی مقایسه کرده، سازوکار بخشهای مختلف آن را حدس بزنید و امتحان کنید تا ببینید درست حدس زدهاید یا خیر؟ تهیۀ فهرستی از سه مورد زیر ممکن است بتواند به شما در این راه کمک بیشتری کند:
- مواردی که در نگاه اول آشنا به نظر میرسند و دقیقاً همانطوری هستند که انتظارش را دارید.
- مواردی که آشنا به نظر میرسند اما آن طوری که انتظار دارید نیستند.
- مواردی که کاملاً جدید و ناآشنا به نظر میرسند.
این فهرست اولیه را نزد خود نگاه دارید و هر چند وقت یکبار، همچنان که در یادگیری زبان جدید جلوتر میروید، نگاهی به آن بیاندازید و ببینید که مواردی که در این سه دسته قرار داده بودید، چگونه جابهجا شدهاند (مثلاً ممکن است مفاهیمی که در ابتدا برای شما کاملاً ناآشنا به نظر میرسیدند، حالا دیگر به دسته دوم و یا حتی دستهٔ اول منتقل شده باشند.)
رفرنسهای رسمی زبان مورد نظر را مطالعه کنید
اگر قبل از اینکه وارد مرحلۀ یادگیری یک زبان خاص شوید میخواهید اطلاعات کاملی از آن داشته باشید، خواندن متون مرجع رسمی (داکیومنتیشن) آن زبان میتواند به شما کمک کند. زیاد نگران به خاطر سپردن محتوای این متون نباشید چرا که متون مرجع برای به خاطر سپردن نوشته نشدهاند؛ بلکه برای این تألیف شدهاند تا دولوپرهای علاقمند بتوانند دیدی کلی نسبت به زبان مد نظر خود پیدا کنند.
درست جستجو کردن را بیاموزید
اگر با ارور خاصی مواجه شده و نیاز به اطلاعاتی در مورد آن دارید، فضای وب، به خصوص وبسایت استکاورفلو، میتواند یک گزینۀ بسیار عالی باشد. هنگامی که با یک پیغام خطا مواجه میشوید، میتوانید بخشی از این پیغام که ویژۀ مسئلۀ موجود است را در وب جستجو کنید. مثلاً اگر خطایی با متن «Error on line 53: Invalid argument exception» برای شما نمایش داده شد، برای یافتن اطلاعات و راهحل آن میتوانید نام زبان مورد نظر به علاوۀ عبارت Invalid argument exception را جستجو نمایید تا نتایج مرتبط برای شما نمایش داده شوند. همچنین برای دسترسی به نتایج دقیقتر میتوانید از علامت " در دو طرف کلمۀ خاص مورد نظر خود استفاده نمایید (مثلاً در عبارت جستجوی "Invalid argument "exception، تمرکز روی کلمهٔ exception خواهد بود.)
در همین راستا، برای اینکه پاسخهای درستتری دریافت کنید، مطمئن شوید که سؤال خود را در جای درستی پرسیدهاید! سعی کنید در هنگام مطرح کردن سؤال خود، هدفتان از نوشتن قطعه کد مورد نظر، آنچه که نوشتهاید و مشکلی که ایجاد شده را به طور خلاصه توضیح دهید تا متخصصان آن زبان بتوانند مشکل شما را درک کرده و به بهترین شکل ممکن به شما کمک کنند.
در این پروسه، حتماً به سطح علمی و اعتبار نویسنده و همچنین تاریخ انتشار پستهای مرتبط با مشکل خود در وبسایتهای مختلف دقت کنید تا بتوانید در مورد کاربردی بودن یا نبودن راهحلهای ارائه شده، به درستی تصمیم بگیرید.
با کامیونتی زبان مورد نظر خود در ارتباط باشید
درست است که در وبسایتها و وبلاگهای مختلف اطلاعات بسیار خوب و نسبتاً کاملی را میتوان در ارتباط با زبان برنامهنویسی مذکور به دست آورد، اما همیشه نکات کلیدی و مهمی وجود دارد که ممکن است جنبۀ عمومی نداشته و ویژۀ یک موقعیت خاص باشد که شما سعی دارید به کار ببرید. بنابراین حضور در کامیونیتی (جامعه) مرتبط با زبان مورد نظر و یا ارسال ایمیل به افرادی که در این زبان تبحر دارند، میتواند راهگشا باشد.
برنامههای ساده بنویسید
هنگامی که با یک مفهوم جدید آشنا میشوید و میخواهید آن را ملکۀ ذهن خود کنید، سعی کنید با بهکارگیری این مفهوم جدید، یک یا چند برنامۀ ساده بنویسید. برای این کار، باید تلاش کنید تا جایی که میتوانید از به کار بردن سایر مفاهیم در برنامۀ سادۀ خود اجتناب کرده، فقط و فقط بر روی مفهوم جدید متمرکز شوید.
بازنویسی کدهای دیگران
نوشتن برنامههای ساده برای شروع روش بسیار خوبی است اما اگر میخواهید با کاربردهای واقعی زبان جدیدی که دارید میآموزید بیشتر آشنا شوید، میتوانید برنامههای خوب و تست شدهای که از قبل در زبان دیگری توسط خود شما یا دیگران نوشته شدهاند را با زبان جدید بازنویسی کنید و طی این بازنویسی، با کاربردهای مختلف این زبان در حل مسائل واقعی آشنا شوید.
در مورد زبان جدید کتاب بخوانید
امروزه کتابهای الکترونیکی متعددی به صورت رایگان در دسترس هستند. اگر چندین کتاب مختلف در مورد زبان جدید در اختیار دارید، ابتدا مروری کلی بر همهٔ آنها داشته باشید و بررسی کنید ببینید که کدامیک از آنها با پسزمینۀ ذهنی و دانش پیشین شما سازگاری بیشتری دارد و این موضوع را در انتخاب کتاب در نظر بگیرید (گاهی نقدهایی که بر کتاب نوشته میشود، مثلاً نظرات کاربران در وبسایت آمازون، تا حد قابلتوجهی میتوانند منتج به تصمیمگیری بهتر شوند.)
اگر قصد دارید نسخۀ چاپ شده و یا الکترونیکی کتابی را خریداری کنید، قبل از اینکه پولی بپردازید، حتماً تاریخ انتشار و نسخۀ ویرایش آن را بررسی کنید. اگر از کتابهای قدیمیتر برای یادگیری استفاده میکنید، حتماً از نسخۀ زبان متناسب با آموزشهای کتاب برای انجام تمرینها استفاده کرده و در کنار آن در وب جستجو کنید تا از آخرین تغییرات احتمالی صورت گرفته در زبان مورد نظر خود -پس از انتشار کتاب- آگاه شوید (در همین راستا، میتوانید به مقالهٔ بهترین کتابهای آموزش برنامهنویسی که تاکنون خواندهاید کدامند؟ مراجعه کنید که در بخش نظرات این مقاله، کاربران مختلف دیدگاههای خود را در مورد کتابهای آموزشی مختلف به اشتراک گذاشتهاند.)
در اکثر کتابهای آموزش زبانهای برنامهنویسی، علاوه بر آموزش مفاهیم جدید، کدهایی نیز برای آشنایی بیشتر به عنوان مثال ذکر شده است. این کدها را بخوانید، آنها را تایپ کرده (هرگز کپی نکنید!) و اجرا کنید، بخشهایی از آن را تغییر داده و اثر تغییراتی که ایجاد کردهاید را در عمل مشاهده کنید.
از دورههای ویدئویی استفاده کنید
اگر شما هم جزو آن گروه از علاقمندان یادگیری زبانهای جدید هستید که حوصلۀ کتاب خواندن ندارند، دورههای ویدئویی آنلاین و یا فایلهای ویدئویی منتشر شدۀ این دورهها میتواند چارۀ کار شما باشد؛ اما دقت داشته باشید که فقط به دیدن ویدئوهای آموزشی آکادمیک بسنده نکنید و در کنار آنها به دنبال کارگاههای آموزشی، سخنرانیهای فنی و پادکستهای مرتبط باشید. این ویدئوها را تهیه کرده و هر روز حداقل بخشی از آن را تماشا کنید تا بدین ترتیب کمکم یادگیری این زبان جدید را به بخشی از برنامۀ روزانۀ خود تبدیل نمایید (علاوه بر این، در حین تماشای ویدیو، یک ویرایشگر کد هم باز کرده و همگام با تدریس مدرس، شما هم کد بزنید تا نتایج مد نظر را در لحظه مشاهده کنید.)
سورس پروژههایی که در زبان مد نظر نوشته شدهاند را بخوانید
یکی از بهترین راهها برای یافتن پروژههایی با سایز و ساختار دلخواه در هر زبان برنامهنویسی، جستجو کردن در گیتهاب یا گیتلب است. خواندن سورسکد نه تنها میتواند دانش شما را در زبان مد نظر ارتقاء بخشد، بلکه حتی ممکن است بتوانید برخی از باگها و مشکلات موجود در پروژهٔ مورد استفاده را نیز شناسایی و رفع کنید.
به دنبال ابزارهای خوب و کاربردی باشید
هر بار که یادگیری زبان جدیدی را آغاز میکنید، از سایر افرادی که پیش از شما وارد آن زبان شدهاند در مورد محیط توسعۀ آن و سایر ابزارهای کاربردی اطلاعات کسب کنید. مثلاً ببنید که کدام Editor یا IDE خاص در مورد این زبان بیشتر مطرح بوده و یا در برگیرندۀ ابزارها و امکانات بهتر و گستردهتری است.
شور وشوق خود را حفظ کنید
شاید شروع یادگیری یک زبان جدید کار آسانی باشد، اما حرفهای شدن در آن میتواند زمانبَر و بالتبع دشوار باشد! از این رو، با هر قدمی که بر میدارید، باید به خود روحیه داده و حتی برای موفقیتهای هرچند کوچک خود نیز شادی کنید. همچنین به منظور تقویت پروسهٔ یادگیری خود، سعی کنید به افرادی که پس از شما گام در این مسیر گذاشتهاند کمک کرده و تجربیات خود را در اختیار آنها قرار دهید. در یک کلام، از انجام هر کاری که فکر میکنید میتواند ادامۀ مسیر را برای شما لذتبخشتر کند، هرگز غفلت نکنید.
کلام آخر
موارد فوقالذکر یکی پس از دیگری میتوانند در حرفهای شدن شما در یک زبان برنامهنویسی خاص کمک کنند اما نکتهای که در حین یادگیری یک زبان برنامهنویسی جدید همواره میتواند اثر کارهای قبلی را دوچندان کند، کد زدن روی یک پروژهٔ واقعی است. به عبارت دیگر، سعی کنید دانستههای خود را در قالب یک پروژهٔ واقعی، هرچند کوچک و ساده، پیادهسازی کنید و اینجا است که خواهید دید کار کردن روی یک پروژهٔ واقعی، حالوهوای کاملاً متفاوتی نسبت به پروژههای تستی دارد و چیزهای به مراتب بیشتری در پروژههای عملی و واقعی یاد خواهید گرفت.
آیا شما هم تجربیات موفق و یا ناموفقی در زمینۀ یادگیری یک زبان برنامهنویسی داشتهاید؟ از چه روشهایی برای موفقیت هرچه بیشتر خود بهره بردهاید و این روشها تا چه حد توانستند به شما کمک کند و آیا روشهای مطرح شده در این مقاله را امتحان کردهاید؟ نظرات، دیدگاهها و تجربیات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.