
الصورة مأخوذة من فيديو من قناة " Militant Amethyst "
لمدة 10 سنوات كنت أعمل مبرمج نظام لينوكس. هذه هي وحدات kernel (مساحة kernel) ، وشياطين مختلفة وتعمل مع الأجهزة من مساحة المستخدم (مساحة المستخدم) ، ومحمل التمهيد المختلفة (u-boot ، وما إلى ذلك) ، والبرامج الثابتة لوحدة التحكم وغير ذلك الكثير. في بعض الأحيان حدث قطع واجهة الويب. ولكن في كثير من الأحيان كان علي الجلوس مع مكواة لحام والتفاعل مع مصممي لوحات الدوائر المطبوعة. تتمثل إحدى مشكلات هذا العمل في أنه من الصعب جدًا تقييم مستوى كفاءتك ، نظرًا لأنك قد تعرف مهمة واحدة بعمق شديد ، ولكن قد لا تعرف على الإطلاق بالقرب منك. الطريقة الوحيدة المناسبة لفهم إلى أين نذهب وما هي التيارات الآن هي الذهاب إلى المقابلات.
في هذه المقالة ، أريد أن ألخص تجربتي في إجراء المقابلات لشغل وظيفة شاغرة لمبرمج نظام لينوكس ، وخصائص المقابلات والعمل وكيفية تقييم المستوى الشخصي للمعرفة في التواصل مع صاحب العمل المستقبلي وما لا ينبغي توقعه من ذلك.
ستحتوي المقالة على مسابقة صغيرة مع جوائز.
ملامح المهنة
مبرمج النظام ، في التفاصيل التي عملت فيها ، هو اختصاصي كامل: كان علي كتابة التعليمات البرمجية وتصحيح الأخطاء في الأجهزة. وغالبًا ما كانت هناك حاجة إلى لحام شيء ما بمفردهم. من وقت لآخر ، حدث أنه تم نقل تعديلات الأجهزة الخاصة بي إلى المطورين. لذلك ، للعمل في هذا المجال يتطلب مخزنًا جيدًا إلى حد ما من المعرفة ، سواء في مجال الدوائر الرقمية أو في مجال البرمجة. لهذا السبب ، غالبًا ما تبدو المقابلات لوظيفة مبرمج الأنظمة وكأنها تبحث عن متخصص في الإلكترونيات.

