JavaRush /مدونة جافا /Random-AR /لياقة الدماغ. المهام الحالية لرفع مستوى مهارات البرمجة

لياقة الدماغ. المهام الحالية لرفع مستوى مهارات البرمجة

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

مواقع بها مهام للمبرمجين

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

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

  2. الممارسة البرمجة

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

  3. TopCoder

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

  4. CodeKata

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

  5. جامعة بكين القاضي على الإنترنت لـ ACIP/ICPC

    جامعة بكين القاضي عبر الإنترنت لـ ACIP/ICPC هي صفحة من جامعة بكين تحتوي على مهام للمبرمجين من مختلف المسابقات والمسابقات. يتم تحديث الموقع بانتظام، ويمكن حل المشكلات في الوقت الفعلي، ويتم تقييم الحلول من قبل لجنة من خبراء جامعة بكين.

  6. مشروع أويلر

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

  7. ديلي وتف

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

  8. Tproger

    موقع ممتاز باللغة الروسية يحتوي على مهام خوارزمية تُستخدم لاختبار مهارات المتخصصين أثناء المقابلات الفنية في شركات مثل Google وFacebook وغيرها. هناك العديد من المشاكل المقدمة، بما في ذلك المشاكل الأصلية، بمستويات متفاوتة من الصعوبة.

  9. مسابقات البرمجة آل زيمرمان

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

  10. تيموس القاضي اون لاين

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

5 مهام مثيرة للاهتمام

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

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

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

    حل:

    У данной задачи больше одного решения, так How она служит для того, чтобы оценить креативность сотрудника, умение быстро находить выход из стрессовой ситуации и неординарно мыслить. Вот наиболее классический вариант решения: лечь How можно плотнее к днищу блендера, чтобы его лезвия крутorсь над вами.

  2. Сколько людей было на конференции?

    Задача: На конференции каждый гость пожал руку всем остальным. Было 66 рукопожатий. Сколько человек было на научной конференции?

    Другая классическая программистская задача из тех, которые часто дают на первых этапах технических собеседований.

    Классическое решение:

    Допустим, на конференции было n человек. Первый человек пожимает руку всем остальным: n-1 раз (n-1 человек). Второй человек пожимает руку всем остальным (но не первому, так How это уже было сделано): n-2 раза. 3-й человек пожимает руку всем остальным: n-3.

    Таким образом, общее количество рукопожатий будет = (n-1) + (n-2) + (n-3) + …… 0;
    = (n-1) * (n-1 + 1) / 2 = (n-1) * n / 2 = 66
    = n ^ 2 -n = 132
    = (n-12) (n + 11) = 0;
    = n = 12 ИЛИ n = -11

    Вариант -11 исключен, поэтому ответ: 12 человек.

  3. Бар и 25 стульев.

    Еще одна классическая и весьма остроумная задачка, на этот раз посложнее.

    Задача: Есть бар с 25-ю стульями, которые расположены в линию. Посетители этого бара — антисоциальные личности, поэтому, когда они заходят в бар, то всегда стараются найти место How можно дальше от остальных. Если постоянный посетитель заходит в бар и обнаруживает, что свободного места без соседства с кем-либо нет, он разворачивается и уходит. Владелец бара, естественно, хочет видеть можно больше посетителей. Владелец может указать место, на которое нужно сесть, только первому клиенту, тогда How все остальные сами выберут себе самое дальнее место от других. Предположим, что места пронумерованы от 1 до 25. Какое место должно быть занято первым?

    Решение:

    Первый человек должен сесть на стул 9 or 17 (из-за симметрии, не имеет значения, Howое именно из двух мест). Предположим, он выбирает место 9. Следующий человек выберет место 25, так How оно самое дальнее от места 9. Следующие два человека займут места 1 и 17. Следующие три займут 5, 13 и 21. Следующие шесть будут занимать стулья 3, 7, 11, 15, 19 и 23. Таким образом, в баре разместится максимум 13 человек, и никто не будет сидеть рядом с другим человеком. Если место, отличное от 9 or 17, будет выбрано первым, общее количество посетителей бара будет меньше 13.

  4. Деньги в карманах и религия.

    Интересно составленная задача на нахождение алгоритма.

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

    حل:

    نبدأ العد من المعبد الأخير:

    بعد زيارة المعبد الأخير (1) لم يبق لديه أي أموال، لذا => ​​(0 + 100) / 2 = 50. كان لديه 50 دولارًا قبل زيارة المعبد الأخير

    قبل زيارة المعبد السابق (2)، كان لديه (50 + 100) / 2 = 75.
    وقبل زيارة المعبد السابق (3)، كان لديه (75 + 100) / 2 = 87.5.
    قبل زيارة المعبد السابق (4) كان لديه (87.5 + 100) / 2 = 93.75.
    قبل زيارة المعبد السابق (5) كان لديه (93.75 + 100) / 2 = 96.875 - المبلغ يتجاوز الشروط الأولية.
    الإجابة: كان لدى الشخص في الأصل 93.75 دولارًا وقام بزيارة 4 معابد.

  5. حادثة في الميدان.

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

    المشكلة: تم العثور على رجل ميت في حقل قمح. أمسك المباراة بإحكام في يديه. لماذا مات الرجل؟

    حل:

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

الخاتمة

حسنًا، بالنسبة لأولئك الذين يجدون أن هذه المشكلات بسيطة جدًا أو عامة جدًا، فلدينا مشكلات Java أكثر تعقيدًا ، بما في ذلك المشكلات الصعبة التي يتم طرحها غالبًا أثناء المقابلات مع مبرمجي Java. إذا كنت تعرف ألغازًا مثيرة للاهتمام للمبرمجين أو ترغب في مشاركة مهمتك المفضلة، فاكتب في التعليقات.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION