لماذا درست بدوام كامل لمدة 8 أشهر لإجراء مقابلة مع Google

انها حقيقة. لقد أمضيت آلاف الساعات في قراءة الكتب وكتابة الأكواد ومشاهدة محاضرات علوم الكمبيوتر ، كل ذلك للتحضير لمقابلة مهندس برمجيات Google.

إذا كنت ترغب في التحضير لمقابلة في Google ، فإليك خطتي الدراسية:

جواشم / جوجل-مقابلة-جامعة

google-interview-university - خطة يومية كاملة للدراسة لتصبح مهندس برمجيات Google. github.com

كيف وصلت هنا

بدأت البرمجة في المدرسة الإعدادية ، ولكن عندما حان وقت الالتحاق بالجامعة ، سعيت للحصول على درجة علمية في الاقتصاد. كان منطقتي أنه سيكون هناك عدد كبير جدًا من المبرمجين الذين يبحثون عن وظائف بحلول وقت تخرجي. يا فتى ، كنت مخطئا.

لاحقًا ، التحقت بالجيش لأصبح مبرمجًا ، لكن المجند جعلني أعمل في منصب استخبارات عسكري ، وقضيت العامين التاليين في دراسة اللغة الكورية. خدمت في كوريا الجنوبية لمدة عامين بعد ذلك.

قبل مغادرتي للجيش ، حاولت العودة إلى البرمجة وفوجئت بالصعوبة. لقد تعلمت BASIC في المدرسة الإعدادية وواصلت البرمجة خلال المدرسة الثانوية. لكنني أعدت تشغيل دراسات البرمجة باستخدام C ++ ، وكانت القفزة كبيرة جدًا. أنا فقط لم أستطع فهمه.

ومع ذلك ، فقد استمتعت بإنشاء مواقع الويب ، لكنني استخدمت برنامجًا بواجهة تشبه Word استخدمتها لنشر مواقع الويب الخاصة بي. لم أكن أعرف كيفية إنشاء مواقع الويب من البداية.

بعد الجيش ، قررت البقاء في كوريا لمدة عام لتدريس اللغة الإنجليزية. لقد استخدمت ليالي وعطلات نهاية الأسبوع لدراسة برمجة الويب ، باستخدام لغة Perl و HTML و CSS (التي كانت جديدة في ذلك الوقت) وجافا سكريبت و SQL.

بعد عام من الدراسة المكثفة ، حصلت على وظيفة في منطقة سياتل ، وأنا هنا منذ ذلك الحين.

أنا مطور ويب الآن لمدة 15 عامًا. لقد أسست 3 شركات ، اثنتان منها لا تزال تعمل وتدر إيرادات. لقد عملت في شركات كبيرة وصغيرة ، وساعدت الشركات الناشئة على الانطلاق والنمو ، وتوظيف الفرق وإدارتها. لقد كنت مدير منتج ، مدير تنفيذي ، مصمم ، ومسوق.

لقد حظيت بمهنة ناجحة وتعلمت الكثير على طول الطريق. لكني لم أنتهي بعد.

البحث عن تغيير مهني

هل تتذكر الجزء الذي لم أحصل فيه على درجة علمية في علوم الكمبيوتر؟ لقد أحدثت فرقا.

قبل بضع سنوات ، اعتقدت أنه يمكنني الحصول على وظيفة في أي مكان. اعتقدت أنني كنت من الأشياء المثيرة: مطور ويب كامل المكدس بعيد المنال. لكن أثناء بحثي عن وظيفة في عام 2013 ، أدركت أن مهاراتي كانت مفقودة. لقد قضيت الكثير من الوقت في مطاردة الدولارات من خلال إدارة الشركات الناشئة في أوقات فراغي ، لدرجة أنني تركت مهاراتي تتلاشى. لم أواكب التكنولوجيا.

لسنوات ، كنت قد تعلمت ما يكفي لأعيش. كانت لدي مجموعة مهارات واسعة ولكن لم أكن خبيرًا في أي شيء.

لا تفهموني بشكل خاطئ ، لا يزال بإمكاني الحصول على وظيفة ، ولكن ليس في التقنيات أو المجالات التي كنت أرغب في العمل فيها. يمكن أن يتم تعييني في مناطق كان فيها فريق التكنولوجيا قديمًا إلى حد ما ، مثلي. هناك أموال طائلة هناك ، لكنني لم أر آفاقًا مثيرة.

بلغ الإدراك ذروته العام الماضي في معرض التوظيف. كنت مهتمًا ربما بالعمل لدى إحدى الشركات المحلية التي كانت مختبرات بدء التشغيل تديرها شركات رأس المال الاستثماري. ومع ذلك ، فإن حقيقة أنني كنت أفتقر إلى درجة علمية في علوم الكمبيوتر ، والمهارات والمعرفة التي تصاحب هذه الدرجة ، تعني أنه لم يكن لدي فرصة.

