چطور و از کجا باید برنامهنویسی را شروع کنیم؟
یکی از مشکلاتی که بسیاری از علاقهمندان به برنامهنویسی با آن مواجه هستند، عدم اطلاع از یک نقشهی راه درست است. وجود یک نقشهی راه خوب باعث میشود که شما تا حد زیادی در وقت و انرژیتان صرفهجویی و مراحل یادگیری را بهتر و سریعتر طی کنید. در ادامه توضیح میدهیم که چطور و از کجا باید برنامهنویسی را شروع کنید. با دیجیکالا مگ همراه شوید.
برنامهنویسان حرفهای و نیمهحرفهای معمولا با سوالات تکراری و زیادی از طرف علاقهمندان روبهرو میشوند. برخی از آنها را در ادامه مرور میکنیم:
بهترین زبان برنامهنویسی چیست؟
چقدر طول میکشد تا یه برنامهنویس خوب بشویم؟
میزان درآمد یک برنامهنویس چقدر است؟
تا چندسالگی میتوانم برنامهنویسی کنم؟
برای برنامهنویس شدن حتما باید رشتهی دانشگاهیام کامپیوتر باشد؟
اساسا چرا برنامهنویسی؟!
قبل از هر چیزی با خودتان صادق باشید. چه چیزی باعث شد که تمایل پیدا کنید برنامهنویسی را یاد بگیرید؟ درآمد بالای برنامهنویسان، علاقه به کامپیوتر و مباحث پیشرفتهی آن، وجههی شخصیتی که برنامهنویسان در اجتماع دارند، نیاز به شغلی که بتوانید در خانه بمانید و پول در بیاورید، تغییر جهان یا حتی به فعلیت رساندن ایدههایتان. اینها همه دلایل بسیار خوبی برای شروع یادگیری برنامهنویسی هستند ولی شاید دلایل خوبی برای ادامه نباشند.
اگر حوصلهی درگیر شدن با مسائل پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
برنامهنویسی نیاز به عشق، علاقه و پشتکار دارد. زندگی یک برنامهنویس با خطاها و انجام نشدن و زیر سوال رفتن مواردی که قبلا یاد گرفته، عجین است. در هر پروژهای برنامهنویسان میزان زیادی از وقتشان را برای رفع خطاهای موجود در برنامهی نوشتهشده صرف میکنند و شاید روزها طول بکشد تا بفهمند مشکل کار تنها از یک غلط املایی بوده است یا هر چیز دیگری. پس به عنوان یک برنامهنویس نیاز به این خواهید داشت که واقعا صبور و باپشتکار باشید. باید قبول کنیم که برنامهنویسی کار سادهای نیست. همین ساده نبودن برنامهنویسی، آن را خاص کرده است. نیازی نیست حتما در رشتهی کامپیوتر دارای تحصیلات باشید یا حتما سنتان بالای ۲۰ و کمتر از ۳۵ باشد. یا حتی نیاز نیست انسان بسیار باهوشی باشید یا ریاضیتان خیلی قوی باشد. ولی اگر همهی اینها را داشته باشید، ممکن است در کنار دیگر برنامهنویسان از جایگاه بهتری برخوردار شوید. اگر پشتکار زیادی در یادگیری ندارید و همچنین اصلا حوصلهی درگیر شدن با مسائل سخت و پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
با شرکت در یک دورهی برنامهنویسی یا خواندن یک کتاب جامع، شما یک برنامهنویس خواهید بود؛ برنامهنویس به این معنی که میتوانید به مطالب گفتهشده در آن کتاب یا آن دوره عمل کنید و بتوانید آن پروژهها را از نو بنویسید. برای یادگیری اولیهی برنامهنویسی زمان زیادی نیاز ندارید؛ ولی برای آنکه بتوانید آنچه را در ذهن شما یا مشتریتان است انجام دهید به تجربههای زیادی نیاز دارید. در واقع، شما به تخصصهای زیادی نیاز خواهید داشت که بسیاری از آنها در هیچ کتاب یا آموزشگاهی ارایه نمیشوند.
بعد از اینکه متوجه شدید که راه سادهای در پیش ندارید و درصورتیکه همچنان دوست دارید برنامهنویس شوید، باید تکلیف خود را روشن کنید و برای آیندهتان تصمیم درستی بگیرید. این تصمیم آیندهی شما را تغییر خواهد داد. پس باید با خود صادق باشید و از روی احساس تصمیم نگیرید.
کدام زبان برنامهنویسی؟
زبانهای برنامهنویسی زیادی در دنیا وجود دارند که قاعدتا قادر نیستید همهی آنها را یاد بگیرید. یکسری از زبانهای برنامهنویسی «چندسکویی» (Cross-Platform) هستند. یعنی با آنها میتوان برای بسترهای متفاوتی برنامهنویسی کنید. مانند زبان برنامهنویسی «جاوا» (Java) که به کمک آن میتوانید برای سیستم عامل اندروید، وب، ویندوز، لینوکس و مک برنامهنویسی کنید. ولی برنامهنویسی برای بسترهای مختلف به سادگیِ حرفزدن در مورد آن نیست و تقریبا برای هر بستر نیاز به مهارتهای خاصی است. اکثر زبانهای برنامهنویسی یکسری اصول عمومی دارند که معمولا در زبانهای مختلف تفاوت آنها بسیار کم است. مثلا شرطها در اکثر زبانهای رایج وجود دارند. بنابراین در ابتدای کار به شما پیشنهاد میکنم که مقدمات کلی برنامهنویسی را یاد بگیرید و روی یک زبان خاص وسواس نداشته باشید.
خوشبختانه معمولا منابع یادگیری بهصورت رایگان یا با صرف هزینهی بسیار کم در دسترس هستند. با جستوجو در گوگل به سایتهای زیادی خواهید رسید که به آموزش تخصص مورد نظرتان میپردازند. سایتهایی مثل «کد آکادمی» (Code Academy)، «کورسرا» (Coursera) و «خان آکادمی» (Khan Academy) منابع بسیار خوبی هستند.
اول سرمشق بنویسید بعد تغییرات ایجاد کنید
اکثر برنامهنویسانی که در اطرافتان میبینید، اولین برنامهای که موفق به نوشتناش شدند، برنامهی ساده «سلام جهان» (Hello world) بوده است که صرفا یک پیغام کوتاه روی نمایشگر نمایش میدهد. اگر از روی یک کتاب یا هرچیز مشابه آن اقدام به یادگیری برنامهنویسی میکنید، تمام تمرینهای خواستهشده را حتی اگر شده با تقلب کردن از دیگران، انجام دهید. سپس کمی خلاقیت خرج دهید و آن را به سبک خودتان بازنویسی کنید.
پس از آنکه کمی در کار خود پیشرفت کردید سعی کنید با چیزهایی که بلدید یک برنامه بنویسید. برای خودتان یک پروژه تعریف کنید و تمام تلاشتان را کنید که آن پروژه را با کیفیت بالا انجام دهید. همچنین میتوانید با استفاده از سایتهایی مثل «سورس فورج» (Source Forge) کدهای سایر برنامهنویسان را بهرایگان دریافت کنید و ببینید آنها چگونه آن برنامه را نوشتهاند و سپس خودتان را با آنها مقایسه کنید.
توسعه و مشارکت در برنامهها
یکی از کارهای پسندیدهای که برنامهنویسان حرفهای انجام میدهند انتشار کدهای نوشتهشدهشان در محیط اینترنت است. این کار باعث میشود که در ابتدا برنامهنویسان مبتدی بتوانند تجربیاتی از کدهای آنها کسب کنند. برنامهنویسان حرفهای و نیمهحرفهای هم میتوانند برنامههایشان را از این طریق توسعه داده و آنها را به برنامههای بهتری تبدیل کنند. سایت «گیتهاب» (GitHub) یکی از وبسایتهای بسیار معروف در این زمینه است که با جستوجو در آن میتوانید پروژههای انجام شده بهوسیلهی سایر برنامهنویسان را مشاهده و دانلود کنید. شما میتوانید برنامهها را توسعه دهید و دوباره منتشر کنید. حتی میتوانید به برنامهای قابلیت جدیدی اضافه کنید.
اگر تا به اینجای کار هنوز پروژهای برای دوستان یا آشنایانتان انجام ندادهاید و کمی استرس دارید که شاید از پس پروژههای تجاری برنیایید، به شما پیشنهاد میکنم با جستوجوی ساده در گوگل (البته به زبان انگلیسی) در انجام پروژهای داوطلبانه شرکت کنید. پروژههای داوطلبانه معمولا بهوسیلهی چند نفر با تخصصهای مشابه و شاید هم متفاوت انجام میشوند و از آنها درآمدی عاید شما نمیشود. برنامهنویسی برای بیمارستانها، خیریهها و سایر موسسات غیرانتفاعی از نمونه پروژههای داوطلبانه هستند که در انتهای پروژه شما چند دوست خارجی، مقدار زیادی اعتمادبهنفس و یک نمونه کار دارید.
شما چه تجربهای در یادگیری برنامهنویسی دارید؟ چند بار در این راه دلسرد شدهاید و چه مشکلاتی تابهحال در این راه داشتهاید؟
سلام مقاله جامع و خوبی بود ممنونم. کامنت ها رو خوندن و جای خوشحالی داشت که خیلی از کسانی که میخوان برنامه نویسی یاد بگیرن از سنین پایین هستند.اما خیلی ها نمیدونستن از کجا شروع کنند و … البته بعضا دوستان را به یادگیری مباحث ابتدایی راهنمایی کردن که بسیار صحیح هست اما برای این که توی ذوقتون نخوره و یه لذتی ببرید از کارتون و با مفاهیم تقریبا اشنا بشید میتونید برای قدم اول از اسکرچ شروع کنید که برای افراد کم سن ۷-۸ سال پیشنهاد من اسکرچ جونیور هست و برای سنین بالاتر اسکرچ. زمانی که من شروع کردم به برنامه نویسی اسمبلی بود و سی و یه چندتا زبان دیگه و با توجه به این که نه اینترنتی بود و نه منابع درست حسابی یادگیری بسیار سخت و طاقت فرسا بود .امروز زبان های جدید و با منابع نا محدود در دسترس شما هست و در اینده بیشتر و بهتر هم میشه باید به روز باشید شاید اسمبلی یه جا به کارتون بیاد ولی الان دیگه کسی با این زبان برنامه نمینویسه پس چیزی رو که در بالا گفتم به درد امروز میخوره شاید سال دیگه منابع راحتر و بهتر و کاملتری هم برای یادگیری و هم برای درامد زایی وجود داشته باشه قدر ثانیه ثانیه از زمانتونو بدونید و بهترین استفاده رو ازش ببرید. یادتون باشه زبان برنامه نویسی رو اول باید بر اساس علاقه تون یاد بگیرید نه پولش اگه علاقه باشه و عشق برنامه نویس شدن داشته باشید پس همه سختی هاشو با جون دل میخرید و یاد میگیرید اما اگر صرفا به خاطر درامدش فکر میکنید که باید یاد بگیرید ۹۹% فقط عمرشونو هدر میدن و آخر بر میگردن سر خونه اول. چقدر این شاخه اون شاخه پریدم ولی خوب چیزایی بود که گفتم شاید به درد یکی بخوره. موفق و پیروز و سربلند باشید.
سلام دوست عزیز
خیلی ممنون بابت پست خوبتون
اگر این سوال رو بتونید پاسخ بدید واقعا ممنون می شم
من می خوام برنامه نویسی رو شروع کنم
ولی نمی دونم برای آغاز، «الآن» باید چی کار کنم، کجا برم، چه سرفصل هائی رو یاد بگیرم
اگر بتونید ۱۰ تا سرفصل آغازین (برای کسی که “هیچ” اطلاعاتی نداره) رو معرفی کنید، ممنونتون می شم