من به این صورت وارد گوگل شدم

گردآوری و تالیف : عرفان کاکایی
تاریخ انتشار : 21 بهمن 1397
دسته بندی ها : الهام بخش

سفر دو ماهه من به شرکت رویاهای خود

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

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

انگیزه

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

شناسایی عناصر یک مصاحبه

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

کدنویسی

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

مثال: کدی برای چاپ کردن اعداد ۱ تا ۱۰ در کنسول را بنویسید. (البته این فقط یک مثال است)

من این بخش را در باقی مقاله به همراه جزئیات شرح داده‌ام.

طراحی

برخی شرکت‌ها بر حسب سطحی که برای آن مصاحبه می‌کردم، یک دور متشکل از سوال‌های طراحی داشتند که در آن‌ها یک سیستم چکیده به شما داده می‌شود و باید به یک طراحی برای آن سیستم برسید.

مثال: اگر می‌خواستید یک وبسایت شبکه اجتماعی را از ابتدا بسازید، سیستم مربوطه را چگونه طراحی می‌کردید؟

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

دانش کاری زبان ارجع

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

مثال: وراثت در Java چیست؟

پروژه‌های پیشین / رزومه

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

مثال: آیا می‌توانید کمی درباره یکی از پروژه‌های خود که خیلی به آن افتخار می‌کنید برای من صحبت کنید؟

دانش / کنجکاوی شرکتی

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

مثال: چرا فلان شرکت را برای تلاش بعدی خود انتخاب کردید؟

آماده شدن فنی یک ماهه من

درک Leetcode

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

Leetcode Premium چهار بخش قابل توجه دارد:

  • ساده
  • متوسط
  • سخت
  • مختص شرکت‌ها

هر دسته‌بندی هم خودش چند زیر مجموعه دارد:

  • آرایه‌‌ها
  • رشته‌ها
  • لیست لینک شده
  • ردگیری
  • جستجو / چینش
  • ساختارهای درختی
  • نمودارها
  • ریاضی

برنامه من

من آماده‌سازی کدنویسی متمرکز خود را یک ماه قبل از مصاحبه حضوری شروع کردم و در نهایت می‌توانستم ۶۰ - ۷۰ سوال را پاسخ دهم،‌ و این تنها چیزی بود که برای گذشتن از مصاحبه‌ها نیاز داشتم.

هر روز حداقل دو مشکل نرم‌افزاری را برطرف کنید. مشکلات ساده متنوع هستند و ممکن است هر مقدار زمانی از ۳۰ دقیقه گرفته تا یک ساعت را ببرند. مشکلات متوسط در واقع برای من سخت بودند. (گاهی اوقات حتی مشکلات ساده هم سخت بودند) مدت زمان رفع مشکل متوسط خود را به ۱ ساعت برسانید. اگر پس از ۱۵ دقیقه راه حل را نمی‌دانستید، برای آن جستجو کرده، و سعی کنید آن را پیاده‌سازی کنید. در پایان ساعت اگر راه حل شما کار نمی‌کند، یا نمی‌توانید برخی حالات را از آن رد کنید، فقط بایستید و به راه حل مورد نظر نگاه کنید. برنامه‌ای که در پایین مشاهده می‌کنید کمی سخت است، اما اگر دوست داشته باشید می‌توانید آن را ترکیب کنید و از یکنواخت شدن این آماده‌سازی جلوگیری کنید.

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

من آماده‌سازی خود را بر روی استاد شدن در اکثر سوال‌های ساده و متوسط متمرکز کردم و کمتر از ۱۰ سوال سخت را به پایان رساندم. اگر یک راه حل به خصوص را درک نمی‌کردم، به سادگی در YouTube جستجو می‌کردم و سعی می‌کردم شخصی را پیدا کنم که شاید این راه حل را توضیح داده باشد. ردگیری یکی از موضوعاتی بود که من در آن مشکل داشتم.

 اشتباهی که آرزو می‌کردم مرتکب نمی‌شدم

Leetcode premium بخشی متشکل از سوالات مختص شرکت‌ها دارد. برای مثال مجموعه سوالاتی برای گوگل، فیس‌بوک و... در آن وجود دارند. بزرگ‌ترین اشتباهی که من انجام دادن، شروع به آماده شدن برای سوالاتی برای گوگل بود. این سوالات به شدت سخت بوده، و انگیزه من را از بین بردند و در نتیجه من هیچ کاری انجام نمی‌دادم. مطمئن شوید که اول با سوالات ساده شروع می‌کنید، و سپس به سوالات متوسط و سخت می‌روید.

امکانات مورد علاقه من در Leetcode premium

  • اجرای تنوعی از آزمایش‌ها در قبال راه حل شما.
  • ایجاد یک نمودار که شما را قادر می‌سازد تا رانش خود را با رانش کاربران دیگر مقایسه کنید.
  • نگاه به یک راه حل نمونه با بهترین رانش، که توسط یک کاربر leetcode تایید شده بود.

من قبلا با خود فکر می‌کردم: «اگر نتوانم به گوگل وارد شوم چه؟» پاسخ من این بود که:‌ «مشکلی نیست، من یک برنامه پشتیبان دارد. من سعی خواهم کرد که برترین شرکت‌های بعد آن را بیابم و تا زمانی که به هدف خود برسم، به تلاش ادامه دهم.» این فکر واقعا من را آرام کرده،‌ و باعث می‌شد که بهتر عمل کنم.

نکات کلی

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

منبع

مقالات پیشنهادی

  • زیبایی منوهای ساده

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

    ارسطو عباسی
  • بهبود امنیت با بهتر‌ کردن تجربه‌کاربری

    کاربرانی که در اینترنت جستجو می‌کنند و نظاره‌گر هستند، همیشه دوست دارند که وبسایت‌های مقصود‌شان امن و کاربرپسند باشند. آن‌ها تنها به شرکت‌هایی اعتماد...

    ارسطو عباسی