چطور و از کجا باید برنامهنویسی را شروع کنیم؟
یکی از مشکلاتی که بسیاری از علاقهمندان به برنامهنویسی با آن مواجه هستند، عدم اطلاع از یک نقشهی راه درست است. وجود یک نقشهی راه خوب باعث میشود که شما تا حد زیادی در وقت و انرژیتان صرفهجویی و مراحل یادگیری را بهتر و سریعتر طی کنید. در ادامه توضیح میدهیم که چطور و از کجا باید برنامهنویسی را شروع کنید. با دیجیکالا مگ همراه شوید.
برنامهنویسان حرفهای و نیمهحرفهای معمولا با سوالات تکراری و زیادی از طرف علاقهمندان روبهرو میشوند. برخی از آنها را در ادامه مرور میکنیم:
بهترین زبان برنامهنویسی چیست؟
چقدر طول میکشد تا یه برنامهنویس خوب بشویم؟
میزان درآمد یک برنامهنویس چقدر است؟
تا چندسالگی میتوانم برنامهنویسی کنم؟
برای برنامهنویس شدن حتما باید رشتهی دانشگاهیام کامپیوتر باشد؟
اساسا چرا برنامهنویسی؟!
قبل از هر چیزی با خودتان صادق باشید. چه چیزی باعث شد که تمایل پیدا کنید برنامهنویسی را یاد بگیرید؟ درآمد بالای برنامهنویسان، علاقه به کامپیوتر و مباحث پیشرفتهی آن، وجههی شخصیتی که برنامهنویسان در اجتماع دارند، نیاز به شغلی که بتوانید در خانه بمانید و پول در بیاورید، تغییر جهان یا حتی به فعلیت رساندن ایدههایتان. اینها همه دلایل بسیار خوبی برای شروع یادگیری برنامهنویسی هستند ولی شاید دلایل خوبی برای ادامه نباشند.
اگر حوصلهی درگیر شدن با مسائل پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
برنامهنویسی نیاز به عشق، علاقه و پشتکار دارد. زندگی یک برنامهنویس با خطاها و انجام نشدن و زیر سوال رفتن مواردی که قبلا یاد گرفته، عجین است. در هر پروژهای برنامهنویسان میزان زیادی از وقتشان را برای رفع خطاهای موجود در برنامهی نوشتهشده صرف میکنند و شاید روزها طول بکشد تا بفهمند مشکل کار تنها از یک غلط املایی بوده است یا هر چیز دیگری. پس به عنوان یک برنامهنویس نیاز به این خواهید داشت که واقعا صبور و باپشتکار باشید. باید قبول کنیم که برنامهنویسی کار سادهای نیست. همین ساده نبودن برنامهنویسی، آن را خاص کرده است. نیازی نیست حتما در رشتهی کامپیوتر دارای تحصیلات باشید یا حتما سنتان بالای ۲۰ و کمتر از ۳۵ باشد. یا حتی نیاز نیست انسان بسیار باهوشی باشید یا ریاضیتان خیلی قوی باشد. ولی اگر همهی اینها را داشته باشید، ممکن است در کنار دیگر برنامهنویسان از جایگاه بهتری برخوردار شوید. اگر پشتکار زیادی در یادگیری ندارید و همچنین اصلا حوصلهی درگیر شدن با مسائل سخت و پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
با شرکت در یک دورهی برنامهنویسی یا خواندن یک کتاب جامع، شما یک برنامهنویس خواهید بود؛ برنامهنویس به این معنی که میتوانید به مطالب گفتهشده در آن کتاب یا آن دوره عمل کنید و بتوانید آن پروژهها را از نو بنویسید. برای یادگیری اولیهی برنامهنویسی زمان زیادی نیاز ندارید؛ ولی برای آنکه بتوانید آنچه را در ذهن شما یا مشتریتان است انجام دهید به تجربههای زیادی نیاز دارید. در واقع، شما به تخصصهای زیادی نیاز خواهید داشت که بسیاری از آنها در هیچ کتاب یا آموزشگاهی ارایه نمیشوند.
بعد از اینکه متوجه شدید که راه سادهای در پیش ندارید و درصورتیکه همچنان دوست دارید برنامهنویس شوید، باید تکلیف خود را روشن کنید و برای آیندهتان تصمیم درستی بگیرید. این تصمیم آیندهی شما را تغییر خواهد داد. پس باید با خود صادق باشید و از روی احساس تصمیم نگیرید.
کدام زبان برنامهنویسی؟
زبانهای برنامهنویسی زیادی در دنیا وجود دارند که قاعدتا قادر نیستید همهی آنها را یاد بگیرید. یکسری از زبانهای برنامهنویسی «چندسکویی» (Cross-Platform) هستند. یعنی با آنها میتوان برای بسترهای متفاوتی برنامهنویسی کنید. مانند زبان برنامهنویسی «جاوا» (Java) که به کمک آن میتوانید برای سیستم عامل اندروید، وب، ویندوز، لینوکس و مک برنامهنویسی کنید. ولی برنامهنویسی برای بسترهای مختلف به سادگیِ حرفزدن در مورد آن نیست و تقریبا برای هر بستر نیاز به مهارتهای خاصی است. اکثر زبانهای برنامهنویسی یکسری اصول عمومی دارند که معمولا در زبانهای مختلف تفاوت آنها بسیار کم است. مثلا شرطها در اکثر زبانهای رایج وجود دارند. بنابراین در ابتدای کار به شما پیشنهاد میکنم که مقدمات کلی برنامهنویسی را یاد بگیرید و روی یک زبان خاص وسواس نداشته باشید.
خوشبختانه معمولا منابع یادگیری بهصورت رایگان یا با صرف هزینهی بسیار کم در دسترس هستند. با جستوجو در گوگل به سایتهای زیادی خواهید رسید که به آموزش تخصص مورد نظرتان میپردازند. سایتهایی مثل «کد آکادمی» (Code Academy)، «کورسرا» (Coursera) و «خان آکادمی» (Khan Academy) منابع بسیار خوبی هستند.
اول سرمشق بنویسید بعد تغییرات ایجاد کنید
اکثر برنامهنویسانی که در اطرافتان میبینید، اولین برنامهای که موفق به نوشتناش شدند، برنامهی ساده «سلام جهان» (Hello world) بوده است که صرفا یک پیغام کوتاه روی نمایشگر نمایش میدهد. اگر از روی یک کتاب یا هرچیز مشابه آن اقدام به یادگیری برنامهنویسی میکنید، تمام تمرینهای خواستهشده را حتی اگر شده با تقلب کردن از دیگران، انجام دهید. سپس کمی خلاقیت خرج دهید و آن را به سبک خودتان بازنویسی کنید.
پس از آنکه کمی در کار خود پیشرفت کردید سعی کنید با چیزهایی که بلدید یک برنامه بنویسید. برای خودتان یک پروژه تعریف کنید و تمام تلاشتان را کنید که آن پروژه را با کیفیت بالا انجام دهید. همچنین میتوانید با استفاده از سایتهایی مثل «سورس فورج» (Source Forge) کدهای سایر برنامهنویسان را بهرایگان دریافت کنید و ببینید آنها چگونه آن برنامه را نوشتهاند و سپس خودتان را با آنها مقایسه کنید.
توسعه و مشارکت در برنامهها
یکی از کارهای پسندیدهای که برنامهنویسان حرفهای انجام میدهند انتشار کدهای نوشتهشدهشان در محیط اینترنت است. این کار باعث میشود که در ابتدا برنامهنویسان مبتدی بتوانند تجربیاتی از کدهای آنها کسب کنند. برنامهنویسان حرفهای و نیمهحرفهای هم میتوانند برنامههایشان را از این طریق توسعه داده و آنها را به برنامههای بهتری تبدیل کنند. سایت «گیتهاب» (GitHub) یکی از وبسایتهای بسیار معروف در این زمینه است که با جستوجو در آن میتوانید پروژههای انجام شده بهوسیلهی سایر برنامهنویسان را مشاهده و دانلود کنید. شما میتوانید برنامهها را توسعه دهید و دوباره منتشر کنید. حتی میتوانید به برنامهای قابلیت جدیدی اضافه کنید.
اگر تا به اینجای کار هنوز پروژهای برای دوستان یا آشنایانتان انجام ندادهاید و کمی استرس دارید که شاید از پس پروژههای تجاری برنیایید، به شما پیشنهاد میکنم با جستوجوی ساده در گوگل (البته به زبان انگلیسی) در انجام پروژهای داوطلبانه شرکت کنید. پروژههای داوطلبانه معمولا بهوسیلهی چند نفر با تخصصهای مشابه و شاید هم متفاوت انجام میشوند و از آنها درآمدی عاید شما نمیشود. برنامهنویسی برای بیمارستانها، خیریهها و سایر موسسات غیرانتفاعی از نمونه پروژههای داوطلبانه هستند که در انتهای پروژه شما چند دوست خارجی، مقدار زیادی اعتمادبهنفس و یک نمونه کار دارید.
شما چه تجربهای در یادگیری برنامهنویسی دارید؟ چند بار در این راه دلسرد شدهاید و چه مشکلاتی تابهحال در این راه داشتهاید؟
من دوست دارم یک هکر خرابکار شوم!!!????????????????????????????????????????
ببخشید کدوم فصل های گسسته اهمیت بیشتری داره گسسته خیلی سخته????????
ریاضی کلاسیک نه
ولی ریاضی گسسته خیلی خیلی مهم هست، و البته نسبتا سخت
هر چه قدر در گسسته بهتر باشید نیازتون به اینترنت برای پیدا کردن الگوریتم ها کمتر میشه و در آینده باعث میشه سرعت برنامه هاتو بالا تر بره
سلام ، برای برنامه نویسی باید ریاضیمون قوی باشه ؟
سلام ، بله مهمه
نه مهم تلاش وعلاقست
نه هیچ ربطی نداره از همه مهم تر علاقه پشتکار مطالعه است
تقریبا ولی بیشتر باید الگوریتم بلد باشید و روی این مهارت کار کنید.
خودش تو متلب گفته احمد جان . لازم نیست بپرسی خودش تو توضیح گفته آقا جان
سلام دوستان یه سوال داشتم.من برای ورود به رشته برنامه نویسی باید از کجا شروع کنم یعنی دانشگاه چه رشته ای باید بخونم؟
کامپیوتر یا علوم کامپیوتر۷
سلام دوستان … من به رشته کامپیوتر علاقه دارم و دوست دارم تا برنامه نویس اندروید و ios شوم و الان کلاس نهم هستم و انتخاب رشته دارم ولی نمیدانم که رشته کامپیوتر رو انتخاب کنم یا نکنم … اخه من از دو برنامه نویس و متخصص کاممیوتر پرسیدم و ان ها هم میگویند که تو مدرسه فقط کتاب و درس هست و اصلا به طور حرفه ای روی برنامه نویسی و کامپیوتر کار نمیکنند و فقط کتاباشو مطالعه میکنند و زیاد هم خوب نیست …. خلاصه بگم که اونا میگن الان رشته کامپیوتر رفتن و وقتشون تو دانشگاه هدر دادن ولی چیز زیادی بلد نیست و اون چیزایی هم که بلد خودشون با سعی و تلاش از تو سایتا تونستن یاد بگیرن … الان من برم رشته کامپیوتر یا اینکه رشته کاممیوتر نرم و کلاس های بیرون رو شرکت کنم ؟
لطفا راهنمایی کنید … لطفا یه توضیح کوچیکم درباره حسابداری بدید که بدونم چجوریه که شاید بخوام برم حسابداری و کلاس های کامپیوتر رو بیرون ادامه بدم
با سلام
رشته کامپیوتر معمولا با تصورات دبیرستانی ها تفاوت هایی داره.شما تو رشته کامپیوتر برنامه نویسی به معنی عام یاد نمی گیری بلکه فرآیند برنامه نویسی رو یاد می گیری.یعنی مثلا درس های مثل آشنایی با کامپایلر ها ،مدار منطقی ،زبان ماشین و ازین دست می خونین.اگه واقعا می خوای برنامه نویس شی همین جور که تو حرفات گفتی یا باید خودت یاد بگیری یا کنار درس های دانشگاهت کار کنی.البته تو دانشگاه هم برنامه نویسی بهت یاد میدن ولی برنامه نویس نمی شی.به نظرم اگه هدفت برنامه نویس شدنه باید ببینی اگه بعدش دوس داری وارد بازار شی و استخدام و کم کم شرکت خودت رو بزنی دانشگاه خیلی کمکت نمی کنه ولی اگه می خوای بری خارج از کشور برای ادامه تحصیل یا الگوریتم های جدید بنویسی و بری سراغ علوم کامپیتر ،یا باید بری کامپیوتر یا علوم کامپیوتر.در آخر بنظرم تابستون امسال و حتی بخشی از تابستون سال بعد رو برو اصلا ببین واقعا برنامه نویسی رو دوس داری و با روحیات و ویژگی های شخصیتیت سازگاره یا نه بعد تصمیم بگیر چون خیلی از بچه ها تو این سن این چیزا رو دوس دارن وبعد اگه صرفا متکی بر همین احساس علاقه ظاهری باشه دچار مشکل می شن یا اون جور که باید موفق نمی شن. امید وارم نظرم برات مفید باشه
داداش چرا ضرب المثل رو انداخت پس داشتم می گفتم یک ضرب المثل ترکی هست که میگه((حالواحالوا دمانان آغزن شیرین اولماز)) فارسی شم اینه ((با حلوا حلوا گفتن دهنت شیرین نمی شه))
یک ضرب المثل ترکی هست میگه <> اینم فارسیشه <> این ضرب المثل و بخاطر حرفsatanگفتم ،ولی satan تو هم زیادی شلوغش نکن دیگه، چه اشکالی داره ،من خودم از ۲سالگی شروع کردم به نظرت چطوره؟ فقط عصبانی نشو
باسلام و وقت بخیر برای همه عزیزانی که نظرات گوناگونی ارائه کرده اند و همچنین ممنونم از مسئول سایت برای زحماتی که برای آشنایی با برنامه نویسی کشیده است. بنده ۱۶ سالمه و رشتم ریاضی فیزیک هستش. من می خواستم سوالی رامطرح کنم درباره برنامه نویسی؛ سوال من اینکه من می دونم برای اینکه یک برنامه نویس حرفه ای بشی باید حتما زبان اینگلیسی رو کامل یاد بگیرم، خوب این بامن ،ولی من نمی دونم کدوم کتاب ها رو برا شروع انتخاب کنم من رشته ریاضی فیزیک رو برای این انتخاب کردم که در اصل یه دبیر ریاضی بشم ولی وقتی دیدم حقوقش کمی مناسب نیست تصمیم گرفتم برنا نویس رو کنار اون از پایه شروع کنم وخوشبختانه یکه از دوستانم که ۲۳سالش هست یه برنامه نویسه ولی حرفه ای نیست اما میتونه ۳ یا ۴ میلیون به جیب بزنه اون خیلی تلاش می کنه تا خودشو ارتقا بده ولی زیاد موفق نیست . من دلیل شو ازش پرسیدم گفت اگه می خوای برنامه نویسی بشی که شرکت های معروف تورو تا امر کنی استخدام کنند باید زبان اینگلیسی رو فول بشی چون اون کتاب هایی که برای ارتقا یافتند کمک می کنند همشون زبان اینگلیسی هستند و همچنین بعضی از شرکت ها برای استخدامت ازت امتحان اینگلیسی هم میگیرن پس کسانه که هنوز برنامه نویسی رو شروع نکردن می تونند درکنار یاد گرفتن زبان پاییه برنامه نویسی زبان اینگلیسی رو هم پا به پا یه اون جلو ببرند هرچی نباشه زبان علم در این زمان زبان اینگلیسی هستش من که خودم از html شروع کردم و دنبال کتاب هستم. اومیدوارم شما ها هم یک روز بتونید یک برنامه نویس حرفه ای بشید
یک تجربه
دوستان
ابتدا ++c رو شروع کنید و یه ۶ ماه روش کار کنید
چون سینتساش خیلی خیلی شبیه خانواده c و همچنین jsو .. هست
بعذ از اون یه چند وقت بگردیدو زبان برنامه نویسی مورد علاقتونو پیدا کنید
و توی اون حسابی حسابی حرفه ای شید
اگه شما چهار سال این روی رو پیش ببرید توی سال پنجم (البته اگه توی این چند سال کارآموزی و .. رفته باشید) تازه درامد زایی توی شروع میشه
و سر ۶ یا ۷ سال اگه توی اون شاخه رفته باشید درامدتووون سربه فلک میکشه
البته اینم بگم که حداقل درامد ۳ تومن هست
ولی من کسی رو دیدم که دکترای سخت افزار شریف داره و ماهی کم کمش ۲۰ تومن درامدشه
مشروط به اینکه تو یه زبون برنامه نویسی استاااااد بشید
استااااد
سلام
من یه مدت AVR کار کردم و راستش تو این مدت که کار کردم خیلی به برنامه نویسی علاقه مند شدم الان دنبال یه زبان خوب میگردم که بتونم یاد بگیرم هم بتونم باهاش اگه خواستمavr کار کنم و هم بتونم برنامه برای اندروید و… بنویسم شما چی پیشنهاد میکنید؟
باعرض سلام من دانشجوی ترم اخر برنامه نویسی هستم ومیخواهم برای موفقیت خودم برم برنامه نویسی اندروید رایاد بگیرم ودر حال حاضر شاغل هستم نمیدانم این کار را انجام دهم یانه میخواهم به کلاس های برنامه نویسی اندروید بروم ولی نمیدانم از کار استعفا دهم یانه من ۲روز درهفته دانشگاه هستم و۳۵۰ هزار تومان حقوقم هست نمدانم هدفی که دارم انجام دهم یانه…