تجربه کسی که اولین شغل کدنویسی خودشو گرفت

خیلی اوقات افرادی رو میبینیم که تازه شروع می کنن به یادگیری کد نویسی و بهش علاقه دارند اما یه حسی بهشون میگه آیندم چی میشه ؟ قراره آخرش کجا کار کنم و چ کار انجام بدم ؟ آیا میتونم از پس هزینه های زندگی بر بیام و بتونم باهاش درآمد داشته باشم ؟خب همه این سوالات تقریبا میشه گفت برای اکثر افرادی که تازه وارد این مسیر (مسیر قشنگ اما پر استرس) میشن رخ میده و اونا دنبال جوابش می گردن . از این و اون میپرسن و از کسایی که تجربه بیشتری دارن .یادمه یکی می گفت که تجربه هر کسی برای خودشه کاری ندارم که تا چ اندازه این حرف صحت داره یا نه ولی میشه از تجربه کسی که خودش این مسیر رو با کلی دردسر شروع کرده استفاده کرد تا حداقل خودمون به اشتباهات بزرگ دچار نشیم .خب بریم سراغ اصل موضوع از زبان نویسنده داستان کد نویسی من از حدود دو سال و نیم پیش شروع شد و من اخیرا اولین کار تمام وقت مربوط به برنامه نویسی خودم رو گرفتم و خییییلی خوشحالم .!ممکنه این مسیر برای تعدادی از شما طولانی به نظر برسه ولی من براش عجله ای نداشتم . افراد زیادی برای این کار عجله می کنند و منم به نظرم برای مدتی آماده این کار بودم .به همین خاطر تصمیم گرفتم داستان خودم و منابع مطالعاتی و مواردی رو که حین یادگیری توسعه وب برام موثر بودنو براتون به اشتراک بزارم .اول اینکه چطور به کدنویسی علاقه مند شدم ؟من تو تایلند زندگی می کردم و آموزش میدیدم و میجنگیدم در حالی که همزمان به عنوان مدیر شبکه های اجتماعی ۱۰ ساعت در هفته کار میکردم . واقعا از بازاریابی به عنوان یک شغل لذت نمی بردم و اون چیزی نبود که آرزوشو می کردم چون که من باید در ساعت هایی از روز فعال باشم .خوشبختانه زمان برای یادگیری چیزهای جدید داشتم . برای اینکار از منابع آنلاین استفاده می کردم و به نظرم مهارت های خوب و منعطفی دارند و میشه حتی از راه دور(remote) اونا رو دنبال کرد .خیلی زمان نگذشت که من با یک پسر مسافر از ویتنام ملاقات کردم او به عنوان توسعه دهنده وب کار می کرد و من به همین خاطر علاقه مند شدم و شروع کردم به کد نویسی کردم .مرحله بعدی این بود که از کجا یاد بگیرم ؟ابتدا از سایت های مختلفی گشتم و شروع کردم مثل codeacademy و freecodecamp و سایر سایت هایی که الآن به یاد ندارم .من واقعا هرگز از این سایت ها برای شروع استفاده نکردم ولی اونا منو به یادگیری برنامه نویسی علاقه مند کردند .بعد از گشتن زیاد تصمیم گرفتم دوره شناخته شده هاروارد CS5-Introduction To Computer Science رو که توسط David Malan ساخته شده بود رو تهیه کنم . این دوره اصول مقدماتی علوم کامپیوتر مثل ساختار داده و الگوریتم ها و کار های مربوط به کامپیوتر رو درس میداد . این موارد در زبان c انجام میشد ولی باعث شد تا اصول اولیه رو یاد بگیرم و اعتماد به نفسم افزایش پیدا کنه .بعد اینکه این دوره رو تموم کردم سراغ freecodecamp رفتم و اون چیزی که من توی این سایت دوست داشتم بیشتر پروژه های این سایت بود . اونا بهت ایده های خوبی می دهند تا توی تمرین ها و پروژهاتون زمانی که دارید یاد میگیرید ازش استفاده کنید زمانی که من مباحث در دو بخش HTML/CSS/JavaScript و مباحث پیشرفته تر رو یاد گرفتم نتونستم به اندازه کافی درس های دیگه ای رو تو این سایت پیدا کنم و به همین خاطر سراغ سایت Udemy رفتم چون مباحث آن عمیق تر بود . سپس میتونم به عقب برگردم و پروژه های سایت freecodecamp رو برای تمرین انجام دهم .من از ترکیب این دو سایت استفاده کردم تا تونستم درک کاملی نسبت به HTML و CSS و JavaScript و Node و React و Redux به دست بیاورم و تونستم همه پروژه های سایت freecodecamp رو البته به جز پروژه های مربوط به تجسم دیتا که با استفاده از D3.js می بود رو کامل کنم و به اتمام برسونم چونکه این مهارت رو حین جستجو برای شغلم پیدا نکرده بودم .خب بعدش چی شد؟اگرچه من از این مهارت ها و این مسیر اطمینان داشتم اما به چندین درخواست های کوچک درگیر چیز دیگری نبودم . حقیقت این بود که من نمیدانستم از کجا شروع کنم . هر دفعه که به این مشکل نگاه میکردم چیز مورد توجه پیدا نمیکردم یا اگر چیز مورد توجهی بود قبل از من کسی دیگه مدعی اون شده وباهاش کار کرده بود .سرانجام به عنوان یک شریک کاری با freecodecamp مشغول به کار شدم . توصیه من اینه که عادتی رو ایجاد کنید که هفته ای یکبار مشکلات خودتونو بررسی کنید و یا اینکه ببینید که چیزی وجود دارد که شما بتونید بهش کمک کنید .همزمان با کار با پروژه های متن باز به عنوان یک کار آموز front -end developer روی ری اکت متمرکز شدم . این کار آموزی ایده آل من نبود اما به صورت remote بود و باعث شد من چیز های زیادی رو روی کدبیسی که شخصی دیگه رو اون کار کرده بود یاد بگیریم . من فقط روی سمت کلاینت اون مشغول بودم . این موضوع در خودش چالش هایی مانند جستجو برای حل مشکلات داشت چون این وظیفه شما به حساب می اومد . در این حین بود که من به سمت React Native رفتم و در مورد پیاده سازی و کار با اون شروع به یادگیری کردم .گرفتن شغلمن ترکیب بسیار خوبی از مهارت ها و تجربه ها و پروژه های مختلف رو داشتم برای این که خودمو نشون بدم و علاوه بر اون یک سایتی که نمونه کار ها در اون قرار داره کار های منو تبلیغ می کرد . من دیگه آماده بودم !گرفتن شغل مثل یک بازی صبر میمونه که باید صب زیادی داشته باشی . روی هم رفته برای من ۲ماه جستجو و درخواست برای کار طول کشید . من درخواست های متعددی رو به جاهایی فرستادم که دنبال توسعه دهنده بالاتر از سطح خودم و یا سطح متوسط بودند که نتیجه ای نداشت . و دید خوبی نسبت به مشاغل تبلیغ شده داشتم و اونا رو مفید می دونستم .گاها از طرف کارفرما با من تماس گرفته می شد و این به خاطر رزومه و مهارت های من بود و دنبال سمت های جونیور برایم می گشتند و بهم پیشنهاد می دادند .برای پیدا کردن کار توی دورهمی ها و شبکه های مختلف شرکت می کردم و نتونستم به صورت مستقیم موردی رو پیدا کنم چون شرکت ها دنبال نیروی جوان نبودند . اما با این حال من توی یک دورهمی که مربوط به ری اکت می بود شرکت کردم و با مدیر استخدام ملاقات کردم . او در شرکت خودش سمتی رو داشت که مربوط به یک نیروی تازه کاری بود و گشتن من به پایان رسید و می تونستم اقدام کنم .مراحل استخدام در این پوزیشن شامل یک تست فنی (https://github.com/GlynL/tech-test-prendi) و یک مصاحبه بود که در پایان به من پیشنهاد کار داده شده بود . این یک شرکت کوچک خوبی بود که من با توسعه دهنده های حرفه ای کار میکردم و میتونستم ایده هامو بگم و در مواردی که نیاز به کمک داشتم از آنها استفاده کنم . این یه شغل full-stack بود و من هر روز باید از ری اکت استفاده می کردم و و شانس زیادی رو برای کار روی تکنولوژی های مختلفی رو داشتم چون توی پروژه هام بهش نیاز داشتم .زمانی که درگیر مصاحبه بودم متوجه شدم چیزی که افراد ازش بیشتر استقبال می کنند این بود که آیا در دوره ی کارآموزی روی پروژه واقعی کار کردم یا خیر؟ اگر میتونستم همه چیز هارو روی پروژه ی شخصی خودم پیاده سازی کنم پس میتونستم روی یک پروژه واقعی هم با افراد دیگری اونو پیاده سازی کنم . من یقینا به دنبال کارآموزی خواهم بود چون این میتونه یه نقطه مثبتی باشه توی رزومه تون و شما میتونید ازش توی مصاحبه هاتون صحبت کنید .چه کار هایی رو به صورت متفاوتی انجام میدادم ؟اگه من دوباره بخوام از اول شروع کنم و کار ها رو انجام بدم ۲ مورد وجود داره که من به طرز متفاوتی انجام میدادم.یک اینکه برای شروع من خیلی زودتر خودمو با پروژه های اوپن سورس درگیر میکردم . توی مشارکت شما چیز های زیادی رو یاد میگیرید حتی اگر در حال یادگیری html و css باشید ! اگر شما به طور خاص تر با مشکلات برورد کنید قطعا بهتر خواهد بود و میتونه بهتون کمک کنه . مهارت هایی مثل آموزش کار کردن تیمی و جستجو برای یک کد بیس خیلی ارزشمند هست و هنگامی که مشغول یادگیری بیشتری هستید میتونید بیشتر مشکلاتتون رو با مهارت هاتون تنظیم کنید و اونا رو حل کنید .دوم اینکه کارهای مربوط به networking زود تر دنبال می کنم چون منجربه حفظ موقعیت های جونیور و کار آموزی میشه . اگر افراد بدانند که شما دنبال فرصت ها هستید وقتی که گزینه هایی رو دارند به شما فکر می کنند و یا حداقل اینکه برای درخواست های کاری که دارید مفید هست چون نشون میده شما که هستید و علاقه شما رو به اون نشون میده .امیدوارم این نوشته براتون مفید باشه .منبعبرای دیدن مقالات بیشتر میتوانید به سایت لرنیدو سر بزنید .