اريد ان اتعلم البرمجة لكنني لا اعلم من اين ابدأ

  • الهدف الاساسي من هذا المقال هو جعل تعلم البرمجة ممكن وفي متناول اليد لاي شخص!

اسئلة متكررة :

“ما هي لغة البرمجة التي يجب أن أتعلمها إذا كنت جديدًا؟”

“أي لغات البرمجة هي الأكثر طلبا للوظائف؟”

“ما هي لغة البرمجة الأكثر شعبية؟”

افضل لغات البرمجة!

إذا كنت تبحث عن تصنيف رسمي لأفضل لغات البرمجة ، فيمكنك العثور عليه هنا: IEEE Spectrum top programming languages

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

إقرأ أيضا:

كيفية اختيار لغة البرمجة؟

علوم الكمبيوتر تعد مجالا تراكمي بالكامل للدراسة و هذا يعني أن كل موضوع متتالي يبنى على موضوع سابقة.

إذا كنت قد حاولت في السابق تعلم البرمجة في المدرسة ، وقد فعلت أفضل ما لديك ، لكنك فشلت – فإن المشكلة ليست فيك

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

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

بضع كلمات من النصائح

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

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

نعم ، من الصعب تعلم البرمجة ، ليس بسبب من أنت ، ولكن لأن هناك الكثير من المواضيع التي يجب تعلمها.

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

هذا السيناريو سوف يحدث مرارا وتكرارا. كيف تتعامل مع هذا الموقف ، في كل مرة يحدث ذلك ، هذا العامل الوحيد الذي سيحدد نجاحك.

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

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

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

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

الكثير من المواضيع لن تكون منطقية في المرة الأولى. لذلك ، فقط ابتعد عن افكارك السلبية.

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

اسأل نفسك أسئلة مثل:

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

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

1 — أساسيات علوم الحاسوب

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

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

2 — الافتراضات المنطقية “Propositional Logic” ( اختياري )

لا ، ليس عليك أن تكون قوياً في الرياضيات لكي تكون مبرمجًا. يمكن أن تكون مهارات الرياضيات مفيدة ، لكنها ليست ضرورية.
إذا كنت غير مؤمن بشأن قدراتك في الرياضيات ، فإنني أوصي بتعلم المنطق الافتراضي. المبادئ التي يغطيها المنطق الإفتراضي هي لبناء اجزاء البرمجة.
يمكنك معرفة المنطق الإفتراضي من هذا البرنامج التعليمي على YouTube: Basic Concepts in Propositional Logic.

3 — Java Programming

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

تعد Java واحدة من أكثر لغات البرمجة طلبًا. تم تصنيفها كلغة برمجة موجهة للكائنات “object-oriented programming language”(ستعرف ما يعنيه هذا لاحقًا) وتستخدم لصنع تطبيقات سطح المكتب والويب والهواتف الذكية.

إذا كنت تفضل التعلم من خلال الكتب ، فإنني أوصي بما يلي: Head First Java.

إذا كنت تبحث عن فيديو تعليمي ، فنوصيك بمشاهدة مقاطع الفيديو رقم 1-19 و 31 و 33 و 88 و 93 في البرنامج التعليمي جافا على YouTube بواسطة  Derek Banas

Java Video Tutorial.

سيوجهك أول فيديو في البرنامج التعليمي على YouTube لتنزيل برنامج كمبيوتر يسمى Eclipse. هو بيئة التطوير المتكاملة (IDE). يمكنك التفكير في IDE كمصطلح خيالي لمحرر الكلمات الذي تم إعداده للمبرمجين. إنه مجرد تطبيق كمبيوتر يوفر محرر نصوصًا للبرمجة ، إلى جانب أدوات أخرى لتشغيل برامجك. إليك الرابط الخاص بمقطع فيديو Derek Banas على YouTube حول كيفية تنزيله   Install Eclipse for Java.

4 — الخوارزميات وهياكل البيانات ( Algorithms and Data Structures )

الخوارزميات عبارة عن مجموعة من الإرشادات (أو الخطوات) لأداء مهمة محددة ، حيث يجب تحديد كل خطوة بشكل واضح ممكنة التنفيذ ومحدودة (بمعنى أنها لا تستمر في التنفيذ بلا حدود).
هياكل البيانات هي وسيلة لتنظيم البيانات في ذاكرة الحاسوب.
تعد الخوارزميات وهياكل البيانات من أكثر المواضيع صعوبة في البرمجة. لا تحتاج إلى تعلم الخوارزميات لتحقيق الكفاءة الأساسية في البرمجة. ومع ذلك ، إذا كنت تطمح إلى العمل كمهندس برمجيات في إحدى شركات التكنولوجيا ذات السمعة الطيبة ، فمن المتوقع أن تثبت فهمك للخوارزميات وهياكل البيانات أثناء المقابلات.
 ملاحظة، إن البرنامج التعليمي أدناه يأخذك في مهارات الخوارزمية من المبتدئ إلى الخبير:  Udemy tutorial on Algorithms and Data Structures. سواء كنت ترغب في تعلم الخوارزميات وهياكل البيانات أو الاستعداد للمقابلات الفنية ، فإن هذا البرنامج التعليمي هو أفضل رهان للنجاح.
ملاحظة: الدورة باهظة الثمن ولكنها ضرورية. تمكنت من الاتصال بالمدرب ،  التكلفة  99.99 دولارًا.

5 — Android development

إن تطوير Android هو ، في رأيي ، أحد أكثر تطبيقات برمجة Java متعة. يتم برمجة تطبيقات Android في الغالب في Java و حديثا من خلال لغة Kotlen، لذلك بمجرد أن تتعلم Java ،ستكون مستعدًا لتعلم Android.

إليك أفضل فيديو تعليمي مجاني لبدء تعلم Android: ل Udacity-Android Development for Beginners.

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

ومع ذلك ، إذا كنت على استعداد لإنفاق الأموال على كتاب متميز ، فإنني أوصي بشدة بما يلي: Head First Android Development: A Brain-Friendly Guide.

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

مصادر مفيدة

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

هناك الكثير من المواقع التعليمية حيث يمكنك العثور على دروس البرمجة.

افضلها  CodecademyUdemyUdacityTeam Treehouse, Khan Academy.