بلاگ

راهنمای شروع برنامه نویسی برای مبتدیان!

Programming guide for beginners!

اگر در زمینه برنامه‌نویسی تقریبا تازه‌کار هستید، مطمئناً سؤالاتی دارید:

  • چگونه باید برنامه نویسی را شروع کنم؟
  • ابتدا چه چیزی را باید یاد بگیرم؟
  • «توسعه نهایی یک پروژه» به چه معناست؟

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

ما به این سوالات تا حد امکان به طور کامل پاسخ داده‌ایم تا به شما کمک کنیم سفر برنامه‌نویسی خود را شروع کنید!

۱-ابتدا باید چه زبان برنامه نویسی را یاد بگیرم؟

واقعاً مهم نیست!

مطمئناً زبان‌هایی وجود دارند که انتخاب آن‌ها برای مبتدیان آسان‌تر است، مانند Python، Ruby یا JavaScript.

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

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

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

همچنین این احتمال وجود دارد زبانی که در ابتدا یاد می‌گیرید، آن زبان برنامه‌نویسی اصلی و کاربردی نباشد که شما در نهایت در شغل یا کار خود از آن استفاده می‌کنید.

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

اگر می‌خواهید در زمینه رباتیک و هوش مصنوعی فعالیت کنید، در وبلاگ معرفی ۵ تا از بهترین زبان های برنامه نویسی در رباتیک و وبلاگ معرفی ۱۰ تا از پرکاربردترین زبان های برنامه نویسی در هوش مصنوعی، بهترین زبان های برنامه نویسی در این دو رشته را به شما معرفی خواهیم کرد.

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

به طور خلاصه، به تسلط بر مفاهیم ضروری کدنویسی متمرکز شوید؛ زیرا بسیار مهم‌تر از نحو یا سینتکس یک زبان است.

اما اگر می‌خواهید در همین ابتدای کار، بهترین زبان برنامه نویسی را برای یادگیری انتخاب کنید، شما را در وبلاگ بهترین زبان های برنامه نویسی سال ۲۰۲۳ بیشتر راهنمایی خواهیم کرد.

البته ما می‌دانیم که شما احتمالاً نمی‌خواهید با یادگیری یک زبان برنامه‌نویسی مبهم و دشواری که معمولاً استفاده نمی‌شود، شروع کنید. پس تا انتهای مقاله با ما همراه باشید…

۲- چگونه زبان های برنامه نویسی را دسته‌بندی کنم؟

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

در اینجا ۵ مورد از مفیدترین زبان‌های برنامه‌نویسی برای برنامه‌نویسان مبتدی آورده شده است:

  • کامپایلری
  • تفسیری یا مفسری
  • از نوع استاتیک (static type)
  • از نوع پویا یا داینامیک (Dynamic type)
  • شی‌گرا

در زیر، شرح کوتاهی از هر یک از این دسته‌ها به همراه فهرست کوتاهی از زبان‌ها برای هر کدام ارائه شده است.

۱- زبان‌های برنامه‌نویسی کامپایلری

یک زبان کامپایلری زبانی است که از یک کامپایلر برای تبدیل کد منبع یا سورس کد (source code کدی که خودتان می‌نویسید) به شکلی که کامپیوتر می‌داند چگونه آن را بفهمد، (که اغلب کد ماشین یا زبان ماشین نامیده می‌شود)، استفاده می‌کند.

معمولاً خروجی کامپایلر در یک یا چند فایل به نام فایل اجرایی با پسوند .exe ذخیره می‌شود.

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

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

به عبارت دیگر، کامپایل کد معمولاً جدا از اجرای برنامه انجام می‌شود.

زبان‌های برنامه‌نویسی کامپایلری محبوب:

  • C
  • C++
  • Java
  • Rust
  • Go

۲- زبان های برنامه نویسی تفسیری یا مفسری

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

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

تفاوت اصلی بین کامپایل و تفسیر این است که فرآیند تفسیر هیچ شکافی بین تبدیل و اجرای کد ندارد.

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

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

زبان های برنامه نویسی رایج تفسیری:

  • Python
  • JavaScript
  • Ruby

۳- زبان های برنامه نویسی از نوع ایستا یا استاتیک (static type)

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

علاوه بر این، نوع داده یک متغیر مجاز به تغییر در طول کامپایل یا اجرای برنامه نیست.

به عنوان مثال

هر بار که یک متغیر را در یک زبان تایپ ایستا ایجاد می‌کنید، باید به صراحت نوع داده آن متغیر را مشخص کنید.

این نوع داده می‌تواند یک عدد صحیح، رشته، بولی و غیره باشد.

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

زبان های برنامه نویسی رایج با تایپ استاتیک:

  • C
  • C++
  • Java

۴- زبان های برنامه نویسی از نوع پویا یا داینامیک (dynamic type)

