راههای زیادی برای یادگیری کدنویسی وجود دارد اما در عین حال خیلی از افراد تازهکار راههای اشتباهی را برمیگزینند و زمان ارزشمند خود را در مسیری کاملاً اشتباه تلف میکنند. از طرفی باید دانست که هیچ راه مشخصی نیست که ۱۰۰٪ درست باشد و همه بخواهند آن راه را انتخاب کنند و به نتیجهٔ دلخواه خود برسند. در واقع، بهترین راه یادگیری مختص به خود کدآموز است و آن راهی درست است که شما بهترین نتیجه را از دنبال کردنش بگیرید. اما در مورد بدترین راه یادگیری کدنویسی چهطور و آیا میتوان جواب دقیقی به این پرسش داد؟ برای پاسخ به این سؤال، ابتدا راههای درست یادگیری اصول کدنویسی را توضیح داده و در نهایت به سؤال فوق پاسخ خواهیم داد.
1. شروع آموزش از طریق یک منتور به صورت خصوصی
کار با یک متخصص یا مهندس نرمافزار میتواند خیلی مؤثر باشد. فرض کنید با یک متخصص آموزش میبینید و او میتواند طوری به شما درس دهد که مستقیم سر اصل مطلب برود و این آموزش کاملاً مناسب شما باشد. وقتی با کسی آموزش میبینید که تمام حواسش به شما متمرکز است، او میتواند سؤالاتی را جواب دهد که مخصوص شما است و شاید کس دیگری در حین آموزش آن سؤالات به ذهنش نرسد.
مهمتر اینکه کار کردن به صورت خصوصی با کسی که تخصص خیلی بیشتری از شما در آن زمینه دارد، یکی از بهترین راههای یادگیری کدنویسی است به طوری که حتی میتوانید کل ساختار هر اپ پیچیدهای را که بخواهید، به صورت جزء به جزء با وی مرور کنید و از خلال این کار، چیزهای جدیدی یاد بگیرید.
2. کار با دورههای آموزشی متنی
در روش سنتی، شما زمان خیلی زیادی را برای یادگیری درسهایتان به صورت متنی و خواندن کتاب صرف کردهاید که کاملاً منطقی است زیرا خواندن، یک روش قدرتمند برای یادگیری است و این مورد برای یادگیری کدنویسی هم به طور کامل صدق میکند.
آموزشهای متنمحور برای فعالان در زمینهٔ آموزش کدنویسی بهترند زیرا تألیفشان زمان خیلی کمتری از ایشان میگیرد (البته این روش برای شخص کدآموز هم میتواند مناسبتر باشد چرا که بسته به نیاز خود، مستقیماً میتواند به موضوعی که مد نظرش است مراجعه نماید.)
جالب است بدانید که در دنیای واقعی، فرایند مطالعه یک قسمت مهم از تبدیل شدن به یک دولوپر حرفهای است چرا که دولوپرها همیشه توسط داکیومنتیشنهای از قبل نوشته شده اقدام به یادگیری زیر و بم مثلاً یک زبان برنامهنویسی یا فریمورک میکنند.
پس این خیلی مهم است که بدانید چهطور عناوین مربوط به زبان برنامهنویسی مد نظر خود را بخوانید، آنها را بفهمید و از آنها در پروژههای خود استفاده کنید. البته گفته میشود برای یادگیری موضوعات پیچیده، کمی سخت است که از روش یادگیری از روی مستندات استفاده شود و بهتر است از روشهای دیگری همچون برنامهنویسی دونفره، آموزشهای ویدیویی و غیره استفاده نمایید.
3. استفاده از پادکستها و ویدئوهای آموزشی
با عرضهٔ یوتیوب که پلتفرمی برای انتشار ویدیو است، در بحث آموزش هم تحولاتی صورت گرفت به طوری که امروزه کانالهای آموزش برنامهنویسی بسیاری را در یوتیوب شاهد هستیم (به عنوان شاهد مثال، میتوانید به مقالهٔ معرفی لیستی از کانالهای مرتبط با کدنویسی در YouTube مراجعه نمایید.) فرقی نمیکند که یک ویدئوی ضبط شده، جلسات زندۀ پرسش و پاسخ و یا صدای ضبط شدۀ مدرس را ببینید یا بشنوید، بلکه این تکنیک هم از روشهای قدرتمند یادگیری است (لازم به ذکر است که در سکان آکادمی هم به منظور فراهم آوردن فرصتهای آموزشی بیشتر به غیر از آموزشهای متنی، بخش پادکستها (رادیو فولاستک) را راهاندازی نمودیم که در این بخش با افراد فعال و صاحبنام در حوزهٔ برنامهنویسی، هوش مصنوعی، شبکه، حوزهٔ فناوری اطلاعات و ... مصاحبه مینماییم.)
4. همکاری با افراد دیگر برای یادگیری
کار و یادگیری همزمان با افراد یک تیم که با شما روی یک پروژه متمرکز هستند، میتواند روش خیلی مؤثر دیگری باشد. اساساً شگفتزده میشوید اگر ببینید که میتوانید چه چیزهایی از همتیمی خود یاد بگیرید! این روش میتواند به صورتهای مختلفی صورت بگیرد مانند یادگیری در کنار یکدیگر و رو در رو، چت ویدئویی، چت صوتی/متنی و حتی در جایی که کدها به صورت آنلاین وجود دارند مانند گیتهاب.
5. از روش آزمون و خطا برای تجربه کردن استفاده کنید
روش آزمون و خطا هم یکی دیگر از بهترین روشها برای یادگیری چیزی جدید است. در واقع، شما خیلی ساده میخواهید بفهمید که فلان چیز چهطور کار میکند که معمولاً با امتحان کردن چند راه موجود برای انجام یک کار، میتوانید بهترین راه استفادهٔ آن را بیابید.
نکتهای که در مورد کدنویسی باید مد نظر قرار دهید این است که در پروسهٔ آموزش یک زبان برنامهنویسی، اگر در یادگیری شکست بخورید، هیچ هزینهای برایتان ندارد اما اگر مثلاً یک نقاش هستید و میخواهید بهترین راه کشیدن یک پُرتره را بدانید، نمیتوانید بدون هزینه کردن به راحتی یک بوم را رنگآمیزی کنید و به تمرین بپردازید! بلکه باید چند بوم نقاشی و مقداری رنگ بخرید و آنقدر خرابکاری کنید تا در نهایت به هدف اصلی دست یابید اما همانطور که گفته شد، برای کدنویسی هیچ اشکالی ندارد که کدهای مختلف را امتحان کنید و این کار هیچ هزینهای هم، البته به جز صرف کردن زمان خود، برایتان نخواهد داشت.
6. نظرخواهی از دیگر دولوپرها فعال در صنعت
یکی از راههایی که میتواند کمک زیادی به یادگیری شما بکند این است که کدهای خود را در معرض دید دیگر دولوپرهای متخصص بگذارید تا آنها برای بهتر کردن کدهای شما نظرهایشان را ابزار کنند. شاید این روش نتواند تمام جنبههای کدنویسی شما مانند عادتهای بد کدنویسی را پوشش دهد، اما حتماً برای بهتر کردن و بهینه کردن کدهایتان کمک میکند (برای آشنایی با برخی از این عادات بد، میتوانید به مقالهٔ ۳۵ عادت بَد برنامهنویسی که هرچه زودتر باید ترکشان کنید! مراجعه نمایید.)
حال ممکن است این سؤال پیش بیاید که چهطور این کار را انجام دهید. یکی از بهترین راهها در این زمینه، فعالیت در پروژههای #اپنسورس است؛ خواه پروژهٔ اپنسورس خودِ شما باشد و خواه کار کردن و بهبود دیگر پروژههای اپنسورس که در پلتفرمهایی همچون گیتهاب و گیتلب عرضه شدهاند.
7. میتوانید با انجام پروژه، یاد بگیرید
بعضیها اعتقاد دارند که برنامهنویسی کاری است که با بیشتر کار کردن، میتوان بیشتر یاد گرفت؛ بخشی از کدنویسی این است که حافظۀ رویهایتان (Procedural Memory) را توسعه دهید (این بخش از حافظه مسئول این است که وقتی میخواهید کاری انجام دهید، تصمیم میگیرد که با چه روشی آن را به انجام برسانید.) برای اینکه واقعاً مبدل به یک استاد کدنویسی شوید، باید ساعتهای زیادی را پشت سیستم خود بنشینید و مشغول کدزنی، اجرای آنها و آنالیز برنامههای کامپیوتری شوید. به عبارت دیگر، با کد زدن روی پروژههای واقعی است که با چالشهای واقعی آشنا خواهید شد.
روی هم رفته، اینها راههای درست یادگیری برنامهنویسی بودند اما در عین حال هیچکدام به تنهایی کامل و 100٪ تضمینی نیستند اما به نوعی میتوان گفت که همۀ آنها به عنوان راههای درست و اصولی یادگیری برنامهنویسی میباشند. حال برگردیم به سؤال اصلی و آن هم اینکه راههای اشتباه یادگیری برنامهنویسی کدامند؟ در واقع راه اشتباه این است که تنها یک روش را انتخاب کنید و انتظار داشته باشید که تنها با یک روش بتوانید به جایی که میخواهید برسید (مثلاً فقط به خواندن آموزشهای متنی اکتفا نموده و دانستههای خود را به صورت پروژهمحور تمرین نکنید.)
واقعیت امر آن است که شما در هر کدام از این روشها، بخش خاصی از هنر برنامهنویسی را به دست میآورید و برای اینکه عمیقاً برنامهنویسی را درک کنید، باید روشهای مختلف را امتحان کنید و آموختههای خود از هر کدام از این روشها را با هم ادغام کنید تا دانش کاملی به دست آورید. در واقع، میتوان گفت که برنامهنویسی یک پروسۀ بزرگی از یادگیری توسط تمرین کردن است (آیتم ۷) اما ضروری به نظر میرسد که در داخل این پروسۀ تمرینی، جنبههای دیگر یادگیری مانند روشهای 1 تا 6 را نیز دخیل کنید.
اگر دانش به دست آورده از هر یک از این روشها را در دست داشته باشید و با مقدار زیادی از تلاش ترکیب کنید، قادر خواهید بود تا پیچیدهترین قسمتهای فیلد برنامهنویسی را یاد بگیرید و این در حالی است که چنین روش ترکیبی برای یادگیری برنامهنویسی، یکی از مؤثرترین روشها برای یادگیری نکات ظریفی است که در برنامهنویسی مهم هستند. راهی که شما را در یادگیری برنامهنویسی ناموفق میکند، این است که تنها یک روش را انتخاب کنید. پس اگر به دنبال راهی برای یادگیری برنامهنویسی هستید و میخواهید در آن حرفهای شوید، اقدام به یادگیری اصول کدنویسی به 7 روش مختلفی نمایید که در بالا بدانها اشاره شد.