8 روش آموزشی رایگان و ارزان برای یادگیری برنامه نویسی

رپورتاژ
اگر تصمیم گرفتهاید که برنامه نویسی یاد بگیرید، ممکن است وارد یک سرگردانی کشنده شوید. این سرگردانی اول از انتخاب زبان برنامه نویسی شروع میشود و بعد با پیدا کردن بهترین راه برای برنامه نویس شدن ادامه پیدا میکند. مهمترین نکته این است که تمام این تصمیمها باید از سمت خود شما گرفته شود. چیزی به اسم «بهترین زبان برنامه نویسی دنیا» وجود ندارد و علاقه و استعداد شما است که میتواند تعیین کند کدام زبان برنامه نویسی برای شما مناسب است. همین موضوع برای منابع هم صادق است. بین منابع مختلف بگردید، در کوتاهترین زمان یک یا چند منبع را انتخاب کنید و برنامهنویس شدن را شروع کنید.
در ادامه راههای مختلف آموزش برنامه نویسی به همراه منابع معروف و شناختهشده (هم به زبان فارسی و هم انگلیسی) را مرور میکنیم تا انتخاب شما را سادهتر کنیم.
۱. یادگیری برنامه نویسی از طریق بازیها
معرفی: بعضیها عقیده دارند که بازی کردن و سرگرمی، یکی از دلایل خلقت آدمها است. به خاطر همین، مغز ما برای پذیرش بازیها و استفاده از آن به اندازهی کافی آماده و تکامل یافته است. بازیها میتوانند گزینهی مناسبی برای شروع یادگیری باشند. به خصوص که ماهیت سرگرمکننده آنها، باعث میشود در شروع یادگیری، بیشتر به کار بچسبید و دیرتر پا پس بکشید.
منابع موجود برای بزرگسالان: وبسایتهای زیادی در دنیا برای این کار آماده شدهاند CodinGame، CodeWars و Code Combat معروفترین سایتهای بازی برای آموزش برنامه نویسی هستند که میتوانید سر فرصت نگاهی به آنها بیندازید.
منابع موجود برای کودکان و نوجوانان: از طرف دیگر اگر سن کمی دارید یا کسی رو میشناسید که در سنین پایین میخواهد برنامه نویسی را یاد بگیرد، بد نیست پروژهی Scratch یا وبسایت Code.org را دنبال کنید. قسمتهای زیادی از Code.org به فارسی ترجمه شده است و به راحتی میتوانید از آن استفاده کنید.
مزیتها: جذاب هستند و برای شروع میتوانند شما را به برنامه نویسی علاقهمند کنند.
معایب: معمولاً سرعت یادگیری در آنها پایین است. علاوه بر این، امکان عمیق شدن در مباحث را به شما نمیدهند.
۲. کتابهای آموزشی برنامه نویسی
معرفی: کتابها احتمالا قدیمیترین و سنتیترین گزینه برای یادگیری برنامه نویسی هستند. برای هر مبحث آموزشی که مد نظرتان باشد، تعداد بسیار زیادی از کتابها در سطوح مختلف از ساده تا سخت قابل دسترس است. علاوه بر آن، با الکترونیکی شدن کتابها دردسرهای کتاب کاغذی هم از بین رفته و دسترسی به کتابها آسانتر شده. در مجموع اگر کتابخوان هستید میتوانید از منابع چاپی و آنلاین استفاده کنید.
منابع: 2 مخزن بزرگ کتابهای الکترونیکی رو میتوانید اینجا ببینید: کتابهای رایگان گیتهاب و کتابهای رایگان ردیت
مزیتها: تقریباً برای تمام زبانهای برنامه نویسی کتاب آموزشی وجود دارد. کتابهایی برای سطوح ساده تا پیشرفته قابل دسترس است.
معایب: جذابیت کتابها بالا نیست و ممکن است زود از یادگیری خسته شوید. برنامه نویسی را با تمرین راحتتر میتوان یاد گرفت تا با مطالعه.
۳. دورههای آنلاین برنامه نویسی
معرفی: در شروع کار ممکن است بین منابع مختلف سردرگم باشید، به خاطر همین دورههای آموزشی به خاطر جامع بودنشان میتوانند خیالتان را از بابت این قضیه راحت کنند. علاوه بر آن اکثر دورهها بعد از پایان، از شما آزمون میگیرند و گواهی پایان دوره را به شما اهدا میکنند.
تقریباً تمام زبانهای برنامه نویسی را میشود به صورت آنلاین یاد گرفت و از هر سطحی یادگیری را شروع کرد. دورههای آنلاین هم میتوانند در قالبهای مختلفی مثل ویدئو، متنی یا تعاملی ارائه شوند که باز هم به تصمیم و انتخاب خودتان بستگی دارد. فراموش نکنید که «کدزدن» مهمترین قسمت یادگیری برنامه نویسی است. تا دست به کیبورد نشوید، نمیتوانید به مهارت کافی برسید؛ به همین خاطر توصیه میشود دورههای تعاملی را جدی بگیرید.
منابع: مهمترین منابع رایگان خارجی برای این کار EdX، Open Culture و freeCodeCamp هستند. بین منابع فارسی هم میتوانید از دورههای آموزش برنامه نویسیQuera College استفاده کنید. دورههای کوئراکالج تمام سطحهای برنامه نویسی از مبتدی تا پیشرفته را آموزش میدهند و تا الان دورههای آن شامل آموزش زبانهای برنامه نویسی C، C++، پایتون و جاوا هستند. به علاوهی این که دورههای آموزش تفکر الگوریتیمی، آموزش پایتون پیشرفته و دیگر حوزههای برنامه نویسی نیز در کوئراکالج در دسترس است.
مزیتها: تمرینها و آزمونها باعث میشوند که از یادگیری خود مطمئن شوید. گواهینامه پایان دوره آنها میتواند در رزومه شما ثبت شود.
۴. مسابقات و رویدادهای برنامه نویسی
معرفی: اگر به اندازهی کافی دستتان در برنامه نویسی گرم شده میتوانید سراغ مسابقات بروید. رقابت کردن با سایر برنامهنویسان، میتواند هیجانانگیز باشد و محک خوبی از وضعیت فعلی خودتان در برنامه نویسی به دست بدهد.
مسابقات دانشگاهی: در خیلی از دانشگاههای ایران معمولاً مسابقات برنامه نویسی برگزار میشود. به عنوان مثال AI Challenge توسط دانشگاه شریف برگزار میشود، لیگ برنامه نویسی توسط دانشگاه امیرکبیر اجرا میشود و رقابتهای ACM هم در اکثر دانشگاهها برگزار میشود.
مسابقات کشوری: خارج از دانشگاه هم میتوانید در مسابقههایی مثل هکاتون و CodeCup (بزرگترین مسابقهی برنامه نویسی ایران) شرکت کنید. وبسایت Quera هم معمولا به صورت ماهانه مسابقات مختلف برنامه نویسی برگزار میکند که اغلب به برندگان آن هم جوایزی اهدا میشود.
مزیتها: رقابت با دیگران میتواند هیجانانگیز باشد. همچنین میتواند برای شما انگیزه خوبی ایجاد کند تا هر چه بیشتر تمرین کرده و سطح مهارت خود را به مرور بالا ببرید.
معایب: قبل از حضور در مسابقات باید آموزشهای اولیه برنامه نویسی را دیده باشید.
۵. ویدئوهای آموزشی برنامه نویسی
معرفی: چند سال اخیر که سرعت و قیمت اینترنت در ایران به قیمت معقولتری رسیده است، ویدئوها هم به گزینهی خوبی برای یادگیری تبدیل شدهاند. ویدئوهای آموزشی (همچون کلاسهای درس) این مزیت را دارند که از زبان یک آموزگار بیان میشوند؛ در نتیجه به نسبت کتابهای درسی، یادگیری از طریق آنها میتوانند راحتتر و جذابتر باشد. البته این کاملاً به سلیقه و ترجیح شما هم ربط دارد.
منابع: مهمترین و غنیترین منبع ویدئویی یوتیوب است. کانالهای The New Boston، LearnCode.academy، DevTips، Derek Banas و Coder’s Guide از معروفترینها هستند. اما بهتر است خودتان هم کمی در یوتیوب بگردید تا بهترین گزینه را برای خودتان پیدا کنید. اگر میخواهید نگاه عمیقتری به برنامه نویسی داشته باشید، بد نیست TED Talkهای مرتبط با آن را هم ببینید.
مزیتها: ویدئو اساسا سرگرمکننده است و احتمالاً یادگیریتان را جذاب میکند.
معایب: سرعت یادگیری در آن معمولاً پایینتر است. بدون اینترنت قابل دسترسی نیست.
۶. کارآموزی در حوزه برنامه نویسی
معرفی: اگر احساس میکنید به حد کافی پایههای برنامه نویسی را یاد گرفتید ولی هنوز برای کارِ جدی آماده نیستید، خوب است که به کارآموزی برنامه نویسی هم فکر کنید. در سالهای اخیر در ایران دورههای کارآموزی و بوتکمپهای برنامه نویسی در حال زیاد شدن هستند و این میتواند خبر خوبی در این زمینه باشد. هرچند برای حضور در بعضی از آنها باید شهریه پرداخت کنید، اما دورههای رایگان نیز وجود دارند.
دورههای معروف: در حال حاضر معروفترین آنها، دورههای رهنماکالج، نیمبو، مکتب شریف و کارادمی است. Quera هم به شکل سالانه، نمایشگاه آنلاین کارآموزشو را برگزار میکند که میتوانید از طریق آن در شرکتهای بزرگ حوزهی IT کارآموز شوید.
مزیتها: کار در محیط واقعی موضوعات جدیدی برای یادگیری پیش روی شما خواهد گذاشت.
معایب: قبل از کارآموزی نیاز دارید تا دانش پایهای برنامه نویسی را کسب کرده باشید.
۷. پادکستهای برنامه نویسی
معرفی: درست است که در پادکست نمیشود زیاد در مورد سینتکس و موضوعات فنی صحبت کرد، اما برای آموزش الگوریتم، بیان تجربههای توسعهی نرمافزار، مرور مسیر برنامهنویس شدن یا صحبتهای مهم دیگر میتواند مکان مناسبی باشد. پادکستها رو میتوانید موقع کد زدن یا در زمان استراحت بین کار گوش کنید و علاوه بر سرگرم شدن، چیزهای جدیدی یاد بگیرید.
منابع: اگر دنبال پادکستهای انگلیسی میگردید، Coding Newbie، Learn to Code With Me، Developer Tea، Software Engineering Daily و Programming Throwdown را امتحان کنید. بین پادکستهای فارسی هم میتوانید رادیوگیک جادی، رادیو فولاستک یا پادکستهای راکت را گوش کنید.
مزیتها: میتواند در راه یا در وقتهای استراحت سرگرمتان کند و بتوانید از زمانتان بهتر استفاده کنید.
معایب: معمولا حرفهای کلی دربارهی برنامه نویسی زده میشود و نمیشود به عنوان منبع اصلی آموزشی روی آن حساب کرد.
۸. بلاگها، Q&Aها و شبکههای اجتماعی
معرفی: در بلاگها، Q&Aها یا شبکههای اجتماعی، علاوه بر یادگیری میتونید با بقیهی برنامهنویس ها هم ارتباط داشته باشید. البته باز هم حواستان باشد که پایههای برنامه نویسی را از روش های دیگر یاد گرفته باشید و بعد وارد آنها شوید.
منابع: در وب فارسی میتوانید مطالب Quera Mag را دنبال کنید. در سطح جهان SitePoint، Dzone و David Walsh از پرطرفدارترین بلاگهای برنامه نویسی دنیا محسوب میشوند.
Q&Aهای برنامه نویسی شناخته شدهای هم در دنیا وجود دارند. احتمالا معروفترین آنها که خیلی وقتها با آنها روبرو خواهید شد Stack Overflow وQuora هستند.
برنامهنویسها معمولا در شبکههای اجتماعی، دورهمیهای بزرگ و مفیدی ساختهاند. برنامهنویسهای خارجی رو بیشتر میتوانید در Reddit یا Google Groups پیدا کنید و ایرانیها رو هم طبیعتاً در گروههای Telegram.
مزیتها: احتمالاً مسیری که الان در آن قرار دارید را قبلاً بقیه طی کردهاند؛ پس خوب است که در بلاگها یا شبکههای اجتماعی به دنبال استفاده از تجربیات آنها باشید.
معایب: معمولاً دانش کلی و پایهای برنامه نویسی برای استفادهی موثر از آنها نیاز است.
جمع بندی:
احتمالا به تعداد تمام آدمهای روی زمین، راه برای برنامهنویس شدن وجود دارد. همه چیز بستگی به علاقه، استعداد، توانایی و امکاناتتان دارد. این که چقدر برای این کار وقت دارید، زبان انگلیسیتان چقدر قوی است، سرعت یادگیریتان چقدر است، قبلا زبان برنامه نویسی دیگری بلد بودید یا نه و حتی سرعت و حجم اینترنتتان میتواند تعیین کند که کدام راه برای شما مناسبتر است. شما تا به حال کدام یک از این راهها را امتحان کردهاید و چقدر برای شما مفید بوده است؟ چه منابع دیگری برای یادگیری برنامه نویسی میشناسید؟
این نوشتهها را هم بخوانید