من می خواهم برنامه نویس شوم - قسمت اول

سلام، باعث افتخار است که شما تصمیم گرفته اید برنامه نویس شوید و قصد دارید در کنار دیگر دوستانتان در این عرصه فعالیت کنید و شاید با ایده هایی که در ذهن دارید، بتوانید به کسب و کارهای موجود کمک کنید و یا صاحب کسب و کار جدیدی شوید و با تولیداتان به دیگران کمک کنید. در این سری آموزشی قصد داریم ذهن شما را با شغل برنامه نویسی و فضای آن آشنا کنیم. با تجربه ای که در دوران دانشگاه داشتم حتی دانشجویان کامپیوتر و فناوری اطلاعات هم برای شروع برنامه نویسی چالش ها و درگیری ذهنی زیادی داشتند از جمله خود من در شروع این کار. حتی برخی از این پرسشها شبیه به بحث های فلسفی هستند تا پرسش های فنی. در این قسمت با شغل برنامه نویسی بیشتر آشنا و سپس نکاتی را یادآور خواهیم شد.آشنایی با شغل برنامه نویسیدر ابتدا لازم است به سوالاتی در ذهن شما پاسخ داده شود و سپس به نکاتی مهم اشاره خواهیم کرد: حقوق برنامه نویس چقدر است؟سوال بسیار خوبی که همه ابتدا از من پرسیده اند و من هیچ وقت جواب قاطعی برای آن نخواهم داشت. اما اکثر دوستان منظورشان در یک زندگی کارمندی است زیرا کسانی همچون شما که بدنبال پیاده سازی ایده های عالی در ذهنتان هستید هیچ مبلغ مشخصی را به عنوان درآمد در نظر نمی گیرید. اما حقوق برنامه نویسان در سال گذشته ۹۹ در تهران بر اساس اطلاعات به دست آمده از گزارش حقوق و دستمزد وب‌سایت ایران سلری، میانگین حقوق برنامه نویس در ایران ۶,۰۰۰,۰۰۰ تومان است. حقوق این افراد از ۲,۰۰۰,۰۰۰ تومان (کمترین - که بنده باور نمیکنم) تا ۱۲,۰۰۰,۰۰۰ تومان (بالاترین - طبق گفته سایت) متغیر است. البته بسته به حوزه کاری شرکت و وسعت پروژه، مدرک دانشگاهی، سوابق کاری و حوزه تخصصی و سمت شغلی این عدد متفاوت و حتی تا ۲۰,۰۰۰,۰۰۰ تومان هم وجود دارد. مبلغ ذکر شده بصورت میانگین شاید حدود 50 درصد جامعه را شامل شود عدد تقریبا صحیحی است البته شروع فکر می کنم حداقل از سه میلیون تومان باشد و همانطور که اشاره شد مبالغ بالاتری هم وجود دارند که شرایط آن بیان شد. در کشور آمریکا بیشترین درآمد را فعالان و برنامه نویسان حوزه فناوری اطلاعات داشته اند با میانگین حدود ۱۰۰۰۰ دلار در ماه و طبق خبر شماره 864557 در سایت روزنامه دنیای اقتصاد توجه شما را به مقایسه اقتصاد ایران و آمریکا جلب می کنم (مربوط به سال 93) مقایسه اقتصاد ایران و آمریکا در سال 93 - روزنامه دنیای اقتصادهمانطور که مشاهده می کنید در صورتی که به یک تجارت بین المللی دسترسی و امکان اتصال به بانک های بین المللی را داشته باشید در حوزه نرم افزار می توانید درآمد فوق العاده ای داشته باشیدبرخی افراد هم هستند که شیفته برنامه نویسی هستند و به درآمد مکفی بسنده میکنند اما با علاقه و پشت کاری که دارند کارهای بسیار بزرگی انجام می دهند. جایگاه شغلی برنامه نویسمن به تولید بسیار علاقه دارم و برنامه نویسی برای من مانند تولید اثری است که برای آن زحمت می کشید، بسیاری از مواقع که محل کار خود را عوض کرده ام نه به دلیل حقوق یا سختی کار بلکه به دلیل برخورد راحت مدیران با تصمیم یک شبه کنار گذاشتن یک برنامه بوده که شش ماه یا بیشتر برای آن زحمت کشیده ایم. از نظر بسیاری از آن ها شما پول گرفته اید و کار خود را انجام داده اید. تصور کنید به هنرمند مجسمه سازی پول بدهید تا برای شما مجسمه ای بسازد و در مقابل چشم او آن را بشکنید که بسیار ناراحت کننده است. بیشترین لذت برنامه نویسی را در شرکتی داشته ام که از محصول تولید شده استفاده کرده اند و دقیقا همین حس را در نوشتن این مقاله دارم. گاهی اشتباه در پیاده سازی یک خواسته پیش می آید که طبیعی است اما نمی توان کل محصول که حاصل خواست خود کارفرما و تلاش شما است را زیر سوال برد. برنامه نویسی سخت است؟هم بله هم خیر، اگر به کار خود علاقه داشته باشید سختی قابل تحمل است و عادی اما اگر مجبور به کاری هستید که به آن علاقه ندارید طبیعی است که با مواجهه با مشکلات کار فرسایشی خواهد بود و شما را خسته خواهد کرد. مشکلاتی که پیش روی آن هستید: مشکلات برنامه نویسی، خطاها و مطالب جدید که با آنها آشنا نیستید: این قسمت برای بعضی افراد سخت و برای بعضی چالش و تنوع است و بستگی به روحیه شما دارد و اینکه تنها دوست شما گوگل است یا اینکه اشخاصی را برای تبادل نظر در کنار خود دارید یا خیرمشکل تغییر مدیریت در حین اجرای کار: این مورد در شرکت های دولتی امری بسیار طبیعی و حتمی است. شما عموما در طول یک سال با دو مدیر مختلف کار خواهید کرد. در این شرکت ها فقط فعالیت شما شرط است و اطاعت از دستورات، برنامه جایگاه زیاد مهمی ندارد و نهایتا از شرکت دیگری خریداری خواهد شد و شما به بخش دیگر یا به پروژه دیگری منتقل خواهید شد. در بعضی شرکت ها چاره کار خروج از شرکت است و در مواردی که پروژه واقعا مهم است و مدیر بعدی باید آن را ادامه دهد باید سعی کنید توانمندی خود را در اصول و فنون مذاکره بالا ببرید چون مدیر جدید حتما تغییراتی را سفارش خواهد دادمشکل در تغییر خواسته کارفرما ها حین اجرای پروژه: این مورد کمی با مورد فوق هم پوشانی دارد که با شیوه های جدید مدیریتی قابل حل است که در دوره های آتی آموزشی که در حوزه مدیریت است به آن اشاره خواهد شد.مشکلات زیرساختی: گاهی تجهیزات که در اختیار شما است و یا امکاناتی که برای اجرای پروژه به آن نیاز دارید کاملا در دسترس شما نخواهد بود و شرکت حاضر به پرداخت هزینه برای آن ها نیست یا اگر کار خود را انجام می دهید، خودتان توان پرداخت هزینه های آن را ندارید (باید به بدنبال راه حل های ارزانتر باشید و نگران نباشید زمانی که پروژه شما به درآمد زایی رسید از درآمد حاصله برای پیشرفت آن هزینه کنید)نبود صنف: متاسفانه حتی دلالان پیچ و مهره هم صنف دارند اما برنامه نویسان صنف درستی ندارند. مشکلات مربوط به قوانین کار که همه درگیر آن هستند و میزان افزایش حقوق که باید خود به فکر آن باشید و تا توجه به تورم غیر قابل توصیف و غیر منطقی موجود خود باید برای مدیریت آن چاره ای بیاندیشید.حال می خواهیم شروع کنیم:قدم اول- انگیزه داشته باشیدداشتن انگیزه در شروع هر کاری لازم است، خیاطی، نجاری، برنامه نویسی یا هر تولید موفق دیگری. آنچه موجب ادامه کار و استمرار در یادگیری و پیشرفت شما هست را پیدا کنید. برای شروع یک کار یا باید پشت کار آن را داشته باشید یا علاقه. تا زمانی که نتوانید آمپول یا قرصی اختراع کنید که علم را بخورید و یا به خور تزریق کنید یا آنقدر به توانمندی مغز خود پی نبرید که بتوانید در یک شب یک دانش را به طور کامل فرا گیرید هیچ چاره ی دیگری به جز مطالعه مستمر و تمرین ندارید. لطفا این را بپذیرید و دنبال میانبر نباشید. ما هم در اینجا با راهنمایی های لازم تجربه خود را در اختیار شما می گذاریم تا مسیر را سریع تر بپیمایید. اما اگر اطراف شما انسان های تنبلی وجود دارند پیشنهاد تولید کپسول انتقال دانش را به آنها بدهید، آنها حتما راهی برای آن پیدا خواهد کرد. ممکن است تنبل بودن آن ها ربطی به ذکاوتشان نداشته باشد. قدم دوم- از کار خود لذت ببریدذهن خود را درگیر بحث های بیهوده نکنید. مخصوصا در میان دانشجویان کامپیوتر و فناوری اطلاعات بسیار پیش میاید که دانشجویان زبان های مختلف برنامه نویسی به بحث و جدل راجع به توانمندی های زبانی میپردازند که در سطح توانمندی آینده کاری آنها حتی از یک دهم آن توانمندی های آن زبان هم استفاده نخواهند کرد. از الان نگران آینده پروژه در حال اجرا یا پروژه ای که قرار است چندین سال بعد اجرا کنید نباشید. اگر لازم شد از زبان دیگری استفاده خواهید کرد، بهتر است یک برنامه نویس حرفه ای باشید تا php کار یا asp کار یا جاوا کار و ... تمامی زبان های برنامه نویسی موجود، حاصل سال ها زحمت و تلاش بی وقفه افرادی باهوش و قابل اعتماد است و با تمامی این زبان ها پروژه های عظیمی انجام شده و همواره در حال بهبود هستند. پس نگران زبانی که میخواهید با آن کار کنید نباشید و از کار خود لذت ببرید. مطمئن باشید اگر زبانی ارزش لازم در جامعه فعلی را نداشت مانند زبان های دیگری که بعد از مدتی ترد شدند، باقی نمی ماند.البته این بحث ها ممنوع نیست اما اثر گذاری بی منطق آن ها در مسیر کاری شما ممنوع است.قدم سوم- شروع کنیدسعی کنید با ابزار کارتان (کامپیوتر) رابطه صمیمانه ای برقرار کنید، ((تایپ ده انگشتی)) را تمرین کنید (فارسی و انگلیسی) و با برنامه های مختلف کار کنید و به سایت های مختلف سر بزنید. به دنیای حرفه ای گام بردارید و وقت کمتری در شبکه های اجتماعی (به صورت بی هدف) بگذرانید و لذت خواندن یک مقاله مهیج در رابطه با آنچه علاقه دارید را در دنیای وسیع اینترنت از دست ندهید. وقتی پای مطالعات آزاد در میان باشد حتی فیزیک و شیمی و ریاضی هم جذاب هستند چون شما هستید که انتخاب می کنید چه چیز را دوست دارم بخوانم من در دوره ای که شروع به آموزش برنامه نویسی کردم کتاب های بیشتری نسبت به آنچه در دانشگاه مجبور به خواندن آن ها بودم خوانده ام. زبان انگلیسی! اینجا محل توقف شما نیست! اگر به کلمه زبان انگلیسی حساسیت دارید باید توجه داشته باشید که مرزهای دانش در زمین فناوری اطلاعات فعلا به دست اساتید و دانشجویان دانشگاه هایی چون MIT و کارکنان شرکت هایی چون IBM در حال گسترش است و این دانشگاه ها و شرکت ها از زبان انگلیسی برای درمیان گذاشتن تجربه خود استفاده می کنند. پس به آن نیاز دارید اگر قصد دارید بهترین باشید. نگران نباشید! متون استفاده شده برای توضیحات فنی در حوزه فناوری اطلاعات متون ادبی نیستند و بسیار ساده و قابل فهم هستند. برنامه ای برای ارتقای زبان انگلیسی خود داشته باشید حتی اگر در مسیر رفت آمد دانشگاه یا محل کار فعلی خود هستید یا یک ربع بیشتر وقت ندارید. سریع استفاده کنید.صحبت نهاییاین مقاله صرفا جهت آشنایی شما با فضای شغلی برنامه نویسی بود و امیدوارم مفید بوده باشه. برای شروع علاوه بر افزایش مهارت مستمر در زبان انگلیسی و تایپ (که به مرور زمان انجام می شود و بصورت یک مرحله پیش نیاز نیست) نیاز است با برخی اصطلاحات آشنا شوید و روش های کار برخی ابزارهای پیش رو را بدانید و یک زبان و محیط توسعه را انتخاب کنید که سعی میکنم در مقالات بعدی و به مرور مطالب را آماده و منتشر کنم.همچنین از پیش کسوتان در این عرصه دعوت میکنم در قسمت نظرات در چهارچوب مطلب این مقاله (یعنی شغل برنامه نویسی) اگر نظری دارند که به کار دوستانی می آید که خواهان ورود به این دنیا هستند بیان کنند. https://virgool.io/CodeLovers/%D9%85%D9%86-%D9%85%DB%8C-%D8%AE%D9%88%D8%A7%D9%87%D9%85-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%B4%D9%88%D9%85-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-mm4v25aturdq