چطور یک برنامه نویس شویم؟

سلام به همگی. شاید توی این هفته به بالای ۵۰ نفر جواب دادم که چطور برنامه نویس شویم. چرا برنامه نویس شویم. برایشان برنامه نویس شدن خوب هست یا نه! برای همین گفتم بد نیست در این باره یک مقاله ایی بنویسم. در سوالاتی که از من میشد (و بدون شک از هر برنامه‌نویس و یا کدنویس دیگه ایی میشه) برخی به مرور تکرار شده بودند. مثلا:میزان درآمد یک برنامه‌نویس چقدر است؟برای برنامه‌نویس شدن حتما باید رشته‌ی دانشگاهی‌ام کامپیوتر باشد؟از کجا باید شروع کنیم؟ چطور آموزش ببینیم؟بهترین زبان برنامه‌نویسی چیست؟چقدر طول می‌کشد تا یه برنامه‌نویس خوب بشویم؟و اساسا چرا برنامه نویسی!قبل از هر چیزی با خودتان صادق باشید. چه چیزی باعث شد که تمایل پیدا کنید برنامه‌نویسی را یاد بگیرید؟ درآمد بالای برنامه‌نویسان؟ علاقه به کامپیوتر و مباحث پیشرفته‌ی آن؟ وجهه‌ی شخصیتی که برنامه‌نویسان در اجتماع دارند؟ نیاز به شغلی که بتوانید در خانه بمانید و پول در بیاورید؟ تغییر جهان یا حتی به عملی کردن ایده هایی که دارید؟ قبول دارم واقعا! شاید این‌ها همه دلایل بسیار خوبی برای شروع یادگیری برنامه‌نویسی باشند ولی اساسا دلایل خوبی برای ادامه نباشند!!!برنامه‌نویسی نیاز به عشق، علاقه و پشتکار دارد. زندگی یک برنامه‌نویس با خطاها و انجام نشدن و زیر سوال رفتن مواردی که قبلا یاد گرفته، عجین است. در هر پروژه‌، برنامه‌نویسان میزان زیادی از وقت‌ را برای رفع خطاهای موجود در برنامه‌ی نوشته‌شده صرف می‌کنند و شاید بیشتر از اون وقت صرف پیاده کردن راه حل های مختلف و جستجو در گوگل و انجمن های برنامه نویسی بذارند. شاید روزها طول بکشد تا بفهمند مشکل کار تنها از یک غلط املایی بوده است یا هر چیز دیگری. پس به عنوان یک برنامه‌‌نویس نیاز به این پیدا میکنید که واقعا صبور و باپشتکار باشید.باید قبول کنیم که برنامه‌نویسی کار ساده‌ای نیست. همین ساده نبودن برنامه‌نویسی، آن را خاص کرده است. نیازی نیست حتما در رشته‌ی کامپیوتر دارای تحصیلات باشید یا حتما سن‌تان بالای ۲۰ و کمتر از ۳۵ باشد. یا حتی نیاز نیست انسان بسیار باهوشی باشید یا ریاضی‌تان خیلی قوی باشد. ولی اگر همه‌ی این‌ها را داشته باشید، ممکن است در کنار دیگر برنامه‌نویسان از جایگاه بهتری برخوردار شوید. اگر پشتکار زیادی در یادگیری ندارید و همچنین اصلا حوصله‌ی درگیر شدن با مسائل سخت و پیچیده را ندارید از شما می‌خواهیم که دستتان را به کد آلوده نکنید و به سراغ مهارت‌های دیگری بروید. (ساده تر، همین الان این مقاله را رها کنید :دی)با شرکت در یک دوره‌ی برنامه‌نویسی، جستجو در اینترنت و آکادمی های آنلاین مختلف یا خواندن یک کتاب جامع، شما یک برنامه‌نویس خواهید بود؛ برنامه‌نویس به این معنی که می‌توانید به مطالب گفته‌شده در آن کتاب یا آن دوره عمل کنید و بتوانید آن پروژه‌ها را از نو بنویسید.برای یادگیری اولیه‌ی برنامه‌نویسی زمان زیادی نیاز ندارید؛ ولی برای آنکه بتوانید آنچه را در ذهن‌ شما یا مشتری‌تان است انجام دهید به تجربه‌های زیادی نیاز دارید. در واقع، شما به تخصص‌های زیادی نیاز خواهید داشت که بسیاری از آن‌ها در هیچ کتاب یا آموزشگاهی ارایه نمی‌شوند و فقط با تکرار و تکرار کدها هست که شما میفهمید.بعد از اینکه متوجه شدید که راه ساده‌ای در پیش ندارید و درصورتی‌که همچنان دوست دارید برنامه‌نویس شوید، باید تکلیف خود را روشن کنید و برای آینده‌تان تصمیم درستی بگیرید. این تصمیم آینده‌ی شما را تغییر خواهد داد. پس باید با خود صادق باشید و از روی احساس تصمیم نگیرید!کدام زبان برنامه‌نویسی؟این سوال واقعا پر تکرارترین سوال در زندگی من بوده! بهتر هست صادقانه جواب بدم. هرچیزی که دوست داری و اصلا با اسمش حال میکنید. اما اگر در ابتدای کار هستید یک زبان خوب و قویی انتخاب کنید که با آن زبان بتوانید هر کاری که لازم هست بکنید.برای انتخاب یک زبان برنامه نویسی کافی هست که شما گزینه های پیش رو را با یک دیگر مقایسه کنید.بورس زبان های برنامه نویسی در سال ۲۰۱۸برنامه‌نویسی برای بسترهای مختلف به سادگیِ حرف‌زدن در مورد آن نیست و تقریبا برای هر بستر نیاز به مهارت‌های خاصی است. اکثر زبان‌های برنامه‌نویسی یک‌سری اصول عمومی دارند که معمولا در زبان‌های مختلف تفاوت آن‌ها بسیار کم است. مثلا شرط‌ها در اکثر زبان‌های رایج وجود دارند. بنابراین در ابتدای کار به شما پیشنهاد می‌کنم که مقدمات کلی برنامه‌نویسی را یاد بگیرید و روی یک زبان خاص وسواس نداشته باشید.اول سرمشق بعد از نواکثر برنامه‌نویسانی که در اطراف‌تان می‌بینید، اولین برنامه‌ای که موفق به نوشتن‌‌آن شدند، برنامه‌ی ساده Hello world بوده است. صرفا یک پیام کوتاه روی نمایشگر :)اگر از روی یک کتاب و یا هرچیز دیگر اقدام به یادگیری برنامه‌نویسی می‌کنید، تمام تمرین‌های خواسته‌شده را حتی اگر شده با تقلب کردن از اینترنت، دیگران و... انجام دهید. بعد از آن کمی خلاقیت خرج دهید و آن را به سبک خودتان بازنویسی کنید. (یک برنامه نویس حرفه ایی همیشه برای خودش صاحب سبک است)پس از آنکه کمی در کار خود پیشرفت کردید سعی کنید با چیزهایی که بلدید یک برنامه بنویسید. برای خودتان یک پروژه تعریف کنید و تمام تلاش‌تان را کنید که آن پروژه را با کیفیت بالا انجام دهید. اگر اهل ریسک هستید مثل من بیاید یکم پامون را بالاتر بذاریم. اگر به من سفارش پروژه ایی شود که اصلا بلد نیستم آن را رد نمیکنم. پروژه را قبول میکنم و همچنین شروع به کار و آموزش همزمان میکنم! من اعتقاد دارم با زور بهتر و سریعتر وارد کار میشم و همچنین سناریو تعریف پروژه با من نیست.در آمد برنامه نویساناصلا فکر نکنید برنامه‌نویسی شغلی هست که یک پارو به دست شما بدهند و بگویند بروید پول ها را پارو کنید!یک برنامه نویس برای پروژه های مختلف به چالش کشیده خواهد شد. شما شاید در ماه ۵ پروژه بگیرید و کلا درآمد آن پروژه ۲ میلیون تومان باشد. شاید هم یک پروژه بگیرید که آن پروژه ۶ ماه وقت شما را بگیرد و درآمدش هم ۵۰ میلیون باشد! گاها شما مجبورید برای تحویل یک پروژه و اجرای تست های مختلف روی آن صبح تا شب و شب تا صبح کار کنید و بیدار باشید. زندگی با قهوه برای برنامه نویس ها از اینجا شروع میشود.به صورت خیلی ساده و بدون ابهام درآمد یک برنامه‌نویس بستگی به پروژه هایی که در یک ماه میگیرد و میزان تسلط و حرفه ایی بودن آن دارد و تمام.حرف آخراگر تا به اینجای کار هنوز پروژه‌ای برای دوستان یا آشنایان‌تان انجام نداده‌اید و کمی استرس دارید که شاید از پس پروژه‌های تجاری برنیایید، به شما پیشنهاد می‌کنم با جست‌وجوی ساده در گوگل (البته به زبان انگلیسی) در انجام پروژه‌ای داوطلبانه شرکت کنید. پروژه‌های داوطلبانه معمولا به‌وسیله‌ی چند نفر با تخصص‌های مشابه و شاید هم متفاوت انجام می‌شوند و از آن‌ها درآمدی عاید شما نمی‌شود. برنامه‌نویسی برای بیمارستان‌ها، خیریه‌ها و سایر موسسات غیرانتفاعی از نمونه پروژه‌های داوطلبانه هستند که در انتهای پروژه شما چند دوست خارجی، مقدار زیادی اعتماد‌به‌نفس و یک نمونه کار دارید :)تبریک میگم، شما تا اینجای کار مقاله را خواندید. بیایید یک چکیده ایی از مقالمان داشته باشیم.برنامه‌نویسی ساده نیست و نیاز به عشق و پشتکار دارد.یک برنامه‌نویس درآمد مشخصی ندارد و باید خودش را با کار هایی دیگر در شرکت ها (حتی برنامه‌نویسی در آنجا) مشغول کند.برنامه‌نویسی یعنی شروع استفاده از سرچ و گوگل کردن مشکلات در یک برنامه.زبان برنامه نویسی مهم نیست! مهم آن هست که شما پروژه خواسته شده را به بهترین نحو ارائه دهید.پیشنهاد میشود که یک زبان برنامه‌نویسی Cross-Platform انتخاب کنید.