سؤال

في مقابلة سابقة سئلت السؤال التالي:"من 0 إلى 10، كيف تقيم نفسك كمبرمج؟"

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

فهل هناك طريقة لمعرفة مدى جودة أدائك لعملك؟

هل كانت مفيدة؟

المحلول

اتصل بصاحب عملك السابق وتحدث إلى من ورث كل الكود القديم الخاص بك.سيخبرونك كم أنت مبرمج جيد.;)

نصائح أخرى

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

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

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

10- أنت لا تعلم أنك لا تعرف شيئاً حقاً.

9- أنت تتفاخر فقط، وربما لست جيدًا كما تظن.حتى لو كنت جيدًا حقًا، فأنت تفتقر إلى المهارات السياسية لمعرفة ما يقوله اختيار الرقم "9" عنك.هذا، أو أنك معروف/محبوب جدًا في الصناعة (على سبيل المثال:لقد كتبت كتابًا ذات مرة، وله لقب مثل "The ______ Book" أو اختصار يتعرف عليه معظم المطورين على الفور)، ولا تخشى نشر اسمك.

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

7- أنت جيد جدًا، لكنك تعلم أن لديك الكثير لتتعلمه.

6- أنت مؤهل، ولديك الكثير لتتعلمه، لكنك لست واثقًا جدًا من قدراتك.هل أنت متأكد أنك لست 7؟

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

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

3 أو أقل - إذا كانت ثقتك في قدرتك على البرمجة قليلة جدًا، فلماذا تتقدم إلى وظائف البرمجة؟

لذا فإن الإجابة "الصحيحة" هي على الأرجح 5-7، اعتمادًا على نوع الوظيفة التي تجري المقابلة لها.تتمتع 8 بخبرة كافية لدرجة أنها لن تطرح هذا السؤال.

سؤال المقابلة هذا لا يتعلق في الواقع بمدى براعتك كمطور.يتعلق الأمر بمدى الوعي الذاتي لديك، ومدى تبريرك (للمحاور) لأي رقم تطرحه.

الطريقة الصحيحة للإجابة على هذا السؤال أثناء المقابلة (بدلاً من الإجابة الفلسفية) هي اختيار أقوى المجالات لديك وتقديم بعض الأدلة الجيدة للقول بأنك ضمن أفضل X% من المطورين في تلك المجالات المحددة.

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

ما لا يجب عليك فعله هو أن تأخذ السؤال حرفيًا.هذا ليس عادة ما يريده القائم بإجراء المقابلة.

كشخص يجري مقابلات مع المطورين المحتملين، أود أن أقول إن أي مكان بين 6-8 سيكون الإجابة الأكثر أمانًا على هذا السؤال.أتصور أن متوسط ​​الاستجابة هو حوالي 7.أعتقد أنه من الأفضل التخلص من غير الأكفاء (0-5) أو الجاهل (9-10).إذا قررت الإجابة بـ 9+، فكن مستعدًا لإثبات ذلك.

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

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

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

يبدو أن هناك ثلاثة مستويات من الكفاءة في أي لغة برمجة:

  1. يمكنك إصلاح الأخطاء النحوية على الفور ودون أي جهد عقلي شاق
  2. يمكنك قراءة أكواد الأشخاص الآخرين ومعرفة نواياهم دون "ترجمة" الكود إلى لغة طبيعية (أو أي لغة برمجة أخرى)
  3. بمجرد فهم المشكلة، يمكنك التعبير عنها بشكل طبيعي في التركيبات التي توفرها اللغة (أمر حتمي، OO، وظيفي ...)

أعتقد أن هذا يأخذك على المقياس من 1 -> 10

ومن الجدير بالذكر أن المعرفة العميقة بلغة ما يمكن أن تعيق تعلم لغة أخرى.لأنه بمجرد أن تفكر في اللغة "أ"، يتعين عليك تجديد أسلاك عقلك لتعلم اللغة "ب".من الواضح أن هذا لا ينطبق إلا عند الانتقال إلى نوع مختلف تمامًا من البرمجة، على سبيل المثال.C->C++، C#->F#، Java->Scala إلخ...لذلك لا أعتقد أنه من الممكن أن تكون "مبرمجًا مثاليًا" بشكل مجرد.

قد يعطي تقييم أويلر لمشروعك فكرة (ليس مهاراتك ولكن شغفك بعدم الاستسلام حتى النهاية):

http://projecteuler.net/index.php?section=problems

