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

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

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

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

خیلیا فکر میکنن اگر با استفاده از یک زبان مثل پایتون یا اصلا هر زبان دیگه ای یک برنامه بنویسن که hello world رو چاپ کنه میشن خدای برنامه نویسی. ولی این عملا اشتباهه. بزارین اینطوری بگم من وقتی کلاس راهنمایی بودم برنامه های زیادی با ویژوال بیسیک میساختم ولی میتونم بگم نصفشون کپی کردن بود نصف دیگش رو هم باید هعی به منابع مختلف نگاه میکردم تا میتونستم به طریقی (که همون شبیه کپی کردن بود) بنویسم. خوب حالا من برنامه نویس بودم؟ نه! الان دلایلش رو میگم.

1. برنامه نویسی مختص زبان و کامپیوتر نیست!

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

2. با الگوریتم و فلوچارت آشنا شوید

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

3. زبان مهم نیست!

همیشه آدمایی هستش که سر این بحث کنن که پایتون بهتره یا جاوا، سی بهتره یا سی شارپ، پی اچ پی بهتره یا جاوااسکریپت... مسئله اصلی اینه اصلا زبان مهم نیست! شما اگر مثلا به زبان سی مسلط باشین میتونین خیلی راحت زبان برنامه نویسی جدیدی رو یاد بگیرین چون معمولا شکل دستورات یا همون سینتکس یکی هستن. علی الخصوص در زبان های عضو خانواده سی (C,C++,C#,Java,JavaScript,PHP) میشه گفت فقط یکمی تفاوت دارن. پس چندان سردرگم انتخاب زبان نباشین و به جای از این شاخه به اون شاخه پریدن روی یک زبان تمرکز کنین. یادتون باشه کار برنامه نویس حل مشکله نه انتخاب زبان.

4. از الگوریتم به کامپیوتر

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

در این مرحله میتونین از سایت هایی مثل Quera.ir برای بهبود تفکر الگوریتمی هم استفاده کنین.

5. رد کنین!

اولین برنامه ای میسازیم رو در نظر بگیرین :

#include <stdio.h>

int main() {

  printf("hello world");
  return 0 ;

}

خوب اگر الان یک تازه وارد باشین ندونین چرا برای چاپ دستور اون عبارت رو بین دو تا دابل کوتیشن " میزاریم یا چرا جلوی main دو تا پارانتز باز و بسته هستش و یا چرا جلوی printf هم باز اینطوری هستش و ...

و اینقدر اینطوری از خودتون سوال میکنین تا کلا از برنامه نویسی زده بشین! معمولا تو کتاب یا منبعی که دارین توضیح میده دقیقا هر خط چیکار میکنه ولی اگر بخواین دقیق تمام اینا رو بدونین باید به فصل مدنظرش برین. مثلا برای اینکه چرا جلوی main یا printf دو تا پارانتز باز و بسته میزاریم مربوطه به فصل توابع و اونجا خودتون یاد میگیرین اصلا چطوری توابع خودتون رو بنویسین. حالا مثلا تو زبان سی این مسئله به این ختم میشه ولی در زبان هایی مثل جاوا شما از همون اول کار با بحث نسبتا پیچیده شی گرایی (کلاس ها و اشیاء) هم سر و کله میزنین! پس تا وقتی مبانی رو کامل یاد نگرفتین اصلا به سمت جزئیات نرین مگر اینکه سوالی که دارین مستقیما مربوط به فصل خودتون باشه.

6.بهترین دوست برنامه نویس!

معمولا میگن انگلیسی برای برنامه نویسی لازم نیست ولی به نظر من جمله اشتباهی هستش. چون با انگلیسی منابع بسیار بیشتر و بهتری دارین و هم اینکه چون زبان بین المللی هستش میتونین سوالاتتون رو تو گوگل جست و جو کنین و در عرض چند دقیقه به جوابتون برسین. اگر تا حالا زیاد از گوگل استفاده نکردین باید بدونین نصف عمر برنامه نویس صرف گوگل کردن میگذره :) و چه بسا سوالاتی هستن که الان بهشون برمیخورین و میبینین ده سال پیش حل شده. این توصیه رو به هم میگم ولی با این وجود هیچکس جدی نمیگیره و باز از من منابع یادگیری میخواد! خوب عزیز من شما میتونین دقیقا تو گوگل بنویسین "منابع یادگیری فلان" و یا اصلا "آموزش فلان" و یا "دوره آموزشی رایگان فلان" و یا اگر قصد دارین پول خرج کنین "دوره فلان" مطمئنا هزار تا منبع براتون میاد که میتونین ببینین با کدوم بیشتر متوجه میشین و اون رو انتخاب کنین. اگر در انگلیسی هم مسلط باشین که چه بهتر... پس گوگل رو جدی بگیرین و ازش خجالت نکشین. نگران نباشین گوگل شما رو بابت تازه وارد بودن مسخره نمیکنه!

7. برنامه نویس خاص باشین!

