چطور و از کجا باید برنامهنویسی را شروع کنیم؟
![](https://www.digikala.com/mag/wp-content/uploads/2016/06/code.jpg)
یکی از مشکلاتی که بسیاری از علاقهمندان به برنامهنویسی با آن مواجه هستند، عدم اطلاع از یک نقشهی راه درست است. وجود یک نقشهی راه خوب باعث میشود که شما تا حد زیادی در وقت و انرژیتان صرفهجویی و مراحل یادگیری را بهتر و سریعتر طی کنید. در ادامه توضیح میدهیم که چطور و از کجا باید برنامهنویسی را شروع کنید. با دیجیکالا مگ همراه شوید.
برنامهنویسان حرفهای و نیمهحرفهای معمولا با سوالات تکراری و زیادی از طرف علاقهمندان روبهرو میشوند. برخی از آنها را در ادامه مرور میکنیم:
بهترین زبان برنامهنویسی چیست؟
چقدر طول میکشد تا یه برنامهنویس خوب بشویم؟
میزان درآمد یک برنامهنویس چقدر است؟
تا چندسالگی میتوانم برنامهنویسی کنم؟
برای برنامهنویس شدن حتما باید رشتهی دانشگاهیام کامپیوتر باشد؟
اساسا چرا برنامهنویسی؟!
قبل از هر چیزی با خودتان صادق باشید. چه چیزی باعث شد که تمایل پیدا کنید برنامهنویسی را یاد بگیرید؟ درآمد بالای برنامهنویسان، علاقه به کامپیوتر و مباحث پیشرفتهی آن، وجههی شخصیتی که برنامهنویسان در اجتماع دارند، نیاز به شغلی که بتوانید در خانه بمانید و پول در بیاورید، تغییر جهان یا حتی به فعلیت رساندن ایدههایتان. اینها همه دلایل بسیار خوبی برای شروع یادگیری برنامهنویسی هستند ولی شاید دلایل خوبی برای ادامه نباشند.
اگر حوصلهی درگیر شدن با مسائل پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
برنامهنویسی نیاز به عشق، علاقه و پشتکار دارد. زندگی یک برنامهنویس با خطاها و انجام نشدن و زیر سوال رفتن مواردی که قبلا یاد گرفته، عجین است. در هر پروژهای برنامهنویسان میزان زیادی از وقتشان را برای رفع خطاهای موجود در برنامهی نوشتهشده صرف میکنند و شاید روزها طول بکشد تا بفهمند مشکل کار تنها از یک غلط املایی بوده است یا هر چیز دیگری. پس به عنوان یک برنامهنویس نیاز به این خواهید داشت که واقعا صبور و باپشتکار باشید. باید قبول کنیم که برنامهنویسی کار سادهای نیست. همین ساده نبودن برنامهنویسی، آن را خاص کرده است. نیازی نیست حتما در رشتهی کامپیوتر دارای تحصیلات باشید یا حتما سنتان بالای ۲۰ و کمتر از ۳۵ باشد. یا حتی نیاز نیست انسان بسیار باهوشی باشید یا ریاضیتان خیلی قوی باشد. ولی اگر همهی اینها را داشته باشید، ممکن است در کنار دیگر برنامهنویسان از جایگاه بهتری برخوردار شوید. اگر پشتکار زیادی در یادگیری ندارید و همچنین اصلا حوصلهی درگیر شدن با مسائل سخت و پیچیده را ندارید از شما میخواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارتهای دیگری بروید.
با شرکت در یک دورهی برنامهنویسی یا خواندن یک کتاب جامع، شما یک برنامهنویس خواهید بود؛ برنامهنویس به این معنی که میتوانید به مطالب گفتهشده در آن کتاب یا آن دوره عمل کنید و بتوانید آن پروژهها را از نو بنویسید. برای یادگیری اولیهی برنامهنویسی زمان زیادی نیاز ندارید؛ ولی برای آنکه بتوانید آنچه را در ذهن شما یا مشتریتان است انجام دهید به تجربههای زیادی نیاز دارید. در واقع، شما به تخصصهای زیادی نیاز خواهید داشت که بسیاری از آنها در هیچ کتاب یا آموزشگاهی ارایه نمیشوند.
بعد از اینکه متوجه شدید که راه سادهای در پیش ندارید و درصورتیکه همچنان دوست دارید برنامهنویس شوید، باید تکلیف خود را روشن کنید و برای آیندهتان تصمیم درستی بگیرید. این تصمیم آیندهی شما را تغییر خواهد داد. پس باید با خود صادق باشید و از روی احساس تصمیم نگیرید.
کدام زبان برنامهنویسی؟
زبانهای برنامهنویسی زیادی در دنیا وجود دارند که قاعدتا قادر نیستید همهی آنها را یاد بگیرید. یکسری از زبانهای برنامهنویسی «چندسکویی» (Cross-Platform) هستند. یعنی با آنها میتوان برای بسترهای متفاوتی برنامهنویسی کنید. مانند زبان برنامهنویسی «جاوا» (Java) که به کمک آن میتوانید برای سیستم عامل اندروید، وب، ویندوز، لینوکس و مک برنامهنویسی کنید. ولی برنامهنویسی برای بسترهای مختلف به سادگیِ حرفزدن در مورد آن نیست و تقریبا برای هر بستر نیاز به مهارتهای خاصی است. اکثر زبانهای برنامهنویسی یکسری اصول عمومی دارند که معمولا در زبانهای مختلف تفاوت آنها بسیار کم است. مثلا شرطها در اکثر زبانهای رایج وجود دارند. بنابراین در ابتدای کار به شما پیشنهاد میکنم که مقدمات کلی برنامهنویسی را یاد بگیرید و روی یک زبان خاص وسواس نداشته باشید.
خوشبختانه معمولا منابع یادگیری بهصورت رایگان یا با صرف هزینهی بسیار کم در دسترس هستند. با جستوجو در گوگل به سایتهای زیادی خواهید رسید که به آموزش تخصص مورد نظرتان میپردازند. سایتهایی مثل «کد آکادمی» (Code Academy)، «کورسرا» (Coursera) و «خان آکادمی» (Khan Academy) منابع بسیار خوبی هستند.
اول سرمشق بنویسید بعد تغییرات ایجاد کنید
اکثر برنامهنویسانی که در اطرافتان میبینید، اولین برنامهای که موفق به نوشتناش شدند، برنامهی ساده «سلام جهان» (Hello world) بوده است که صرفا یک پیغام کوتاه روی نمایشگر نمایش میدهد. اگر از روی یک کتاب یا هرچیز مشابه آن اقدام به یادگیری برنامهنویسی میکنید، تمام تمرینهای خواستهشده را حتی اگر شده با تقلب کردن از دیگران، انجام دهید. سپس کمی خلاقیت خرج دهید و آن را به سبک خودتان بازنویسی کنید.
پس از آنکه کمی در کار خود پیشرفت کردید سعی کنید با چیزهایی که بلدید یک برنامه بنویسید. برای خودتان یک پروژه تعریف کنید و تمام تلاشتان را کنید که آن پروژه را با کیفیت بالا انجام دهید. همچنین میتوانید با استفاده از سایتهایی مثل «سورس فورج» (Source Forge) کدهای سایر برنامهنویسان را بهرایگان دریافت کنید و ببینید آنها چگونه آن برنامه را نوشتهاند و سپس خودتان را با آنها مقایسه کنید.
توسعه و مشارکت در برنامهها
یکی از کارهای پسندیدهای که برنامهنویسان حرفهای انجام میدهند انتشار کدهای نوشتهشدهشان در محیط اینترنت است. این کار باعث میشود که در ابتدا برنامهنویسان مبتدی بتوانند تجربیاتی از کدهای آنها کسب کنند. برنامهنویسان حرفهای و نیمهحرفهای هم میتوانند برنامههایشان را از این طریق توسعه داده و آنها را به برنامههای بهتری تبدیل کنند. سایت «گیتهاب» (GitHub) یکی از وبسایتهای بسیار معروف در این زمینه است که با جستوجو در آن میتوانید پروژههای انجام شده بهوسیلهی سایر برنامهنویسان را مشاهده و دانلود کنید. شما میتوانید برنامهها را توسعه دهید و دوباره منتشر کنید. حتی میتوانید به برنامهای قابلیت جدیدی اضافه کنید.
اگر تا به اینجای کار هنوز پروژهای برای دوستان یا آشنایانتان انجام ندادهاید و کمی استرس دارید که شاید از پس پروژههای تجاری برنیایید، به شما پیشنهاد میکنم با جستوجوی ساده در گوگل (البته به زبان انگلیسی) در انجام پروژهای داوطلبانه شرکت کنید. پروژههای داوطلبانه معمولا بهوسیلهی چند نفر با تخصصهای مشابه و شاید هم متفاوت انجام میشوند و از آنها درآمدی عاید شما نمیشود. برنامهنویسی برای بیمارستانها، خیریهها و سایر موسسات غیرانتفاعی از نمونه پروژههای داوطلبانه هستند که در انتهای پروژه شما چند دوست خارجی، مقدار زیادی اعتمادبهنفس و یک نمونه کار دارید.
شما چه تجربهای در یادگیری برنامهنویسی دارید؟ چند بار در این راه دلسرد شدهاید و چه مشکلاتی تابهحال در این راه داشتهاید؟
ممنون که راه برنامه نویس شدن رو نشون دادید
سلام به همه
من وب نویسی خوندم و الان باید چی کارکنم یا چی بخونم که برنامه نویس شم ؟؟؟
من دو زبان HtmlوCssرو هم تقریبا خوب بلدم .
سلام من میخوام برنامه نویسی رو شروع کنم از html.css وجاوا اسکریپ میخوام شروع کنم یعد برم php برم قسمت بک اند
حالا قبل از اموزش چه چیز نیاز دارم و چه چیز اموزش ببینم و….
سلام به همه من تازه میخوام برنامه نویسی به زبان سی شارپ رو شروع کنم و هیچ چی از برنامه نویسی نمیدونم باید چطور و از کجا شرو کنم؟ لطفا جواب بدید. ممنون
سلام
من از سایت فرادرس خریدم
خوب بود و نسبتا راحت یاد گرفتم
سلام من برنامه نویسی maple و matlab رو امتحان کردم و موفق هم بودم بنظرتون میتونم تو زبانهای دیگه هم موفق باشم؟
https://www.w3schools.com/cpp/default.asp
کسانی که می خوان از ابتدا شروع کنن به این سایت سر بزنند عالی است هر زبانی را هم که بخواهید از ابتدا اموزش می دهد قدم به قدم
سلام ببخشید من میتونم با شما مشورت کنم ؟آیدی اینستامparisam1997هست اگ میشه چن تا سوال داشتم
سلام . واقعا مطالب مفیدی بود ولی من میخام برنامه نویسی رو از صفر شروع کنم و نمیدونم باید چه پیش زمینه هایی باید داشت و اینکه از کجا شروع کنم من تو دبیرستان ریاضی خوندم و سر الگوریتم ها خوشم اومد از برنامه نویسی و اینکه از بچگی عاشق کامپیوتر بودم ممنون میشم از دوستانی که بتونن تو این راه کمکم کنن…
برای این که به راحتی بتوانید با یک زبان ارتباط برقرار کنید و در زمان کم آن را یاد بگیرید، توصیه می شود برخی از مباحث علوم رایانه را یاد بگیرید. بعضی از این علوم عبارتند از:
۱. ساختمان داده ها
۲. الگوریتم و فلوچارت
۳. زبان انگلیسی
۴. زبان تخصصی و ماهیت کار زبان برنامه نویسی
۵. کار کردن با نرم افزار مربوط به برنامه نویسی
نظرات جالبی رو خوندم ک همینم باعث شد بفهمم باید از کجا و با چ اصولی شروع کنم تشکر????????
من ۱۱ سالمه آیا میتونم برنامه نویسی رو شروع کنم
(لطفا جواب بدین)
نمیدونم شاید بشه اما خوب شاید هیچی ازش نفهمی
وقتی ۲۰ سالت شد برو الان باید الگوریتم و آرایه و توابع بلد باشی که بهت فشار میاد
من دارم از سیشارپ شروع میکنم یعنی نصفشو بلدم و خییییلی آسونه ۱۵ سالم هم است و از بچگی علاقه زیادی به کامپیوتر داشتم از سینزده سالگی داشتم شروع میکردم یعنی دیگه آشنا بودم از همه چی حتی مهندسی معکوس!
نیت من در سیشارپ بروت فورسه
برنامه نویس فول استک اندروید هستم:
پنج سال اموزش غیر اکادمیک داشتم
و الان خدارو شکر همه جور اپلیکیشن واسه اندروید میتونم بسازم
اینا رو نگفتم که بخوام از خودم تعریف کنم اینا رو گفتم تا بهتون بگم برنامه نویس فول استک شدن اندروید اینجوری…
دوسال قبل از شروع ریاضی میخوندم هم اکادمیک هم غیره اکادمیک
یه جورایی هم استعداد خوبی تو ریاضی دارم …خب بهتون تو ادامه میگم ریاضی به چه دردی تو برنامه نویسی میخوره…
قبل از این که ریاضی شروع کنم ای سی دی ال یا همون مهارتهای کامپیترم خیلی خوب بود
ای سی دی ال یک محارت تعوری نیست …یه چیز کاملا تجربی هست
مثلا اگه بتونین ویندوز رو ختون به صرت اورجینال نصب کنین…سیدی رایت کنین …درایور نصب کنیین …
خلاصه کارای که در تعمیر نرم افزاری سیستم حالا هرچیش توش مهارت داشته باشین یعنی ای سی دی ال تون خوبه….باز در ادامه بهتون میگم همین ای سی دی ال ساده چقدر موثره…
…
جونم بهتون بگه که برنامه نوسی چجوریاس حد اقل در مورد من(-:
محیط برنامه نویسی در شروع کار خیلی گنگ هست تقریبا نود درصد کسایی که شروع به برنامه نویسی میکنن بخاطر همین گنگی ریزش میکنن
یه جورایی نمیدونین باید از کجا شروع کنین
محیط کد ی که واردش میشین اصلا اشنا نیست
اما اگه پشتکار و صبر خوبی داشته باشین و صد البته انگیزه بالا باعت میشین جز اون ده درصدی باشین که ریزش نمیکنن
هدف من تو برنامه ویسی ایجاد پلتفرم بود وهست والان دارم روش کار میکنم مثلا یه چیز مثل دیجی کالا اره مثال خوبیه
فرض کنید اپ اندروید دیجی کالا رو خودم به تنهایی ساختم ببیند چه علمی لازم داشتم
۱.زبان هوش برنامه:
شما دارین به برنامه هوش میدین خب نیاز به ابزار اون دارین تو برنامه دیجی کالا نسخه اندروید من از زبان برنامه نویسی جاوا استفاده کردم
زبان جاوا زبان هوش اندروید هست یعنی مثلا اگه رو فلان دکمه زدی چه اتفاقی بیفنه
شما باید بتونید این هوش رو تو یک فضای دیگه یا تو هر فضای دیگه ایجاد کنید
مثلا تو محیط کنسول
پش زمینه زبان جاوا زبان سی هست …زبان c یعنی زبان تدوین الگوریتم
خب حالا الگوریتم چی هست …در معنای کلمه یعنی ایجاد نظم و منطق بامحاصبات
خب محاسبات منظم و منطقی چیکار میکنه
فرض کنید یک نفر به یه حشره به اسم زنبور عصل الگوریتم داده
اول زنبور از کندو خارج شده
دوم با چشمش که مجهز به دیدن گلهایی که مجاز هسن گلی رو پیدا میکنه
سوم روی گل مرد نظر میشنه و شهد گل رو میمکه
چهارم مقداری از گرده رو در پاهای خودش جمع اوری میکنه که به لاروهای درون کندو بده
پنجم کندوی خودش رو پیدا میکنه و برمیگره
…
این میشه یه الگوریتم ببنید شما نمیتونید بگید اول گل رو میمکه بعد از کندو خارج مشه …
پس نیاز به یک الگوی منظم دارین
خب خیلی تخصصی شد سعی میکنم ساده تر توضیح بدم
در واقع تدوین یک الگوریتم نیاز به این داره شما ذهن به شدت محاسبه گری داشته باشین
چه کسایی میتونن بهترین الگوریتم هارو تدوین کنن؟
کسایی که ریاضیات زیاد کار کردن
کسانی که روی نت های موسقی کار میکنن و اهنگ سازای خوبین
یا شاید کسایی شطرنج زیاد بازی میکنن
خب ریاضیات ابتدایی ریشه همه علمهاست و مطمعن هستم هرکس این پست رو میخونه ریاضی مقدماتی رئ بلده
اما داشتن علم ریاضیات بیشرفته بسیار در تدوین الگوریتم موثره..
خب من به خاطر اینکه ریاضی خوب بود زبان c رو یاد گرفتم
امید وارم برای شما زیاد طول نکشه و ریزش نکنین
پس برای برنامه دیجی کالا رفتم سراغ زبان جاوا البته در ادامه
بوسیله زبان جاوا تونستم مسیر هوش دهی رو به هر برنامه ای رو یاد بگیرم
الان من میتونستم به خودم بگم کد نویس
…
۲زبان طراحی یا اصتلاحا design
من تو دیجیکالا از زبان xml برای طراحی اسفاده کردم
زبان xml یک زبان بسیار ساده والبته نفس گیر بود
یاد گیری زبانxml نیم ساعت زمان میبره اما بسیار نفس گیر هست چون شما شبیه نقاشی هستین که بارها روی بوم نقاشی میکشه و پاک میکنهومیکشه وپاک میکنه… تا درنهایت به دیزاین مورد نظرش برسه
….
۳.معماری
بله درست شنیدین معمار برنامه نویس کسی هست که با داده ها کار میکنه
معماری داخلی میشه ارایه ها و…اصتلاحا بهش میگن data stracture
معماری خارجی میشه دیتابیس اصتلاحا بهش میگن dbms
معماری داخلی زبانش بستگی به زبان هوش داره …در واقع معامری داخلیه دیجی کالا رو با جاوا ایجاد کردم
معماری خارجی زبانش فرق داره با sql مینویسن
دیگه بیشتر در موردش نمیگم که گیج نشین
خب دیگه ارشی تکت هم شدیم
کم کم دارم فول استک میشم
تاینجا شما فول استک انئروید شدین ولی وب نویس نیستین
شما با این دانش ها میتونید یک اپ افلاین ایجاد کنین
….
۳.زبان های وب شامل هوش کهمن تو دیجی کالا از php استفاده کردم وباز معماری داره که زبان اون mySql هست
….خب خسته که نشدین؟
تاحالا من زبانهای c,java,xml,php,sql رو یاد گرفتم
برای من چهار سال طول کشید امید وارم برای شما کمتر طول بکشه
….خب حالا رفتم سراغ ایدم که دیجی کالا اندروید هست
ابزار هایی که لازم دارم
۱.سیستم با امکانات < پلتفرم ویندوز انتخاب کردم …رم سیستم من ۱۶گیگ هست …با سیپی یو کورای سون
۲.اینترنت…برای دسترسی به سایت های مرجع مثل اندروید دولوپر ..گیت هاب و…
۳.زبان انگلیسی در سطح ترجمه متون چون تمام مرجع های منه انگلیسی هستن
۴نرم افزار ها شامل اندروید استدیو < کتاب خونه جاوا
درورد بر شما ،من میخوام دوره IT بگذرونم اما هیچ اطلاعاتی از کامپیتور ندارم ،میخوام قبل شروع کلاسها اطلاعاتم رو بالا ببرم میتونید من رو راهنمایی کنید که چطور شروع کنم من باید برنامه نویسی و حسابداری مالیاتی و امنیت اطلاعات یاد بگیرم ممنون میشم اگر بتونید به من کمک کنید
بسیار عالی بود سپاس
من چند ماهه که سردرگم هستم و دارم می گردم که بدونم از کجا استارت بزنم