چگونه برنامه نویس شویم؟
توسط Mohsen シ در تاریخ ۲۲ دی ۱۳۹۹
خیلی از دوستان کلمه "برنامه نویس" رو شنیدن و خیلیا خودشون برنامه نویس هستن و خیلی ها هم دوست دارن برنامه نویس بشن! در پست امروز قراره من برای شما یک تعریف جامع و کلی از برنامه نویسی بگم و راهش رو بهتون نشون بدم و امیدوارم که حتی برخی از ایهامات مربوط رو درباره برنامه نویسی برطرف کنم. البته این رو در نظر داشته باشین اینا صرفا تجربه خودمه و من خودم برنامه نویس بزرگی نیستم. پس با من همراه باشین! (وی این پست را در حین بمباران امتحانات میانترم دانشگاه مینویسد...)
برنامه نویسی دقیقا چیه؟
خیلیا فکر میکنن اگر با استفاده از یک زبان مثل پایتون یا اصلا هر زبان دیگه ای یک برنامه بنویسن که 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. نهضت ادامه دارد!
نمیشه گفت بعد از اینا شما یک برنامه نویس فوق العاده و مخوف شدین! چون هر روز یک تکنولوژی و استاندارد جدید میاد و شما لازمه که با اون ها جلو برین. پس به یادگیری ادامه بدین و تو این مسیر نا امید نشین. سعی کنین همیشه متواضع باشین و هیچوفت به مهارت هاتون مغرور نشین چون در اون زمان هستش که دیگه دست از یادگیری بر میدارین.
خوب فعلا همینا به ذهنم رسید :) امیدوارم پست مفیدی براتون باشه. اگر از طولانی بودن راه میترسین اصلا نگران نباشین چون وقت همیشه برای یادگیری وقت هست. همین! امیدوارم همیشه خوش و خرم و سلامت باشین!
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
استک اورفلو و گیت هاب دو دوست خوب برنامه نویس ها D:
عام
من برنامه نویس نیستم :)
وگمون نکنم بشم چون همش کپی پیسته D:
یه زمانی میخواستم برنامه نویس بشم ولی علاقه به اون صورت کافی نبود.
الانم رفتم تو کار تدوین و گرافیک :)
گرافیک برای من خیلی سخت تر از برنامه نویسیه حقیقتا :) یعنی تصور گرافیکی دارم ولی توی عمل نمیتونم درست حسابی اجراش کنم.
چرا هر وقت یه مشکلی برام پیش میاد تو این زمینه ها یهو ستاره وبلاگ شمارو میبینم که روشنه و راه حل مشکلمه ؟ :)))
یه مدته میخوام به داداشمو راهنمایی کنم که برنامه نویسی یاد بگیره ولی نمیدونستم از کجا باید شروع کنه....
سلام! چه عجب ^_^ کامنت شما رو دیدیم. خوب هستین؟
این ماه امتحانات نبودم بیان یا بودم نتونستم جایی رو چک کنم
15 سالشه😁 حتما ممنون میشم
درک میکنم وضعیت منم تقریبا یک همچین چیزی هستش :)
عالیییی شد مرسی بازم
خواهش می کنم :)
سلام برشما دوس قدیمی یه درخواستی داشتم
میخام محبوب ترین مطالب مو عکس مثل تو عکس پایین کنم👇 شما بلدی😕
https://bayanbox.ir/view/6522740738350738101/Screenshot-%DB%B2%DB%B0%DB%B2%DB%B1-%DB%B0%DB%B2-%DB%B0%DB%B5-%DB%B0%DB%B2-%DB%B0%DB%B6-%DB%B3%DB%B3-1.png
چه پست مفیدی بود :)
انصافا دیدم تغییر کرد به برنامه نویسی و مشتاق تر شدم :))
موفق باشین^_^
خواهش میکنم :) خوشحالم به دردتون خورده.
سلام ... ممنون از مطلب مفیدتون ... من سال اول رشته برنامه نویسی هستم و واقعا خیلی رشته جذابیه...♥
سلام :)
سلام
چطورین؟خوبین؟
من 14 سالمه و به برنامه نویسی هم علاقه دارم.
حدودا 1 هفته هست که با وبلاگ شما اشنا شدم.واقعا مطالب مفیدی قرار میدی:)
تا حد متوسطی به سی شارپ و پایتون مسلط هستم.یکمم سی پلاس پلاس و کاتلین بلدم.
راهمم اصلا برنامه نویسی نیست اما بهش علاقه دارم.
خیلی وقتا پیش میاد که از برنامه نویسی زده میشم.فشار زیادی رو مغزم میاد و واسه یه مدت اون زبانی که رفته رو مخمو ول میکنم!
مثلا همین دو هفته پیش داشتم یه برنامه اندروید مینوشتم با کاتلین که یه مرتبه ای به یه قسمتی رسیدم که نمیدونستم چجوری باید کدشو بنویسم.خیلی هم روش فکر کردم اما اخرش خسته و ناراحت، گفتم ولش کن.از اون موقع تا الان اصلا طرف کاتلین نرفتم!
راه حلی هست که بهم پیشنهاد بدی که یکم درست بشم؟
و یه چیز دیگه هم اینکه من خودمم تو کوئرا هستم.اما یه کلاسی میخوام(رایگان) که توش تمرین نسبتا مبتدی پایتون بذارن و من حلش کنم.همچین چیزی سراغ دارین؟
بازم ممنون بخاطر وبلاگ محشرت.عالی هستی!
سلام :) خیلی ممنون. احوال شما؟
ممنونم واسه راهنماییت👌
بهترین هارو واسه خودتون و بلاگتون آرزو میکنم!🔥🧡
قربان تو 😊 لطف داری ❤️
سلام. چجوری اون باکس صرفا جهت پز رو درست کردید؟
خود باکس از امکانات قالب فروتنه میتونی هر چقدر که میخوای باکس خالی بسازی ولی اسلایدره با استفاده از ابزار اسلایدرساز css ساخته شده. میتونی تو وبلاگ خودتم استفاده کنی.
می گم من اوایل توی تبلاگ بودم و تقریبا فقط رنگ قالب عوض می کردم، دیگه کار خیلی خفنی می خواستم بکنم بالای هدرم بسم الله می زاشتم. اما الان (الان که چه عرض کنم از تابستون) اومدم توی بیان چون تبلاگ فضای غیر صمیمی و خشکی داشت. یکم با سی اس اس و ساختار های کد ها ی بیان آشنا شدم، الان می تونم یه باکس بسازم با پاراگراف، بوردر، گرادینت، هاور، تصویر، افتر و بفور رو بلدم.
می تونم یه قالب برای بیان بسازم ولی تنبلم (:
12 ساله هم هستم، برنامه نویس به حساب میام؟
کد هم تا جای ممکن کپی نمی کنم ولی برای یکسری چیز ها که یادم می ره مثل پوزیشن باید برگم سرچ کنم.
سلام :) خیلی خوش اومدی دوست من.
ممنون. واقعا تنها کسی هستید که بهم اینجوری انگیزه دادید.
برنامه نویسی و html تنها چیزیه که تقریبا هر روز دارم دنبالش می کنم، چیز های دیگه مثل آفیس، انیمیشن سازی هم بلدم ولی بیشتر به سراغ html میرم.
منظورتون از زبان نشانه گذاری و اینا چیه؟
منبع خوبی رو دارید آموزش رایگان داشته باشه؟
بیشتر دلم به پایتونه تا جاوا اسکریپت راستش، امام خب باید ببینیم که چی میشه.
ممنون. واقعا تنها کسی هستید که بهم اینجوری انگیزه دادید.
برنامه نویسی و html تنها چیزیه که تقریبا هر روز دارم دنبالش می کنم، چیز های دیگه مثل آفیس، انیمیشن سازی هم بلدم ولی بیشتر به سراغ html میرم.
منظورتون از زبان نشانه گذاری و اینا چیه؟
منبع خوبی رو دارید آموزش رایگان داشته باشه؟
بیشتر دلم به پایتونه تا جاوا اسکریپت راستش، امام خب باید ببینیم که چی میشه.
خواهش میکنم بابا این حرفا چین :)
سلام من میخواستم از طریق امکانات اختیاری 10 نشانه و جاوا اسکریپ رو بخرم ولی نمیشه سایت پرداخت بلاگ بیان خرابه الان میخوام قالبم رو بدون ینکه خطا بزنه و ازم بخواد جاوا اسکریپ داشته باشم نصب کنم میشه راهنماییم کنید چطوری میتونم این کارو بکنم ؟ ممنون میشم
سلام وقتتون بخیر.
سلام. میتونید به این پست یه نگاهی بندازید؟
http://mh-8923.blog.ir/post/9