أحد النهج الصحيح تمامًا في "كيف تقيم نفسك من 1 إلى 10؟" هو الإشارة إلى مشكلة متأصلة في التقييم الذاتي.لتلخيص نتائج التجارب في تلك الورقة الرائعة:

  1. الجميع تقريبًا صنفوا أنفسهم على أنهم أعلى من المتوسط.وكان ما لا يقل عن 50% من هؤلاء الأشخاص إما غير صادقين أو مخادعين.
  2. الناس الذين هم في الحقيقة في أعلى 25% يدفعون أنفسهم في كثير من الأحيان إلى نطاق 50-75% (أي أنهم يصنفون أنفسهم منخفضين بشكل مصطنع).
  3. يميل الأشخاص الذين تتراوح أعمارهم بين 50 إلى 75% إلى تقييم أنفسهم بدقة أكبر.

يمكنك تلخيص ذلك بشكل معقول بأن 50% من التقييمات الذاتية عبارة عن أكاذيب و25% أخرى خاطئة.وانت ايضا استطاع اختر أن تسأل من يقوم بإجراء المقابلة بدون طيار عما إذا كانوا يضيعون وقتك أو يقومون بتقييمك نفسيًا....

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

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

أعتقد أن الطريقة الأفضل للرد على سؤال تقييم نفسك هي أن أقول إنني أقيم نفسي x المئوية WRT جميع الأشخاص الآخرين الذين عملت معهم.

الإجابة المختصرة هي أنك تقيس نفسك مقارنة بأقرانك.أي خذ شخصًا لا يعرف شيئًا وأعطه 0، وخذ أفضل مبرمج تعرفه شخصيًا وأعطه 10 - كيف تعتبر نفسك مقارنة بهذين الشخصين؟قريب من الأفضل؟سيكون ذلك 8.وسط؟من شأنه أن يكون 5.

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

هناك مقياس واحد فقط يمكن من خلاله قياس المبرمج الجيد:LOC/ساعة.كل المقاييس الأخرى لا لزوم لها :p

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

إذا كان هذا هو الحال، ربت على ظهرك.أنت تقوم بعمل جيد.

تذكر أن البرمجيات لا تنتهي حتى تجني المال.

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

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

فهو لا يخبرك فقط بمدى معرفتهم بالبرمجة الجيدة/السيئة، بل يخبرك أيضًا بمدى جودة تفاعلهم مع العميل لاستخراج المتطلبات ومدى ملاءمتهم لبقية الفريق.

الرتبة الفعلية 0-10 أقل أهمية بكثير.

أعتقد أنه من المهم عدم المبالغة في تقدير أهمية المعرفة اللغوية.

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

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

بالطبع لا يساعد أي من هذا كمقياس لتحديد مهارتك الخاصة - لكن آخرين قالوا بالفعل إنه سؤال غير قابل للقياس على أي حال.:-)

إذا كنت تريد بايتًا صوتيًا للإجابة:

عندما بدأت العمل بشكل احترافي، ربما كان عمري 2، والآن يمكنني أن أقول إنني كنت في حدود 7، ولكن كل يوم أعمل للوصول إلى 10.

كلمة في الدقيقة.

في رأيي هذا أمر صعب (وفي سياق المقابلة أمر متساوٍ غير منصف) سؤال!لقد كنت أعمل في ثلاث شركات مختلفة حتى الآن.في كل مكان التقيت بعدد قليل جدًا من المبرمجين الممتازين (أفضل بكثير مني)، والكثير من المبرمجين الجيدين وعدد قليل من المبرمجين الذين يجب أن يتغيروا نحو الأفضل.لكن من المستحيل تصنيفهم في فئات من 0 إلى 10!

هناك العديد من "أبعاد الخير" لكونك مبرمجًا؛ستختلف عملية التقييم اعتمادًا على ما يهمك.إليك بعض الأفكار:

  1. الكفاءة الفنية:اذهب لشراء مرجع جيد لأسلوب "كتاب الطبخ" باللغة/اللغة التي تستخدمها بشكل أساسي؛لكل مهمة تمت مناقشتها في الكتاب، اكتب أولاً الحل الخاص بك ثم قارنه بالحل (الحلول) المقدمة في الكتاب.
  2. سرعة التطوير:قم بالتسجيل في TopCoder والعمل على حل مشكلاتهم المخزنة أو المشاركة في منافسة في الوقت الفعلي.
  3. المشاركة في فريق التطوير:قم بشراء وجبة غداء لأحد زملائك في العمل الذين تثق بهم واطلب منه تقييمًا صادقًا لنفسك كعضو في الفريق (على سبيل المثال:"ما هي نقاط القوة والضعف الرئيسية التي تراها كعضو في فريقنا؟ماذا تقترح علي أن أفعل للتحسين؟") [إذا لم يكن هناك أحد في فريقك يمكنك الذهاب إليه لإجراء مثل هذه المناقشة، فربما يكون ذلك الشخص الذي - التي يخبرك شيئا عن هذه المسألة.]
  4. مهارات التواصل:اجلس مع زميل في العمل لا مطور واطلب منه / آرائه حول مشروعك الحالي.انتبه؛فكر في مدى توافق تصوراته مع تصوراتك.
  5. تقدير:كل صباح قم بتدوين ملاحظة (فقط لاجل عينيك) حول ما تتوقع إنجازه في ذلك اليوم والمدة التي تتوقع أن تستغرقها.وفي نهاية اليوم، قارن تلك الملاحظة بما حدث بالفعل لترى إلى أي مدى كنت بعيدًا.لتحسين هذا المجال، فكر في أسباب الاختلافات وما يمكنك اعتباره من شأنه أن يجعل تخميناتك أكثر دقة.

