codingcogs' logo
Where do I start programming post cover

چگونه برنامه‌نویسی را یاد بگیریم؟

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

  • ذهنیت برنامه‌نویسی
  • هدف از برنامه‌نویسی
  • انتخاب زبان اول، روش‌های یادگیری و تمرین
  • رفع مشکل و پیدا کردن شغل

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

مقدمه

اگر اینجا هستید حتما در مورد برنامه‌نویسی( programming ) شنیده‌اید یا با آن آشنا هستید. برنامه‌ نویسی مهارت انجام کارها توسط کامپیوترهاست. افراد مسلط به این مهارت می‌توانند برنامه‌های ساده یا پیچیده بسازند، به صورت تکی یا تیمی کار کنند و حتی محصولات نرم‌افزاری خود را توسعه دهند.

مثلا همین صفحه‌ای که دارید مقاله را در آن می‌خوانید، در واقع یک محصول نرم‌افزاری(software application) است که از چند برنامه‌ی ساده و پیچیده، توسط تیم کدینگ‌کاگز تشکیل شده است.

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

قبل از برنامه‌نویسی

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

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

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

در نهایت احساس رضایت بعد از حل مسئله بعد از چند ساعت، احساسی است که هر برنامه‌نویسی بارها آن را تجربه می‌کند و می‌شناسد و دوست دارد؛ مطمئن باشید که ارزشش را دارد!

مسئله‌ی اصلی: کدام زبان برنامه‌ نویسی را اول یاد بگیرم؟

رایج‌ترین سوال برای کسانی که قصد شروع برنامه‌نویسی را دارند همین است که کدام زبان برنامه‌ نویسی را اول یاد بگیرم؟ . جواب این سوال ساده‌تر از چیزی است که فکر می‌کنید:

آنقدری که فکر می‌کنید اهمیت ندارد!

مفاهیم اولیه‌ی برنامه‌نویسی در تمام زبان‌های برنامه‌ نویسی ثابت است و تمام زبان‌های رایج برنامه‌نویسی متغیرها، شرط‌ها و حلقه‌ها و ... را درون خود دارند. اولین زبان برنامه‌ نویسی شما باید مثل یک برنامه‌نویس فکر کردن را به شما یاد دهد و خود زبان صرفا یک ابزار برای پیاده‌سازی خروجی تفکر شماست.

البته بعضی از زبان‌ها برای تازه‌کارها از دیگر زبان‌ها مناسب‌تر هستند. پایتون ( Python ) یکی از پرطرفدارترین و توصیه‌شده‌ترین زبان‌ها برای شروع یادگیری برنامه‌نویسی است که میتوانید همین حالا با کارگاه جامع پایتون کدینگ کاگز، یادگیری این زبان محبوب دنیا را یک بار برای همیشه به شکل اصولی و استاندارد یادبگیرید.

ساختار این زبان ( syntax ) بسیار واضح و خواناست. با پایتون می‌توانید به جای تمرکز روی قوانین پیچیده‌ی syntax زبان‌های دیگر، سریع‌تر به یادگیری مفاهیم بپردازید. جاوااسکریپت ( JavaScript ) یک گزینه‌ی خوب دیگر است که اگر هدف توسعه‌ی وبسایت‌ها (فرانت‌اند) را دارید، می‌توانید به یادگیری آن بپردازید.

پروژه یا تمرین؟

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

قرار نیست یک دیجیکالا یا اسنپ دیگر بسازید. به جای این کار با تمرین‌های ساده‌تر یا پروژه‌های خیلی کوچک شروع کنید. در ابتدای کار این تمرین‌ها مهارت search کردن را در شما تقویت می‌کنند و یاد می‌گیرید که راه‌حل‌های مختلف و مناسبی پیدا کنید و تئوری‌هایی که یاد گرفتید را به صورت عملی و کاربردی پیاده کنید. مراحل توسعه‌ای که باید یاد بگیرید شامل ساخت( build )، تست( test ) و رفع خطا ( debug ) هستند.

چطوری یاد بگیریم؟

هیچوقت زمان بهتری برای آموزش برنامه‌نویسی وجود نداشته. منابع خوب با اینکه نسبت به منابع بد کمتر هستند، اما بازهم قابل پیدا کردن و دستیابی‌اند. پلتفرم‌های تعاملی نیز مانند کدینگ‌کاگز وجود دارند که برای افراد در تمام سطوح(از تازه‌کار تا حرفه‌ای ) بسیار مناسب هستند و سرعت یادگیری شما را چند برابر می‌کنند. این پلتفرم‌ها با ارائه‌ی یک ساختار مناسب آموزشی، در طول یادگیری همراه شما هستند و کمتر احساس دلسردی و یا گم شدن می‌کنید.

در مورد دوره‌های ویدیویی هم میتوانید در یوتیوب و یا با یک سرچ ساده گوگل به منابع رایگان و غیر رایگان متنوعی دست پیدا کنید که البته تشخیص کیفیت مطالب ارائه شده برای تازه واردان به حوزه برنامه نویسی زیاد کار ساده‌ای نیست!

به همین دلیل شاید بهتر باشد در کامیونیتی‌های مختلف برنامه نویسی و در پلتفرم‌های گوناگون، مانند توییتر(x)، از افراد متخصص و حرفه‌ای پرس و جو انجام بدید تا منابع مختلف و مورد تایید خودشان را بدون تبلیغات مارکتینگی به شما معرفی کنند. البته توجه داشته باشید معمولا پیگیری آموزش‌ها به زبان انگلیسی بسیار مفیدتر هستند. پس اگر در زبان انگلیسی ضعف دارید، لیوان آب را زمین بگذارید و همین الان فراگیری انگلیسی را به صورت جدی دنبال کنید!

