أفضل الطرق لتعليم المبتدئين البرمجة؟[مغلق]

StackOverflow https://stackoverflow.com/questions/3088

  •  08-06-2019
  •  | 
  •  

سؤال

السؤال الأصلي

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

ما الذي يمكنني فعله بشكل أفضل لتعليمه بشكل فعال؟هل هناك ترتيب منطقي يمكنني استخدامه لاستعراض المفهوم تلو المفهوم؟هل هناك تعقيدات يجب أن أتجنبها حتى وقت لاحق؟

اللغة التي نعمل بها هي بايثون, ولكن نرحب بالمشورة بأي لغة.


كيف أساعد

إذا كان لديك أشياء جيدة يرجى إضافة ما يلي في إجابتك:

  • تمارين للمبتدئين وأفكار المشاريع
  • مصادر لتعليم المبتدئين
  • تسجيلات للشاشة / منشورات مدونة / كتب إلكترونية مجانية
  • طباعة الكتب التي هي جيدة للمبتدئين

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


الموارد على الانترنت لتعليم المبتدئين:


الكتب المطبوعة الموصى بها لتعليم المبتدئين

لا يوجد حل صحيح

نصائح أخرى

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

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

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

بعض المشاريع:

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

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

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

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

بعض المشاريع:

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

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

بعض المشاريع:

  • تتريس
  • محرك بلوق يعتمد على الملفات النصية
  • المزيد من أعمال الروبوتات المتقدمة

يمكنك محاولة استخدام أليس.إنه برنامج ثلاثي الأبعاد مصمم للاستخدام في دروس البرمجة التمهيدية.

غالبًا ما يكون العائقان الأكبر أمام المبرمجين الجدد هما:

  • أخطاء في بناء الجملة
  • الدافع (كتابة شيء مفيد وممتع وليس مفتعلًا)

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

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

تنصل:لقد عملت على أليس.

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

بعد الشعار، انتقل إلى Python أو Ruby.أوصي بـ Python، لأنها مبنية على ABC، والتي تم اختراعها بغرض تدريس البرمجة.

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

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

XKCD يصف قوة بايثون بشكل أفضل قليلاً:"You're flying! How?" "Python!"

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

من هناك، المعيار هو C أو C++.والحرية في هذه اللغات تكاد تكون وجودية.أنت الآن مسؤول عن إدارة الذاكرة الخاصة بك.ليس هناك جمع القمامة لمساعدتك.هذا هو المكان الذي تقوم فيه بتعليم الخوارزميات المتقدمة حقًا (مثل الدمج والفرز السريع).هذا هو المكان الذي تتعلم فيه لماذا يعتبر "خطأ التجزئة" كلمة لعنة.هذا هو المكان الذي تقوم فيه بتنزيل الكود المصدري لنواة Linux والنظر إلى الهاوية.ابدأ بكتابة مخزن مؤقت دائري ومكدس لمعالجة السلسلة.ثم اعمل في طريقك للأعلى.

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

يحرر [جوستين ستاندرد]

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

حزمة بايثون في بايثون - برمجة ثلاثية الأبعاد للبشر العاديين (فيديو تعليمي).

مثال الكود:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

الكرة النطاطة لـ VPython http://vpython.org/bounce.gif

ابدأ برسومات السلحفاة في لغة بايثون.

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

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

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

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

إذا كان هذا الدافع موجودًا، فكل شيء آخر هو مجرد تفاصيل بسيطة.

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

أتمنى أن يساعدك هذا

http://tryruby.hobix.com/">جرب روبي (في متصفحك)

وهذا كتاب رائع كان إخوتي الصغار يتعلمونه:

http://pine.fm/LearnToProgram/

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

إذا كان مهتمًا، أليست التفاصيل الصغيرة هي الأجزاء الجيدة؟باستخدام بايثون، لقد قمت بالفعل بقطع واجهة المستخدم الرسومية منه حتى يختفي هذا الارتباك.لماذا لا تختار مشروعًا أو لعبة أو شيء من هذا القبيل وتنفذه.يمكن تنفيذ لعبة تخمين الأرقام الكلاسيكية hi-lo ببساطة من سطر الأوامر في 20-30 سطرًا من التعليمات البرمجية (اعتمادًا على اللغة بالطبع) وتمنحك المتغيرات والشروط والحلقات وإدخال المستخدم.

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

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

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

يحرر:[جوستين ستاندرد]

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

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

بعد Hello World، انتقل إلى إنشاء بعض المتغيرات الأساسية، الحسابية، ثم إلى المنطق المنطقي وعبارات if/else.إذا كان لديك أحد كتب البرمجة القديمة، فاطلع على بعض الأمثلة المبكرة واطلب منه الاطلاع عليها.لا تحاول تقديم الكثير دفعة واحدة، وإلا سيكون الأمر مربكًا ومربكًا.

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

كنت أقوم بتدريس البرمجة وأخيك لديه ميزة رئيسية واحدة عن معظم طلابي الذي يريد تعلمها :)

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

أنا شخصياً أعتقد أن بايثون وروبي سيصنعان لغات أولى رائعة.

يحرر:قائمة مهام البرمجة للمبتدئين قد يكون الظهور بين عشية وضحاها هو ما تبحث عنه.

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

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

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

القاعدة الذهبية هنا هي اكتشاف أسلوب الطالب في الميول.

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

COMP1917 الحوسبة العليا - الجلسة الأولى لعام 2008 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

إذا لم يعمل الرابط فإليك المسار:

الصفحة الرئيسية -> iTunes U --> الهندسة --> COMP1917 الحوسبة العليا - الجلسة 1 لعام 2008

هناك Wikibook جيد جدًا لتعلم لغة بايثون.

لا أعرف كيف هي كتب الويكي للغات الأخرى، لكنني شخصيًا تعلمت لغة بايثون من كتاب الويكي كما كان الحال في فبراير 2007

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

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

بعض المشاريع المحتملة (بدون ترتيب معين):

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

  • قم بإنشاء محول لدرجة الحرارة باستخدام قائمة تأخذ مدخلات المستخدم لاختيار نوع التحويل الذي يريد المستخدم القيام به.بعد اختيار التحويل والقيام به، يجب أن يعود إلى القائمة الرئيسية.

    فيما يلي مثال لمحول موسع بنفس الفكرة: http://pastebin.org/6541

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

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

  • خذ مدخلات لعدد من البنسات (يفترض أنها كبيرة) وقم بتحويلها إلى فئات أكبر.على سبيل المثال، 149 بنسًا = 1 دولار، وربع واحد، و2 دايم، و4 بنسات.

  • إنشاء مدير قائمة بسيط.تكون قادرًا على إضافة/حذف القوائم وإضافة/حذف الإدخالات في تلك القوائم.فيما يلي مثال لمدير قائمة عيد الميلاد: http://pastebin.org/6543

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

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

فقط اجعلها ممتعة!

من المثير للدهشة أن Scala قد يكون الأسهل إذا حاولت كوجو

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

بعد الاطلاع على بعض الكتب الإلكترونية المجانية، وجدت أن أفضل كتاب لتعلم البرمجة هو Head First Programming الذي نشرته دار O'Reily Press.يستخدم Python كلغة ويمنحك برامج للعمل عليها منذ البداية.كلهم أكثر إثارة للاهتمام من "Hello World".إنه يستحق المال الذي أنفقته عليه، وبما أنه قد تم إصداره لبعض الوقت، فقد تتمكن من العثور على نسخة مستعملة أرخص على موقع Ebay أو Amazon.

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

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

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

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

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

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

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

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