مكان عمل نموذجي لمبرمج النظام.
الصورة أعلاه هي مكان عملي المعتاد أثناء تصحيح أخطاء السائقين. يُظهر محلل المنطق صحة الإشارات المرسلة ، يراقب راسم الذبذبات شكل حواف الإشارة. بالإضافة إلى ذلك ، فإن مصحح أخطاء jtag ، الذي يتم استخدامه عندما لا تتكيف أدوات التصحيح القياسية ، لم يدخل في الإطار. ويجب أن تكون قادرًا على العمل مع كل هذه المعدات.
غالبًا ما يحدث أن إعادة لحام بعض العناصر وإصلاح أخطاء الهيكل يكون أسرع وأسهل بالنسبة لك من أن يرتدي المثبت منتجًا. ومن ثم تستقر محطة لحام أيضًا في مكان عملك.
ميزة أخرى للتطوير على مستوى السائق والأجهزة هي أن Google لا تساعد. غالبًا ما يتعين عليك البحث عن معلومات حول مشكلتك ، وهناك ثلاثة روابط ، اثنان منها أسئلتك في بعض المنتديات. أو الأسوأ من ذلك ، عندما تصادف سؤالاً من نفس الزميل المسكين الذي طرحه قبل 5 سنوات على القائمة البريدية لـ kernel ، لكنه لم يحصل على إجابة عليه. في هذا العمل ، بالإضافة إلى الأخطاء في تصميم كل من الأجهزة والبرامج ، غالبًا ما يتم مواجهة أخطاء التوثيق - وهي على الأرجح أكثر المشكلات خطورة وغير السارة. في بعض الأحيان يتم وصف السجلات بشكل غير صحيح ، أو لا يوجد وصف لها على الإطلاق. يتم حل هذه المشكلات فقط من خلال طريقة الضغط العلمي على أرقام عشوائية في سجلات معينة (نوع من العكس). غالبًا ما يكون للمعالج نوع من الوظائف ،وإلى جانبك ، لم يقم أحد بتنفيذ هذه الوظيفة (خاصة إذا كان المعالج جديدًا). وهذا هو المشي في الحقل مع مجرفة ، 70٪ منهم أطفال. ولكن عند وجود وثائق ، حتى مع وجود أخطاء ، فهذا تقدم بالفعل. غالبًا ما يحدث أنه لا يوجد توثيق على الإطلاق ، وهنا يبدأ المشي بالفعل في حقول الألغام ، عندما يحترق الحديد. ونعم ، لقد نجحت أيضًا في حل مثل هذه المشكلات.
المقابلات
رأيي هو أن الأمر يستحق الذهاب إلى المقابلات في مكان ما مرة واحدة على الأقل كل ستة أشهر ، حتى لو كنت تعشق وظيفتك ولا تريد تغييرها. تسمح لك المقابلة بفهم مستواك كمتخصص. أعتقد أن المقابلات الأكثر قيمة هي الإخفاقات. فهم هم الذين يظهرون بدقة أكبر معوقات معرفتهم التي تستحق التشديد.
ميزة أخرى مثيرة للاهتمام هي جودة المقابلات. هذه ملاحظتي ، وهي غير صحيحة ، أعترف أنني كنت محظوظًا جدًا. إذا كانت المقابلة مكتوبة:
- أخبرنا عن نفسك؛
- لدينا مثل هذه المهام.
- تحب؟
وإذا كنت تحب بعضكما البعض بعد هذا الحوار ، وتذهب إلى العمل ، فعادةً ما تكون الشركة والمهام ممتعة ومناسبة للغاية. إذا كانت المقابلة تشبه المرور بـ 12 دائرة من الجحيم: المقابلة الأولى مع الموارد البشرية ، ثم مقابلة مع مجموعة من المبرمجين ، ثم المدير ، والمزيد من الواجبات المنزلية ، وما إلى ذلك ، فعادةً ما كانت هذه منظمات فاشلة لم أعمل فيها لفترة طويلة. مرة أخرى ، هذه ملاحظة شخصية ، ولكن كقاعدة عامة ، تظهر البيروقراطية المفرطة وعملية التوظيف المطولة أن نفس العمليات تحدث داخل الشركة. يتم اتخاذ القرارات ببطء وغير فعالة. كانت هناك أيضًا مواقف معاكسة ، عندما كانت هناك دوائر من الجحيم من المقابلات ، واتضح أن الشركة رائعة ، وعندما ، بعد صفعة على الأيدي ، تبين أن الشركة كانت مستنقعًا ، لكن هذا نادر.
إذا كنت تعتقد أن السيناريو: التقيت ، وأخبرت عن نفسك وظفت ، موجود فقط في الشركات الصغيرة ، إذن لا. لقد رأيت هذا في الشركات الكبيرة جدًا التي توظف أكثر من مئات الأشخاص والممثلة في الأسواق العالمية. هذه آلية عادية ، خاصة إذا كان لديك سجل حافل ولديك فرصة للاتصال بأصحاب العمل السابقين لديك والسؤال عنك.
بالنسبة لي ، مؤشر جيد جدًا للشركة عندما يُطلب منك إظهار أمثلة على مشاريعها ورموزها. يتم عرض مستوى تدريب المتقدم على الفور. وبالنسبة لي ، من وجهة نظر اختيار المرشحين ، هذه هي الطريقة الأكثر فعالية للاختيار من مقابلة المواجهة. في الواقع ، في مقابلة ، يمكن أن تفشل بالإثارة ، أو العكس بالعكس ، يمكنك الخروج من الأدرينالين. لكن في العمل الحقيقي ، لا يمكنك التعامل مع المهام الحقيقية. وقد صادفت هذا أيضًا عندما أجريت مقابلة مع أشخاص بنفسي. يأتي أحد المتخصصين ، ويظهر نفسه تمامًا ، لقد أحببته ، لقد أحبنا. ومع أبسط مهمة عانيت منها لمدة شهر ، ونتيجة لذلك ، حلها مبرمج آخر في غضون يومين. كان علي أن أتخلى عن هذا المبرمج.
في المقابلات ، أقدر بشكل خاص مهام البرمجة. وتلك التي يجب حلها بشكل صحيح أثناء الاجتماع ، في الإجهاد ، والواجبات المنزلية. يوضح الأول مدى استعدادك لحل المشكلات بسرعة ودقة في المواقف العصيبة وحالات الطوارئ. يوضح الثاني مستوى كفاءتك وقدرتك على البحث عن المعلومات وحل المشكلات الحالية.
أكثر الوظائف إثارة للاهتمام كانت في مجمع الدفاع في بلدنا. أثناء عملي ، كان علي حل المشكلات الرائعة التي لم يحلم بها المبرمجون التجاريون مطلقًا. أجهزة الكمبيوتر العملاقة وتصميم أجهزة التوجيه وأنظمة القتال العقدية المختلفة - إنها مثيرة للغاية. عندما ترى ، أثناء العرض ، مجمعًا يخزن شفرتك في حد ذاته ، فهذا أمر رائع حقًا. من الغريب أن المقابلات في مثل هذه الشركات ، كقاعدة عامة ، بسيطة للغاية ، جاءت حرفيًا ، أحببتها - مقبولة (على الأرجح ، تفاصيل الجيش ، الذين لا يحبون الطحن) ، مفروضة. المهام التي كان عليّ مواجهتها هناك مثيرة للاهتمام وصعبة حقًا. من خلال التجربة ، أصبح من الجيد التعلم منهم ليكونوا مبرمجين نظامًا عالي الجودة. هناك أيضًا عيوب ، وهي ليست حتى أجورًا منخفضة.في الوقت الحالي ، الراتب في مجمع الدفاع لائق جدًا ، مع مكافآت وكعكات. كقاعدة عامة ، هذه بيروقراطية كبيرة ، وساعات عمل غير منتظمة ، ووظائف سريعة لا نهاية لها ، والعمل في ضغوط كبيرة. في بعض الحالات ، لا يمكن استبعاد السرية ، مما يضيف مشاكل معينة للسفر إلى الخارج. بالإضافة إلى ذلك ، بالطبع ، طغيان الرؤساء ، وهذا ، للأسف ، يحدث أيضًا. على الرغم من أن تجربة العمل مع ممثل العميل ، إلا أنها ممتعة للغاية. هذا انطباع جماعي لثلاثة معاهد وشركات بحثية مختلفة مرتبطة بأمر دفاع الدولة.بالطبع ، استبداد الرؤساء ، وهذا ، للأسف ، يحدث أيضًا. على الرغم من أن تجربة العمل مع ممثل العميل ، إلا أنها ممتعة للغاية. هذا انطباع جماعي لثلاثة معاهد وشركات بحثية مختلفة مرتبطة بأمر دفاع الدولة.بالطبع ، استبداد الرؤساء ، وهذا ، للأسف ، يحدث أيضًا. على الرغم من أن تجربة العمل مع ممثل العميل ممتعة للغاية بالنسبة لي. هذا انطباع جماعي لثلاثة معاهد وشركات بحثية مختلفة مرتبطة بأمر دفاع الدولة.
لتجنب سوء الفهم ولكي لا أفضح الشركات التي قابلت فيها ، لن أغري القدر وأشير إلى بياناتهم. لكنني ممتن لكل مقابلة ، للوقت الذي منحني إياه الناس ، لإتاحة الفرصة لي للنظر إلى نفسي من الخارج. لا يسعني إلا أن أقول إن المهام كانت لشركات دولية كبيرة ممثلة في دول مختلفة.
سأخبرك بالشيء الأكثر إثارة للاهتمام: ما هي المهام المعطاة في المقابلات. بشكل عام ، الأسئلة الأكثر شيوعًا لشغل وظيفة مبرمج نظام ومبرمج متحكم هي عمليات بت ، في جميع أنواع الاختلافات. لذلك ، جهز نفسك بشكل أفضل في هذا الاتجاه.
الموضوع الثاني من حيث القطبية هو المؤشرات ، يجب أن يرتد هذا الموضوع عن الأسنان. حتى تستيقظ في منتصف الليل ويمكنك أن تخبر وتعرض كل شيء.
من خلال عدة مقابلات ، قمت بسحب الأسئلة في رأسي ، وسأقدمها هنا ، حيث أجدها ممتعة للغاية. لا أعطي إجابات لهذه الأسئلة عمدا حتى يتمكن القراء من الإجابة بشكل مستقل على هذه الأسئلة في التعليقات وكان هناك القليل من المسحوق عند اجتياز مقابلة حقيقية.
الأسئلة رقم 1
أولا المعرفة SI. ماذا تعني الإدخالات التالية:
const char * str; char const * str; const * char str; char * const str; const char const * str;
هل جميع الإدخالات صحيحة؟
II. لماذا سيرمي هذا البرنامج خطأ تجزئة؟
int main () { fprintf(0,"hello\n"); fork(); return(0); }
III. .
. , . 1 /. , . , .
كانت المقابلة التالية فاشلة بالنسبة لي وأجدها أكثر فائدة في ممارسة البرمجة. لقد أظهر عمق عدم كفاءتي. قبل هذه المقابلة ، كنت على دراية بكل سؤال من هذه الأسئلة وقد التقوا باستمرار في ممارستي ، لكنني بطريقة ما لم أعلق أهمية كبيرة عليهم ، وبالتالي لم أفهمهم في المراكز الخمسة الأولى. لذلك ، هذا الامتحان ، فشلت في وصمة عار. وأنا ممتن جدًا لحدوث مثل هذا الفشل ، فقد كان له الأثر الأكبر عليّ. تعتقد أنك متخصص رائع ، وتعرف الدوائر ، والواجهات ، وتعمل مع النواة. وبعد ذلك لديك أسئلة حقيقية وتطفو. لذلك دعونا نرى.
أسئلة المقابلة # 2
مشاكل الأجهزة.
- كيف يتم ترتيب استدعاءات نظام لينكس بلغة التجميع على معالج ARM ، على x86. ماهو الفرق؟
- ? , ?
- i2c spi?
- i2c ?
- RS-232 : RX TX? : , , 9600, !!!
- : ?
- ? , ? ( ).
- ?
- RS-485. . , , . ?
- ?
- كيف تعمل مع CMake؟
- أسئلة حول بناء yocto linux.
أهداف هذه المقابلة:
1. اكتب دالة تقلبuint32_tكل البتات. (أوصي بالعمل مع الإيقاعات في المقابلات)
2.
int32_t a = -200; uint32_t b = 200; return *(uint32_t) * (&a)) > b;
ماذا ستعود هذه الوظيفة؟ (حل على ورق بدون كمبيوتر)
3. وظيفة حساب الوسط الحسابي لرقمينint32_t.
4. ما هي طرق الإخراج في البرامج ، بما في ذلك. في دفق الأخطاء.
الاختيار الثالث كان حديثًا نسبيًا ، ولن أتفاجأ إذا كان لا يزال هناك مثل هذا الاستبيان ، لذلك لن أفصح عن الشركة حتى لا أفضحها ... لكن بشكل عام سأقدم مثالاً عن الأسئلة المحتملة ، وإذا اكتشفت أسئلتك ، فأنا أقول مرحباً :).
أسئلة المقابلة # 3
- , .
- ls. “-l”.
- . ?
- RS-232? RS-485 RS-232? RS-232 RS-485 ?
- USB ( )?
- .
—
هذا الفصل ليس مخصصًا للمبرمجين (على الرغم من أنهم أيضًا) ، ولكنه مخصص أكثر للموارد البشرية. لا تراقب الشركات الأكثر ملاءمة نتائج المقابلة بدقة. من الطبيعي ارتكاب الأخطاء ، وغالبًا ما ينظرون بالضبط إلى الكيفية التي يمكن بها لأي شخص حل المشكلات والعقل.
تتمثل إحدى المشكلات الرئيسية في أن المرشح يحل المشكلات بنجاح في المقابلات ، ويظهر نفسه على أنه متخصص ممتاز ، ولكنه يندمج في المهمة الحقيقية الأولى. لن أكون ماكرة ، لقد كان لدي هذا أيضًا. لقد نجح في اجتياز جميع دوائر الجحيم ، وحل جميع مهام الاختبار ، لكن في الظروف الحقيقية ، تبين أن العمل صعب للغاية بسبب قلة الخبرة المبتذلة. الحصول على المركب ليس أصعب مهمة حتى الآن. أصعب شيء هو البقاء على متن هذه الشركة.
لذلك ، أثق في المزيد من الشركات التي تجري مقابلات بسيطة مع أحد المرشحين وتقول: بعد الشهر الأول من العمل ، سيكون واضحًا ما إذا كنت مناسبًا لنا أم لا. هذا هو النهج الأنسب ، نعم ، ربما يكون مكلفًا بعض الشيء ، لكن من الواضح على الفور من هو.
هناك خيار آخر للمقابلات: عندما تجتازها بنجاح ، ولكن وفقًا لنتائج المقابلة ، فأنت تفهم أن صاحب العمل غير مناسب تمامًا. أرفض على الفور العمل إذا عُرض عليّ العمل كرجل أعمال فردي واعدًا بدخل كبير. هذا شكل من أشكال التهرب الضريبي للمؤسسة الحالية ، ولماذا تقلقني مشاكل صاحب العمل كمبرمج؟ خيار آخر هو الوكالات الحكومية المختلفة. أجريت مقابلة ، ونتيجة لذلك ، عُرض عليّ راتبًا جيدًا ، لكنهم قالوا إن المبرمج السابق استقال ، ومرض ، ومات ، ودخل في نهم بسبب عبء العمل ، ويبدأ يوم عملك في الساعة 8 صباحًا. ركضت أيضًا من هذا المكان حتى تألق كعبي. نعم ، ينتبه قسم الموارد البشرية إلى أن المبرمجين على استعداد للتخلي حتى عن أكثر الوظائف الشاغرة اللذيذة إذا كان يجب أن يبدأ يوم العمل في الصباح الباكر.
في النهاية ، سأقدم مقطع فيديو ممتازًا لاختيار مبرمج ، يتم تقديم لقطة شاشة له في بداية هذه المقالة. كما أجريت مثل هذه المقابلة أكثر من مرة. إذا رأيت الاستبداد في مرحلة الأسئلة ، فاحترم نفسك ، وانهض ، وخذ الأشياء واترك - هذا طبيعي. إذا أكد الموارد البشرية والمدير في المقابلة نفسيهما على نفقتك ، فهذا يشير إلى سمية الشركة ويجب ألا تعمل هناك ، إلا إذا كنت تحب الرؤساء غير المناسبين.
الاستنتاجات
المبرمجين ، اذهب للمقابلات! وحاول دائمًا الصعود. على سبيل المثال ، إذا تلقيت نقودًا N ، فانتقل إلى مقابلة مقابل أجر N * 1.2 على الأقل ، أو أفضل N * 1.5. حتى لو لم تأخذ هذه الوظيفة على الفور ، فسوف تفهم ما هو مطلوب لمستوى الراتب هذا.
أظهرت ملاحظاتي أن المعرفة الجيدة باللغة الإنجليزية ، وثروة كبيرة من الخبرة في الصناعة والثقة بالنفس هي أمور حاسمة. هذا الأخير هو الصفة الرئيسية ، كما هو الحال في أي مكان آخر في الحياة. كقاعدة عامة ، يمكن للمرشح الأكثر ثقة اجتياز مقابلة بنجاح ، حتى مع وجود أخطاء أكثر ، من المرشح الممتاز ، ولكن الأكثر خجولًا واستباقيًا. حظ موفق في مقابلاتك!
مسابقة P / S
إذا كانت لديك أمثلة مثيرة للاهتمام من المهام التي حملتها لك الموارد البشرية ، فمرحبًا بك في التعليقات. لقد أعددنا مسابقة صغيرة - الشروط بسيطة: تكتب المهمة الأكثر غرابة التي واجهتها في مقابلة ، ويقيمها القراء (زائد) ، وفي أسبوع نلخص النتائج ونكافئ الفائز بأشياء مضحكة.
