چطور طی ۱۶ ماه از یک فروشنده به یک توسعه دهنده فرانت اند تبدیل شدم

ترجمه و تالیف : علیرضا داداشی
تاریخ انتشار : 16 اردیبهشت 99
خواندن در 8 دقیقه
دسته بندی ها : برنامه نویسی

در ۱۸ آگوست ۲۰۱۵، من در یک پرواز یک‌طرفه از فرودگاه تورنتو پیرسون به کپنهاگ بودم. دو ترم از تحصیلات خود را در مدرسه تجارت کپنهاگ گذراندم. می‌توانم به‌راحتی آن زمان را به یاد بیاورم زیرا آن روز تولد برادرم بود. او مجبور شد آن روز را در فرودگاه بگذراند، زیرا من یک پرواز به دانمارک داشتم.

تنها آشنایی من با کپنهاگ از تماشای CPN Open در کانال یوتیوب مجله Thrasher بود. خوشبختانه من عاشق شهر شدم و بعد از گذراندن اولین ترم در خارج از کشور، تصمیم گرفتم که مدت اقامت خودم را بیشتر کنم. قرار بود بعد از فارغ‌التحصیلی و بازگشت به کانادا، کارآموزی را شروع کنم و خودم را به چالش بکشم اما به جای آن تصمیم گرفتم در کپنهاگ این کار را انجام دهم.

کار کردن در کپنهاگ

من واقعاً برای این کار هیچ برنامه‌ای نداشتم. بنابراین شروع به جستجوی نقش‌هایی مثل مسئول فروش کردم. در یکی از کلاس‌هایم متوجه این شغل شدم. از آنجایی که تمام تجربیات قبلی من در مورد فروش و خدمات‌رسانی به مشتریان بود، فکر می‌کردم که این کار مناسب من است.

من درخواست خود را به یک استارتاپ جوان فرستادم.۴ ساعت بعد؛ از طرف مدیر فروش با من تماس گرفته شد. من از این سرعت متعجب شدم و فهمیدم که همه چیز در دنیای استارتاپ سریع اتفاق می‌افتد. حدود یک ماه بعد، اولین روز کاری خود را گذراندم. این همچنین اولین باری بود که با توسعه‌دهندگان حرفه‌ای ملاقات می‌کردم.

اگرچه من تنها در کلاس‌های مربوط به اصول بصری در دبیرستان با توسعه نرم‌افزار آشنا شدم، اما همیشه علاقه بسیاری به فناوری و تکنولوژی داشتم. در واقع من در این شغل جدید خود برای اولین‌بار در کنار توسعه‌دهندگان کار کردم. گوش دادن به کارهایشان واقعا هیجان‌انگیز بود. آن‌ها همیشه در مورد واژه‌ها و فناوری‌های بسیاری مانند React، Ember، Scala، Python، TypeScript و غیره صحبت می‌کردند. تصور اینکه برای توسعه دادن نرم‌افزار باید این همه اطلاعات داشته باشم واقعاً برایم ترسناک بود.

چطور طی ۱۶ ماه از یک فروشنده به یک توسعه دهنده فرانت اند تبدیل شدم

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

کشف کردن freeCodeCamp

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

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

دست و پنجه نرم کردن با مبانی

من به سرعت در حال یادگیری HTML و CSS بودم و از این بابت احساس اعتماد به نفس بسیاری می‌کردم. اما یک روز با پروژه‌ای روبرو شدم که می‌بایست آن را به اتمام می‌رساندم. ساخت یک نمونه‌کار ساده؟ این به نظر آسان می‌آید. ناگهان خودم را غرق در یک ویرایشگر خارج از freeCodeCamp دیدم. شروع کردن این پروژه از همان ابتدا غیرممکن به نظر می‌رسید و وحشتناک بود که من چقدر سریع همه چیز را فراموش کرده‌ام. ناگهان تبدیل شدن به یک توسع ‌دهنده واقعی برای من به امری غیرممکن بدل شد.

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

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

