چطور من برنامه‌نویس شدم

چند وقت پیش بود که اتفاقی ویدئویی دیدم که در اون کسی که خودش رو استاد بلامنازع برنامه نویسی می‌دونست در جواب سوالی که فرق جاوا و جاوااسکریپت رو پرسیده بود گفت که جاوااسکریپت کوچک شده‌ی جاوا است برای محیط‌های وب :))))

به هر حال استاد ساکن خوزستان پس از ۱۷ سال تلاش در حوزه تولید نرم افزار (تا سال ۹۹) حق داره که سعی کنه دیگه برنامه ننویسه و از آموزش دادن بخواد روزی بدست بیاره. یا یک استاد دیگه که خودش رو پدر جاوای ایران معرفی می‌کنه :)) و بابت آموزش چیزی که خودش خوب بلد نیست مشغول کسب درآمده.

نوشتن این مطلب به این نیته که حتی شده یک نفر تو دام چنین کلاه‌بردارانی نیفته و شاید در حد کمی بتونه به این دسته از افراد کمک کنه که مسیر رو بهتر پیدا کنن.

چطور من برنامه‌نویس شدم: روزهای آخر اسفند ۹۴ بود که تصمیم گرفتم به خاطر علاقه‌ای که به جیرا داشتم، جاوا رو خوب یاد بگیرم، یک سری ویدیو رو دانلود کردم و شروع کردم به دیدن، چند روز بعد شرکتی که توش کار می‌کردم گفت که سال بعد قراردادی نیست و فی امان الله. قسمت دوم ویدیو رو دقیقا بعد از این جلسه کذایی دیدم (چون هنوز داغ بودم)

تعطیلات عید برام به سختی گذشت، بیشتر از نگرانی بابت از دست دادن درآمد، نگران این بودم که حس رزومه فرستادن واسه شرکت‌های فنی و مهندسی رو ندارم و با توجه به شناختی که از بازار کار داشتم می‌دونستم که احتمالاً شرکت جدید هم چنگی به دل نمی‌زنه و با این اوضاع رکود تورمی مملکت، اوضاع کار در چنین جایی جالب نخواهد بود. روز چهارم پنجم عید تصمیم گرفتم تو یک بازه سه ماهه برای برنامه‌نویسی اقدام کنم، هنوز البته یک سوال وجود داشت، رو چه زبانی وقت بگذارم برای یادگیری؟! چون با جیرا خوب کار کرده بودم (هم ادمین جیرا بودم و هم با دولوپ پلاگین جیرا آشنا شده بودم بدون اینکه خیلی جاوا بلد باشم، البته قبول دارم چیز عجیبیه) و یک سری برنامه تو رده سازمانی میشناختم که همه با جاوا نوشته شده بودن، و عشقم این بود که خودم بتونم به تنهایی یک روزی یک برنامه بنویسم در همین حد :)) گزینه اولم همین زبان شد، طبق تعداد آگهی‌های بازار کار نرم‌افزار گزینه دوم و سومم شد اندروید و پی‌اچ‌پی، هر چند میدونستم که برای انتخاب یک زبان اطلاعات جاریم مناسب نیست ولی طبق روال همیشگی ترجیح دادم که به جای موندن زیاد پشت این چند انتخاب یکی رو انتخاب کنم و برم جلو، پس اول جاوا با یک فرصت چهار ماهه، اگر نشد گزینه بعدی که اندروید باشه و در نهایت پی‌اچ‌پی و حتی وردپرس دولوپر. تا آخر تعطیلات تمام ویدئوهای مارک دکستر رو دیدم و البته خودم هم چند بار کارهایی که گفته بود رو انجام دادم تا بهتر بفهمم. اگر چیزی رو هم خوب نفهمیده بودم سعی کردم با جستجو مسأله رو حل کنم.

