داستان برنامه‌نویس شدن یک مهندس عمران

نویسنده : سید ایوب کوکبی ۱۳ اسفند ۱۳۹۷

گاهی خواندن داستان زندگی آدم‌ها به انسان انگیزه می‌دهد؛ انگیزۀ ماندن، انگیزۀ رفتن، انگیزۀ ادامه دادن و … . داستان زندگی آقای آمیت شکهار نیز از جهات متعددی خواندنی است. او یک مهندس عمران بود که بعدها به یک مهندس نرم‌افزار موفق تبدیل شد. در این مطلب داستان مهاجرت وی را از زبان خودش نقل می‌کنیم.

سال ۲۰۱۴ از دانشگاه IIT در رشتۀ مهندسی عمران فارغ‌التحصیل شدم. حقیقتش را بخواهید هیچ سرنخ و ایده‌ای برای ادامۀ کار نداشتم. نمی‌دانستم باید چه کاری انجام دهم. به این فکر می‌کردم که من ۴ سال از عمرم را برای درس خواندن در دانشگاه تلف کرده‌ام! اما هر بار ندای درونی‌ام می‌گفت: «در دانشگاه مهارت حل مسئله یاد گرفتی و با آدمای زیادی ارتباط برقرار کردی»

مهارت حل مسئله مهم‌ترین مهارت زندگی هر شخصی است. خوشبختانه بخت با من یار بود و توانستم ویدیویی الهام‌بخش از سخنرانی استیوجابز ببینم. بخشی از این سخنرانی نظرم را جلب کرد. آنجایی که می‎گفت:

«… شما باید دنبال چیزی باشید که به آن علاقه دارید. و این موضوع به همان میزانی که برای یک رابطۀ عاشقانه اهمیت دارد برای کار نیز مهم است. کار، بخش عمده‌ای از زندگی ماست و تنها زمانی از کارمان راضی خواهیم بود که آنچه را انجام می‌دهیم باور داشته باشیم و این میسر نیست مگر با انجام کاری که به آن علاقه‌مندیم. اگر هنوز این کار را پیدا نکرده‌اید، دنبالش بگردید. جا نزنید. دقیقاً مثل یک رابطۀ عاشقانه وقتی چنین کاری را پیدا کنید احساس خوبی به آن خواهید داشت. رابطه‌ای که با گذشت سال‌ها بهتر و قوی‌تر از قبل می‌شود. بنابراین به جستجو ادامه دهید تا چیزی را پیدا کنید که به دنبال آن هستید. جا نزنید… »

من واقعاً به این حرف استیو جابز را قبول دارم.

چهار سال مهندسی عمران خوانده بودم و بعد از دانشگاه هم تکلیفم را نمی‌دانستم. بنابراین دوست نداشتم با رفتن به دانشگاه و خواندن یک رشتۀ دیگر این ماجرا تکرار شود. اما قلباً احساس می‌کردم به درک عملکرد نرم‌افزارها علاقه دارم. تقریباً اواخر سال ۲۰۱۴ مطالعه در حوزۀ برنامه‌نویسی را با خواندن کتاب Head First Java Book شروع کردم. به خاطر ماهیت حل مسئله‌ای که داشت کم‌کم عاشق برنامه‌نویسی شدم.

بخوانید  کاهش حجم فایل‌های PNG

به نظر من هر برنامه‌نویسی، Self-taught (یا خودآموخته) است. یعنی بدون تلاش از سوی خودمان به یک برنامه‌نویس موفق تبدیل نمی‌شویم.

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

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

آن روزها تنها کاری که می‌کردم این بود: یادگیری و پیاده‌سازی

هر جلسه‌ای که برگزار می‌شد، حتی بدون اطمینان از پیاده‌سازی آن قابلیت می‌گفتم: «بله مشکلی نیست؛ این کار شدنی است و تکمیل آن زمان زیادی نمی‌خواهد.»

سر همان حرفی که زدم بودم یعنی کار سخت و تلاش مداوم.

این روال کاری هر روزم بود: بیدار شدن، تنفس هوی تازه، صبحانه، یادگیری و پیاده‌سازی، نهار، یادگیری و پیاده‌سازی، شام، یادگیری و پیاده‌سازی، خواب، بیدار شدن.

مهم‌ترین نکاتی که اینجا می‌توان برداشت کرد:

  • یادگیری با پیاده‌سازی: بهترین روش یادگیری هرچیز، ساختن است. بسازید تا یاد بگیرید؛
  • کدنویسی روزانه: اگر می‌خواهید برنامه‌نویس بهتری شوید هر روز باید کد بزنید.

موفقیت همیشه عظمت نیست. موفقیت پشتکار است. پشتکار و تداوم انجام یک کار ما را به موفقیت می‌رساند. پشت‌بندش عظمت و بزرگی هم خواهد آمد. دواین جانسون

تا آن زمان فقط می‌توانستم پیاده‌سازی کنم ولی نمی‌توانستم کدهای بهتری بنویسیم. پیرو هیچ Best practice ای نبودم. خب نوبت کدنویسی بهتر و بهبود کیفیت داخلی بود.

در آوریل ۲۰۱۶ پروزۀ متن‌بازی تحت عنوان Fast-Android-Networking را شروع کردم که در حال حاضر بیش از ۱۰۰۰ برنامه در پلی‌استور از آن استفاده می‌کنند. این اولین پروژۀ متن‌باز من بود.

بخوانید  آموزش زبان کاتلین – درس 25 (Data Class)

برای کار در حوزۀ متن‌باز شروع کردم به بررسی سایر پروژه‌های متن‌باز که کمک فراوانی به من کرد. اکنون پروژه‌های متن‌باز زیادی دارم. با انجام هر پروژه، مهارت‌های برنامه‌نویسی من بهبود می‌یافت. این پروفایل من در گیت‌هاب است.