یاد گرفتن جاوااسکریپت

این کار در ابتدا به اندازه کافی آسان شروع شد، اگرچه مدتی زیادی نگذشت که دوباره گیج و ناامید شدم. بعد از اتمام ماژول‌های جاوااسکریپت، احساس کردم که برای انجام پروژه‌های سخت‌تر در آن زمینه، اعتماد به نفس و سرسختی لازم را ندارم. من روش آسانی را در پیش گرفتم . دوره‌های آموزشی Codecademy JavaScript را دنبال کردم.

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

شروع کردن در Pleo

 چطور طی ۱۶ ماه از یک فروشنده به یک توسعه دهنده فرانت اند تبدیل شدم

من به‌طور مستقیم وارد یک دوره‌ی دیگر شدم. این‌بار در Node دوره‌ای با عنوان React را دنبال کردم. در بین دوره‌های Node و React، کار جدیدی را در یک استارتاپ شروع کردم. کار من مدیریت حساب مشتریان بود و به نظرم آن استارتاپ هنوز هم جزو جالب‌ترین استارتاپ‌های دانمارک باقی مانده است. اینکه عضو یک شرکت در حال رشد باشید بسیار جالب و هیجان‌انگیز است. موضوع جالب‌تر این بود که من در آنجا می‌توانستم با توسعه‌دهندگان جدید و بااستعدادی آشنا شده و از آن‌ها مطالب بسیاری را بیاموزم.

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

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

تلاش کردن در چالش کدنویسی

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

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

خوشبختانه چالش فرانت‌اند ما بسیار شبیه به پروژه نهایی در دوره React بود. بنابراین من می‌توانستم از بسیاری از بخش‌ها و قسمت‌های آن دوباره استفاده کنم. با خودم احساس می‌کردم که در حال تقلب کردن بودم. من پروژه‌ی خود را ارسال کردم و مشتاقانه منتظر بازخورد ماندم. بررسی شدن کدهایم توسط دو نفر از مهندسین ارشد ما بسیار ترسناک بود. من واقعاً آماده‌ی دریافت بازخوردهای خشنی از آن‌ها بودم.

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

اولین روابط عمومی من

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

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

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

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

انتقال دادن

من در طی ۵ ماه، روال روزانه خود را برای ماندن در اداره ادامه دادم. هر روز صبح از ساعت ۹:۰۰ تا ۱۷:۰۰ کار می‌کردم. سپس تا دیروقت در اداره می‌ماندم و وانمود می‌کردم که یک توسعه دهنده هستم. تمایل من به ادامه دادن در حرفه فروش هر روز کمرنگ‌تر از دیروز می‌شد. در انتظار روزی بودم تا بتوانم به طور رسمی حرفه خود را تغییر دهم. 

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

بعد از تلاش‌های بسیار، توافق‌نامه‌ای شکل گرفت که طبق آن می‌توانستم در ۱ آگوست این انتقال را انجام دهم. اما آن توافق‌نامه مشروط بر این بود که من همچنان می‌بایست هدفمند باقی بمانم. این برای من مثل نور موجود در انتهای تونل بود. اینکه قرار است به زودی به‌عنوان یک مهندس نرم‌افزار شروع به کار کنم، برایم بسیار گیج‌کننده بود. حال من یک شغل جدید با قراردادی کاری داشتم. هفته‌ها یکی پس از دیگری گذشتند. در روز چهارشنبه ۳۱ جولای، دیگر یک مدیر مربوط به حساب‌های مشتریان نبودم.

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

چیزی که یاد گرفتم

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

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

آرزو می‌کنم کاش زمان بیشتری را صرف ساخت پروژه‌های کوچک و استفاده از آموخته‌های خود می‌کردم. من اغلب پروژه‌ها را شروع می‌کردم، اما هرگز از پس آن‌ها بر نمی‌آمدم زیرا تصور می‌کردم نمی‌توانم به روشی درست کدنویسی کنم.

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

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

منبع