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