مدتی بود که با توجه به تجربهایی که در React داشتم، به این فکر افتاده بودم که برای بهتر شدن و ادامهی مسیر باید به دنبال چه موضوعهایی برم و با تسلط پیدا کردن روی چه مباحثی میتونم برای انجام پروژههای بزرگتر و نقشهای تأثیرگذارتر آماده بشم. یک ماه گذشته مشغول آماده شدن برای مصاحبههای متوالی با یکی از قدیمیترین و بزرگترین شرکتهای نرمافزاری بودم.
ضمن تشکر از عزیزانی که در این مسیر با حمایت فنی و احساسی همراه من بودند، تصمیم گرفتم چند موردی که در این فرآیند یاد گرفتم را در این یادداشت به اشتراک بگذارم.
به عنوان برنامهنویس فرانتاند که بیشتر برای شرکتهای استارتاپی و نوپا کار کرده بودم، هیچ تصوری از چگونگی مصاحبه در شرکتهای بزرگ نداشتم. ولی در طی این مدت به نکات زیر پیبردم :
محدود کردن تخصص به یک Framework خاص، هرچقدر هم که عمیق باشه، از سوی شرکتهای بزرگ چندان مورد توجه قرار نمیگیره، و در نهایت افق دید رو در حد همون تپهی فتح شده نگه میداره. در تیمهای بزرگ به ویژه برای حفظ قابلیت جابهجایی سریع بین فریمورکها، بخشهای زیادی از کد با Javascript نوشته میشه. بنابراین افزایش دانش در این زبان، و حتی توانایی ساخت یک Framework با استفاده از Javascript میتونه تاثیر مثبتی در مسیر ارتقا شغلی و افزایش سطح دانش شما داشته باشه.
با وجود اینکه سالها از فارغالتحصیلی من میگذره و مباحث "ساختمان داده" و "الگوریتم" در کار روزمره من به کار نمیاد، این موارد در مصاحبهها مطرح میشن. خوشبختانه در مصاحبه به من فرصتی داده شد تا این مطالب را مرور کنم. اما چرا این دانش برای شرکتهای بزرگ مهم هست ؟ به نظر من، برای ارزیابی سطح مهارت تفکر "مهندسی نرمافزار" یکی از بهترین راهها سوال کردن از این مباحث هست. قطعاٌ بعد از وارد شدن به موقعیت شغلی، اگر قصد پیشرفت و هدایت تیمی رو دارید، نیاز دارید تا به شکلی ساختارمندتر فکر کنید.
یادگیری مداوم و فراتر از زمینه تخصصی، نه تنها برای رشد شخصی و پیشرفت شغلی بسیار مهم هست، بلکه برای شرکتها و سازمانهای بزرگ نیز اهمیت بالایی دارن. برای مثال، چقدر در بارهی مسیری که یک درخواست (request) در وب سرور طی میکنه و چگونگی مدیریت اون توسط سرور میدونید؟ یا اینکه وب سرورها چه امکاناتی برای شرایط خاص ارائه میدن؟ با آگاهی بیشتر از این موضوعات و حتی فراتر از اونها، میتونید خودتون رو ارتقا بدید و شانس بیشتری برای موفقیت در کار داشته باشید.