چطور و از کجا باید برنامهنویسی را شروع کنیم؟
یکی از مشکلاتی که بسیاری از علاقهمندان به برنامهنویسی با آن مواجه هستند، عدم اطلاع از یک نقشهی راه درست است. وجود یک نقشهی راه خوب باعث میشود که شما تا حد زیادی در وقت و انرژیتان صرفهجویی و مراحل یادگیری را بهتر و سریعتر طی کنید. در ادامه توضیح میدهیم که چطور و از کجا باید برنامهنویسی را شروع کنید. با دیجیکالا مگ همراه شوید.
برنامهنویسان حرفهای و نیمهحرفهای معمولا با سوالات تکراری و زیادی از طرف علاقهمندان روبهرو میشوند. برخی از آنها را در ادامه مرور میکنیم:
بهترین زبان برنامهنویسی چیست؟
چقدر طول میکشد تا یه برنامهنویس خوب بشویم؟
میزان درآمد یک برنامهنویس چقدر است؟
تا چندسالگی میتوانم برنامهنویسی کنم؟
برای برنامهنویس شدن حتما باید رشتهی دانشگاهیام کامپیوتر باشد؟
اساسا چرا برنامهنویسی؟!
قبل از هر چیزی با خودتان صادق باشید. چه چیزی باعث شد که تمایل پیدا کنید برنامهنویسی را یاد بگیرید؟ درآمد بالای برنامهنویسان، علاقه به کامپیوتر و مباحث پیشرفتهی آن، وجههی شخصیتی که برنامهنویسان در اجتماع دارند، نیاز به شغلی که بتوانید در خانه بمانید و پول در بیاورید، تغییر جهان یا حتی به فعلیت رساندن ایدههایتان. اینها همه دلایل بسیار خوبی برای شروع یادگیری برنامهنویسی هستند ولی شاید دلایل خوبی برای ادامه نباشند.
اگر حوصلهی درگیر شدن با مسائل پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
برنامهنویسی نیاز به عشق، علاقه و پشتکار دارد. زندگی یک برنامهنویس با خطاها و انجام نشدن و زیر سوال رفتن مواردی که قبلا یاد گرفته، عجین است. در هر پروژهای برنامهنویسان میزان زیادی از وقتشان را برای رفع خطاهای موجود در برنامهی نوشتهشده صرف میکنند و شاید روزها طول بکشد تا بفهمند مشکل کار تنها از یک غلط املایی بوده است یا هر چیز دیگری. پس به عنوان یک برنامهنویس نیاز به این خواهید داشت که واقعا صبور و باپشتکار باشید. باید قبول کنیم که برنامهنویسی کار سادهای نیست. همین ساده نبودن برنامهنویسی، آن را خاص کرده است. نیازی نیست حتما در رشتهی کامپیوتر دارای تحصیلات باشید یا حتما سنتان بالای ۲۰ و کمتر از ۳۵ باشد. یا حتی نیاز نیست انسان بسیار باهوشی باشید یا ریاضیتان خیلی قوی باشد. ولی اگر همهی اینها را داشته باشید، ممکن است در کنار دیگر برنامهنویسان از جایگاه بهتری برخوردار شوید. اگر پشتکار زیادی در یادگیری ندارید و همچنین اصلا حوصلهی درگیر شدن با مسائل سخت و پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
با شرکت در یک دورهی برنامهنویسی یا خواندن یک کتاب جامع، شما یک برنامهنویس خواهید بود؛ برنامهنویس به این معنی که میتوانید به مطالب گفتهشده در آن کتاب یا آن دوره عمل کنید و بتوانید آن پروژهها را از نو بنویسید. برای یادگیری اولیهی برنامهنویسی زمان زیادی نیاز ندارید؛ ولی برای آنکه بتوانید آنچه را در ذهن شما یا مشتریتان است انجام دهید به تجربههای زیادی نیاز دارید. در واقع، شما به تخصصهای زیادی نیاز خواهید داشت که بسیاری از آنها در هیچ کتاب یا آموزشگاهی ارایه نمیشوند.
بعد از اینکه متوجه شدید که راه سادهای در پیش ندارید و درصورتیکه همچنان دوست دارید برنامهنویس شوید، باید تکلیف خود را روشن کنید و برای آیندهتان تصمیم درستی بگیرید. این تصمیم آیندهی شما را تغییر خواهد داد. پس باید با خود صادق باشید و از روی احساس تصمیم نگیرید.
کدام زبان برنامهنویسی؟
زبانهای برنامهنویسی زیادی در دنیا وجود دارند که قاعدتا قادر نیستید همهی آنها را یاد بگیرید. یکسری از زبانهای برنامهنویسی «چندسکویی» (Cross-Platform) هستند. یعنی با آنها میتوان برای بسترهای متفاوتی برنامهنویسی کنید. مانند زبان برنامهنویسی «جاوا» (Java) که به کمک آن میتوانید برای سیستم عامل اندروید، وب، ویندوز، لینوکس و مک برنامهنویسی کنید. ولی برنامهنویسی برای بسترهای مختلف به سادگیِ حرفزدن در مورد آن نیست و تقریبا برای هر بستر نیاز به مهارتهای خاصی است. اکثر زبانهای برنامهنویسی یکسری اصول عمومی دارند که معمولا در زبانهای مختلف تفاوت آنها بسیار کم است. مثلا شرطها در اکثر زبانهای رایج وجود دارند. بنابراین در ابتدای کار به شما پیشنهاد میکنم که مقدمات کلی برنامهنویسی را یاد بگیرید و روی یک زبان خاص وسواس نداشته باشید.
خوشبختانه معمولا منابع یادگیری بهصورت رایگان یا با صرف هزینهی بسیار کم در دسترس هستند. با جستوجو در گوگل به سایتهای زیادی خواهید رسید که به آموزش تخصص مورد نظرتان میپردازند. سایتهایی مثل «کد آکادمی» (Code Academy)، «کورسرا» (Coursera) و «خان آکادمی» (Khan Academy) منابع بسیار خوبی هستند.
اول سرمشق بنویسید بعد تغییرات ایجاد کنید
اکثر برنامهنویسانی که در اطرافتان میبینید، اولین برنامهای که موفق به نوشتناش شدند، برنامهی ساده «سلام جهان» (Hello world) بوده است که صرفا یک پیغام کوتاه روی نمایشگر نمایش میدهد. اگر از روی یک کتاب یا هرچیز مشابه آن اقدام به یادگیری برنامهنویسی میکنید، تمام تمرینهای خواستهشده را حتی اگر شده با تقلب کردن از دیگران، انجام دهید. سپس کمی خلاقیت خرج دهید و آن را به سبک خودتان بازنویسی کنید.
پس از آنکه کمی در کار خود پیشرفت کردید سعی کنید با چیزهایی که بلدید یک برنامه بنویسید. برای خودتان یک پروژه تعریف کنید و تمام تلاشتان را کنید که آن پروژه را با کیفیت بالا انجام دهید. همچنین میتوانید با استفاده از سایتهایی مثل «سورس فورج» (Source Forge) کدهای سایر برنامهنویسان را بهرایگان دریافت کنید و ببینید آنها چگونه آن برنامه را نوشتهاند و سپس خودتان را با آنها مقایسه کنید.
توسعه و مشارکت در برنامهها
یکی از کارهای پسندیدهای که برنامهنویسان حرفهای انجام میدهند انتشار کدهای نوشتهشدهشان در محیط اینترنت است. این کار باعث میشود که در ابتدا برنامهنویسان مبتدی بتوانند تجربیاتی از کدهای آنها کسب کنند. برنامهنویسان حرفهای و نیمهحرفهای هم میتوانند برنامههایشان را از این طریق توسعه داده و آنها را به برنامههای بهتری تبدیل کنند. سایت «گیتهاب» (GitHub) یکی از وبسایتهای بسیار معروف در این زمینه است که با جستوجو در آن میتوانید پروژههای انجام شده بهوسیلهی سایر برنامهنویسان را مشاهده و دانلود کنید. شما میتوانید برنامهها را توسعه دهید و دوباره منتشر کنید. حتی میتوانید به برنامهای قابلیت جدیدی اضافه کنید.
اگر تا به اینجای کار هنوز پروژهای برای دوستان یا آشنایانتان انجام ندادهاید و کمی استرس دارید که شاید از پس پروژههای تجاری برنیایید، به شما پیشنهاد میکنم با جستوجوی ساده در گوگل (البته به زبان انگلیسی) در انجام پروژهای داوطلبانه شرکت کنید. پروژههای داوطلبانه معمولا بهوسیلهی چند نفر با تخصصهای مشابه و شاید هم متفاوت انجام میشوند و از آنها درآمدی عاید شما نمیشود. برنامهنویسی برای بیمارستانها، خیریهها و سایر موسسات غیرانتفاعی از نمونه پروژههای داوطلبانه هستند که در انتهای پروژه شما چند دوست خارجی، مقدار زیادی اعتمادبهنفس و یک نمونه کار دارید.
شما چه تجربهای در یادگیری برنامهنویسی دارید؟ چند بار در این راه دلسرد شدهاید و چه مشکلاتی تابهحال در این راه داشتهاید؟
سلام اقای اسماعیلی خسته نباشین.
ببخشید یک سوالی داشتم من ۱۵ سالمه و میخوام برنامه نویسی میکروکنترلرها یا همون IC های متغیر رو یاد بگیرم برای این باید از کجا شروع کنم و آیا این برنامه نویسی با برنامه های گفته شده در این مطلب مرتبط هست یا نه؟
ممنون از مطالب خوبتون
با میکرو کنترلر avr و زبان c شروع کنید .
من خودم با همینا کار میکنم .
اسمشونم IC متغیر نیست اسمشون میکروکنترلر هست .
ببخشید من میخواستم این حرفه رو شروع کنم ولی یه سوال دارم اونم اینه که برای برنامه نویسی باید زبان انگلیسی در چه سطحی باشه باید حتما زبان بسیار قوی داشته باشیم؟؟؟؟؟؟
سلام امیر حسین جان.
الزامی برای حرفهای بودن در زبان انگلیسی وجود ندارد ولی به دلیل آنکه بسیاری از منابع در سطح حرفهای ابتدا به زبان انگلیسی ارایه میشوند، در صورتیکه زبان انگلیسیتان خوب باشد میتوانید پیشرفت سریعتری داشته باشید.
موفق باشید.
سلام من هم ۱۴ سالمه و یک برنامه نویس سخت افزار هستم (پردازنده ، IC ها)
تمام این مراحلو تجربه میکنید و واقعن لذت بخشه .
البته ما سخت افزار یا اولین برنامه که مینویسیم چراغ چشمک زنه .
سلام
من ۱۸ سالمه برنامه نویسی تحت وب انجام میدم تقریبا ۴ ساله دارم روی وب کار میکنم اما هنوزم خیلی چیزا برای یاد گرفتن هست و مطمانم هیچ وقتم تموم نمیشه و به این باورم که یک جانبه باش اما حرفه ای باش.باتجربه ای که دارم برنامه نویسی بنظر من مهم ترین شرطش علاقشه.دوم اینکه بایدبتونی بروز باشی باید کلا اطلاعات بتونی بریزی داخل مغزت و لازم شد حتی تجربه چند سالت پاک کنی یا عوض کنی چون ممکنه هر چیزی اتفاق بیفته!مثلا شاید زبان برنامه نویسی اندروید جاوا هس فردا بشه یک چیز دیگه یا یک سری کد جایگزین بشه و…! اگرم اینکارو نکنی عقب میفتی پس اگر میتونین عادت کنید و رها کنید و جایگزین کنید برید سراغ برنامه نویسی در غیر اینصورت براتون دشوار میشه از نظر من
سلام. من ۱۴ سالمه و دارم زبان برنامه نویسی #C رو از طریق پک آموزشی شرکت پرند یاد میگیرم. از نظر شما برای سن من زود نیست؟
سلام دامون جان. شما سن وسال بسیار مناسبی برای یادگیری برنامه نویسی دارید. کلی تخصص و مهارتهای جدید قراره در این راه یاد بگیرید که احتمالا چندین سال طول میکشه. برات آرزوی موفقیت میکنم.
خیلی ممنون شما به من انگیزه بیشتری دادید
سلام ، من ۱۴ سالمه ، به زبان های Html , Css , Javascript مسلطم و الان دارم Php رو یاد میگیرم ، ولی متاسفانه با اینکه این زبان رو خیلی خیلی دوست دارم و اونو جالب تر از بقیه زبان ها میدونم ، چند وقته که اصلا حوصله ندارم یادگیریمو ادامه بدم یا اپلیکیشن هامو بنویسم ، یعنی دیگه انگیزه ای ندارم ! واقعا نمیدونم دیگه چیکار کنم ، لطفا پاسختونو به ایمیلم بفرستید
سلامی دوباره ببخشید اشتباه نوشتم 😐 من به زبان های html , css مسلطم ، php رو هم تا حد پیشرفته و شیء گرائی بلدم و الان در حال یادگیری جاوا هستم ، جاوا و پی اچ پی دو زبانی هستن که خیلی شیرینن ولی انگیزهههههههههههههه ندارمممممممم:|
نه زود نیست
چون من ۱۲ سالمه و دارم یاد میگیرم
با سلام
میخواستم بدونم که وقتی کد های زبان برنامه نویسی(مثلا Html )نوشته میشن لازم که جز به جز اونا رو و نحوه قرار گیری تگ هارو حفظ کنیم؟
در غیر اینصورت چطور اینهمه کد رو برنامه نویسا یاد میگیرن؟
سلام مهرداد عزیز.
در برنامه نویسی چیزی به نام حفظ کردن مثل اون چیزی که در مدارس یادگرفتیم نداریم. هنگام برنامه نویسی با تکرار و تمرین زیاد اکثر چیزا ملکه ذهنمون میشه. برای زبانی مثل HTML که حفظ شدن بر اثر تکرار و تمرین خیلی زود ممکن میشه. همچنین در IDEها (ویرایشگرهای متنی مثل نوت پد ++ یا دریم ویور برای اچتمل) ویژگی به نام code completion یا تکمیل خودکار کد وجود داره که با نوشتن تنها چند حرف از کد بقیه کد توسط IDE ارایه میشه.
مرسی بابت مطلب خوبتون . من خودم خیلی سختی کشیدم تا یاد گرفتم . ولی بنظرم الان دیگه اونجوری نیست ! الان همه جا پر از دوره های آموزشی و خودآموز هست و بدتر از اون اینکه متاسفانه خیلی از این دوره های آموزشی اطلاعات غلط رو منتقل میکنند ! بنظرم مهمترین عامل در برنامه نویسی نوشتن کد نیست بلکه مهم اینه که بدونید دارید با مد چیکار میکنید . در حال حاضر پیدا کردن یک منبع خوب که اطلاعات و مخصوصا مفاهیم رو به ذهن شما انقال بده از از مهم ترین کار هاست
بسیار عالی بود
اما میتونست جامع تر باشه
متشکرم
بسیار عالی. من هم خودم یک برنامه نویس هستم و تمام مطالبی که نوشته شده رو من تجربه کردم. برنامه نویسی شغلی هست که توی ایران ما دو مرحله داره. مرحله اول فهم مسئله و نوشتن کد هست که این کار سخت و شیرین هست و مرحله دوم گرفتن دستمزد از مشتری هست که هم سخت هست و هم تلخ. پس پیشنهاد میکنم علاوه بر کسب تجربه که توی مطالب بالا به اون اشاره شده کمی هم فن ارتباط با مشتری و راه های نوشتن قرارداد رو یاد بگیریم که توی مملکت ما بدرد میخوره 😉
یک استادی داریم توی دانشگاه که میگه شما میشین Developer نه برنامه نویس چون برنامه نویس به کسی میگن که یک زبان برنامه نویسی رو مینویسه و Developer از اون زبان برنامه نویسی برای ساختن برنامه مورد نظرش ازش استفاده میکنه.
استادتون کاملا درست میگه ولی این یه غلط مصطلحه…
بله حق با شما هست
کاملا این حرف رو تایید می کنم
سلام من از کجا شروع گنم
من رشته ام کامپیوتر و نتونستم در قم حتی یک کتاب برنامه نویسی پیدا کنم .
و بعدهم نتونستم یک کتاب برنامه نویسی جامع در اینترنت پیدا کنم .
و پول هم ندارم چونکه وعیت اقتصادی قم فاجعه است .
اگر یک لینک سایت که برنامه نویسی را اموزش دهد خیلی خوب می شود .
سلام حسین جان
با جستجو در اینترنت وب سایتهای زیادی را پیدا خواهید کرد که به صورت رایگان زبان برنامه نویسی مورد نظرتان را آموزش دهند.
موفق باشید
من برنامه نویسی رو از طریق سایت ایرانی Uncox.com یاد گرفتم البته برنامه نویسی اندروید و هنوزم تحت تعلیمم!
به نظرم یکی از بهترین سایت های برنامه نویسی هست من که کلی لذت میبرم وقتی ویدیوهاشو میبینم!
من تجربه زیادی از این کار پیدا کردم و پیشنهادم اینه که اگه دوست دارین برنامه نویس بشین نباید حتی یک روز هم از این کار دست بردارین و بی خیال بشین!
در برنامه نویسی با توجه به مسائل سختش حداقل ۳ یا ۴ بار شما دلسرد و نا امید میشید اما نباید دست از تلاش بردارید برنامه نویسی طوریه که اوایل یادگیری براتون گنگ و بی معنی هستش ولی در آینده و با تلاش های بسیار برنامه نویسی براتون معنا پیدا میکنه و نوشتن اون به شما شادی میبخشه میتونم بگم یک حسی به شما میده که تا حالا تجربه نکردید!
من پیشنهاد میکنم که برنامه نویسی رو از اندروید شروع کنید چون هم آسونه هم به صرفه و میتونید بعد از اندروید یا حتی در کنارش برنامه نویسی Web و IOS هم به راحتی یاد بگیرید ولی نیاز به پشتکار و همینطور زمان زیادی داره و این رو هم بگم که زبان برنامه نویسی اندروید نیازی به بلد بودن مسائل سخت ریاضی نداره در مورد بقیه زبان ها اطلاعی ندارم!
ممنون.