يتناول هذا المقال تجربتي في العثور على وظيفة في اليابان، وصعوبات التكيف، وبعض النصائح المفيدة للمبرمجين المبتدئين!
التعليم
تخرجت من جامعة موسكو الحكومية بدرجة البكالوريوس من كلية لومونوسوف للرياضيات الحاسوبية والسيبرانية. هذا البرنامج هو نوع من الهجين بين تعليم الرياضيات وعلوم الكمبيوتر.
تغطي السنتان الأولى والثانية أساسيات الرياضيات العليا والبرمجة بشكل شامل للغاية. يتم اختيار اتجاه أكثر تخصصًا في السنة الثالثة عند القبول في أحد البرامج الستة عشر. عندما حان دوري، اخترت بشكل عشوائي نوعًا ما قسم برمجة النظم، حيث درسنا مقررات مثل: أنظمة التشغيل، وقواعد البيانات، والمترجمات، ومعالجة اللغات الطبيعية، وبرمجة الويب، والتعلم الآلي، والرسومات الحاسوبية.
الخبرة العملية قبل أمازون
مجموعة Mail Ru في روسيا: سنة ونصف. عمل بدوام جزئي، حيث جمعت بين العمل والدراسة خلال السنتين الثالثة والرابعة. هناك اكتسبت الخبرة اللازمة كمطور مبتدئ، مما ساعدني لاحقًا في مسيرتي المهنية.
راكوتن في اليابان: 6 أشهر. عملت في راكوتن لمدة نصف عام فقط، وأستطيع القول بصدق أنني ارتكبت خطأ في اختيار الفريق الذي انضممت إليه. ولكن يمكنك تعلم شيء ما من أي موقف!
التقديم إلى Amazon
عملية التقديم
كانت عملية التقديم قياسية إلى حد ما - كان لدي سيرتي الذاتية، وأنشأت ملف تعريف على LinkedIn وبدأت في إضافة أصدقائي ومعارفهم من مجالي كأصدقاء. تم الاتصال بي في النهاية من قبل وكالة توظيف وبدأت عملية تقديم سيرتي الذاتية إلى Amazon وIndeed. بالإضافة إلى ذلك، تقدمت أيضًا إلى Google من خلال موقعهم الرسمي.
توصيتي العامة هنا هي بناء علاقات داخل مجالك، حيث ستساعدك في المستقبل.
بالنسبة للشركات الكبيرة، يُنصح بالتقديم من خلال الإحالات (توصيات الموظفين الداخليين)، حيث يساعد هذا سيرتك الذاتية على اجتياز الفحص الأولي التلقائي للسير الذاتية.
الاستعداد للمقابلة
المرحلة التالية هي المقابلة، والتي تتكون عادة من 3 أجزاء:
مهام في البرمجة
تصميم النظام
أسئلة عن المهارات الشخصية
البرمجة. كتاب Cracking the Coding Interview مناسب جدًا للتحضير لهذا النوع من المقابلات، بالإضافة إلى حل المشكلات على leetcode (قسم "أسئلة المقابلة الأعلى"). يمكنك أيضًا النظر في codeforces، algoexpert (مدفوع). بالإضافة إلى ذلك، هناك العديد من قنوات YouTube التي تشرح الخوارزميات.
تصميم النظام. هذا أكثر تعقيدًا. مرة أخرى، يمكنك النظر في كتاب Cracking the Coding Interview، ولكنني انتهيت في الغالب بالبحث عن تحديات مقابلة تصميم النظام عبر Google.
المهارات الشخصية. هنا أنصحك بوصف جميع مشاريعك المهمة وفقًا لمنهجية STAR، حتى تتمكن من تقديم أمثلة سريعة لمواقف مختلفة من خبرتك المهنية. مثال على الأسئلة: "أخبرني عن وقت اختلفت فيه مع مدير."، "أخبرني عن وقت كان لديك مواعيد نهائية ضيقة جدًا ولم يكن لديك وقت لإنهاء مشروع." إلخ.
المقابلة
عملية المقابلة قياسية إلى حد كبير لجميع الشركات الدولية الكبيرة (FAANG) وتتكون من:
مكالمة مع مسؤول التوظيف لمناقشة وضعك الحالي، وما تفعله الآن، وأي البلدان تفكر فيها، وأي مجالات العمل تهتم بها.
اختبار عبر الإنترنت. عادة ما يتم منحك ساعة ونصف، خلالها تحتاج إلى حل مهمتين من البرمجة التنافسية. مثال على الموقع الذي سيتم إرسالك إليه هو codility.
مقابلة عبر الفيديو (فحص عبر الهاتف). تستغرق المقابلة 45-60 دقيقة. خلال المقابلة يتم إعطاؤك مهمتين، وعليك شرح طريقة تفكيرك، ووصف الحل، وتسمية التعقيدات الصحيحة لخوارزميتك، وكتابة الكود. تطرح Amazon أيضًا أسئلة عن المهارات الشخصية لمدة 15-20 دقيقة.
مقابلات وجهًا لوجه (في الموقع). تأتي إلى مكتب الشركة خلال أحد أيام العمل وتخضع لـ 4-5 مقابلات متتالية مع استراحة للغداء بعد المقابلة الثانية. في معظم الأحيان، تكون إحدى المقابلات عن تصميم النظام، وكل المقابلات الأخرى مشابهة إلى حد ما للفحص عبر الهاتف، ولكن هذه المرة وجهًا لوجه. للغداء، سيعتني بك أحد الموظفين، الذي يمكنك أن تسأله أي أسئلة عن الشركة.
نقطة مهمة أخرى:
قم بمقابلة صاحب العمل الخاص بك. لم أفكر كثيرًا في هذا الأمر حتى الآن، ولكن المقابلة هي عملية ذات اتجاهين. ليس فقط أن الشركة تحاول معرفة ما إذا كنت مناسبًا لهم، ولكن عليك أيضًا تحديد ما إذا كنت ترغب في العمل لتلك الشركة. فكر بعناية في الأسئلة التي ستطرحها على مديرك المحتمل. تريد أن تفهم ما إذا كان الموظفون في هذه الشركة مؤهلين؟ هل بيئة العمل مريحة؟ هل العمليات داخل الشركة منظمة بشكل جيد؟
المهارات التي يجب تطويرها
المهارات الشخصية
القدرة على رؤية السبب الجذري للمشكلة، وليس مجرد محاولة حل المهمة التي أُعطيت لك بدون تفكير. لماذا ظهرت مهمتك أصلاً؟ ربما تهدف إلى حل حالة خاصة يمكنك تعميمها وحل مجموعة من المشاكل بدلاً من ذلك؟ لا تحد تفكيرك بالمهمة التي أعطاك إياها مديرك.
التواصل في الوقت المناسب. تذكر أنك تعمل ضمن فريق، ومن المهم جداً إبلاغ حالة مهمتك في الوقت المناسب. وإلا فقد تبطئ الفريق بأكمله.
القدرة على العمل بشكل مستقل. من المهم أن تكون مهندساً مستقلاً لا يحتاج إلى إدارة دقيقة. يجب أن تكون قادراً على الحصول على إجابات لمعظم الأسئلة التي لديك بنفسك. لا تخلط هذا مع التعثر في المشكلة. إذا واجهت مشكلة لا يمكنك حلها بمفردك (لقد جربت جميع الخيارات المتاحة لك)، فاتصل بمديرك أو مرشدك للحصول على المساعدة.
القدرة على طلب وتلقي التغذية الراجعة. قبل اتخاذ القرارات الرئيسية أثناء العمل على مشروع، فكر في النهج المختلفة وقم بإدراج إيجابيات وسلبيات كل منها. اعرض أفكارك على زملائك واكتشف ما يفكرون به.
القدرة على توصيل المعلومات. في أي مرحلة من مراحل حياتك المهنية، سيتعين عليك إجراء مناقشات واقتراح أفكارك على أشخاص مختلفين. من المهم أن تكون قادراً على نقل وجهة نظرك بإيجاز ووضوح. ومن الأفضل إذا كنت تستطيع توثيقها جيداً كتابياً.
المهارات التقنية
تصميم النظام. عند العمل على مشروع ناضج، حاول فهم كيفية عمل النظام ككل، وما هي أسباب جميع القرارات الرئيسية؟ تصميم بنية النظام هو واحدة من أهم المهارات لمهندس البرمجيات. هل تقوم بتخزين البيانات مؤقتاً؟ كيف يتم توزيع الحمل؟ ماذا يحدث إذا تعطل أحد خوادمك؟
عملية النشر. النشر جزء مهم جداً من عملية التطوير. كيف يمكنك نشر النظام بحيث لا تتوقف خدمتك عن معالجة طلبات العملاء؟
اختبار الضغط. اختبار الضغط مفيد جداً للأنظمة ذات الحمل العالي. إذا كنت تعمل على واحد من هذه الأنظمة، أوصي بأن تتعلم المزيد عن هذا الموضوع.
تحليل السجلات. هذا لا يُدرّس عادة في الجامعات، ولكنها مهارة مهمة جداً. لماذا يعطي نظامك نتائج غير صحيحة على بعض المدخلات؟ كيف تفهم أين الخطأ؟ كيف تقوم بتحليل السجلات ومعالجتها بشكل صحيح؟
التأقلم مع اليابان
تعتبر شركتي الأولى في اليابان (Rakuten) من الشركات اليابانية الرائدة في خلق بيئة عمل دولية. لذلك، كان التكيف مع الثقافة اليابانية أسهل بكثير بالنسبة لي مما لو كنت أعمل في شركة يابانية تقليدية (سمعت أن الوضع سيء جدًا هناك).
على الرغم مما سبق، ما زلت واجهت إدارة يابانية غير فعالة. إليكم بعض الخصائص السلبية لثقافة العمل اليابانية في رأيي:
نظام هرمي قوي. المدير دائمًا على حق.
التركيز ليس على النتيجة، بل على العملية. هذا يؤدي إلى أن الناس يبقون في العمل لمدة 12 ساعة، ويعملون بشكل غير فعال للغاية. كثير من الناس يبقون في المكتب من الصباح حتى الليل.
مسؤولية غير واضحة. في ثقافة العمل اليابانية، من الصعب جدًا جعل شخص ما يتحمل المسؤولية عن أي شيء.
رغم ذلك، هناك أيضًا مزايا:
جودة عالية في العمل. اليابانيون سيفعلون كل ما يُطلب منهم، ويتبعون التعليمات بدقة. على الأرجح سيكون بطيئًا، ولكن سيتم التحقق منه 100 مرة.
نزاعات أقل، لأن قرارات الإدارة عادة ما تكون نهائية.
شخصيًا، واجهت كل المشاكل المذكورة أعلاه، ولكن بفضل Rakuten كانت بشكل أخف.
بالحديث عن العمل نفسه، لا أستطيع تحديد أي مشاكل. لم يكن هناك شيء استثنائي يختلف عن عملي في Mail Ru. الإزعاج الوحيد كان أنني اضطررت للتكيف مع العمل باللغة الإنجليزية.
من الجدير بالذكر أنه في الشركات الكبيرة مثل Rakuten وAmazon وMail Ru، يعتمد الكثير على الفريق الذي يتم وضعك فيه. في فريقين ضمن نفس القسم، يمكن أن يكون كل شيء مرتبًا بشكل مختلف تمامًا.
في حالة Amazon، الوضع مختلف تمامًا. بما أنني أعمل في قسم مقره في وادي السيليكون، لدينا أجواء غربية جدًا. لم أر أي علامات على ثقافة العمل اليابانية المذكورة أعلاه.
يومي النموذجي في أمازون
ساعات العمل. قبل بداية قصة فيروس كورونا، كنت أعمل عادةً من حوالي الساعة 11 صباحًا حتى 7-8 مساءً. مرتين في الأسبوع كانت لدينا اجتماعات صباحية مع جزء من فريقنا من وادي السيليكون، لذا كان علينا البدء في الساعة 9 صباحًا.
تعتمد ساعات العمل الإجمالية عادةً على مواعيد تسليم المشروع. بشكل عام، يكون يوم العمل 9-10 ساعات (بما في ذلك وقت الغداء)، ولكن إذا كانت المواعيد النهائية ضيقة، يمكن أن يصل إلى 12-15 ساعة والعمل الإضافي في عطلات نهاية الأسبوع. مرة أخرى، الكثير يعتمد على الفريق الذي تعمل معه.
الاجتماعات. في الوقت الحالي، لدى فريقنا اجتماعان أسبوعيان فقط، خلال أحدهما نقدم تقريرًا عن الحالة الراهنة للمهام التي نعمل عليها. نستخدم لوحة Kanban (مثل Trello) للتصور، وبعض المهام يتم تقسيمها أيضًا إلى سباقات سكرم.
خلال الاجتماع الثاني، نمارس مشاركة المعرفة، والتي يمكن أن تكون مفيدة للزملاء الآخرين. غالبًا ما نناقش الحلول الممكنة للمشاكل التي تؤثر على جميع أعضاء الفريق.
بالإضافة إلى ذلك، لدي اجتماعات فردية أسبوعية مع مديري ومرشدي، حيث يمكننا مناقشة أي شيء من طقس اليوم إلى خطة العام المقبل للترقية.
مسؤوليات العمل. جميع الفرق منظمة بشكل مختلف، ولكن في حالتي، يعمل كل مطور على مشروعه الخاص، أو أحيانًا يعمل مطوران على مشروع واحد. بالإضافة إلى ذلك، لدينا مسؤوليات مقسمة بالتساوي بين جميع أعضاء الفريق. على سبيل المثال، تحديث تكوين بعض الأنظمة.
كل فريق في أمازون لديه ما يسمى "oncall" - شخص مسؤول عن معالجة جميع الطلبات التي يتلقاها الفريق. قد يكون ذلك شرح كيفية عمل نظامك، أو التحقق من سبب فشل أحد مكوناتك. عادةً ما يتم تناوب مهمة oncall مرة واحدة في الأسبوع بين جميع أعضاء الفريق.
صالة الألعاب الرياضية. أحاول الذهاب إلى صالة الألعاب الرياضية قبل العمل 2-3 مرات في الأسبوع. لحسن الحظ، أعيش على بعد 12 دقيقة سيرًا على الأقدام من المكتب وهناك صالة ألعاب رياضية على الطريق، لذلك لا أقضي الكثير من الوقت في التنقل (كان هذا أحد المعايير الرئيسية لاختيار الشقة).
الكافيتريات. حسنًا، الطعام في اليابان لذيذ جدًا ومنخفض السعرات الحرارية. لذلك، عادةً ما آكل في كافيتيريتين داخليتين في مكتبنا (متاحة فقط للموظفين).
الجدول الزمني. الجدول الزمني حر تمامًا. الشيء الرئيسي المطلوب منك هو نتيجة عملك. طالما أنك تفي بجميع مسؤولياتك، فلن يجبرك أحد على الالتزام بجدول زمني معين.
بالطبع، من المستحسن أن تلتقي بزملائك أثناء العمل، حيث قد تكون هناك حاجة إليك لمناقشة بعض قضايا العمل بشكل عاجل. بالإضافة إلى ذلك، سيكون من الجيد الحفاظ على علاقات جيدة مع زملائك وقضاء المزيد من الوقت معهم!
الراتب
لا أستطيع الكشف عن المبلغ الدقيق، ولكن بالنسبة لطوكيو، يمكن العثور على نطاق راتب دقيق جدًا على موقع Japan Dev. إذا كنت مهتمًا بمدن أخرى، فأنصحك بالتحقق من الرواتب على موقع Glassdoor.
الراتب كافٍ لحياة مريحة لي ولزوجتي في طوكيو. وهذا يشمل الإيجار في إحدى المناطق المركزية، واللقاء الأسبوعي مع الأصدقاء، والذهاب إلى المقاهي والكاراوكي :) في الوقت نفسه، خلال الأشهر التي لا توجد فيها نفقات كبيرة، يمكنك توفير ما يصل إلى 30-40٪ من راتبك.
التنوع في أمازون
أحيانًا ينتابني شعور بأن الأجانب فقط هم من يعملون في أمازون اليابان، خاصة بين مهندسي البرمجيات (بالطبع، في الجانب التجاري، هناك العديد من اليابانيين). على سبيل المثال، في قسم البحث لدينا، هناك فقط 5 يابانيين من بين حوالي 40 شخصًا. قبل عام، عندما حصلت على وظيفة في أمازون لأول مرة، كان هناك 5 مطورين يتحدثون الروسية في قسمنا.
الإيجابيات والسلبيات
ما أحبه أكثر في وظيفتي هو حقيقة أنني أتعلم شيئًا جديدًا كل يوم. هذه ليست بالضرورة تقنيات مبتكرة، ولكن غالبًا ما تتعلم مهارات شخصية مهمة للغاية - إدارة المشاريع، مهارات الأعمال، التواصل بين أعضاء الفريق للحصول على النتيجة الأكثر كفاءة.
بالإضافة إلى ذلك، يمكنك دائمًا أخذ المبادرة في اختيار المشاريع التي تريد العمل عليها. هل أنت مهتم بأنظمة الأحمال العالية؟ سيحاول المدير إيجاد المهمة الأنسب لك، وفي بعض الحالات سيدعمك عند الانتقال إلى فريق آخر داخل الشركة.
أعتقد، مثل الجميع، أنني لا أحب حقًا العمل على المهام المتكررة التي يجب أن أخصص لها قدرًا معينًا من الوقت أسبوعيًا. هذه هي المهام التي يصعب أتمتتها إلى حد ما.
أيضًا، في الحالات التي تعمل فيها على مشاريع مهمة، قد تواجه البيروقراطية بشكل أو بآخر، مما يبطئ عملك بلا شك.
كلمات أخيرة من النصيحة
عليك أن تفهم ما يثير اهتمامك وما الذي تريد بناءه بالضبط. التفكير من حيث اللغة التي يجب تعلمها أولاً ليس صحيحًا تمامًا. هل تحب المواقع الإلكترونية؟ ابدأ بإنشاء صفحة بسيطة! هل رغبت يومًا في أن تصبح مطور ألعاب؟ حاول تنفيذ لعبة بسيطة. الآن هناك الكثير من المعلومات على الإنترنت، كل ما تحتاجه هو الرغبة في استخدامها!