خوب الان فرض کنین یک زبانی رو یاد گرفتیم. چیکار کنیم؟ الان وقتش هست که حوزه تون رو انتخاب کنین. دوست دارین برنامه نویس وب بشین؟ برنامه نویس اندروید بشین؟ IOS؟ برنامه نویس دسکتاپ؟ یا شایدم دوست دارین برین به حوزه الکترونیک و آردیونو. یا حتی هوش مصنوعی و دیتا! حوزه های خیلی زیادی تو برنامه نویسی هستش و شما بعد از اینکه مقدمات رو یاد گرفتین میتونین در موردشون تو گوگل تحقیق کنین. مثلا برای برنامه نویسی وب شما باید کمی درک از شبکه داشته باشین و طراحی پایه صفحات (html,css) رو بلد باشین. بعدش باید باز تصمیم بگیرین میخواین برنامه نویس فرانت اند باشین یا بک اند؟ (فرانت اند مربوط به طراحی سایت و چیز هایی که سمت کاربر رخ میده و بک اند هم مربوط به سروره. قبلنا فکر کنم توضیحاتی دادم در این رابطه) اگر فرانت اند بود باید بیشتر روی html css مسلط باشین و جاوا اسکریپت رو هم یاد بگیرین. و اگر میخواین بک اند کار کنین باید زبانی مثل PHP یا ASP رو یاد بگیرین. شاید بگین پایتون... مورد بعدی رو بخونین!

8. با فریمورک ها و کتابخانه های زبان مد نظر آشنا بشین

کتابخانه اصطلاحا یک سری دستورات از پیش نوشته و آماده هستش که میتونین توی پروژه از اونا استفاده کنین. فریمورک هم میشه گفت یک جور چهارچوبی هستش که میتونین در اون بهتر برنامه نویسی کنین (معمولا فریمورک متشکل از چندین کتابخانه هستش) حالا این چیزا به چه دردمون میخورن؟ اینا باعث میشن که کد هامون کوتاه تر بشه و یا با سرعت بیشتری پروژه رو جلو ببریم. مثلا تو پایتون یک فریمورکی داره به اسم Flask که میتونین باهاش حتی برای وب هم برنامه نویسی کنین. این فریمورک ها مرز های زبان رو خیلی جا به جا کردن! در این حد که حتی میشه با زبانی مثل جاواسکریپت که زبان برنامه نویسی وب هستش اپلیکیشن اندرویدی و یا IOS بسازین. پس در این رابطه هم تو گوگل تحقیق کنین. یادتون باشه در تک تک این مراحل تمرین بسیار مهمه.

9. با سایر برنامه نویس ها تعامل داشته باشین

سعی کنین مشکلات دیگران رو حل کنین یا در پروژه گروهی مشارکت داشته باشین. توضیح دادن یک مسئله برای دیگران باعث میشه اون مسئله تو ذهن شما هم تثبیت بشه و حتی بهتر از قبل به اون مطلب تسلط داشته باشین. خوندن کد های دیگران هم تمرین خوبیه برای بهتر کردن مهارت خطایابی و نسلط بیشتر. شاید شما برنامه ای بنویسین که 5 خط طولش باشه ولی دوستتون اون ها رو در یک خط کوتاه کنه. و یا اصلا زمان و عملکرد برنامتون رو بهبود بده. پس با جامعه برنامه نویسی هم در ارتباط باشین!

10. آچار پیچ گوشی برنامه نویسان!

یک سری ابزار و برنامه ها هستن که خیلی تو پروژه ها به درد میخورن مثل گیت. یا مثلا یک سری نرم افزار های مدیریت پروژه و یا حتی محیط برنامه نویسی (IDE). اینا هم دونستنشون خوبه و یادگیریش رو توصیه میکنم.

11. امنیت، سئو، طراحی و ...

مسائل مربوط به امنیت رو یاد بگیرین و سعی کنین در برنامتون اون موارد رو رعایت کنین. اگر برنامه نویسی وب کار میکنین بهتره کمی از سئو هم بدونین علی الخصوص زمانی که تبلیغات و مارکتینگ براتون مهم هستش. البته اینا بحثشون در حدی گسترده هستش که میشه گفت برای خودشون یک تخصص هستن و تو کار های تیمی احتمالا برای این کارها یک شخص جدا باشه.

12. نهضت ادامه دارد!

نمیشه گفت بعد از اینا شما یک برنامه نویس فوق العاده و مخوف شدین! چون هر روز یک تکنولوژی و استاندارد جدید میاد و شما لازمه که با اون ها جلو برین. پس به یادگیری ادامه بدین و تو این مسیر نا امید نشین. سعی کنین همیشه متواضع باشین و هیچوفت به مهارت هاتون مغرور نشین چون در اون زمان هستش که دیگه دست از یادگیری بر میدارین.

 

خوب فعلا همینا به ذهنم رسید :) امیدوارم پست مفیدی براتون باشه. اگر از طولانی بودن راه میترسین اصلا نگران نباشین چون وقت همیشه برای یادگیری وقت هست. همین! امیدوارم همیشه خوش و خرم و سلامت باشین!

منبع: چرتک بلاگ

۰ ۰