ازاميل/ متابعة: هل تود تعلم لغة برمجة جديدة ، ولكنك لا تعرف من اين وكيف تبدأ؟. بحثت ووجدت كتب تساعدك في تعلم اللغة التي تحبها و لكنك وجدت طريقتها مملة في الطرح ، حيث مطلوب منك ان تكون فقط مجرد متلقي لمجموعة من القوانين و المصطلحات علي مدار رحلة التعلم.
حسنا اذا لم تفلح معك الطرق السابقة، قد تكون هذه الطريقة مناسبة لك، هذه الطريقة مناسبة لاي شخص يحب ان يتعلم لغة برمجة جديدة سواء كان مبرمج او حتي شخص لم يتعرض للبرمجة من قبل. وهي موجهة اكثر للاشخاص الذين يريدون تعلم لغة برمجة جديدة لهدف. مثل هدف انشاء مشروع او شركة ناشئة. فتعلم البرمجة لانشاء مشروع يسهل من العملية ويعتبر دافع ذاتي لاكمال عملية التعلم.
هم خمس خطوات عملية، انصحك باتباعهم بنفس الترتيب، فهي تنتقل بك من مرحلة الي اخري بحيث ان كل مرحلة تعتمد علي سابقتها
1- في البداية اقرأ قوانين هذه اللغة او ما يعرف بال syntax
ليس من المهم ان تعرف كل قوانينها، وبالتاكيد ليس مطلوب ان تحفظهم كلهم. فقط اجعل هذه القوانين مألوفة لك بالشكل الذي يمّكنك من تمييز هذه اللغة عند النظر اليها
من المهم معرفة القواعد الاساسية للبرمجة باستخدام هذه اللغة و هي امور ثابتة في معظم لغات البرمجة. مثل معرفة كيفية التعامل مع الارقام (integers) ، التعامل مع المتسلسلات او التعامل مع النصوص (strings) و التعامل مع المتواليات (arrays). وقواعد الاشتراط مثل (if else ) وغيرها من اساسيات لغات البرمجة.
تذكر لا تحفظها ولا تحاول معرفتها كلها. فقط اجعلها مألوفة الي عينك…….. فقط اجعلها مألوفة الي عينك
2- ابحث عن مشروع مفتوح المصدر مكتوب بهذا اللغة
بالطبع ستجد المئات من المشاريع المكتوبة بهذه اللغة علي موقع البرمجيات مفتوحة المصدر الشهير github وغيره من مواقع استضافة البرمجيات مفتوحة المصدر، اختر المشروع الذي يناسب اهتماماتك او مشروع قريب في الفكرة الي شئ تريد انجازه.
واحرص علي ان يكون مشروع صغير غير معقد. من الافضل ان تبدأ بمشروع لانجاز المهام (Todo List). هذه النوعية من المشاريع لها مفهوم بسيط يسهل فهمه للجميع وفي نفس الوقت تكون صغيرة الحجم.
هنا لا تحاول فهم كل شئ، فقط ابدأ مشروع جديد في محررك المفضل. وافتح نافذتين جنبا الي جنب، احداهما تحتوي علي المشروع المنتهي الذي اخترته من github والاخر هو مشروعك الجديد الذي لا يحتوي علي اي شئ.
3- ابدأ بكتابة المشروع حرفيا من جديد
ابدأ بكتابة كل سطر من المشروع المفتوح المصدر الي مشروعك الجديد. لاحظ هنا اني ذكرت الكتابة وليس النقل (مثل النسخ واللصق). قم بتقسيم مشروعك بنفس الهيكيلية للمشروع الذي اخترته. واكتب كل سطر فيه كما هو.
المهم في هذه المرحلة ان يعمل مشروعك بنفس الطريقة التي يعمل بها المشروع الذي اخترته. لا اكثر ولا اقل. ليس مهم الان ان تفهم كل شئ. فقط احرص علي الحصول علي نفس النتيجة و مطابقتها للمشروع النهائي
هذا يساعدك علي تتبع اكثر الدوال المستخدمة في هذه اللغة. و معرفة افضل الطرق لاستخدامها (best practices). كما انه يساعدك علي فهم تسلسل الكود في هذه اللغة (work flow) والهيكلية الصحيحة لتقسيم مشاريعك (project architecture).
4- ابدا بالتعديل علي الاجزاء التي لم تفهمها جيدا اثناء كتابة المشروع
الان في هذه المرحلة ينبغي ان تكون اكثر اريحية باستخدام هذه اللغة، لقد كتبت مشروع كامل بها، ولكنك ما زلت لا تفهم بعض الاجزاء،فقط كتبتها ولم تعيرها الاهتمام.
ابدأ بالرجوع لهذه الاجزاء وابدا بتغييرها او باللعب بالعناصر المكونة لها، و انتبه للمخرجات، ما أثر هذا التغيير علي طبيعة عمل المشروع. وما هي الاجزاء الاخري التي تأثرت بهذا التغيير ايضا.
اذا حددت الاجزاء التي تأثرت بهذا التغيير، ستستطيع تكوين فكرة عن وظيفة هذا الجزء من المشروع وكيف يؤثر علي طبيعة عمله.
اثناء ذلك استعن بمواقع البحث و الموقع الشهير للمبرمجين (stackoverflow.com) في ايجاد حلول او شرح اعمق للاجزاء التي ما زلت لا تفهمها او لا تعلم اهميتها.
5- الان اعد كتابة المشروع من البداية وليكن هدفك الان ان يعمل كالسابق بلا اخطاء
والان ابدأ مشروع جديد، ستكتبه انت بدون الاستعانة بالمشروع القديم. ستقوم بالتخطيط لهيكلة المشروع و كتابة الكود من البداية. لن تكون بمفردك كليا، ما زال معك محرك البحث و موقع stackoverflow اتخطي العقبات التي ستواجهها.
حاول هذه المرة ان تنوع في طريقة حل المشكلة و ان تجعل المشروع يعمل كسابقه و لكن هذه المرة بكود مختلف، او بطريقتك الخاصة بك.
عندما تنتهي من كتابة المشروع ولكن بمفردك هذه المرة. ستستطيع كتابة اي فكرة تريد انجازها بهذه اللغة. ولن تجد نفسك متردد كثيرا اذا واجهتك مشاكل. فانت الان ملم بالمعلومات الاساسية وجميع عناصر انشاء مشروع من البداية للنهاية.
تاثير هذه الطريقة علي طريقة تعلمي و عملي
في البدء عندما تخرجت من كلية الحاسبات والمعلومات في مصر كنت اعرف لغات برمجة C++ و C# ولكن هذه اللغات لم تساعدني كثيرا في انجاز مشاريع تجريبية بشكل سريع، فهي مصممة لمشاريع الشركات الكبيرة او مشاريع معقدة و مصممة للتعامل مع قواعد بيانات ضخمة، فقررت خوض تجربة تعلم لغات جديدة تتيح لي التحرك بحرية اكبر وتجربة عدد من الافكار التي وددت تنفيذها في ذلك الوقت.
ومع استخدام هذه الطريقة تمكنت من تعلم لغة Objective C لبرمجة تطبيقات الايفون، والآن لدي 6 تطبيقات علي متجر تطبيقات ابل، اخرهم تطبيق انجز كتاب لملخصات الكتب.
وتعلمت مؤخرا HTML, CSS , Javascript و اطار العمل backbone لبرمجة مواقع الصفحة الواحدة. واخر مشاريعي بهم موقعي انجز كتاب(الموقع المصاحب للتطبيق) و موقع الروتين (لمتابعة الروتين اليومي للاشخاص الايجابيين)
ماذا تنتظر، تعلم لغة جديدة و شاركنا مشروعك الجديد.
عن موقع عالم التقنية: بقلم محمد عبد العليم/مبرمج ايفون حر
10 مواقع تعليمية لتعلم البرمجة بطريقة سهلة
عن موقع صدى التقنية
إذا كنت من الآلآف المهتمين بالإنترنت والكمبيوتر وتريد تعلم البرمجة ولكن لا تعرف من أين تبدأ؟ أو تشعر بأن الوقت فات ولن تستطيع تعلم البرمجة، فستساعدك قائمة المواقع التعليمية التالية في البدء في تعلم البرمجة بطريقة تفاعلية سهلة.
Codecademy: بفضل واجهته المميزة والدورات المنظمة بطريقة جيدة، Codecademy هو أفضل موقع لتعلم البرمجة بطريقة تفاعلية على الإطلاق، ويمكنكم من الإختبار بين تعلم أساسيات الويبPHP، Java Script، jQuery، Python، Ruby، كل درس يوفر لك لوحة لشرح ضروريات وتعليمات البرمجة التي تقوم بها، وتوجد لوحة أخرى تسمح لك بتجربة الأكوادن ثم إختبار مدى صحتها، لا تقلق من إرتكاب الأخطاء، فاللوحات ستقوم بتنبيهك للأخطاء التي تقوم بها مع توفيرها للمحات لمساعدتك على الكتابة.
Code Avengers: موقع تم تصميمه لكي يجعل الراغبين في تعلم البرمجة يحبون البرمجة، على الرغم من إنه لا يوفر دوراته إلا في HTML5، CSS3 و Java Script، ولكن كلا من هذه الدورات صُمم بعناية بالغة لتقديم الترفيه المناسب لكم ورفع مستوى إحترافكم في البرمجة بطريقة تشبه ممارسة الألعاب، وفي نهاية كل درس فعلا توجد لعبة صغيرة لتخفيف التوتر الناتج عن متابعة الدروس المتتالية، يمكنك كمبتديء أيضا اللعب في طريقة كتابة الأكواد ومتابعة التغيير الطاريء على النتائج في وقتها.
Code School: بعد إنتهائكم من الدورات في Codecademy و Code Avengers ورغبتكم في الإنتقال لمستوى أعلى فعليكم بزيارة Code School فهو المكان الأمثل لذلك، فهو يوفر لك دورات أكثر عمقا لزيادة خبرتك في هذا المجال، تُصنف دورات الموقع في 4 تيارات رئيسية ( Ruby, Java Script , HTML/CSS , iOS )، الدورات مقدمة بطريقة مبسطة مع تصميم ممتاز، كما يوفر لك أيضا تلميحات وأجوبة لمساعدتك في رحلتك للتعلم، أغلب الدورات المقدمة مجانا، ولكن البعض منها يجب عليك دفع مقابل مادي قد يصل إلي 25 دولار شهريان كذلك الأمر في Codecademy.
Treehouse: الدورات في Treehouse تميل أكثر لطباع تعليم خطوات صناعة مشروعك الخاص، بمعنى إن كنت من المبتدئين الذين لديهم هدفا محددا مثلا بناء موقع خاص أو صناعة تطبيق محدد، فأنت في المكان المناسب، الدورات مقسمة إلي وحدات أو مراحل مختلفة، بعد كل أول مرحلة المتعلم سيضطر لدفع رسوم إشتراك شهري قدرها 25 دولار للوصول للمراحل التالية، كما سيحصل على عضوية في منتدى الموقع كنوع من التميز، أيضا إن كنتم جادين في مستقبلكم بخصوص البرمجة، يمكنكم الإشتراك في خدماتهم الشهرية في مقابل 49 دولار للحصول على فرصة مشاهدة مقابلاتهم مع قادة هذه الصناعة، وايضا لمشاهدة الورش التدريبية المتطورة.
LearnStreet: إذا كنت من الشخصيات الجادة التي لا تفضل التسلية أثناء الدراسة فسيصبح LearnStreet هو مكانك المفضل، يقدم الموقع دوراته للمبتدئين المهتمين بتعلم Java Script، Python و Ruby، كل ما عليك هو الضغط على زر ” Start Course ” وستبدأ متابعة الدروس مع التمرينات.
Udacity: موقع يقدم لك مزيجا من المحاضرات المرئية والإختبارات المتطورة لتحقيق أعلى درجة من التفاعل بين الطلبة والمادة المقدمة، فأنت كنت ممن لا يفضلون القراءة ويرغبون في التعلم من المتخصصين في هذا القطاع مثل موظفي جوجل، فهذا هو الموقع الذي تبحث عنه، حيث يوفر الموقع مناقشات للمواضيع و الكثير من التعليمات مع إختبارات عديدة لتعزيز قدرتك على فهم مهارات معينة، كما يشتهر الموقع بتقديم مقاطع فيديو للشرح أكثر من أي موقع آخر والمحاضرين هم أساتذة حقيقيين و قدامى المحاربين في هذه الصناعة، ولكن عليك الإنتباه إن الدورات في الموقع غير مرتبطة ببعضها البعض، لذلك قد لا يصلح كنقطة بداية للعديد منكم ولكنه بكل تأكيد يعتبر كجامعة إفتراضية لتعزيز مهاراتكم وتطوير مستوى دراستكم في هذا المجال.
CodeHS: في CodeHS يمكنك تعلم برمجة الألعاب من خلال دروس مبسطة وممتعة وفي أثناء ذلك ستتمكن من تعلم كيفية حل المشاكل التي تواجهك في أثناء البرمجة بالإضافة إلي Java Script، تحريك الرسوم، هيكلة البيانات، تصميم الألعاب وأخيرا تحديات الألغاز، على الرغم من إختلافه في نوعية الدروس المقدمة مع باقي المواقع المذكورة ولكنه يتفق مع بعضها في إنه سيتوجب عليك دفع 25 دولارا شهريا لإستكمال رحلة التعلم الخاصة بك، الأمر يستحق إذا كنت ترغب في تعلم برمجة الألعاب على نحو فعال.
Khan Academy: ربما الدورات المقدمة على الموقع ليست منظمة كباقي المواقع ولكنها بالتأكيد ملعب مفتوح لكل الهواة والمبتدئين الذين يرغبون في تعلم التحريك والرسم والتفاعل مع الأكواد، فهي لا تأخذك إلى الإمام في تعلم اي لغة برمجة على وجه الخصوص ولكن النمط الذي تقدمه في شروحاتها هو المتبع في أغلب لغات البرمجة المماثلة، يمكنك البدء مع مقاطع الفيديو التي تشرح أساسيات البرمجة لتعلم المفاهيم الأساسية.
Scratch 2.0: هل تعتقد أن CodeHS و Khan Academy بداية صعبة للتعلم ؟ إذا ليس هناك أسهل من Scratch للبدء للمبرمجين الطموحين، في البداية كان متوفر كبرنامج للأطفال ليسمح لهم بخلق وتحميل مشاريعهم ومشاركتها على الموقع، ولكنه الآن متوفر الآن بنسخة 2.0 على شبكة الإنترنت، على الرغم من إنه لا يوفر تعليم كل شىء في عالم البرمجة، وإنما هو عبارة عن بعض الأوامر التي تعطي لشخصيات كارتوينة مرسومة مثل ” حرك القطة 10 خطوات للإمام “، ولكنه جيد في تعلم كيفية تفتيت المشاكل التي تواجه المبرمجين لمشاكل أصغر يمكن حلها منطقيا مع كل خطوة تقوم بها في البرنامج.
SQZLOO: SQL اللغة التي تم تصميمها لجعل أمر تخزين البيانات وإسترجاعها من قاعدة البيانات أمرا سهلا، هل تتخيل أن تعلم لغة مثل هذه سيصيبك بالملل الشديد؟ SQZLOO جاء ليسمح لك بتعلم اللغة بسعادة مع واجهة تفاعلية مميزة، الموقع يوفر لك شروحا مميزة للغة ولكن بوجود عيب واحد هو عدم وجود تلميحات أو إجابات لأسئلة المستخدمين في حال فشلهم في حل أحد المشكلات أو الإختبارات المقدمة.