python - لغة - كورس بايثون كامل بالعربي




أفضل الطرق لتعليم المبتدئين بالبرنامج؟ (20)

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

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

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

اللغة التي نعمل بها هي Python ، ولكن النصيحة في أي لغة هي موضع ترحيب.

كيف أساعد

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

  • تمارين المبتدئين وأفكار المشروع
  • موارد للمبتدئين
  • Screencasts / blog posts / free e-books
  • اطبع كتب جيدة للمبتدئين

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

الموارد عبر الإنترنت للمبتدئين في التدريس:

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


Python package VPython - 3D Programming for Ordinary Mortal ( فيديو تعليمي ).

مثال الكود:

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

vipthon كذاب الكرة http://vpython.org/bounce.gif


http://tryruby.hobix.com/"> محاولة استخدام روبي (في متصفحك)


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


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


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


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

COMP1917 الحوسبة العليا - دورة 2008 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

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

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


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


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

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

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

القاعدة الذهبية هنا هي إلقاء نظرة على أسلوب الطالب المائل.


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

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


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

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


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

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

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


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

تحرير [ جاستن قياسي ]

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


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

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


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

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

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

تحرير: [جاستن قياسي]

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


لا أعرف ما إذا كان أحد قد ذكر هذا هنا ، ولكن ، قد ترغب في التحقق من Zed Shaw في Learn Python the Hard Way

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


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

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

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

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

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

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

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

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

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

  • لعبة الجلاد
  • تجربة مع الروبوتيات ( Vex و Mindstorms هي خيارات)

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

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

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

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

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

أنا لا أعرف كيف هو wikibooks للغات أخرى ، ولكن أنا شخصيا تعلمت python من ويكي الكتب كما كان في فبراير 2007

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


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

أكبر عقدين للمبرمجين الجدد هي في كثير من الأحيان:

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

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

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

تنويه: عملت على أليس.







language-agnostic