فصل ۸ : Why you need to be specialize ( چرا شما باید متخصص باشید )
زمانیکه به یک وکیل نیاز داشته باشید، برایتان مهم است که دقیقاً وکیلی که انتخاب میکنید در چه زمینهای کار میکند ، مثلاً وکیل طلاق است یا مالیات یا حوادث یا ...
در دنیای برنامهنویسی هم به همین صورت است، اگر شما خودتان را توسعه دهندهی جاوا یا c++ معرفی کنید ، درست نیست، خیلی گسترده است و دقیقاً مشخص نمیکند که شما چه کاره هستید و چه کاری از شما بر برمیآید.
زمانیکه تخصص داشته باشید ممکن است اینطور به نظر بیاید که تعداد مشتریهای کمتری دارید اما در واقعیت زمانیکه در یک چیز تخصص زیاد نداشته باشید عملاً مشتری کمتری خواهید داشت زیرا مشتری ترجیح میدهد کسی که در یک چیز تخصص داشته باشد را استخدام کند.
هرچقدر سطح تخصص عمیق تر باشد، تعداد فرصتهای شغلی کمتر میشود ، برای مثال زمانی که توسعه دهندهی جاوا باشید ۵۰۰ فرصت شغلی دارید اما زمانیکه توسعه دهندهی وب جاوا باشید ۲۵۰ فرصت شغلی دارید . درست است که این عدد کمتر شده است اما باز هم شانس بدست آوردن شغل در این تعداد زیاد است. در نظر داشته باشید که شما فقط به یک شغل نیاز دارید.
یکی از اولین موضاعاتی که برای تخصصی شدن باید درنظر بگیرید، این است که به کدام شاخه از توسعهی نرم افزار علاقه دارید ، front یا back یا middle . البته شما میتوانید هر سه را انتخاب کنید و به عنوان برنامهنویس full-stack فعالیت داشته باشد اما باید دقیقاً مشخص کنید در چه زمینه ای و با چه زبانی فعالیت میکنید، برای مثال برنامه نویس full-stack وب با استفاده از #c و sql server.
حوزههای تخصص در برنامه نویسی عبارتاند از :
۱. Web development stack
۲. Embedded system
۳. Specific operating system
۴. Mobile development
۵. Framework
۶. Software system
بسیاری از متخصصین نرم افزار در مورد تخصصی شدن موافق هستند اما در مورد چگونگی آن ، سوال میپرسند ، چند گام برای تعیین تخصص را در ادامه بررسی میکنیم:
۱. نقاط حساس شرکت فعلی یا قبلی خود را درنظر بگیرید، آیا میتوانید به فردی تبدیل شوید که در آن نقاط، تخصص داشته باشد!
۲. آیا نوع خاصی از تخصص در شرکتتان وجود دارد که کسی دوست نداشته باشد آن را انجام دهد و یا فاقد افراد ماهر باشد!
۳. در کنفرانسها و گروههای کاربردی، بیشتر چه موضوعاتی مطرح میشود!
۴. بیشتر به چه نوع سوالاتی در stack overflow و یا گروههای کاری پاسخ میدهید!
نگران نباشید با تخصصی شدن تقاضای بیشتری خواهید داشت البته که بعداً هم میتوانید تخصص خود را عوض کنید.
زمانیکه تخصصی شدن مطرح میشود برخی مقاومت میکنند، تخصصی شدن به این معنا نیست که نباید مهارتهای متنوعی داشته باشید، با اینکه ممکن است متناقض به نظر برسد اما هیچکدام به تنهایی خوب نیستند.
اگر مجبور بودید بین این دوحالت انتخاب کنید، بهتر است ابتدا در یک موضوع متخصص شوید سپس آن را گسترش دهید، بدین صورت نسبت به تغییرات و بهروز رسانیها انعطاف بیشتری خواهید داشت ، چرا که مطالعهی تغییرات یک موضوع راحت تر از به روز بودن در چند موضوع مختلف است.
در پایان پیشنهاد میکنم انواع مختلفی از تخصصها را لیست کنید و به این فکر کنید که در حال حاضر تخصصتان چه چیزی است و اگر تخصصی ندارید در چه زمینهای میتوانید متخصص شوید !
همچنین میتوانید به یک سایت بازاریابی مراجعه کنید و بررسی کنید آیا متخصص شدن شما را محدود میکند یا فرصتهای شغلی بیشتر و مفیدتری را در اختیارتان قرار میدهد!
فصل ۹ : Types of companies you can work for? ( انواع شرکتهایی که شما میتوانید در آن کار کنید؟ )
به طور کلی شرکت ها را میتوان به سه دستهی کوچک ، متوسط و بزرگ دسته بندی کرد.
برای انتخاب شرکت ، اگر فقط به حقوق و مزایا توجه کنید، تصمیم گیری راحتتر است اما در دراز مدت احتمالاً محیط کار برای شما مهمتر خواهد بود .
- شرکتهای کوچک و استارتاپی (Small companies and startups)
بسیاری از شرکتهای کوچک، استارتاپی هستند . در این شرکتها ممکن است چند مسئولیت داشته باشید برای مثال ممکن است هم درگیر تست باشید هم درگیر UI . البته این کار تاثیر بیشتری خواهد داشت هم تاثیرات مثبت خودشان را بیشتر نشان میدهند هم تاثیرات منفی.
یکی دیگر از مزایای کار کردن در شرکت های کوچک، پتانسیل بالا برای پاداش و ارتقای شغلی میباشد، درواقع در این شرکتها تغییر پوزیشن و مدیر شدن نسبت به شرکتهای بزرگ راحت تر است.
از معایب کار کردن در شرکتهای کوچک این است که ممکن است فقط اینطور نباشد که بنشینید و کد بزنید ، ممکن است مجبور شوید نقشهای دیگری را هم ایفا کنید ، همچنین اشتباهات شما بسیار تاثیر گذار هستند، بعلاوه پایداری این شرکتها کمتر است و ممکن است شرکت منحل شود.
برخی از افراد کار کردن در این شرکتها را مثل لاتاری میبینند و حاضر هستند با حقوق کم و زمان زیاد در این شرکتها کار کنند و زندگیشان را برای این شرکتها بگذارند، این اصلاً درست نیست.
اگر هیجان و سرعت بالای کار در شرکت را دوست دارید ، پیشنهاد میکنم شرکتهای کوچک را تجربه کنید.
- شرکتهای متوسط (Medium size companies)
این شرکتها بسیار زیاد و رایج هستند ، شرکت هایی که مدتی است بهوجود آمدهاند و به سودآوری هم رسیدهاند اما انگیزهای برای ورود به ۵۰۰ ثروت برتر ندارند.
در این شرکتها شما ثبات بیشتری حتی نسبت به شرکتهای بزرگ خواهید داشت زیرا همانند شرکتهای بزرگ به صورت دورهای تعداد زیادی از نیروهای خود را تعدیل و دوباره سازماندهی نمیکنند.
ساعت کاری در این شرکتهای به طرز دیوانهواری کمتر است ؛ همچنین در این شرکتها سرعت تغییر آهسته است و ممکن است شما روی فناوری پیشرفته کار نکنید!
- شرکتهای بزرگ (Large companies)
شرکتهای بزرگ با یکدیگر متفاوتاند، اما به طور کلی در این شرکتها فرآیندها و رویهها، ثابت و مشخصاند و تعداد زیادی خط قرمز وجود دارد درنتیجه نمیتوانید خیلی برخلاف جهت حرکت کنید و انگار در یک منطقهی کوچک از پادگان در حال کد زنی هستید .
در این شرکتها راحتتر میتوانید زیر رادار و کنترل نباشید و آزادی بیشتری وجود دارد ، از این رو میتوانید از این شرایط برای آپدیت کردن دانش ، یادگیری تکنولوژیهای جدید و حتی کار کردن روی پروژههای دیگر استفاده کنید.
یکی دیگر از معایب شرکتهای بزرگ این است که شما سختتر میتوانید توجه مدیران را به مهارت و تواناییهایتان جلب کنید.
تفاوت شرکتهای توسعهی نرم افزار با شرکتهایی با توسعهدهندگان نرم افزار :
شرکتهای توسعهی نرم افزار، احترام بیشتری برای توسعهدهندگان نرم افزار قائل میشوند و از نظر تکنولوژی کمی پیشرفتهتر هستند، البته این موضوع لزوماً به این معنا نیست که جای بهتری برای کار باشند اما متفاوت و خوب هستند!
تفاوت دیگر این دو شرکت در برخورد با متدولوژی Agile هست، به این صورت که این متدولوژیها باید از بالا به پایین (در سطح مدیریت ) دیده شوند و شرکتی که هدفش توسعهی نرم افزار نیست، نمیتواند کل روند خود را بخاطر اینکه برخی توسعهدهندگان معتقدند این روند بهتر است، تغییر دهد.
همهی موارد گفته شده در این فصل کلی بودند و ممکن است هر شرکت با شرکت دیگری متفاوت باشد و موارد استثنا وجود داشته باشد، در کل بهتر است، پیش از رفتن به یک شرکت، با برنامهنویسان آن شرکت صحبت کنید و با حس بهتر و آگاهی بیشتری وارد آن شرکت شوید!
در پایان پیشنهاد میکنم زمان بگذارید و فکر کنید چه نوع شرکتی را برای کار کردن بیشتر ترجیح میدهید و چه اندازه شرکت، با محیط کاری شما مطابقت دارد!
همچنین فهرستی از شرکتهای منطقهی خود و یا شرکتهایی که قبلاً در آن کار کردید، را تهیه کنید و بررسی کنید هر شرکت جزو کدام دسته است!