چگونه برنامه نویسی را یاد بگیریم؟ سوال مهمی که برنامه نویسان موقع شروع یادگیری می‌پرسند. در این مقاله به سوالات پر تکرار برنامه نویسان خواهیم پرداخت.

قبل از یادگیری برنامه نویسی، مقاله زیر را مطالعه کنید:

آیا می‌توان چندین زبان برنامه نویسی را با هم یاد گرفت؟

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

سعی کنید تو یه زبان قوی بشید تا اینکه دو تا زبانو سطحی یاد بگیرید. اینجوری شانس استخدامتون هم بالاتر میره. اگه یه زبان برنامه نویسی‌رو تا حد قابل قبولی مسلط بشید، می‌تونید زبان بعدی‌رو تو 2 تا 3 ماه یاد بگیرید.

چون قواعد همه زبان‌های برنامه نویسی یکی هست فقط Syntax (نوشتاری) مستفاوتی دارن. یعنی متغیر و دستور چاپ تو همه زبان‌ها هست ولی نوشتاریشون متفاوته.

مثلا تو پایتون متغیر x اینجوری هست: "x = "Hello World و دستور چاپش اینجوریه: (x)print

تو پی‌اچ‌پی متغیر x اینجوری هست: "x = "Hello World$ و دستور چاپش اینجوریه: echo $x

پس اگه من تو پایتون یاد گرفتم یه چیزی به نام متغیر (variable) هس میتونم متغیرای 100 تا زبان دیگه‌رو تو 10 ثانیه نوشتاریشو یاد بگیرم. و مثلا اگه بخوام بفهمم تو php متغیر چجوریه؟ تو گوگل میزنم how to define variable in php؟ و به جواب سوالم می‌رسم.

آیا باید کدهای برنامه نویسی را حفظ کنم؟

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

برای انجام یک پروژه برنامه نویسی باید 100% آن زبان را یاد بگیرم؟

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

چرا هر چقدر دوره آموزشی برنامه نویسی می‌بینم نمی‌توانم برنامه نویسی را یاد بگیرم؟

یک مفهومی هست به اسم "جهنم یادگیری" که یه دوره آموزشی می‌بینی ولی کد نمی‌زنی. میگی بذار دوره تموم شه آخرش کد می‌زنم. دوره آموزشی که تموم شد شروع می‌کنی به کد زدن می‌بینی که هیچی یادت نیست.

بعد که دیدی همه چی یادت رفته می‌گی دوره خوبی نبود. میری دوره برنامه نویسی یکی دیگه‌رو تهیه میکنی بعد شروع می‌کنی و بازم منتظر می‌مونی 30 ساعت دوره تموم شه بعد کد بزنی. آخر دوره بازم می‌بینی همه چی یادت رفته. میگی دوره خوبی نبود.

دوباره میری یه دوره دیگه و این چرخه یادگیری هنوز ادامه داره. در نهایت می‌بینی 10 تا دوره آموزشی دیدی ولی پای عمل که میاد اصلا نمی‌تونی کد بزنی و میگی استعدادشو ندارم و ناامید میشی.

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

نحوه یادگیری هر شخص فرق داره ولی یه موردی که خودم انجام دادم و جواب گرفتمو بهتون میگم:

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

البته اگه بخواین خیلی عمیق بشین:

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

البته در ابتدا گفتم نحوه یادگیری هر شخص متفاوته. یکی بار اول متوجه میشه، یکی بار پنجم پس این طبیعیه اصلا نگران نباشید.

چرا باید در ابتدای شروع برنامه نویسی، دوره آموزشی را در دفتر بنویسیم؟

نوشتن تو دفتر باعث میشه یکم کارتون طولانی بشه و دوره دیرتر تموم بشه ولی در طولانی مدت باعث میشه کارتون زودتر تموم بشه. یعنی چی؟

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

دوره‌های برنامه نویسی که اسم جلساتشونو جلسه1، جلسه2، جلسه3 و... نوشتن اون مشکلو از اسم دوره نمی‌تونین پیدا کنین و متوجه نمی‌شین راه حلتون تو کدوم جلسه بود. در خوشبینانه‌ترین حالت، اسم جلسه نوشته شده: جلسه اول معرفی دوره، جلسه دوم مفهوم متغیرها، جلسه سوم مفهوم توابع و... که از اسم جلسه سریع‌تر پیدا می‌کنید ولی فرض کنید بعد پیدا کردن جلسه باید دوباره 30 دقیقه همان جلسه‌رو نگاه کنید تا شمکلتونو پیدا کنید.