كنت أعمل بدوام كامل في أعمالي في ذلك الوقت ، وما زلت حتى اليوم.

في بداية عام 2016 ، قررت أن الوقت قد حان لتغيير مهنتي من مطور ويب إلى مهندس برمجيات. سأحتاج إلى الدراسة الجادة والممارسة من أجل ضغط درجة علوم الكمبيوتر إلى بضعة أشهر ، ولكن بمجرد أن أفعل ذلك ، يمكنني بدء مهنة جديدة.

قد لا ترى تطوير الويب وهندسة البرمجيات كمواقف مختلفة. يتضمن كلاهما البرمجة والحرفية ، لكن هندسة البرمجيات تضيف إليها المعرفة بهياكل البيانات والخوارزميات واللغات المترجمة واعتبارات الذاكرة وفهم تأثير قرارات التشفير والهندسة المعمارية على الأجهزة التي يقيمون فيها.

تتوقع الشركات الكبيرة التي توظف لشغل وظائف هندسة البرمجيات أن يكون لدى المرشحين هذه المعرفة.

لقد تواصلت مع أحد معارفي الذي يعمل في Google وطرحت عليه أسئلة حول تجربته في الشركة. كنت أقرأ How Google Works وكنت على دراية بـ Google بالفعل.

من خلال جهة اتصال أخرى ، تلقيت نسخة من ملاحظات التدريب من Google التي تم تقديمها لمقابلة المرشحين. أصبح هذا أساس خطتي الدراسية.

يعد Google مكانًا رائعًا للعمل ، ولكن قبل أن أعرف ذلك ، كان Google هو هدفي.

لماذا جوجل؟

تضع Google معيارًا عاليًا جدًا للتوظيف. يريدون توظيف الأفضل فقط. لذلك إذا وضعت نصب عيني (التعيين في Google) ، فسأظل قابلاً للتعيين في مكان آخر حتى لو لم يتم اختياري.

كلما تعلمت المزيد عن Google ، زادت رغبتي في العمل هناك.

باختصار ، Google هي شركة توظف أشخاصًا أذكياء ومبدعين وتعاملهم جيدًا. تكافئ Google الجدارة وتشجع الأفكار الكبيرة وتمنح الموظفين الحرية في اتخاذ قرارات جيدة للمستخدم.

تتم معايرة عملية التوظيف لجلب أشخاص أذكياء ومتحمسين. شحذت Google عملية التوظيف والمقابلة على مر السنين. لقد ولت منذ فترة طويلة أسئلة دعابة الدماغ. يتم اختيار المرشحين في الوقت الحاضر بناءً على قدرة الترميز والمعرفة التقنية وجوجل. هناك الكثير مما يحدث في تلك الكلمة الواحدة.

الإدارة مختلفة. المديرين لا يديرون بشكل دقيق. يثقون بالمهندسين لاتخاذ القرارات الصحيحة. يغير ثقة الموظفين من دور المديرين في Google عما يتصوره معظم الناس عندما يفكرون في الإدارة. بالإضافة إلى ذلك ، لا يمكن للمديرين من جانب واحد أو التوظيف أو الفصل أو الترقية. يتم التعامل مع العديد من قرارات الإدارة المهمة التي يمكن اعتبارها سياسات مكتبية من قبل لجنة لإزالة هذا الخطر.

لقد تعلمت عمليات الأشخاص في Google (HR) ما ينجح بمرور الوقت ، وهم يستخدمون البيانات وتعليقات الموظفين لتحسين أنظمة التقييم ، وعملية التوظيف ، والترقيات ، والتعويضات ، والمزايا ، والمزيد. اقرأ قواعد العمل! بقلم لازلو بوك (نائب أول للرئيس ، عمليات الأفراد) للمزيد.

نعم ، الفوائد مذهلة. ذهبت في جولة في مكتب Google في كيركلاند ، واشنطن ، وتجاوزت توقعاتي. وكانت توقعاتي عالية بالفعل.

جامعة مقابلة جوجل

هل تتذكر ملاحظات التدريب التي تلقيتها والتي تخبرني ماذا أدرس؟ بدت قائمة المواضيع قابلة للإدارة ، على الرغم من أنني لم أكن أعرف أي شيء في القائمة.

لقد حولت الموضوعات الموجودة في الملاحظات إلى مخطط تفصيلي وبدأت في ملء الموضوعات بمقاطع فيديو YouTube للمحاضرات من معهد ماساتشوستس للتكنولوجيا وجامعة كاليفورنيا في بيركلي. فيديو على القوائم المرتبطة في مكان ، وفيديو عن قوائم الانتظار في مكان آخر. بدأت القائمة في النمو.