خواندن کتاب‌های خوب و مناسب نیز به زبان اصلی (انگلیسی) راه مناسب دیگری برای یادگیری است. بهترین استراتژی به نظر من ترکیب تمام موارد گفته شده و تکرار و تمرین بیشتر است.

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

سلاح مخفی!

یادگیری برنامه‌نویسی و و کار در دنیای برنامه نویسی یک موضوع انفرادی نیست. یکی از مهم‌ترین مهارت‌هایی که باید یاد بگیرید کمک گرفتن است. تمام توسعه‌دهندگان برای حل مسائل و مشکلات کاری خود، کم یا زیاد، به جامعه توسعه‌دهندگان ( Community ) یا کامیونیتی وابسته هستند. Stack Overflow یکی از معروف‌ترین پلتفرم‌ها برای دسترسی به کامیونیتی بود که امروزه بیشتر جای خود را به X(توییتر سابق) ، Reddit و Discord داده‌است. ارتباط با کامیونیتی و پیدا کردن راه حل مشکلات با search و مشورت مهم‌ترین سلاح مخفی شماست.

همچنین شرکت در بعضی از رویداد‌های برنامه‌نویسی نیز برای ایجاد ارتباط (connection) با کامیونیتی توصیه می‌شود. نگران سوال پرسیدن هم نباشید، دقت کنید که اول باید مشکل خود را رفع کنید و اینکه در ابتدای کار دیگران در مورد شما چه فکر می‌کنند اهمیتی ندارد.

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

چیزی رو فراموش نکردی؟

پیوستگی مهم‌تر از شدت است. اگر 3 روز پشت سر هم و هر روز 25(!) ساعت به یادگیری بپردازید و سپس به مدت 2 ماه از یادگیری فاصله بگیرید، قطعا چیز خاصی یاد نمی‌گیرید. ولی اگر روزی 1 یا 2 ساعت و هر روز به مدت یک ماه به صورت پیوسته به یادگیری و تمرین بپردازید قطعا اثر بهتری را تجربه می‌کنید. تمرین مرتب ذهن شما را آماده نگه می‌دارد و باعث می‌شود که مباحث مهم، اصلی و کاربردی را فراموش نکنید. مثل باشگاه رفتن به آن فکر کنید، شما با مرتب به باشگاه رفتن و با تمرین‌های کوچک و کوتاه در هر بار به باشگاه رفتن نتیجه بهتر و ماندگار تری می‌گیرید.

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

اشتباهات رایج

هر کسی که به تازگی وارد دنیای برنامه‌نویسی می‌شود اشتباهات قابل پیش‌بینی زیادی انجام می‌دهد، دانستن اشتباهات رایج از قبل می‌تواند به شما کمک کند که تا حد زیادی از انجام آن‌ها پرهیز کنید. بزرگترین اشتباه رایج گیر کردن در دنیای آموزش‌ برنامه نویسی است که به آن جهنم آموزش ( Tutorial Hell ) نیز گفته می‌شود؛ در این حالت شما فقط آموزش‌های مختلف را می‌بینید و اصلا خودتان کد نمی‌نویسید، احساس یادگیری دارید ولی واقعا فقط دارید اطلاعات را مصرف می‌کنید و هیچ یادگیری واقعی‌ای برای شما اتفاق نمی‌افتد. راه‌حل این مشکل این است که با هر آموزشی که پیش می‌روید، بعد از یادگیری هر چیزی، سریعا دست به کد شوید و بدون تکیه‌ی مجدد به آموزش، چیزی مشابه تمرین یا پروژه‌ی آموزشی خود بسازید.

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

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

ادامه‌ی راه

با در نظر گرفتن تمام موارد بالا و شروع یادگیری مفاهیم اولیه با اولین زبان برنامه‌نویسی‌ای که انتخاب کردید، دنیای جدیدی برای شما نمایان می‌شود. قدم مهم بعدی یادگیری version control با Git و GitHub است تا بتوانید مدیریت کد و همکاری با دیگران را یاد بگیرید. این مهارت ضروری‌ترین مهارت حرفه‌ای شماست.


آموزش رایگان Git و GitHub :

از قسمت 19 تا انتهای فصل 8 و 3 قسمت اول فصل 9 در دوره‌ی کارگاه پایتون می‌توانید به رایگان مبانی اصلی Git و GitHub را بیاموزید.


از این نقطه به بعد باید در زبان برنامه‌نویسی‌ای که آن را انتخاب کردید عمیق‌تر شوید و با توجه به علاقه‌ی خود فریم‌ورک‌های( framework ) مناسب آن زبان را یاد بگیرید(مثلا Django برای توسعه‌ی وب به زبان پایتون) تا بتوانید برنامه‌های پیچیده‌تر را سریع‌تر بسازید. همچنین باید مباحث مرتبط با حوزه‌ی مورد علاقه‌ی خود (هوش مصنوعی یا دیتابیس‌ها یا ...) را نیز یاد بگیرید. هدف این است که همیشه در حال تمرین و ساختن باشید و کنجکاوی خود را حفظ کنید تا در نهایت بتوانید موفق شوید.