
پیشنیازهای برنامهنویسی؛ هر چیزی که قبل از شروع باید بلد باشی
اگه چند روزه داری به برنامهنویسی فکر میکنی و نمیدونی از کجا باید شروع کنی، احتمالاً این سؤال تو ذهنت هست:
«قبل از اینکه برم سراغ یادگیری یک زبان برنامهنویسی، اصلاً چی باید بلد باشم؟»
بذار خیالتو راحت کنم…
برای شروع برنامه نویسی لازم نیست نابغه باشی، لازم نیست ریاضیدان باشی، لازم نیست از بچگی پشت کامپیوتر بزرگ شده باشی.
ولی و این یه ولی مهمه
یهسری پیشنیاز هست که اگه بلدشون باشی، مسیرت ده برابر راحتتر میشه.
این مقاله دقیقاً قراره همینارو برات روشن کنه.
بریم سر اصل مطلب.
پیشنیاز شماره ۱: تفکر الگوریتمی (Algorithmic Thinking)
این اولین و مهمترین پیشنیاز برنامه نویسیه.
اگه اینو خوب بفهمی، نصف راه رو رفتی.
تفکر الگوریتمی یعنی چی؟
یعنی بتونی کارها رو مرحله به مرحله تحلیل کنی.
مثلاً:
میخوای یه چای درست کنی؟
اول آب رو جوش میذاری
بعد لیوان میاری
چای خشک میریزی
آب جوش میریزی
صبر میکنی دم بکشه
این میشه الگوریتم.
برنامهنویسی هم همینه، فقط به جای چای، داری مسئله حل میکنی.
چطور تقویتش کنی؟
حل کردن مسائل ساده مثل پیدا کردن بیشترین عدد
بازیهای فکری
معماهای کوچک برنامهنویسی
تمرینهای سایتهایی مثل CodeWars
پیشنیاز شماره ۲: منطق برنامهنویسی (Programming Logic)
خیلیها اشتباه میکنن فکر میکنن برنامه نویسی یعنی فقط زبان یاد بگیری.
نه.
اصل ماجرا منطقشه.
این منطق شامل چیزهایی مثل:
متغیرها
حلقهها
شرطها
توابع
ورودی/خروجی
بذار راحت بگم:
بدون اینا نمیتونی هیچ کاری بکنی.
هر زبانی هم که بخوای یاد بگیری، این مفاهیم توش هست.
پس وقتی یک بار یادشون بگیری، برای همیشه بلدی و فقط سینتکس زبانها تغییر میکنه.
پیشنیاز شماره ۳: درک درست از کامپیوتر و سیستمعامل
اگه میخوای برنامهنویس بشی باید حداقل چیزهای پایهای رو از سیستمعامل بلد باشی:
ساختن پوشه
کار با فایلها
نصب برنامهها
مدیریت مسیرها (Path)
نسخههای مختلف سیستمعامل
قرار نیست هکر بشی؛ ولی نباید با کامپیوتر غریبه باشی.
پیشنیاز شماره ۴: کار کردن با ترمینال (Command Line)
این یکی شاید اولش ترسناک به نظر بیاد ولی خیلی مهمه.
ترمینال برای برنامهنویس دردسر نیست، نصف قدرتشه.
مثلاً:
نصب پکیجها
ساخت پروژه
اجرای برنامه
کار با گیت
تنظیم محیط توسعه
همهش از ترمینال رد میشه.
ترمینال چیو باید بلد باشی؟
چندتا دستور پایه مثل:
cd
ls
mkdir
rm
touch
همینها هم کلی کارت رو راه میاندازه.
پیشنیاز شماره ۵: مدیریت نسخه با Git و GitHub
اگه میخوای برنامهنویس بشی، گیت اجباریه.
نه انتخابی.
نه «دوست داری یاد بگیر» اجباری.
چرا؟
چون:
هر پروژهای که بسازی نسخههای مختلف داره
باید بتونی برنامهت رو به عقب برگردونی
باید بتونی با بقیه همکاری کنی
باید کدت توی جایی مثل GitHub ذخیره باشه
چیهاش مهمه؟
commit
push
pull
branch
merge
همین پنجتا کافیه برای شروع.
پیشنیاز شماره ۶: سختکوشی و قدرت حل مسئله
میدونی چی ۹۰٪ افراد رو وسط راه از برنامهنویسی فراری میده؟
مشکل حل کردن.
برنامهنویسی یعنی مشکل… و حل کردنش.
هر روز به خطا میخوری.
rt=”3913″ data-end=”3916″ />>هر روز یه باگ جدید داری.
اگه صبور نباشی، اصلاً نمیتونی ادامه بدی.
پس چی مهمه؟
صبر
خونسردی
سرچ کردن
تسلیم نشدن
فهمیدن اینکه باگ دشمن نیست، بخشی از مسیرته
اینها پیشنیاز برنامهنویس شدنه، نه زبان برنامهنویسی.
پیشنیاز شماره ۷: آشنایی با ساختار اینترنت و وب
این یکی مخصوصاً برای کسانی که میخوان وارد حوزه وب بشن خیلی مهمه.
چیا باید بدانی؟
درخواست (Request) چیه
پاسخ (Response) چیه
API یعنی چی
مرورگر چطور کار میکنه
سرور یعنی چی
DNS چیه
لازم نیست متخصص شبکه بشی، ولی باید بدونی دنیا چطوری کار میکنه.
پیشنیاز شماره ۸: یادگیری انگلیسی (در حد قابل قبول)
برنامهنویس بدون انگلیسی مثل راننده بدون فرمونه.
اصلاً شوخی نیست.
لازم نیست فلوئنت باشی، ولی باید بتونی:
توی گوگل سرچ کنی
متن خطاها رو بخونی
از StackOverflow جواب برداری
داکیومنت بخونی
بهترین پیشنیاز اینه که ترس از انگلیسی رو کنار بذاری.
پیشنیاز شماره ۹: آشنایی با IDE یا ادیتور کد
قراره ۸۰ درصد عمرت توی ادیتور کد بگذره.
پس باید حداقل بلد باشی با یکی مثل VS Code کار کنی.
چیزهایی که باید بلد باشی:
باز کردن پروژه
نصب افزونهها
ترمینال داخلی
دیباگ ساده
اجرای برنامه
همینها برای شروع کافیه.
پیشنیاز شماره ۱۰: توانایی یادگیری خودآموز (Self Learning)
برنامهنویسی چیزی نیست که یکی بیاد دستت رو بگیره از صفر تا صد.
بیشتر مسیر یادگیری خودته.
Self-Learning شامل:
سرچ کردن
تست کردن
شکست خوردن
دوباره تلاش کردن
پیدا کردن جواب
جلو رفتن با تجربه
این توانایی مهمترین پیشنیازیه که کمتر کسی بهش توجه میکنه.
جمعبندی: قبل از شروع برنامهنویسی دقیقاً چی باید بلد باشی؟
پیشنیازهای برنامهنویسی ایناست:
تفکر الگوریتمی
منطق برنامهنویسی
آشنایی پایه با کامپیوتر
استفاده از ترمینال
گیت و گیتهاب
حل مسئله و صبر
آشنایی با اینترنت
انگلیسی
ادیتور کد
یادگیری خودآموز
اگه اینا رو بلد باشی، هر زبانی بخوای یاد بگیری (پایتون، جاوااسکریپت، هرچی…) برات مثل آب خوردنه.