لقد قمت بنشر القائمة على Github لأن حسابي على Github كان فارغًا جدًا. نظرًا لأن كل الكود الذي كتبته لأعمالي وعملي كان خاصًا ، فقد جعل حساب Github الخاص بي يبدو وكأنني لم أكود على الإطلاق. كنت بحاجة لبناء محفظة. أطلقت على المشروع في الأصل اسم "مشروع 9894". تم إطلاق Google في 4 سبتمبر 1998. ومن هنا جاءت تسميته. أعدت تسميتها لاحقًا إلى "جامعة مقابلة Google".

بمرور الوقت أضفت بعض الموضوعات الاختيارية التي اكتشفتها على طول الطريق.

لقد كنت مندهشًا جدًا لأنني حصلت حتى الآن على مسيرتي المهنية دون معرفة كيفية معالجة وحدة المعالجة المركزية لبرنامج ما ، أو كيفية عمل الذاكرة ، أو أي منها. لقد عرفت "ما يكفي" لأحقق النجاح.

بدأ مشروع Github الصغير الخاص بي في الحصول على عدد قليل من النجوم ، وقمت بنشر مشاركة مدونة احتفالًا بـ 20 نجمة.

ذات صباح ، استيقظت لأجد أنها نمت إلى 120 نجمة. قام شخص مشهور بالتغريد حوله خلال الليل ، مما أدى إلى انتهائه في تقرير Github اليومي. كنت أتجه رقم 1 على جيثب لبضعة أيام.

تواصل مع العديد من الأشخاص الطيبين لشكري وتشجيعي. اتضح أن هناك الآلاف من الأشخاص الذين لا يريدون العمل في Google فحسب ، بل يريدون العمل كمهندس برمجيات ، وكانت هذه القائمة مجرد قائمة المهام التي يحتاجون إليها.

إنه الآن في أكثر من 21000 نجمة.

لا أستطيع تصديق ذلك حتى الآن.

ماذا لو لم أحصل على الوظيفة؟

لن تكون نهاية العالم.

لقد خصصت الوقت والتفاني في دراستي بهدف الحصول على وظيفة مهندس برمجيات في Google ، ولكن حتى لو فشلت ، سأظل مسلحًا بالمهارات والمعرفة المطلوبة للعمل كمهندس برمجيات في أي شركة .

أينما انتهيت ، سأذهب كمهندس برمجيات للمبتدئين. لا أمتلك 15 عامًا من الخبرة في هندسة البرمجيات لأنني ببساطة لا أمتلكها. عندما يتعلق الأمر بهذه الأشياء ، فأنا يعادل خريج علوم الكمبيوتر الجديد.

لكن لدي حماس خريج جديد أيضًا. هذا عالم جديد بالنسبة لي. انا على وشك البدء. أنا لا أخشى ارتكاب الأخطاء. وأنا أعلم أنني سوف. أريد أيضًا أن أتعلم كل ما بوسعي وأن أكون إضافة ممتازة لأي فريق.

لا تدرس بقدر ما فعلت

نعم ، لقد استغرقت 8 أشهر. لكن كان بإمكاني اختصار العملية. مثل أي شركة ناشئة ذات هدف كبير ، فأنت ترتكب أخطاء وتقوم بأشياء تضيع الوقت. هناك أشياء كثيرة أتمنى أن أعود إليها وأقوم بها بشكل مختلف.

لقد درست موضوعات لم أكن بحاجة إليها ، بعضها لأنني اعتقدت أنني سأحتاجها للمقابلة ، والبعض الآخر لأني أردت الحصول على المعرفة المتاحة لي عندما بدأت العمل. لم أرغب في أن أكون عبئًا على الفريق الذي أسند إليه. اتضح أنني ببساطة أفرط في الاستعداد.

قضيت 3 أسابيع في قراءة كتاب من 1000 صفحة عن C ++. لا أتذكر 1000 صفحة ، لكنني أعرف القليل عن C ++ الآن. كما اتضح ، أنا أستخدم Python للمقابلة ، وليس C ++. لقد افترضت أنني بحاجة إلى C ++ أو C أو Java ، لكنني كنت مخطئًا. من الجيد أن تسأل ، لا تفترض.

قرأت كتبًا أكثر مما كنت بحاجة إليه. لا يوجد سوى 3 أو 4 كتب يجب أن أقرأها.

لدي كتالوج كود لعشرات الخوارزميات التي أراجعها ، ومعظمها لا أتوقعه في مقابلة. لست بحاجة إلى القيام بذلك.