قطعا مشکلات‌تان هم یکی دو مورد نخواهد بود و در ادامه پروژه هم به مشکلات فراوانی برخورد خواهید کرد. پس برگشت دوباره به همون جلسات یجوری وقت تلف کردن هست چون دوباره دارین همون جلساتی که قبلا مشاهده کردید رو مشاهده می‌کنید ولی اگه تو دفتر نوشته باشین دیگه نیازی نیست 30 دقیقه بنشینید و اون جلسه‌رو ببینید. از دفتر اون مورد رو تو 10 ثانیه پیدا می‌کنید و حلش می‌کنید واسه همین تو بلند مدت کار سریع‌تر جلو میره.

جستجوی مشکل برنامه نویسی در گوگل کار برنامه نویسان مبتدی است؟

خیر. حتی برنامه نویسانی که 20 سال تو این حوزه فعالیت می‌کنند باز هم مشکلات خود را از گوگل پیدا می‌کنند. جستجو در گوگل نه تنها کار بدی نیست بلکه یکی از الزامات برنامه نویسی است. هر مشکلی که دارین رو باید تو گوگل سرچ کنید. مثلا فرض کنید نمیدونید در پایتون چجوری classرو تعریف می‌کنند؛ باید بنویسید How To Define Class in Python که معمولا در 3 لینک اول گوگل مشکلتون حل میشه.

اگه یه مشکلی براتون پیش اومد فکر نکنید فقط شما بلد نیستین. هزاران نفر قبل شما اون مشکلو داشتن و راه حلش‌رو تو Stack Over Flow یا سایر سایت‌های پرسش و پاسخ برنامه نویسی پرسیدن. پس شما می‌تونید هر مشکلی داشتید با خیال راحت جستجو کنید و از اون راه حل‌ها استفاده کنید (هر مشکل برنامه نویسی که داشتین 100 درصد در گوگل پیدا میشه).

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

برای یادگیری برنامه نویسی، زبان انگلیسی مهمه؟

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

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

استاندارد دوره‌های آموزشی برنامه نویسی هر جلسه‌‌شون به‌صورت استاندارد بین 5 تا 10 دقیقه است. کعمولا دوره‌های برنامه نویسی خارجی اینجوری هستند. متاسفانه بعضی از دوره‌های ایرانی هر جلسه‌اش تا 40 دقیقه و 1 ساعت هم میره که باعث میشه دانشجو خسته بشه و اول مسیرش برنامه نویسی‌رو ول کنه.

این که دوره برنامه نویسی باید بین 5 تا 10 دقیقه باشه یه بحث روانشناسی هست. چون اگه بیشتر طول بکشه دانشجو خسته میشه. دانشجو هر چقدر بتونه زودتر جلسه‌رو تموم کنه بهتره و اگه 50 دقیقه زمان بذاره میگه تو طول روز 10 جلسه (5 دقیقه‌ای) نگاه کردم و انگیزش بیشتر میشه. ولی اگه همون 1 جلسه، 50 دقیقه باشه با اینکه همونقدر زمان گذاشته، حس میکنه فقط 1 جلسه دیده و از کم کاری خودش انگیزش میاد پایین.

اساتیدی که تدریس می‌کنن می‌تونن تعداد قسمتارو زیاد کنن تا دقیقه‌ها کمتر بشه. مثلا انواع متغیر تو یه جلسه شاید 20 دقیقه طول بکشه که می‌تونن متغیر stringرو تو 2 دقیقه بگن متغیر integerرو جلسه بعدی تو 2 دقیقه بگن و...

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

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

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

معمولا برنامه نویسان اون زبان‌رو بهت پیشنهاد میدن که خودشون کار می‌کنن بدون انیکه متوجه نیاز تو باشن.

برنامه نویسی سخته؟ برنامه نویسی شغل پول‌سازی هس؟

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

استمرار در برنامه نویسی معجزه می‌کند:

استمرار در برنامه نویسی معجزه می‌کنه. مثل کتاب اثر مرکب (اگه این کتابو نخوندین حتما بخونیدش). یعنی اینجوری نباشه که یه روز 10 ساعت کد بزنید و 1 هفته ول کنید. روزی 2 ساعت باشه ولی هر روز استمرار داشته باشید. نباید این زنجیره قطع بشه.

اول کار اگه روزی 10 ساعت کد بزنید، در بلند مدت خسته میشید و باعث میشه 1 ماه ول کنید. این قطع زنجیره باعث میشه هرچی یاد گرفتین فراموش کنید و از اول شروع کنید.