كيف تبدأ تعلم أساسيات لغات البرمجة من الصفر

كيف تبدأ تعلم أساسيات لغات البرمجة من الصفر

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

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

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

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

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

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

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

تعلم الرياضيات

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

x = 7 + 8 / 2 - 1

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

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

التعرف على جهاز الحاسوب ومكوناته

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

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

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

إختيار لغة برمجة مناسبة

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

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

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

  • يمكنك تعلم أي لغة برمجة في أقل من شهر إذا كنت تعرف لغة البرمجة C، حيث سوف تتعلم فقط كيفية بناء الجملة البرمجية أو ما يعرف بـ Syntax الخاص باللغة الجديدة.
  • لغة البرمجة C تحتوي على أقل من 40 كلمة محجوزة مما يسهل عليك حفظ الأوامر الأساسية.
  • لغة البرمجة C لا تدعم البرمجة كائنية التوجه Object-Oriented ما يوفر عليك الكثير من المفاهيم التي لا تحتاجها في بداية تعلم البرمجة.
  • لغة البرمجة C تتعامل بشكل مباشر مع الذاكرة بحيث يكون المبرمج هو المسئول الوحيد عن التحكم في البيانات، وفي رأيي الشخصي أعتبر هذه الخاصية ميزة وليست عيب، فعلى أقل تقدير إذا ما قمت بإستخدام لغة برمجة أخرى لا تدعم التحكم بالذاكرة سوف تكون ملم بالأمور التي تقوم بها اللغة نيابة عنك (كمبرمج) وبالتالي تتمكن من كتابة الأكواد البرمجية بشكل أكثر إحترافية.

تعلم أساسيات لغة البرمجة

بعد أن تقوم بإختيار لغة البرمجة التي سوف تبدأ بها، يمكنك البدء في تعلم الأساسيات، حيث تبدأ أولا بإعداد أو تجهيز بيئة العمل المناسبة للغة البرمجة، فإن كنت ستبدأ بلغة البرمجة JavaScript سوف تحتاج إلى محرر للنصوص البرمجية وبرنامج متصفح الإنترنت، أما إذا كنت ستبدأ بلغة البرمجة php فسوف تحتاج إلى إعداد خادم للويب مثل Apache وسوف تحتاج إلى مفسر لغة البرمجة php، أما إذا كنت ستبدأ بلغة البرمجة C فسوف تحتاج إلى مترجم للغة Compiler وهو عادة ما يكون مدمج في بيئة العمل المتكاملة IDE كما تناولنا ذلك في إعداد بيئة العمل للبرمجة بلغة C.

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

بعد التطبيق على جزئية المتغيرات وأنواع البيانات يمكنك البدأ في التعرف على جمل التحكم في سير البرنامج، وهي تتمثل في الجملة الشرطية if statement وجملة الإختيار switch statement، وتعد هذه الجمل هي المحور الأساسي في تعلم البرمجة حيث تعتمد بشكل أساسي على المنطق، إذا حدث أمر ما يقوم البرنامج بتنفيذ كود معين وإذا حدث أمر آخر يقوم البرنامج بتنفيذ كود آخر وهكذا، هذه الجمل مبنية في الأساس على علم الرياضيات المتقطعة Discrete Mathematics.

بعد الإنتهاء من تعلم جمل التحكم في سير العمليات Control Structure تبدأ في تعلم الحلقات التكرارية، وهي تتمثل في ثلاثة جمل برمجية أساسية for loop و while loop و do while loop، وأي كانت لغة البرمجة التي سوف تتعلمها فإن هذه الجمل موجودة فيها، وتتمثل المعرفة بالحلقات التكرارية في تنفيذ أمر برمجي عدد محدد من المرات دون الحاجة لكتابة هذا الأمر البرمجي لهذا العدد من المرات، وهي أيضا من الأمور الهامة والأساسية في لغات البرمجة المختلفة.

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

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

تعلم الخوارزميات

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

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

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

دراسة علم هياكل البيانات

علم هياكل البيانات أو Data Structures هو علم يهتم بكيفية تخزين البيانات في الذاكرة العشوائية، وتتعلم فيه الخوارزميات المختلفة لإنشاء هياكل البيانات وكيفية التعامل مع البيانات التي تم تخزينها.

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

دراسة قواعد البيانات

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

في هذه المرحلة يمكنك تعلم لغة الإستعلامات الهيكلية Structured Query Language أو كما تعرف إختصارا بـ SQL وهي اللغة العامة التي يتم إستخدامها مع معظم برامج إدارة قواعد البيانات والتي تعرف بـ DataBase Management Systems أو إختصارا بـ DBMS ومن أمثلتها MSSQL و MySQL و SQLite و Oracle وغيرها الكثير من برامج إدارة قواعد البيانات التي تدعم هذه اللغة.

دراسة موضوعات متقدمة

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

ويمكنك دراسة الكثير من الموضوعات المتقدمة في البرمجة مثل التعامل مع الـ Sockets أو كما تعرف بـ Socket Programming وهي طريقة للتواصل بين البرامج المختلفة عبر الشبكات سواء كانت شبكات محلية أو شبكة الإنترنت.

Comments

  • Add new Comment
  • 2000  Character
  • Please enter Characters.