کارآموزی برنامه نویسی

چگونه در کارآموزی مهندسی نرم افزار دوام بیاورید!

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

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

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

آیا این به من کمک می کند؟

این توصیه برای شما طراحی شده است اگر:

  • شما به صورت تمام وقت (40 ساعت در هفته) در یک دوره کارآموزی 10-12 هفته کار می‌کنید. ما معتقدیم کوتاه‌ترین دوره برای کارآموزی “مناسب” 8 هفته است.
  • عنوان شما شامل مهندسی است و شما مسئول نوشتن کد هستید. اگر کارآموزی شما در مورد واکشی قهوه یا سازماندهی فایل است، این راهنما کمکی نخواهد کرد. (و من پیشنهاد می‌کنم یک دوره کارآموزی دیگر پیدا کنید!)
  • شما در یک شرکت قانونی با یک برنامه کارآموزی با منابع مناسب هستید. این بدان معناست که شما یک مربی تعیین شده دارید. شرکت‌هایی مانند متا، گوگل و Airbnb به دلیل کیفیت برنامه های کارآموزی خود مشهور هستند.

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

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

تفاوت بین کارآموزی و نقش تمام وقت

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

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

به عنوان یک کارآموز مهندسی نرم افزار (SWE)، این بدان معناست که باید تأثیر واقعی بر تیم خود داشته باشید. شما در سایه یک مهندس نیستید. شما در حال ارسال کد هستید و یک ویژگی را ارائه می‌دهید که مردم واقعاً از آن استفاده می‌کنند!

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

یک مهندس نرم‌افزار تمام وقت ممکن است هر 6 ماه یک بار بازخورد عملکرد دریافت کند، اما کل دوره کارآموزی شما 3 ماه طول می کشد. زمان حضور در کشتی، دریافت بازخورد و ارائه پروژه شما به طور چشمگیری به عنوان یک کارآموز فشرده می‌شود. این را در طول تابستان خود در نظر داشته باشید – معاشرت با سایر کارآموزان خوب است، اما به یاد داشته باشید که کار دارید.

جدول زمانی و میزان موفقیت

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

  • هفته های 1-3: ورود به هواپیما
  • هفته 5-6: بررسی میانه چرخه
  • هفته‌های 10-11: کالیبراسیون نهایی (پیشنهاد برگشت در اینجا تصمیم گیری می‌شود)
  • هفته 11-12: از آن لذت ببرید. عملکرد شما در هفته‌های پایانی معمولاً در بررسی نهایی شما حساب نمی‌شود.

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

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

این تفاوت دیگری است بین کارآموزی و استخدام تمام وقت: برخلاف استخدام تمام وقت، نتیجه کارآموزی باینری است – آیا پیشنهاد بازگشت دریافت کردید یا خیر؟ دریافت پیشنهاد بازگشت می‌تواند بسته‌های سودآور با غرامت کل (TC) بیش از 250 هزار دلار در سال را باز کند.

سوار شدن به طور موثر

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

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

در مورد تأثیر، باید یک جلسه 45 دقیقه ای با مدیر کارآموز (IM) خود در اسرع وقت، حداکثر تا هفته اول خود ترتیب دهید. مدیر کارآموز شما می‌تواند پایگاه کد را در سطح بالایی برای شما توضیح دهد و به سوالات زیادی که دارید پاسخ دهد. همچنین باید بپرسید که چه نوع کار یا پروژه‌ای برای شما برنامه‌ریزی کرده است.

همچنین باید 30 دقیقه 1:1 را با سایر مهندسان تیم تنظیم کنید. حداقل، این لیست باید شامل مدیر مهندس تیم، مدیر فنی و هر مهندس آشنا با پروژه کارآموز شما باشد.

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

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

