كيف يمكن للمطور المبتدئ البقاء على قيد الحياة في مقابلة وليس بالجنون في العمل



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

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

مقابلات العمل


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

التحضير للمعركة

يمكن أن تكون الأسئلة والمهام مختلفة تمامًا ، كمثال سأذكر مهمة FizzBuzz الشائعة.

اكتب برنامجًا يعرض أرقامًا من 1 إلى 100. ولكن بالنسبة للأرقام متعددة من ثلاثة ، فأنت بحاجة إلى إخراج Fizz بدلاً من الرقم نفسه ، وللأرقام مضاعفة من خمسة ، Buzz. بالنسبة للأرقام التي تكون مضاعفات ثلاثة وخمسة ، اعرض كلمة FizzBuzz.

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

بالطبع ، أنت بحاجة إلى المزيد من المعرفة. على وجه الخصوص:

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

كل هذا يجب أن يكون مصقولًا حرفياً إلى اللمعان إذا كنت تريد إظهار نفسك من أفضل جانب. يمكنني أن أنصح بهذه الموارد التي ستساعد في التحضير للمقابلات:

  • "تكسير مقابلة الترميز " ، مجرد كتاب رائع يحتوي على معلومات حول عدد كبير من مشاكل البرمجة وحلولها ؛
  • CodeWars ، موقع بمهام برمجة غير عادية يمكنك حلها مباشرة في متصفحك باستخدام لغات مختلفة.

توصي Skillbox بما يلي: دورة تدريبية عملية "Web Developer Web Developer" .

نذكرك: لجميع قراء "هبر" - خصم 10000 روبل عند التسجيل في أي دورة من دورات Skillbox باستخدام الرمز الترويجي "Habr".

وأكثر من ذلك بقليل



هناك بعض النقاط التي ستساعدك على اكتساب معرفة وخبرة إضافية.

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

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

حاول المشاركة في مشروع مفتوح المصدر. سيُظهر ذلك تجربتك ويعلمك العمل في فريق.

قم بإجراء مقابلة مع المحاور

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

فيما يلي أمثلة على الأسئلة التي يجب طرحها.

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

كيف تختبر برنامجك؟
من الناحية المثالية ، يجب أن يكون الاختبار متنوعًا تمامًا. إذا كان الجواب مثل "نحن فقط نكتب كل شيء مرة واحدة بدون أخطاء ، هاها" ، يجب أن تفهم هذا بطريقة أن هناك أخطاء ، ولكن لا أحد يريد أو لا يمكن إصلاحها.

ما هو نظام التحكم في الإصدار الذي تستخدمه؟
سؤال مهم لأنه ضروري للعمل الجماعي. إذا كان الجواب: "ماذا ، نظام التحكم في الإصدار؟" - ثم اهرب من هذه المقابلة بسرعة وبعيدة.



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

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

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



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

كيف تحل مشكلة الديون الفنية؟
الدين الفني ، أو ترميز الديون ، هو مصطلح يحدد الأخطاء طويلة الأمد في بنية التعليمات البرمجية أو التطبيق. تتراكم المشاكل وتصبح في النهاية عقبة خطيرة للغاية أمام مزيد من العمل في المشروع.

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

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

العمل كمبرمج


حسنًا ، لقد مررت بجميع مراحل المقابلة وحصلت على وظيفة. مبروك!



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

كود جيد

يجب أن تستوفي المعايير التالية:

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

إليك بعض الأشياء الأخرى للتعلم.

لن تكون برمجة الكثير.

نعم ، قد يبدو هذا غريبًا ، ولكن في الواقع ستقضي المزيد من الوقت في:

  • تصحيح الأخطاء
  • قراءة الكود ؛
  • الاجتماعات وكتابة البريد الإلكتروني / الإجابات ؛
  • التخطيط.

ودعونا نتحدث عن المهارات المهمة لمهنة المبرمج.

تصحيح الأخطاء وقراءة التعليمات البرمجية



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

التنظيم والتخطيط

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

  • المهام / المهام. من المحتمل أن لدى شركتك نظامًا للحفاظ على المهام ومراقبة تنفيذها ، ولكن لا يضر بدء تشغيل النظام الخاص بك. استخدم Trello أو Todoist أو أي شيء آخر.
  • ملاحظات. في هذه العملية ، غالبًا ما تحتاج إلى حفظ العديد من الأشياء الصغيرة الضرورية. من الأفضل تسجيلها - على سبيل المثال ، باستخدام Evernote و OneNote وأدوات أخرى.
  • الرسوم البيانية والتصور. من الأفضل تقييم أدائك باستخدام أدوات مثل Lucidchart و Visio وغيرها.

متى تستخدم المكتبات؟

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

إن المكتبات القياسية للغات الأكثر شعبية فعالة للغاية. راجع الوثائق لفهم كيفية استخدامها بشكل أفضل.

لا يجب أن تخاف من العمل مع مكتبات إضافية إذا كانت تساعد في توفير الوقت. يمكن أن يكون:

  • مكتبات مفتوحة المصدر حيث يمكنك تقييم جودة الكود.
  • المكتبات المرخصة بموجب MIT و BSD ، يمكنك استخدامها دون مشاكل. كن حذرا مع GPL.
  • تلك المستخدمة بالفعل لفترة طويلة ولديها مجموعة واسعة من القدرات.
  • مدعوم - تلك التي تتلقى التحديثات بانتظام.
  • يستخدم من قبل شركات / مشاريع أخرى ، مما قد يشير إلى موثوقيتها.

استمر في التحسن

قد يبدو الأمر مزعجًا ، ولكنك تحتاج إلى التعلم حتى أثناء العمل ، وكذلك في وقت فراغك - كل يوم. يساعد ذلك من خلال الدورات والكتب والمدونات على الإنترنت ، بالإضافة إلى التعليم (الثالث) الثاني. كما يجدر الانتباه إلى المؤتمرات وأنواع مختلفة من ورش العمل. من بين المؤتمرات الأكثر شهرة سأختار GOTO (الاتجاه العام) ، Strange Loop (أيضًا عام) ، PyCon (Python) ، CPPCon (C ++) ، DEF CON (الأمان) ، Fluent (webdev).

Source: https://habr.com/ru/post/ar429720/


All Articles