تبریک می گویم! شما دورهای مصاحبه را پشت سر گذاشته اید و اولین شغل توسعه دهنده جوان خود را پیدا کرده اید! این یک شروع جدید و هیجانانگیز برای مسیر شغلی توسعهدهنده شما است، اما در اولین شغل توسعهدهنده خود نیز با چالشهایی روبهرو خواهید شد.
در این مقاله، ما قصد داریم در مورد چهار چالش رایج توسعه دهندگان جوان در اولین شغل توسعهدهنده خود و نحوه غلبه بر آنها صحبت کنیم. همچنین توصیههایی از توسعهدهندگان ارشدی که بر این چالشها غلبه کردهاند و از طریق آنها به توسعهدهندگان دیگر کمک کردهاند، اضافه کردهایم.
شما باید با فناوری های ناآشنا کار کنید
چالش
شما بر اساس مهارتهای خود در جاوا اسکریپت مصاحبه و استخدام شدهاید، اما چند روز پس از شروع کار، متوجه میشوید که تنها با کسری از کدهایی که باید با آن کار کنید آشنا هستید. ترکیبی از کتابخانهها و زبانها وجود دارد که با آنها آشنا نیستید. در حالی که همه کدها جاوا اسکریپت هستند، بخش بزرگی از آن فراتر از مجموعه مهارت شماست. استرس انباشته می شود، و شما شروع به تعجب می کنید که آیا به اندازه کافی خوب هستید، آیا می توانید در این شغل عالی باشید.
چگونه بر آن غلبه کنیم
سندرم ایمپوستر می تواند بسیار واقعی باشد. اما از آنجایی که تمام مصاحبهها را پشت سر گذاشتهاید و به شغل رسیدهاید، مدیر استخدام شما بهطور کامل مهارتهای فنی (و نرم) شما را ارزیابی کرده و به این نتیجه رسیده است که شما برای این موقعیت مناسب هستید. تیم شما و مدیرتان از شما، یک توسعهدهنده جوان، انتظار ندارند که با هر فناوری استفاده شده توسط تیم آشنا باشید. با این حال، آنها از شما انتظار دارند که بتوانید مهارت های جدیدی را یاد بگیرید و به دست آورید.
هنگامی که با یک فناوری یا کتابخانه ناآشنا روبرو می شوید، اولین کاری که باید انجام دهید این است که اسناد را بیابید و بخوانید. جانی بیزائو ، یک مربی باتجربه ، میگوید: « هرچقدر هم که با کتابخانه ناآشنا باشید، حداقل درک درستی از نحوه عملکرد آن خواهید داشت . این به شما یک دید کلی از فناوری می دهد و درک اینکه از کجا شروع کنید را برای شما آسان تر می کند.
متأسفانه، برخی از کتابخانه ها و ماژول ها فاقد مستندات خوب هستند. هنوز راه هایی برای حل این مشکل وجود دارد. یکی از راهها این است که به پروژههای منبع باز مشابهی که افراد با استفاده از یک کتابخانه ساختهاند نگاه کنید، در طول مسیر سؤالات خود را بپرسید و سعی کنید خودتان آن را کشف کنید. اما این ممکن است کمی طول بکشد.
برای سرعت بخشیدن به کارها، یک رویکرد جایگزین این است که با یک توسعه دهنده ارشد در تیم خود کار کنید یا اگر کسی در تیم در دسترس نباشد، با یک مربی که با فناوری لازم برای یادگیری آشنا باشد، کار کنید. آنها میتوانند با راهنمایی شما در مهمترین بخشهایی که برای شغلتان نیاز دارید، یادگیری شما را سریع پیگیری کنند. آنها همچنین می توانند تشخیص دهند که چگونه مجموعه مهارت های فعلی شما با فناوری یا کتابخانه جدیدی که باید با آن آشنا شوید مطابقت دارد و یادگیری شما را برای رسیدن به این هدف سفارشی کنند.
شما برای نوشتن کدی که با کد شرکت موجود مطابقت داشته باشد مشکل دارید
چالش
شما یک درخواست کشش برای بررسی کد باز کرده اید و نسبت به آن کاملاً مطمئن هستید. اما با نظراتی بیشتر از آنچه که بتوانید حساب کنید به شما بازگردانده شده است. معلوم شد، کد شما با پایگاه کد موجود شرکت سازگار نیست. شما از انتقادات روی کدی که به آن اطمینان داشتید دلسرد می شوید.
چگونه بر آن غلبه کنیم
این یک چالش متداول است که توسعهدهندگان بدون در نظر گرفتن سابقهشان، هنگام پیوستن به یک تیم جدید با کنوانسیونهای مشخص با آن مواجه میشوند. با این حال، توسعهدهندگان ارشد در طول سالها تجربه بیشتری جمعآوری کردهاند و معمولاً برای این نوع چالشها آمادگی بیشتری دارند.
در یک دنیای ایدهآل، شرکت شما یک راهنمای سبک کد کامل دارد که میتوانید آن را مرور کرده و دنبال کنید تا مطمئن شوید که سبک کدنویسی شما با سبک تیم هماهنگ است. با این حال، در واقعیت، هر شرکتی مستندات جامعی ندارد.
صرف نظر از اینکه شرکت شما راهنمای سبکی دارد یا خیر، تقریباً همه مربیان وقتی از ما پرسیدیم که وقتی توسعه دهندگان جوان با این وضعیت مواجه می شوند چه توصیه ای می کنند، به ما پاسخ مشابهی دادند: سؤال بپرسید.
دومینیک سیفرت ، مربی Codementor، "من بزرگترین مانع برای نوجوانان، جدای از فقدان مهارت و اعتماد به نفس، ناتوانی در برقراری ارتباط و پرسیدن سؤالات درست را میدانم، زیرا میترسند بد به نظر برسند."
از توسعه دهندگانی که تجربه بیشتری در مورد محصول دارند بپرسید و بسیاری از سؤالات (مرتبط) و چیزهایی را که باید به آنها توجه کنید را در زمینه کد قرار می دهند. با پرسیدن سؤالات، چیزهایی را که نمیفهمید به اشتراک میگذارید و به دیگر توسعهدهندگان اجازه میدهید بدانند چگونه میتوانند به شما کمک کنند تا به طور مؤثرتری در مسیر خود قرار بگیرید.
سپس، یک قدم جلوتر بروید و یافته ها و نتایج را مستند کنید. این اسناد رو به رشد میتواند چیزی باشد که شما به آن مراجعه میکنید و، چه کسی میداند، حتی ممکن است شروع راهنمای سبک گمشده باشد (که ممکن است امتیاز جایزه را از تیم و مدیرتان به شما بدهد)!
در عین حال حواس تان باشد و به وقت دیگران احترام بگذارید. حتی اگر هم تیمیهای شما خوشحال باشند که به شما کمک کنند، زمان محدودی دارند و مسئولیتهای خود را نیز انجام میدهند. علاوه بر اطمینان از اینکه سؤالات درستی میپرسید، اولویت دیگر شما این است که «تا جایی که میتوانید مستقلتر شوید، اما عجله نکنید. برای مثال، اگر شما به مدت 30 دقیقه گیر بوده است، برای درخواست کمک توصیه " برادلی کولی ، یک مربی مجرب. «به طور خلاصه: به دنبال کمک باشید، اما سعی کنید تا جایی که می توانید مستقل تر شوید . به احتمال زیاد نمی توانید به تنهایی این کار را انجام دهید.»
جانی پیشنهاد کرد: اگر در حال شروع به دریافت ایده ای از سبک کد هستید، می توانید فرآیند کدنویسی خود را با "ابزارهایی مانند ESLint " ساده کنید ، زیرا آنها می توانند "کد شما را طبق قوانین خودکار و قالب بندی کنند."
شما به دلیل عدم هدایت پروژه ناامید هستید
چالش
شما ساعتها را صرف کدنویسی یک ویژگی خاص کردهاید، فقط در جلسه بعدی به شما اطلاع داده میشود که پروژه قرار است مسیر جدیدی را در پیش بگیرد. باید برای تنظیم کد خود به عقب برگردید یا دوباره از ابتدا شروع کنید. "خوب"، شما فکر می کنید، "امیدوارم این یک مورد یک بار باشد." جز این نیست. طی هفتهها و ماههای آینده، مسیرهای پروژه مدام تغییر میکند و به جایی رسیده است که دیگر مطمئن نیستید چرا کاری را که انجام میدهید انجام میدهید.
چگونه بر آن غلبه کنیم
برخلاف تکالیف کلاسی که هدف نهایی مشخص است، در یک محیط کاری، بسیاری از پروژهها با پیشرفت تغییر میکنند و تنظیم میشوند. اگر در مورد فقدان جهتدهی واضح پروژه احساس سردرگمی میکنید، یکی از اولین گامها این است که بررسی کنید آیا از حلقه دور ماندهاید یا هدف کلی را درک نمیکنید.
گاهی اوقات وقتی در اواسط پروژه به یک تیم ملحق می شوید، مدیران و سایر اعضای تیم که از قبل هدف پروژه را می دانند ممکن است فراموش کنند اعضای جدید را به روز کنند. در این مواقع، از رهبر یا مدیر تیم خود در مورد هدف اصلی و نقشه راه پروژه بپرسید. این به شما تصویر کلی واضح تری می دهد و یک نمای کلی از اینکه هر تصمیم چگونه با هدف بلندمدت مطابقت دارد، ارائه می دهد.
با این حال، فقدان جهت پروژه روشن همیشه به دلیل نبود ارتباطات نیست. گاهی اوقات، به دلیل جابجایی های شرکت، نیازهای مشتری، یا چیزهای دیگری است که به زبان ساده، خارج از کنترل شما هستند. بهعنوان یک توسعهدهنده جوان، متأسفانه نمیتوانید کار زیادی در این مورد انجام دهید.
جانی پیشنهاد کرد، اگر احساس ناامیدی خاصی میکنید، قدرت "یک استراحت" را دست کم نگیرید . با قدم زدن یا یک استراحت قهوه، زمان دوری از کد شما به شما فرصت میدهد تا ذهنیت خود را دوباره شارژ کرده و دوباره تنظیم کنید. شما همچنین می توانید تا نگرانی و یا سرخوردگی خود را با مدیر خود را - اما در پایان روز، این مهم است به یاد بگیرند که این تغییرات و عدم قطعیت اغلب "فقط یک سیر طبیعی کسب و کار، می گوید:" برادلی .
سوال پرسیدن و شروع گفتگو با اعضای تیم، مدیران یا مشتریان، و مطلع ماندن در مورد هر گونه تغییر جهت می تواند ناامیدی را کاهش دهد، زیرا احتمال کمتری وجود دارد که شما از یک تصمیم چشم پوشی کنید.
همگام شدن با فناوری های جدید سخت است
چالش
مدتی است که در کار خود بودهاید و دیگر لازم نیست هر روز به دنبال بازی باشید. درست زمانی که احساس آرامش بیشتری می کنید، یک پروژه جدید در راه است و یک به روز رسانی بزرگ در کتابخانه وجود دارد. برخلاف زمانی که دانشجو بودید، نمی توانید زمان زیادی را به یادگیری فناوری های جدید اختصاص دهید. به نظر میرسد که توسعهدهندگان ارشد تیم شما بهروزرسانیهای فناوری را با سرعت انجام میدهند، پس چگونه میتوانید مانند یکی از آنها باشید؟
چگونه بر آن غلبه کنیم
به روز ماندن با آخرین فناوری بخشی از کار شما به عنوان یک توسعه دهنده است. دومینیک میگوید: بهعنوان یک توسعهدهنده جوان، اساساً «پشته فناوری را در یک محیط واقعی از پایه یاد میگیرید» . این ممکن است استرس زا باشد زیرا باید روش یادگیری خود را با زمان محدود تنظیم کنید.
زمانی را برای یادگیری به روز رسانی ها برنامه ریزی کنید . اگر ابزار یا بهروزرسانی جدیدی است که فکر میکنید میتوانید نسبتاً سریع آن را انتخاب کنید، 30 دقیقه یا یک ساعت در روز را به تحقیق و یادگیری نحوه استفاده از فناوری جدید اختصاص دهید. همچنین میتوانید از توسعهدهندگان ارشد تیم راهنمایی بخواهید که آیا این ابزاری است که با آن آشنا هستند یا خیر.
اما اگر این یک بهروزرسانی بزرگتر یا یک ابزار کاملاً جدید باشد که یادگیری آن ساعتها یا روزها طول میکشد، چه؟ بین حجم کار و ضرب الاجل، اختصاص صدها یا حتی ده ها ساعت به یادگیری غیرواقعی است. توسعه دهندگان ارشد تیم شما نیز پهنای باندی برای صرف ساعت ها صرف آموزش فناوری به شما ندارند.
در حالی که میتوانید آخر هفتهها را بگذرانید یا یک یا دو شب برای آموزش این فناوری به خودتان بپردازید، این روش پایدار نیست. راه های مختلفی وجود دارد که می توانید دوره را از بین ببرید، از جمله ویدیوهای یوتیوب، یا از طریق جوامعی مانند GitHub یا Dev.to.
اگر راهنمایی بیشتری می خواهید، می توانید با یک توسعه دهنده ارشد یا مربیان خارج از سازمان خود کار کنید. آنها می توانند شما را در جدیدترین فناوری به کارآمدترین روش به روز کنند. مربیان می توانند به شما کمک کنند تا بر اساس پروژه یا الزامات خود، فناوری هایی را که باید یاد بگیرید، اولویت بندی کنید و شما را از طریق به روز رسانی ها به موقع راهنمایی کنند.
بهعنوان یک توسعهدهنده، باید عادت داشته باشید که با آخرین پیشرفتهای مرتبط با پشته فناوری خود بهروز باشید. ما در مورد چیزهای جدید از اخبار توسعه دهندگان، مخازن پرطرفدار GitHub و غیره مطلع می شویم. جانی میگوید ، و «وقتی زمان استفاده از آن فناوری فرا میرسد، خواندن مستندات یکی از بهترین راهها برای یادگیری در مورد آن است».
بردلی توصیه های بیشتری برای توسعه دهندگان جوانی که به تازگی حرفه توسعه نرم افزار خود را شروع کرده اند دارد:
در انتخاب پشته فنی که می خواهید به عنوان "چرخ خانه" شما باشد، بسیار سنجیده عمل کنید. به افرادی که می گویند یادگیری یکی دیگر آسان است، باور نکنید. یادگیری اصول اولیه آسان است. اگر می خواهید ارشدیت کسب کنید و نرم افزاری کارآمد و مؤثر تولید کنید، باید بسیار فراتر از اصول اولیه بروید.
افکار نهایی
تغییراتی که با تبدیل شدن از یک دانش آموز به یک توسعه دهنده فعال ایجاد می شود، فقط تغییر عنوان نیست. برای غلبه بر چالش هایی که در محیط های کاری جدید با آن مواجه هستید و به عنوان یک توسعه دهنده پیشرفت می کنید، باید طرز فکر، رویکرد و سبک یادگیری خود را تغییر دهید. هر مانع جدید فرصتی برای شما است تا از نظر فنی ماهرتر و از نظر حرفه ای بالغ شوید. با رشد شما به عنوان یک توسعه دهنده، یادگیری زمان دریافت کمک، پرسیدن سوالات مناسب و یافتن منابع مناسب آسان تر خواهد شد.
چالش های دیگری که در اولین شغل توسعه دهنده خود با آن روبرو هستید چیست؟ چه نکاتی را انتخاب کرده اید که ممکن است برای توسعه دهندگان دیگر مفید باشد؟ نظر خود را در زیر بنویسید
نمایه های مربی (به ترتیب ظاهر)
- جانی بیزائو : یک توسعه دهنده باتجربه فول استک با بیش از 1400 جلسه 5 ستاره. جانی می تواند در زمینه جاوا اسکریپت، Node.js، HTML و CSS، بررسی کد و غیره به شما کمک کند.
- دومینیک سیفرت : یک مربی باتجربه با صدها جلسه 5 ستاره، تخصص دومینیک در جاوا اسکریپت، React، C#، Unity3D، Python و غیره است.
- بردلی کالی : با هزاران ساعت مربیگری، بردلی یک معلم و مربی 5 ستاره است که به عنوان یک توسعه دهنده front-end و full-stack تجربه دارد. او در JavaScript، SQL، PHP، Docket و غیره متخصص است.