هدف شما باید این باشد که اولین درخواست کششی (PR) یا تغییر کد خود را تا پایان هفته 1 ادغام کنید. تعداد زیادی سؤال بپرسید و یادداشت بردارید تا کیفیت سؤال شما در طول زمان بهبود یابد. از «پرسیدن بیش از حد» نترسید: اگر مؤدب باشید و زمینه را در نظر بگیرید، مهم نیست که چند سوال بپرسید، خوب خواهید بود.

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

کار با مدیر شما

اگر از قبل مشخص نیست، مدیر کارآموز شما نقش مهمی در تجربه کارآموزی شما خواهد داشت.

پس از اولین جلسه با IM خود، مطمئن شوید که یک جلسه تکرار شونده 1:1 با آنها داشته باشید، به طور ایده آل در یک آهنگ هفتگی. به طور کلی، IM این را برای شما تنظیم می کند، اما اگر این کار را نکرد، شما باید آن را بخواهید. این جلسات مکرر بخش اصلی نحوه دریافت بازخورد و بهبود شما هستند.

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

از نظر تاکتیکی، این به چند روش ظاهر می‌شود:

  • مسائل را به محض مطرح شدن به اشتراک بگذارید. اگر مشکلی دارید، چه مشکل فنی و چه ذهنی، آن را با IM خود در میان بگذارید. بیاموزید که آسیب پذیر باشید.
  • روشن کنید که بازخورد می‌خواهید. به مدیر خود (و دیگران) بگویید که بازخورد را به عنوان یک هدیه در نظر می‌گیرید. هر بازخوردی را که دریافت می‌کنید تأیید کنید و بر اساس آن عمل کنید، به معنای واقعی کلمه ظرف چند ساعت/روز.
  • هر 2-3 هفته یکبار بازخورد بخواهید. به جای اینکه بپرسید «حالم چطور است؟»، سؤالاتی بپرسید که سیگنال بیشتری به شما می‌دهند، مانند «در این مرحله نسبت به انتظارات شما از پیشرفت، چقدر فاصله دارم؟» اکثر دوره‌های کارآموزی یک چک-این رسمی در اواسط سیکل خواهند داشت، اما شما نباید منتظر آن باشید.

نوشتن کد

به عنوان یک کارآموز مهندسی، خروجی کد نویسی خام شما تا حد زیادی مهمترین معیار است.

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

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

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

  • تغییرات کد خود را متمرکز نگه دارید. هر تغییر کد باید یک کار را انجام دهد (“یک تفاوت، یک پایان نامه”). اندازه تغییر به زمینه بستگی دارد، اما به عنوان یک قاعده کلی، 25-250 خط کد در هر تغییر را هدف قرار دهید.
  • اطمینان حاصل کنید که هر تغییر کد توضیحی دارد. یک بخش «زمینه» اضافه کنید که هدف سطح بالاتر خود را توضیح دهد (مثلاً پروژه کارآموزی شما برای انجام چه کاری قرار است انجام دهد) و سپس در مورد آنچه که این تغییر خاص با آن روبرو می شود صحبت کنید. هدف شما این است که یک مهندس تصادفی متن تغییر کد شما را بخواند و بفهمد که چه چیزی و چرا می سازید.
  • یک طرح آزمایشی ضمیمه کنید تا نشان دهید که کد شما کار می‌کند. داشتن یک طرح آزمایشی دقیق نه تنها به بازبین‌ها کمک می‌کند به تغییر شما اعتماد کنند، بلکه درخواست کشش را به یک مصنوع با ارزش تبدیل می‌کند. موارد لبه را مستند کنید، و در صورت امکان، چیزی بصری مانند اسکرین شات یا ویدیو اضافه کنید.
  • مراقب اعلان‌های مربوط به کد خود باشید. هدف شما این است که به نظرات بررسی کد به سرعت (در عرض 30 دقیقه) و با ظرافت پاسخ دهید. بازخورد مرور کد نیز یک فرصت یادگیری کلیدی است.
  • هنگامی که کد شما تایید شد، آن را در اسرع وقت به خط اصلی فشار دهید. هیچ چیز بدتر از این نیست که کد ارزشمند شما در جهنم rebase و ادغام تضادها گیر کرده باشد.

کار بر روی یک تیم

برای بسیاری از افراد، کارآموزی در Big Tech اولین باری است که در یک تیم بزرگ فعالیت می‌کنند. با تعداد زیادی از افراد برای ملاقات و فرآیندهایی برای درک، فعالیت در یک شرکت بزرگ می‌تواند بسیار دشوار باشد. در نتیجه، بسیاری از کارآموزان در این جنبه شغلی سرمایه‌گذاری کمتری می‌کنند یا بیش از حد سرمایه گذاری می‌کنند.

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

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

حد وسط بهترین است: تیم شما باید بداند که شما کی هستید و چرا کار شما ارزشمند است. در اینجا چند تاکتیک برای تحقق این امر وجود دارد:

  • با رسیدن به نقاط عطف مهم، به‌روزرسانی‌ها را برای تیم پخش کنید. بسته به تیم، این باید به صورت استندآپ، ایمیل و جلسات تیم باشد. باید حداقل یک به روز رسانی مکتوب وجود داشته باشد که دارای پیوند ثابت باشد. به‌روزرسانی‌ها باید شامل توضیح واضحی از مشکلی که با آن برخورد می‌کنید، پیشرفت شما در آن نقطه و درخواست شما برای بازخورد باشد.
  • روی به روز‌رسانی‌های مکرر برای “مشتری” پروژه خود سرمایه‌گذاری کنید، به عنوان مثال، گروهی از مهندسان یا PMهای علاقه‌مند به کار شما. به‌روزرسانی‌های این سهامداران را به صورت هفتگی ارسال کنید. این ممکن است مانند ارتباط بیش از حد به نظر برسد، اما اشکالی ندارد!
  • هنگامی که پروژه شما راه‌ندازی شد، یک معامله بزرگ در مورد آن انجام دهید و از افرادی که به شما کمک کردند تشکر کنید. شامل اسکرین شات، معیارها، یا چیزهای بصری دیگر. پس از راه‌اندازی زمان ایده‌آل برای صرف یک شام تیمی یا خارج از سایت است!

حالت‌های شکست

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

  • ناهماهنگی انتظارات: بسیاری از کارآموزان عملکرد خود را نسبت به سایر کارآموزان در سراسر شرکت ارزیابی می‌کنند. این ارزشمند است اما در نهایت راهی ناقص برای قضاوت در مورد کار شماست. در عوض، بازخورد منظمی از مدیر کارآموز خود دریافت کنید. هر 2 تا 3 هفته یکبار از روند پیشرفت خود بپرسید.
  • دفاعی در برابر بازخورد: به بازخوردها با ظرافت و سرعت پاسخ دهید، حتی اگر با آن موافق نیستید. یک بازیکن تیم بودن و عمل کردن بر اساس بازخوردها، در مقایسه با متقاعد کردن کارمند تمام وقت مبنی بر اینکه اشتباه می‌کنند، احتمال بیشتری برای دریافت پیشنهاد بازگشت به شما دارد.
  • حوزه نفوذ خیلی کوچک است: شما معمولاً به 2-3 همتای دیگر نیاز دارید تا در کالیبراسیون نهایی شما را تضمین کنند. اگرچه ممکن است راحت باشد که از IM خود در مورد همه چیز کمک بخواهید، در افرادی که با آنها صحبت می‌کنید تنوع ایجاد کنید. یک 1:1 تکرار شونده را با همتایان غیر IM خود در نظر بگیرید.

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

از این فرآیند لذت ببرید، سخت کار کنید و این راهنما را با سایر کارآموزان SWE به اشتراک بگذارید.

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

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

نظرات کاربران

دیدگاهی بنویسید

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