چون دوست و آشنایی نداشتم که تو حوزه نرم‌افزار کار کنه و اطلاعات بهم بده با تکنیک مهندسی معکوس شروع کردم به خوندن یک سری مفاهیم. از آگهی‌هایی که دنبال جاوا کار بودن رسیدم به اینکه چه سوال‌هایی تو جلسه مصاحبه میشه و همون ها رو شروع کردم به خوندن، هر چه اون مفهوم بیشتر تو آگهی‌ها تکرار شده بود من هم بیشتر روش وقت گذاشتم، آبجکت اورینتد رو قبلاً باهاش آشنا بودم (داخل پرانتز بگم من تفننی کرکر نرم‌افزار بودم و زمانی به خاطر همین تفنن زبان اسمبلی رو یاد گرفته بودم و باهاش الگوریتم می‌زدم به کمک ابزار محبوب اون دوران اولی‌دیباگر، یک سری که کارم به جاوااسکریپت کشید دیدم تو دیباگ نوشته شده this. و کمی راجع به این رفتم خوندم تا بفهمم جریان چیه) ولی خب این دانشی که داشتم بدرد جلسه مصاحبه نمی‌خورد، شروع کردم به بیشتر خوندن در این موارد، البته به این نیت که مصاحبه پاس بشه نه اینکه بفهمم، به قولی همون تکنیک تست زدن کنکوری، یعنی بیشتر شارلاتن بازی تا داشتن اطلاعات و فهمیدنش. بقیه چیزها هم همینجور بود، اسپرینگ، هایبرنت، استراتس، الگوهای طراحی و وب، جدا از متن آگهی‌ها یک چیز دیگه هم بهم کمک کرد و اون دسته مطالبی هست که خارجی‌ها به عنوان java interview questions می‌نوشتن. منابع اموزشیم هم به ترتیب اهمیت و استفاده‌ای که در اون دوران کردم این‌ها بودن: گوگل، استک‌اورفلو، سایت tutorialspoint، دیدن ویدیوهای کوتاه آموزشی از یوتیوب که بیشتر هندی‌ بودن، دو سه تا از ویدئو های جاواکاپ(تنها مشکل این دسته از ویدیوهای آموزشی که آقای علی‌اکبری زحمتش رو کشیده، طولانی بودن زیاد ویدیو بود برای من، و گرنه به نظرم بهترین گزینه برای استارت یک تازه کار میتونه باشه و اگه دوباره برگردم به اون دوران علیرغم طولانی بودن زمان آموزش هر مطلب، اولین گزینه یادگیریم همین خواهد شد) چون هدفم گرفتن نتیجه فقط برای مصاحبه استخدامی بود و نه درک زیربنایی مطلب، به هیچ وجه هیچ کتابی نخوندم و صرفا درحد اینکه اگه رفتم جایی کار کردم فلان کتاب‌ها رو میخونم رضایت دادم، البته هنوز هم فکر میکنم با توجه به محدود بودن وقتیکه برای استخدام به‌عنوان دولوپر گذاشتم کار درستی بوده و در اون شرایط خوندن کامل یک مطلب نیازمند وقت گذاشتن زیاد بوده که بدرد من نمیخورد.

بعد از تعطیلات خرداد شروع به فرستادن رزومه کردم و اولین شرکتی که برای مصاحبه رفتم تا داخلش رفتم گفتم بابا کار تو رشته خودم حتی تو این اوضاع داغون رشته‌های فنی جذاب تر بود تا این شرکت. مصاحبه کننده هم تا تونست گفت برای اینکه اعتماد به نفسم رو بشکونه، هر چند از پسش بر اومدم ولی آخر جلسه همون نیت اصلیش رو گفت که ببین اگه اینجا بیایی کارآموز بشی کار یاد میگیری و فلان و فلان. همونجا بهش گفتم دمت گرم، ولی من بدردت نمی‌خورم، سطح کارتون خیلی بالاست :) دیگه از این به بعد از جاب‌اینجا هم بدم اومد.

بعد از این جلسه کلا از قید جاوا رها شدم و بین دو گزینه برگشت به رشته تحصیلی و اندروید تو شک بودم، منتها چون میدونستم که رشته فنی حالا حالاها اوضاعش خوب نخواهد شد کلا این گزینه رو بر خلاف خواستم گذاشتم کنار، واسه شروع یک دوره لیندا رو تند تند دیدم واسه اندروید دولوپر شدن، محیط هم حاضر کردم (اکلیپس و ...) و حدود دو سه هفته اندروید دولوپر شدم، هر چی جلو رفتم دیدم حس خوبی ندارم گفتم دوباره یک مهلتی به خودم بدم واسه جاوا دولوپر شدن، دوباره شروع کردم خوندن و رزومه فرستادن، این دفعه جاهای بهتری مصاحبه دادم، توسن، همکاران و ... البته یک نکته اینکه جاهای بهتری دعوت به مصاحبه شدم این بود که از رو متن آگهی تشخیص می‌دادم که شرکت بدرد می‌خوره یا نه و خیلی از جاها که تو آگهی‌هاشون می‌نویسن ادمهای کول و باحالی هستن رو بی‌خیال می‌شدم. کارها رو بیشتر از ایران‌تلنت و یک گروه ایمیلی java-ee پیدا می‌کردم.

با توجه به گذشت مهلتی که واسه‌ی جاوا دولوپر شدن گذاشته بودم و با توجه به اطلاعات خوبی که پیدا کرده بودم واسه مصاحبه پی‌اچ‌پی سریعتر آماده شدم و داشتم هماهنگ می‌کردم که برم توی یک شرکت لاراولی کار کنم که زنگ زدن بیا دولوپر جاوا شو.

تا اینجا شاید فکر کنید که این مسیر پنج ماه و نیمه خیلی سخت نبوده و به قولی باحال هم بوده، در صورتیکه نه، مثل بقیه مسیر زندگی اینجا هم بعضی وقتها اعصابم خورد شد، پشیمون شدم، برگشتم، فکر کردم که راه درستی انتخاب نکردم. این بالا و پایین داشتن توی دوران جاوا دولوپر شدن هم بود، ماه‌های اول که تو کار واقعی افتادم اینقدر فشار کار و زندگی شخصی روم بود که جدا اگه قسط بانک نداشتم استعفا داده بودم :) خلاصه که فکر نکنید مسیر زندگی از یک جایی به بعد هموار میشه.