لقد شاهدت عدة ساعات من مقاطع فيديو YouTube ولكن كان بإمكاني مشاهدتها أقل بكثير ونشر الموضوعات بمرور الوقت.

كان يجب أن أتوقف عن قراءة الكتب ومشاهدة مقاطع الفيديو في وقت سابق وأن أبدأ في حل مشكلات الترميز عاجلاً. كنت سأتمكن من قضاء المزيد من الوقت في تطبيق الموضوعات التي تعلمتها.

التكرار المتباعد هو مفتاح الحفظ. بمجرد أن تتعلم شيئًا ما ، قم بمراجعته مرة أخرى لاحقًا ، ومرة ​​أخرى لاحقًا. في كل تكرار ، تقوم بتعزيز تعلمك. إن قضاء ساعات وساعات في وقت واحد في قوائم الانتظار ذات الأولوية لن يجعلك خبيرًا. تصبح خبيرًا من خلال المراجعة والمراجعة بمرور الوقت. إذا قمت بذلك ، فستصل إلى النقطة التي لا يمكنك فيها نسيان التفاصيل.

للمساعدة في المراجعة ، قمت بعمل 1792 بطاقة تعليمية (بطاقات فلاش رقمية). هذا كثير جدا. أراجعها على هاتفي أو جهازي اللوحي عندما أحصل على وقت فراغ (مثل أثناء التسوق في عيد الميلاد). بطاقات الفلاش والتكرار المتباعد يسيران جنبًا إلى جنب. بمجرد أن أحصل على إجابة على بطاقة تعليمية صحيحة ، لا أضع علامة عليها على أنها معروفة. أحتفظ بها في المجموعة وبمجرد أن أراها وأجبتها بشكل صحيح عدة مرات ، ثم أضع علامة عليها على أنها معروفة.

قادني شعوري بالخوف ("ماذا لو سألوني سؤالًا عن الأشجار ذات اللون الأحمر والأسود؟") إلى دراسة مواضيع أكثر بكثير مما كنت بحاجة إليه.

لكنني لم أرغب في التحضير للمقابلة فقط ، بل أردت التحضير للعمل في Google وحل المشكلات واسعة النطاق. هذا يعني معرفة الخوارزميات التي ستوفر موارد الحوسبة للوقت والمكان والإدخال / الإخراج.

قد لا أحتاج أبدًا إلى معرفة خوارزمية التدفق الأقصى (Ford-Fulkerson) ، لكن من الجيد أن أعرف أن لدي هذه الأداة إذا نشأ الموقف (دون حفظ التنفيذ) ، ويمكنني التعرف على تطبيقه على مساحة مشكلة.

استنتاج

في البداية ، كنت أتمنى لو يمكنني تخطي كل هذا التعلم ، وسرعان ما يتم تعييني حتى يمكنني بدلاً من ذلك قضاء وقتي في تعلم اللغات والأدوات للفريق الذي أنضم إليه. لكن على طول الطريق ، أدركت مدى أهمية هذه المعرفة ، وعلى الرغم من أن معظمها قد لا يكون قابلاً للتطبيق على أساس يومي ، إلا أنني سعيد لأنني بذلت هذا الجهد. لدي تقدير جديد لتاريخ الحوسبة ، والعظماء في هذا المجال ، وهياكل البيانات والخوارزميات (وكيف يكملون بعضهم البعض) ، وكيف تعمل أنظمة الكمبيوتر عند المستوى المنخفض.

سأقدم طلبي قريبًا. لقد كانت رحلة طويلة للوصول إلى هذه النقطة - عام كامل تقريبًا. بدأت في يناير ، لكنني لم أتمكن من الالتزام بالدراسة بدوام كامل حتى أبريل.

أنا على وشك الاستعداد قدر الإمكان. لا يمكنني الاستمرار في الدراسة وتأجيل الطلب إلى الأبد. في مرحلة ما ، لا بد لي من القيام بهذه الخطوة.

أرى المستقبل المشرق في المستقبل.

شكرا لأخذ الوقت لقراءة قصتي.

المقال متوفر أيضًا باللغات العربية والفيتنامية والكورية.

التحديث: 10 يناير 2017

لم يتم تعييني. واصل القراءة . شكرًا للجميع على دعمكم المذهل الساحق.

التحديث: 6 مارس 2017

القصة ذات نهاية سعيدة! لقد تم تعييني بواسطة Amazon للعمل كمهندس تطوير برمجيات في Amazon Web Services!

أين يمكن ايجادي

أنا مدون في Startup Next Door.

جامعة مقابلة جوجل على جيثب:

جواشم / جوجل-مقابلة-جامعة

google-interview-university - خطة يومية كاملة للدراسة لتصبح مهندس برمجيات Google. github.com