در این مدت مرتکب اشتباهات زیادی شدم. مثلاً لینک پروژه‌هایم را هر جایی که گیر می‌آوردم ارسال می‌کردم (مثل ردیت). این اشتباه بزرگی بود و توسعه‌دهندگان کمی هم به ان اشاره کردند. به هر حال افراد زیادی از این اشتباهات درس گرفتند. در این مورد خیلی متاسفم. اما تصحیح چنین اشتباهاتی را در دستور کار قرار دادم.

در نوامبر ۲۰۱۶، پروزۀ متن‌باز دیگری تحت عنوان Android-Debug-Database ساختم که بازخورد بسیار خوبی از جامعۀ توسعه‌دهندگان گرفت طوری که پروژه در کمتر از ۲ روز بیش از ۲۰۰۰ ستاره گرفت.

تا الان از حرف‌هایی که زدم این نتیجه را می‌توانیم برداشت کنیم:

  • شما می‌توانید هر چیز جالبی در حوزۀ برنامه‌نویسی را تنها با خواندن کدهای دیگران یاد بگیرید. شما باید پروژه‌های متن‌باز دیگران را بخوانید.

خب، کم‌کم به جایی رسیده بودم که نوبت اشتراک دانسته‌هایم بود.

در دسامبر ۲۰۱۶، جانیشار علی و من شروع کردیم به ساخت Mindorks که در حال حاضر بزرگترین کامیونیتی اندروید در دنیاست. از طریق این سایت، دانشی که باعث بهبود توسعه‌دهندگان می‌شد را به اشتراک می‌گذاشتیم.

من شروع به مطالعۀ عمیق و پیاده‌سازی چیزهایی که یاد گرفته بودم کردم و نهایتاً آموخته‌هایم را با دیگران به اشتراک می‌گذاشتم. اکنون انتشارات Mindorks در مدیوم بیش از ۲۰۰ نویسنده و ۲۰ هزار عضو دارد.

بسیار خرسندم که در این پلتفرم، توسعه‌دهندگان، دانسته‌های خود را برای کمک به یکدیگر به اشتراک می‌گذارند.

یادگیری یک سفر است، بیایید با هم یادبگیریم.

برداشت کلی تا اینجای متن:

بخوانید  20 ترفند برای بهبود رابط کاربری برنامه‌های موبایل

در دسامبر ۲۰۱۶، پیشنهادی شغلی از یکی از بزرگ‌ترین کمپانی‌های دنیا که آرزوی کار در آنجا را داشتم دریافت کردم. اما مطمئن بودم کار کردن روی استارتاپ چیزهای بیشتری به من یاد می‌دهد. برایم خیلی سخت بود که آن پیشنهاد شغلی را رد کردم.

خلاصه سفرم را با یادگیری و پیاده‌سازی ادامه دادم تا اینکه بعد از ۲ سال کار روی آن استارتاپ رهایش کردم. شانس حضور در یک رویداد استارتاپی در نیویورک فراهم شد. تصمیم گرفتم به آمریکا بروم تا تکنولوژی‌هایی که خارج از هند وجود داشت را ببینم. با پس‌اندازی که داشتم ترتیب سفری به آمریکا را دادم. بالاخره توانستم مکان رویایی‌ام یعنی سیلیکون ولی را روئیت کنم. به شرکت‌های مختلفی مثل گوگل، فیسبوک، TwitchTV رفتم تا با توسعه‌دهندگان دیگر صحبت کنم و یاد بگیریم آن‌ها چه کارهایی را متفاوت انجام می‌دهند.

درس‌های  زیادی از آن سفر گرفتم.

برداشت کلی:

  • تا می‌توانید با توسعه‌دهندگان مختلف ارتباط بگیرید. این کار شما را با نقطه‌نظرات مختلفی آشنا می‌سازد؛
  • با شرکت در کنفرانس‌ها و همایش‌های تکنولوژی، سایر برنامه‌نویس‌ها را ملاقات کنید.

بعد از بازگشت از آمریکا، به شرکتی تکنولوژیک در هند پیوستم. سپس بعد از یک سال کار هیجان‌انگیز، آنجا را ترک کردم تا بتوانم به دانش‌آموزان، توسعه‌دهندگان و استارتاپ‌ها کمک کنم.

من یک موقعیت شغلی با درآمد عالی را تنها با هدف کمک کردن به دیگران رها کردم؛ چیزی که به آن علاقه داشتم.

چگونه به دانش‌آوزان، توسعه‌دهندگان و استارتاپ‌ها کمک می‌کنم؟

  • تولید محتوای مفید در Mindorks که به توسعه‌دهندگان کمک می‌کند تا مهارت‌های جدید را یاد بگیرند؛
  • کمک به استارتاپ‌ها جهت ساخت اپلیکیشن‌های بهتر با استفاده از GetMeAnApp؛
  • کمک به اشخاص یا صاحبان کسب‌وکارهای کوچک برای کار تیمی در یک مکان اشتراکی با قیمتی مناسب در HackerSpace.

برای کسب اطلاعات بیشتر دربارۀ من به سایت شخصی‌ام مراجعه کنید.

ممنون که سرگذشت و ماجرای زندگی من را خوانید. بگذارید با این جمله جمع‌بندی حرف‌هایم را بگویم.

هیچ خبری از شانس نیست، فقط باید سخت تلاش کنید. به این تلاشِ سخت ادامه دهید.

کارهای سخت خوبی داشته باشید:)

سید ایوب کوکبی

نویسنده و مترجم...

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *