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

زمانی که برای اولین بار شروع به یادگیری کدنویسی کردم یه چیزی خیلی آشفته و مایوسم کرد که حالا اسمش رو گذاشتم : پل مه آلود !
یک پل تاریک و طولانی که در یک سمتش همه چیز آسان و راحت و در سمت دیگرش همه چیز سخت است و شما آشفته و سرگردان و بدون هدف و بدون اینکه بدونید چه چیزایی رو باید یاد بگیرید وسط این پل گیر افتادین !
بیشتر کسایی که در زمینه برنامه نویسی تازه وارد هستن از این اذیت میشن که نمیتونن فعالیت هایی در سطح متوسط یا منابع آموزشی مفید که یه برنامه نویس مبتدی رو به یه فرد ماهر تبدیل میکنه پیدا کنن .
افرادی هستن که بی وقفه خودشون رو درگیر مسایل ساده و یا حتی پروژه های خیلی دشوار که در حال حاضر توانایی انجامش رو هم ندارن میکنن . این افراد میتونن خودشون رو به آخر پل برسونن اما این روش باعث میشه تعداد زیادی از افراد تازه کار ، ناامید بشن و خیلی زود از اینکار دست بکشن.نه به خاطر اینکه کدنویسی سخته (که واقعا هم نیست!) بلکه به خاطر این که یادگیری اینکار سخته !(در حالی که نباید باشه)

خب پس راه بهتر کدومه ؟؟
من بیشتر از یک سال درگیر پیدا کردن یه جواب برای این سوال بودم :”بهترین راه یادگیری کدنویسی چیه؟!” این یه سوال ساده و در همین حال غلط اندازه و جوابش کاملا مشخص میکنه که چرا در وهله ی اول این یادگیری انقدر سخته..یا شاید بهتر باشه بگم چرا توضیح این به دیگران سخته که چجوری کدنویسی رو باید یاد گرفت !
اگه قرار باشه از ۵ تا برنامه نویس بپرسی که بهترین راه برای یادگیری کدنویسی چیه ؟ احتمالا ۵ تا جواب متفاوت میگیرین!
یکی با اطمینان میگه که باید کارت رو با ساخت برنامه های واقعی شروع کنی !
نفر بعدی یه لیست بلند بالا از پست ها ، ویدیو ها و آموزش های آنلاین بهت میده !
یکی دیگه میگه که برادرش فلان دوره های فشرده رو گذرونده و اونطور که به نظر میاد خیلی هم عالی بود !
یکی دیگه شون که خیلی قیافه ی درس خونی داره لینک های آموزشی مخصوص دوره های آموزش علوم کامپیوتر رو بهت میده…
و آخرین نفر هم بی شک به یکی دو تا کتاب معروف اشاره میکنه !
میدونید چه چیزی درباره این جواب ها آدم رو واقعا کلافه میکنه ؟! اینکه همشون واقعا جواب های خوبی هستن ! پس چرا با وجود این جوابا هنوزم به همون اندازه حس بی رغبتی و ناامیدی دارین ؟!
دلیلش اینه : یادگیری کدنویسی خیلی آسونه اما زمانی که یه سری کارها به ترتیب خاصی انجام بشن !
هر زمانی که سعی کنی این ترتیب رو رعایت نکنی کلافه میشی و حوصله ات سر میره…
مثلا این میمونه که بخوای برای اولین بار بدون چرخ های کمکی ، دوچرخه سواری کنی یا بخوای الفبا رو یاد بگیری وقتی هم خوندن و هم نوشتن رو بلدی.
بهترین راه برای عبور از این پل مه آلود اینه که اون رو به سه بخش مجزا و مخصوص تقسیم کنید.
به این بخش ها مثل خطوط و مرزهای روی نقشه نگاه کنید .. با اینکه واقعی نیستن اما کمک میکنن که مسیر رو پیدا کنید.
۱-یادگیری قواعد و قانون ها
۲-حل مسایل
۳-ساختن برنامه
هر بخش پیشنیازی برای یادگیری بخش های آینده است و در عین حال با هم ناسازگار نیستند..به معنای دیگه ، عبور از این پل یه حرکت کاملا خطی نخواهد بود..درسته که هر بخش ، بی توجه به ترتیب ، بخش های دیگه رو تقویت میکنه ، اما شما در یک زمان فقط باید رو یکی از این بخش ها تمرکز کنید..اگر این کار رو بکنید خیلی سریع و راحتتر و بدون اینکه اذیت بشین به سمت دیگه پل میرسید!
حالا بیاید به هر کدوم از این بخش ها با جزئیات بیشتری نگاه کنیم…

۱-یادگیری قواعد:
این بخش بهتون اعتماد به نفس کاذبی میده که وقتی سمت حل مسایل مختلف میرین خیلی سریع این حس رو از دست میدین ! این بخش قلمروی تعداد بیشماری از کتاب ها ، ویدیو ها و دوره های اموزشی مقدماتی هستش ..
درآمدزایی از طریق این بخش خیلی بالاست چون بیشتر مردم فقط همین مرحله رو طی میکنن و بعد از یادگیریِ ای قواعد دیگه جلوتر نمیرن..(که البته این موضوع تقصیر خودشون نیست،حالا یکم جلوتر به این موضوع هم میرسیم.. )
در واقع هیچگونه کوتاهی ای تو این ناحیه دیده نمیشه.انقدر که بازار این منابع ابتدایی گسترده ست و تعداد کمی از مردم سمت مراحل بعدی میرن ، شما میتونید امکانات بی شماری از این بخش رو پیدا کنید.
مراقب باشید که توی دام یادگیری مداوم و مکرر این قواعد نیوفتید ! زمانی که حداکثر دوتا کتاب درباره این موضوع خوندید این مرحله رو کنار بذارین و برین سمت حل کردن مسائل مختلف…

۲-حل مسائل:
حالا این بخشه که شدیدا نیازمند مقداری توجه هستش..تقریبا میشه گفت که این موضوع به طور کامل نادیده گرفته میشه و من باور دارم این دلیل اصلیِ اینه که تعدادی از مردم از مرحله قبلی (یادگیری قواعد) جلوتر نمیان.
این آدم ها هیچ راه و روشی جز نصیحت های مبهم برای شروع و ساخت برنامه ندارن و این مثل اینه که بخوای دوچرخه سواری رو بدون استفاده از چرح های کمکی یاد بگیری .. ممکن هست ، اما از روش ایده آل برای یادگیری خیلی فاصله داره.
هروقت بتونین قواعدی که در مرحله اول یاد گرفتین رو بدون کمک کسی استفاده کنید یعنی وارد مرحله حل مسائل شدید…
این در واقع همون روح و درون مایه فکر کردن مثل یک برنامه نویس هستش و تا الان سخت ترین و مهم ترین بخش از سفرتون برای عبور از این پل مه آلوده ! در واقع این بخشیه که من شش ماه اخیر ، زندگی کاریم رو صرف یادگیریش کردم ..
افراد تازه وارد به معنای ساده ، منابعی در سطح متوسط رو ندارن تا این فاصله ی بین دونستن قوانین ساده و ساخت برنامه های واقعی با اونا رو پر کنن . به همین دلیل چاره ای جز آشفتگی و سردرگمی توی این پل مه آلود رو ندارن تا در نهایت خودشون به تنهایی با بی رحمی شروع کنن و از بخش های مختلف سر در بیارن !

۳-ساخت برنامه:
تقریبا همه ی برنامه نویس هایی که من میشناسم مستقیما از مرحله یادگیری قواعد و قوانین وارد ساخت برنامه شدن..(یا حداقل سعی کردن که وارد بشن ..!)
خیلی اذیت کنندست چون نه تنها شما دارین یاد میگیرین که مثل یک برنامه نویس فکر کنین بلکه دارین درباره چهارچوب ها(فریم ورک ها) و تمام اصطلاحات مربوط به اونا ، محیط های برنامه نویسی (IDE ) و خیلی چیزهای دیگه که واردشون نمیشم هم آموزش میبینید .
زمانی که اون قواعد رو یادگرفتین و خودتون به تنهایی تونستین مسائل ساده رو حل کنین ، اون موقع زمانشه که یا روی پروژه های کدباز (اپن سورس) و یا روی ایده هایی که توی ذهنتون هست کار کنین..
دلیل اینکه خیلی از مردم کلافه میشن و در نهایت کدنویسی رو رها میکنن این نیست که کدنویسی سخته بلکه اینه که یادگیری کدنویسی پر از پیچ و خم و پر از اصطلاحات فنی هستش که باعث فوران شدید اطلاعات میشه.
مطالب خیلی زیادی هست که لازمه اونا رو یاد بگیرین .. پس حداقل راه آسون رو برای دستیابی به اونا انتخاب کنید..
باز هم پیشنهاد میکنم به این ترتیب یادگیری رو شروع کنید : ۱-یادگیری قواعد ، ۲-حل مسائل ، ۳-ساخت برنامه

اگه شما روی این پل مه آلود هستین ، با چالش های ساده کدنویسی شروع کنید و فاصله ای رو که بین دونستن قوانین ساده و ساخت برنامه های کاربردی وجود داره ، پرکنید…