Dynamic-typing  به این معنی است که انواع داده‌های متغیر در طول اجرای برنامه ایجاد شده و همچنین زمان اجرای برنامه (اصطلاحا runtime) نیز شناخته می‌شوند.

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

  • Python
  • JavaScript
  • Ruby

۵- زبان های برنامه نویسی شی گرا

برنامه‌نویسی شی گرا (OOP) یک الگوی کد نویسی است که به برنامه نویسان اجازه می دهد «اشیاء یا objects» را ایجاد کرده و با آن‌ها کار کنند.

یک شی، نمایش یا مدلی از چیزی است که برنامه‌نویس باید آن را از طریق کد توصیف کند.

تقریباً هر چیزی را می‌توان به عنوان یک object در کد مدل‌سازی کرد.

اشیاء اغلب چیزهای واقعی را نشان می‌دهند، مانند محصولات برای فروش در یک فروشگاه یا مشتریانی که آن محصولات را می‌خرند.

اما اشیا همچنین می‌توانند موارد دیجیتالی مانند فرم‌های وب، و حتی موارد انتزاعی‌تر مانند نقاط انتهایی URL، سوکت‌های شبکه و غیره را نشان دهند.

۳-تفاوت بین توسعه  front-end، back-end و full-stack چیست؟

این اصطلاحات عموماً به بخشی از برنامه کاربردی یا اپلیکیشن اشاره دارد که روی آن کار می‌کنید.

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

قسمت front به بخش‌هایی از برنامه اشاره دارد که کاربران (که به عنوان کلاینت شناخته می‌شوند) به طور مستقیم با آن‌ها تعامل دارند.

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

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

وظایف توسعه مربوط به قسمت front شامل طراحی تجربه کاربری (UX)، ایجاد رابط کاربری(UI)، شبکه سمت کلاینت، ادغام و استفاده از کتابخانه‌های سمت کلاینت، و جمع‌آوری/تأیید اعتبار/ارائه اطلاعات ورودی کاربر است.

به عنوان یک توسعه‌دهنده فرانت‌اند، شما این وظایف را عمدتاً با استفاده از HTML برای تعریف ساختار صفحات وب، CSS برای اضافه کردن استایل و جاوااسکریپت برای افزودن تعامل انجام خواهید داد.

قسمت back به بخش‎هایی از برنامه اشاره دارد که در پشت صحنه اجرا می‌شوند و کاربر / مشتری مستقیما با آن در ارتباط نیستند.

اکنون که back-end و front-end را توضیح دادیم، تعریف فول استک، آسان‌تر شده است.

Full-stack به سادگی شامل هر دو قسمت front و back می‌شود!

فول‌استک از اصطلاح stack بوده که شکل کوتاه شده «software stack» است.

پشته نرم افزار یا software stack مجموعه‌ای از ابزارها، چارچوب‌ها، زبان‌های برنامه‌نویسی و سیستم‌عامل‌هایی است که برای پشتیبانی از یک Application استفاده می‌شود.

۴-از کدام ویرایشگر متن یا IDE استفاده کنم؟

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

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

اگر اساساً با زبان‌های تفسیر شده و پویا مانند پایتون، جاوا اسکریپت، روبی یا PHP کار می‌کنید، توصیه می‌کنیم با یک ویرایشگر مبتنی بر رابط کاربری گرافیکی مانند Sublime Text یا Visual Studio Code  شروع کنید.

اینها دو تا از محبوب‌ترین ویرایشگرهای متنی هستند و ویژگی‌ها و سفارشی‌سازی‌های فراوانی را ارائه می‌کنند تا زندگی شما را به عنوان یک توسعه‌دهنده آسان‌تر کنند!

اگر با جاوا کار می‌کنید، Eclipse یا IntelliJ IDEA را پیشنهاد می‌کنیم که ویژگی‌های زیادی را ارائه می‌کنند و به طور خاص برای کار در اکوسیستم جاوا ساخته شده‌اند.

۵-آیا مهم است که از چه سیستم عاملی استفاده کنم؟

وقتی نوبت به یادگیری زبان برنامه نویسی برای اولین بار می‌رسد، ما به این سوال به عنوان اولین سوال در این لیست پاسخ می‌دهیم.

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

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

درواقع باید بدانید که به نظر ما سیستم عاملی که دسترسی به یک ترمینال خط فرمان با کیفیت را فراهم می‌کند، می‌تواند بسیار مفید باشد.

خط فرمان یا CLI (واسط خط فرمان):

CLI رابطی است که در آن دستوراتی را برای پردازش کامپیوتر وارد میکنیم.

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

سخن آخر…

در این مقاله، به ۵ سوال متداولی که معمولا برای کدنویسان جدید به وجود می‌آید، پاسخ دادیم.

اگر سؤالی دارید که دراین وبلاگ به آن پاسخ داده نشده، می‌توانید در قسمت تماس با ما یا بخش نظرات، سوالاتتان را برای ما ارسال کنید.

دیدگاهتان را بنویسید