از 8 ماه کار در مایکروسافت چه چیزهایی آموختم؟
مقاله زیر نوشته احمد آلپ بالکان است که در وب سایت شخصی خویش اخیرا منتشر شده و از تجربه خویش در رابطه با 8 ماه کار در شرکت مایکروسافت نوشته است.
مقاله زیر نوشته احمد آلپ بالکان است که در وب سایت شخصی خویش اخیرا منتشر شده و از تجربه خویش در رابطه با 8 ماه کار در شرکت مایکروسافت نوشته است.
2 سال پیش در چنین روزی،من به عنوان کارآموز به تیم پروژهWindows Azure مایکروسافت پیوستم.دقیقا بعد از اتمام کالج بود که کار را شروع کردم و به مدت 8 ماه در آنجا کار کردم.
و حالا تصمیم گرفتم تا خلاصه نکاتی که در آن 8 ماه یاد گرفته ام را بنویسم.و البته ممکن است این نکات به ظاهر فرضی یا موهومی به نظر برسند ولی واقعا میتوانم بگویم در آن مدت فهمیدم که کسی هم حتما وجود خواهد داشت که این چنین مشکلاتی را در شرکت های بزرگ داشته باشد.اکثر این نکات فقط مختص به مایکروسافت نیست.هر شرکتی مشکلات مخصوص به خود را دارد.در ضمن این را هم نمیخواهم بگویم که از این موضوع ناراحتم و یا شکایتی دارم.این ها واقعا درس های نابی هستند که من حتی در کالج هم از آنها بی خبر بودم و واقعا برخلاف انتظارات من بود.میتوانید این نکات را بخوانید:
از سازمان ها انتظار مستندات نداشته باشید.در شرکت ها به واقع دیده ام که دانش موجود در هر سازمان بوسیله جلسات عملی و صحبت و گفتگو منتقل می شود.بخشی از دانش پایه موردنیاز فقط ایمیل می شود و هیچ کجا به صورت دایمی ذخیره نمی شود.این برخلاق چیزی است که در دنیای دیجیتال برای جریان اطلاعات اتفاق می افتد.افراد جدی ای هستند که حتی اگر یک اتوبوس هم به آنها برخورد کند ، هیچکس نمی تواند کارش یا کدهایش را به دوش بگیرد.اگر این واقعا شرکت خودم می بود ، میلیون ها صفحه ویکی برایش وجود می داشت.
این مهم نیست که شما چه کاری انجام میدهید،فقط مهم این است که چه چیزی می فروشید.شما میتوانید روزهای متمادی صرف بهتر کردن کدهای خود کنید،کدهای قدرتمند تر بنویسید و مشکلات بقیه را حل کنید ، تا وقتی که تاثیر تجارتی ای نداشته باشد ، در عمل هیچاست.هیچ کسی از شما به خاطر درست کردن معماری یا حتی ظاهر برنامه در هسته اصلی پروژه ، قدردانی نمی کند.حتی ممکن است شما را بازخواست کنند.این چیزی نبود که وقتی دانشجو بودم درک کرده باشم.
همه به مهندسی علاقه مند نیستند.شما همیشه با افرادی کار نخواهید کرد که به ساخت نرم افزار های شگفت انگیز علاقه مند و مشتاق باشند.اکثر افراد چیزهای دیگری (همچون خانواده و فرزندان) را دلیل انجام کارشان می دانند و نوشتن کد بهتر برای همه در اولویت نیست و این طبیعی است.یادگرفتم که از همه نباید انتظار علاقه مندی و شوق و شعف داشته باشم.
دو سه ساعت کدنویسی در روز عالیه.قبل از پیدا کردن شغل،قادر بودم روزی 8 تا 10 ساعت بر روی پروژه های شخصی خودم کد نویسی کنم.نسبتا باید بگویم در این محیط تقریبا غیرممکن هست که 2 ساعت را مستقیم به کدنویسی اختصاص بدهم.من اکثر زمان خودم را صرف فهمیدن کدهای توضیح گذاری نشده و مستند نشده دیگران می کردم تا بفهمم که چطور کار میکند و همچنین صرف عیب یابی چیزهای عجیب و غریب و شرکت در جلسات روزانه می شد.ظاهرا این فقط من نبودم و واقعا می شود روزی وجود داشته باشد که در تیم حتی یک خط کد هم به سورس اصلی وارد نشود و این هم طبیعی است.
جبران نکردن زحمات جوامع آنلاین عمومی یک چیز عادی است. تقریبا هیچ وبلاگ نویس و یا توسعه دهنده متن بازی رادر سازمانمان ندیدم که زمان خودش رابرای جبران زحماتی که جوامع آنلاین برایش کشیدهاند اختصاص همه دوست دارند که پاسخ هایی از سایت Stackoverflow در نتایج جستجو پیداکنند ولی کسی برای پاسخ دادن به سوالات دیگران اقدامی نمیکند. .می توانم این موضوع را هم درک کنم.
جهان خارج از اینجا خیلی شناخته شده نیست.من شرط می بندم که شما اخبار آخرین تکنولوژی های روز را از طریق وبلاگ ها و یا سایت هایی مثل Reddit یا Hacker Newsهر روز مطالعه میکنید.در اینجا این موضوع خیلی عمومیت ندارد.من واقعا تعجب کردم که هیچکس در تیم Windows Azureچیزی راجع به Heroko و یا Rackspaceکه رقیبان جدی خودشان هستند نشنیده باشند.این هم قابل قبول است ، همه افراد نباید این چیزها را بداند.
همه چیز درباره انجام دادن کار است.وقتی که مدیرتان درخواست میکند که باید دکمه ای وجود داشته باشد که فلان کار را انجام دهد،هیچکس اهمیت نمی دهد که چگونه آن کار را انجام دادید.همان که این ویژگی آماده باشد کافی است و بقیه چیزها را بعدا می شود درست کرد.(ولی من تا به حال این موضوع رو ندیده ام).در کالج یاد گرفتم که کیفیت کد به اندازه نتیجه مهم است ولی این موضوع نقض شد.
منعی برای کپی-پیست کردن کدها نیست.اگر کسی شما را خارج از سازمان در حال اینکار ببیند ، ممکن است شما را حتی زخمی کند.من فایل های کدهایی را دیده ام که در طول هر پروژه کپی-پیست می شوند.تا وقتی که کار انجام بپذیرد(همانطور که در بالا گفته شد) هیچ کس اهمیت نمی دهد که شاید یک کد ناپایدار تولید کرده باشید.
بازبینی کد می تواند نادیده گرفته شود، محض خاطر چابکی.این بخشی از فرهنگ تیم ما است که ، اگر در حال سروکله زدن با کدهای یک نفر دیگر باشید ، بازبینی کد را برایش می فرستید.در غیر اینصورت معمولا این موضوع اتفاق نمی افتد و شما پس از سپری کردن زمان های بسیار زیادی برای ارتباط با شخص ، شاید کسی جوابی دهد.
آخرین ورژن نرم افزارها ؟ شرمنده.در ایجا همه کس عاشق آخرین نسخه نرم افزار ها نیستند.تقریبا 90 درصد همکاران من از نسخه های قدیمی Office ، Windows ، Visual Studio و .Net Framework استفاده می کنند.یک باور عمومی وجود دارد که می گوید جدید ترین نسخه ، چرخه کاری موجود را از بین می برد.این می تواند به همین دلیل باشد که بسیاری از متخصصین و حرفه ای ها هنوز نرم افزار های خود را بر روی جاوا 1.2 و 1-3 اجرا می کنند.پس یادگرفتم انتظار آخرین نرم افزارها را در این محیط نداشته باشم.
تخصص شما معمولا اهمیت ندارد.هر ساله هزاران نفر بعد از کالج استخدام می شوند و به صورت تصادفی به تیم های مختلف می پیوندند.این مهم نیست که خواه شما در MongoDBمتخصص شوید ، اپلیکیشن های iOS بسازید ، کاربر حرفه ای Apache شوید ، کتابخانه شبکه ای خودتان را بسازید ، واسط کاربری ای را طراحی کنید و یا استارتاپ خودتان را شروع کنید(نگران نباشید چون من هیچکدام از این هایی که گفتم نیستم).شما استخدام شده اید که کاری که نیاز است را به انجام برسانید.من واقعا انتظارش را نداشتم.این واقعا میتواند سخت باشد که موقعیت شغلی ای را سازمانی پیدا کنید که با چیزهایی که دوست دارید هماهنگ باشد.
و در آخر، شما برای مدیران تان کار میکنید و آنها برای فیش حقوقی مدیران خودشان.من در کالج این حقیقت را نمی دانستم.
این متن توسط آقای مبین رنجبر ترجمه شده است.