این مطلب رو نوشتم تا اولا گول این دکون‌های آموزش برنامه‌نویسی رو نخورین، اگر حرفه‌ای خیلی ساده باشه یادگیریش پس متقاضی انجامش زیاد میشه و به همون نسبت درآمدش کمتر، نگهبان دم در یک شرکت رو مقایسه کنید با اپراتور فنی یک دستگاه، خیلی راحت نمیتونین ادعا کنین که مثلاً با دستگاه تراش کار کردین، اگر هم یک جایی ادعا کرد که با فلان ساعت آموزش شما رو تراشکار ماهر میکنه همونجا مطمئن شین به اینکه با یک دسته کلاهبردار طرف هستین و پول، زمان و امیدتون رو بیهوده از دست ندین.

در ثانی این رو بفهمین که هر کسی یک جوری برنامه‌نویس شده، هیچ روشی وجود نداره که برای همه جواب بده و بدونین درآمد برنامه نویسی خیلی بالا نیست، اینکه من رشته تحصیلی خودم و چند سال تجربه‌ام رو ول کردم و وارد این حوزه شدم دلیلش پول زیاد دولوپری نبود بلکه اوضاع خراب رشته‌های فنی تو مملکت بود و نداشتن امکان برای ول کردن تعلقات و رفتن از ایران. اگر قصد دارین تو دوره آموزشی شرکت کنین برای ورود به دنیای برنامه‌نویسی، یا از کسیکه تجربه بیشتری داره کمک بخواهید در مورد مناسب بودن یا نبودن اون دوره خاص و یا اگه چنین امکانی براتون فراهم نیست؛ سعی کنین حداقل با بررسی تبلیغات انجام شده برای اون دوره بفهمین که با یک سری شیاد و کلاه‌بردار طرفین یا نه، منظورم اینه که ممکنه نشه از رو متن آگهی‌ها فهمید فلان دوره بدرد میخوره یا نه، ولی میشه تشخیص داد که فلان آدم داره از بی‌اطلاعی یک‌سری کلاه برداری می‌کنه.

چند نکته:

یک: در توضیح تکنیکی که گفتم برای خوندن مفاهیم جدید در پیش گرفته بودم طبعا می‌شد تو جلسه مصاحبه کسی چیزی ازم بپرسه که تا حالا نشنیده باشم، سعی می‌کردم خیلی ریلکس ازش بپرسم جریان چیه و حتی انتظار داشته چه جوابی بگیره، این‌جوری هم یک فرصت تنفس برای خودم می‌خریدم، هم جواب رو تا حدی یاد می‌گرفتم تا بعدا راحت‌تر بتونم سرچ کنم در موردش و هم اینکه ادای آدم کنجکاو که مورد علاقه مصاحبه‌کننده‌هاست رو داشتم در می‌آوردم. یکی از مواردی که پیش اومد و بدلیل شرایط نمی‌شد از طرف پرسید زمانی بود که توی آخرهای صحبت توی شرکتی که رفتم توش کار کردم از من پرسیده شد که دوست داری بک‌اند کار کنی یا فرانت؟ این اصطلاح رو تا حالا نشنیده بودم. از طرفی جو جلسه طوری نبود که بگم منظور چیه. هر چند حدسم درست بود در مورد این دو اصطلاح ولی تا قبل از این سوال فکر می‌کردم اگه چیزی اسمش محصول باشه باید یک رابط کاربری هم داشته باشه : )). خلاصه که خیلی یواش گفتم بک‌اند.

دو: آدمها برای یادگیری چیزهای جدید دو دسته هستند، یک سری تنهایی می‌شینن میخونن و یک سری تو دوره‌های آموزشی بیشتر یاد میگیرن، هیچ کدوم از دو دسته نسبت به هم برتری خاصی ندارن. تنها نکته مهم اینه که توجه بشه آیا اگه قصد ورود به یک حرفه است آیا استعداد اون کار هم وجود داره؟ آیا جدا از داشتن استعداد در مورد اون حرفه اونقدر علاقه است که حاضر باشیم چند سال از عمرمون رو صرفش کنیم. در کنار دو مورد بالا یک چشمی هم به بازار کار و میزان عرضه و تقاضای حرفه مورد علاقمون هم بندازیم.

سه: به عنوان توصیه آخر به کسایی که می‌خواهند برای شغلی اقدام کنن این چند مورد رو به صورت تیتر وار می‌گم: رزومه مناسب و تمیز و نهایت دو صفحه ‌ای، نترسیدن از جلسه مصاحبه، حتی رد شدن از یک مصاحبه باعث میشه تجربه‌ای بدست بیاریم واسه مصاحبه بعدی( مثلاً من مصاحبه همکاران سیستم رو رد شدم ولی با استفاده از تجربه‌ی اون مصاحبه جای بعدی قبول شدم)، سعی کنین مرعوب اقتدار مصاحبه‌گر نشین و با روشی مصاحبه کننده رو تحت کنترل خودتون بیارین، از شرکت یا شرکت‌های قبلی که کار کردین بد نگین؛ حتی اگه واقعا بد باشن و در نهایت اینکه بلوف بزنین ولی دروغ نگین!