يمكنك دائمًا التنافس مع زملائك المبرمجين ومعرفة مدى جودة قدراتك في التفكير.يمكنك تجربة مواقع مثل www.topcoder.com أو www.spoj.pl أو wwww.codechef.com ، يوفرون لك صفوفًا ويمكنك معرفة مدى جودة أداءك.ومع ذلك، فإن هذه الاختبارات تختبر عقلك الخوارزمي فقط وليس الطريقة التي تبرمج بها.إذا تم طرح هذا السؤال عليّ، فسأقول إنني متعلم دائم وأؤمن بارتكاب الأخطاء وتصحيحها، ولست خائفًا من انتقاد الكود الخاص بي ولا أتردد في مطالبة الآخرين بالإشارة إلى خطأي، أنت يمكن أن تقرر ما هو المقياس الذي يجلس عليه.

تحديد مقياس 100%.

عرّف نفسك بأنك تبقى عند علامة 100.0.

التعرف على مواقف المطورين الآخرين والشخصيات الشهيرة في مجال تكنولوجيا المعلومات.

احسب كم أنت أفضل.

لقد سُئلت هذا السؤال عدة مرات.عندما خرجت للتو من الجامعة قلت 7/8.الآن بعد أن عملت لبضع سنوات أقول 4 على الرغم من أنني أعتقد أنني الآن أفضل بلا حدود.

لا أرى 0-10 كرسم بياني لخط مستقيم.أرى أنه أكثر من الرسم البياني الأسي.من المؤكد أنني ما زلت أقول 4 من أصل عشرة ولكني أعتقد أنني أفضل من 90٪ من المبرمجين الموجودين هناك.لقد رأيت بعض أعمالهم وهذا يخيفني.لقد عملت على برنامج SSL للبرامج المصرفية ومن المخيف أنه يعمل بالفعل.إذن هناك 10% من المبرمجين أفضل مني بكثير.لست متأكدًا مما إذا كنت سألحق بهم أبدًا.الوصول إلى 4 في رأيي أمر سهل.من الصعب الوصول إلى 5.من 5 إلى 6 أمر مخيف بشكل لا يصدق.

المبرمجون العظماء يستحقون 8 أو 9 أو 10.

خبرة.كلما اكتسبت نطاقًا أوسع من الخبرة "كلما أصبحت أفضل".أنت تعرف فقط ما مررت به.

حجم وتعقيد النظام الذي قمت بتطويره (أو العمل فيه بنجاح دون إتلافه).

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

أود تحليل السؤال أولاً.

يعتمد التحليل على أشياء قليلة مثل اللغة ، والإطار ، وطبيعة المشكلة ، (أنا PHP و WordPress Guy ، لذلك الإجابة في هذا السياق) 1.تصحيح البرنامج المساعد ، 2.بناء من الصفر ، 3.استخدام واجهة برمجة التطبيقات

سيكون نهائي المشترك (في معظم الحالات) 1.فهم نطاق المعطى (أو المبني بالفعل) للوظيفة (نسبة إلى بيان المشكلة الحالية) 2.حساب واحدة من أفضل طريقة لحل (هناك بالتأكيد أكثر من طريقة في كل مرة ...) 3.الترميز 4.اختبار في سيناريوهات الوقت الحقيقي (لضبط الأداء) 5.في المراحل الأولية لأي مبرمج، تكون جميع الخطوات الأربع متكررة حتى الحصول على الحل النهائي، ولكن مع نمو الخبرة، تصبح الخطوة 12 متكررة.

القدرة على فهم الفلسفة الأساسية لأي لغة أمر عفريت.الراحة هي موقف حل المشكلات.

وفي PHP، أعتقد أن عمري 6.5.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top