من پوریا هستم. توی بازار کار، برنامه نویس FrontEnd و توسعه دهنده سیستم مدیریت محتوای وردپرس، تو جمع دوستان هم گاهی مشاوره راهاندازی کسبوکار های اینترنتی. گاها مقاله میخونم و یا مینویسم.
چطور یک برنامه نویس شویم؟

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