في هذا المقال سأقدم لك عدة نصائح ستساعدك في فهم الدروس التي تمر معك في أي لغة برمجة، وخصوصاً إذا كنت مبتدئ في تعلم البرمجة و تتعلمها بنفسك من النت مع الإشارة إلى أنك لست ملزماً باتباعها ما دام لديك أسلوبك الخاص الذي ساعدك على الفهم والإستيعاب بشكل أكبر.
حاول أكثر من مرة
قد تصادف أحيانا بعض الدروس أو بعض الأكواد التي قد لا تستطيع إستيعابها من أول مرة، فتقوم بتخطيها أو تركها وهذا أبداً غير صحيح لأن غالبية المواضيع إذا لم يكن كلها مرتبطة ببعضها البعض فعندما تقوم بتخطي أو ترك شيئاً ما فإنك لن تستطيع إستيعاب ما يليه، و هكذا ستتراكم لديك المفاهيم المبهمة حتى تصل لمرحلة أنك لا تطيق لغة معينة أو قد تكره البرمجة بشكل عام.
الحل لهذه المشكلة هو أن تقوم بتكرار قراءة الكود أو الدرس لعدة مرات، ففي كل مرة ستجد أنك تستوعب جزيئة معينة من هذا الدرس و هكذا حتى تستوعبه بشكل كلي. و لا تقلق أبدا إذا استغرق هذا الأمر منك عدة أيام، فإحدى الجزيئات استغرقت مني ما يقارب الأسبوع حتى استوعبتها بشكل تام.
إبحث ثم إسأل
في مجال البرمجة و التقنية بشكل عام ستواجه العديد من المشاكل التي يصعب عليك حلها، أو الدروس التي لا يمكنك استيعابها من مصدر واحد. في هذه الحالة يجب عليك أولاً أن تبحث عن الحل في المصادر المتعددة كالمواقع الرسمية، أو المدونات وغيرها، لأن هذا سينمي مهارات البحث لديك و بعد فترة ستصبح قادراً على إيجاد الحلول بشكل أسرع من الماضي. كما أن الشيء الذي بحثت عنه و قرأت عنه في أكثر من موقع سيكون من الصعب جداً عليك نسيانه و سيرسخ في ذاكرتك لفترة طويلة.
حسنا، بحثت و لم تجد حل لمشكلتك أو بحثت و لكن لم تستطع إستيعاب الحل.
الآن يمكنك التوجه لأحد الخبراء في مجال التقنية على وسائل التواصل الإجتماعي و سؤاله عن حل لمشكلتك.
الإنتقال من درس إلى آخر بدون تطبيق
من الأخطاء الشائعة التي قد يرتكبها أغلب المبتدئين قراءة الدروس أو الأكواد دون تطبيقها ظناً منه أنها مفهومة لديه فلا داعي لتطبيقها أو أن هذا سيجعله ينتهي من تعلم لغة معينة في فترة وجيزة، وهذا غير صحيح أبداً.
عندما تطبق ما تعلمته و تبحث عن تمارين إضافية لما تعلمته فإنك بذلك ربما تكتشف طرق أخرى أكثر إبداعاً، أو تواجه صعوبات معينة و تقوم بحلها، فتكون بذلك قد ألممت بمحاور كثيرة.
تدوين الملاحظات
التعلم دون تدوين الأشياء الهامة يعد مضيعة للوقت, فقد تصادف معلومات ذات أهمية كبرى أو محاور معينة ربما ستنساها مستقبلاً و أنت بحاجة لها، ففي هذه الحالة قم بتدوينها في دفترك الخاص أو في ملف خاص على حاسوبك حتى يسهل عليك العودة لها مستقبلاً إن احتجتها.
طور من لغتك الانجليزية
تعمدت وضع هذه النقطة في آخر المقالة للأسباب التالية:
اولا: البعض أو إذا لم يكن الأغلب قد ضجر من رؤيتها في عدة مقالات أو سماعها من أشخاص آخرين، فربما عند يراها أو يسمعها قد يعتقد أنها أهم ما في الأمر، أو أنه لا يمكنه التعلم بدونها.
ثانياً: أغلب المبتدئين لغتهم الانجليزية ليست جيدة.
لا يختلف اثنان أن المصادر المختصة بالبرمجة و التقنية بشكل عام ذات وفرة عالية باللغة الأنجليزية، فعندما تبحث عن شيء معين باللغة العربية ثم تبحث عنه مرة أخرى باللغة الانجليزية ستجد أن عدد نتائج البحث باللغة الانجليزية أكثر بكثير من العربية.
لذلك تعلمك للغة الانجليزية سيسهل عليك كثيراً التعلم و إيجاد الحلول للمشاكل التي قد تواجهك.
ثالثاً، إذا كانت لغتك الإنجليزية غير جيدة فهذا لا يعني أبداً أنه لا يمكنك البدء بالتعلم و الوصول لمستوى جيد جداً فالمصادر المتوفرة باللغة العربية قد تحسنت بشكل كبير في الآونة الأخيرة.
لذلك تعلم ما تريده، و قم بتحسين لغتك الإنجليزية قدر الإمكان أثناء فترة تعلمك حتى تحظى بكلاهما مستقبلاً.
الطريق الصحيح لتعلم البرمجة
تعلم البرمجة أصبح مهم جداً لأنها توفر الكثير من الفرص و الوظائف ذات الدخل العالي كون التقنية أصبحت موجودة في كل المجالات, كالتعليم و الطب و الهندسة و غيرها. و لعل ما يميز البرمجة بشكل أساسي عن غيرها من المجالات هو أنك تستطيع تعلمها لوحدك من المنزل, و لا تحتاج شهادة جامعية للعمل بها, و لا تحتاج سوى حاسوب حتى تبدأ بتعلمها و العمل بها.
في هذا المقال ستعرف ماذا يجب أن تتعلم خطوة خطوة و بترتيب صحيح حتى تصبح مطور مواقع, تطبيقات ديسكتوب, تطبيقات للهاتف و مطور ألعاب.
مسارات البرمجة
أول ما يجب عليك فعله حين تقرر تعلم البرمجة, هو تحديد المجال الذي تريد أن تتعلمه. فمثلاً تريد أن تصبح مطور تطبيقات ديسكتوب, مطور مواقع, مطور تطبيقات للهاتف أو مطور ألعاب.
إذا كنت تحب أكثر من مجال و هذا شيء طبيعي جداً, فعليك إختيار مجال واحد فقط للبدء به. بعد دراسة هذا المجال و بناء بعض المشاريع فيه و تحقيق ربح منها, عندها يمكنك البدء بمجال جديد.
من فضلك لا تقم أبداً بتعلم مجاليَن في وقت واحد لأنك ستفشل بسبب الضغط الذي سببته أنت لنفسك.
أول خطوة بالنسبة لأي شخص مبتدئ يريد تعلم البرمجة من الصفر هي تعلم المنطق البرمجي, أي تعلم الخوارزميات. بعد أن تتعلم الخوارزميات, الشيء الذي تنوي فعله هو ما يحدد ما الذي عليك تعلمه تباعاً حتى تصل لهدفك.
مسار تطوير المواقع
في حال أردت تعلم تطوير المواقع الإلكترونية ( Web Development ), فهنا عندك قسمين أساسيين:
- Front End: يقصد بها تعلم كيف تبني التصميم الذي سيراه المستخدم.
- Back End: يقصد بها تعلم كيف يتم معالجة و حفظ بيانات الموقع.
إذا أردت أن تعمل كمطور مواقع فلا يوجد أي مشكلة أن تتعلم تصميم المواقع و من ثم تتعلم كيف يتم معالجة البيانات و حفظها في الموقع.
ما الذي يجب أن تتعلمه لتصبح مصمم مواقع؟
لتصبح مصمم مواقع عليك تعلم الأشياء التالية تباعاً:
- HTML: لغة نستخدمها لتحديد الأشياء التي سنضيفها في صفحات الويب مثل الصور, العناوين و الفقرات.
- CSS: لغة نستخدمها لتحسين تصميم الأشياء التي أضفناها في صفحات الويب مثل تلوينها و تحديد أحجامها, مكان ظهورها, و تحديد أنواع الخطوط إلخ..
- Javascript: لغة نستخدمها لإضافة مؤثرات في صفحات الويب و لمعالجة البيانات التي يتم إدخالها و عرضها في الصفحات.
- JQuery: مكتبة مبنية بلغة Javascript نستخدمها في حال أردنا كتابة كود الـ Javascript بشكل مختصر و أكثر فعالية.
- Bootstrap: مكتبة توفر لنا كود CSS جاهز يمكننا إستخدامه بكل سهولة لتصميم صفحات ويب تظهر بشكل جميل جداً عند المستخدم سواء كان يستخدم حاسوبه أو هاتفه.
ملاحظة: ليس من الضروري أن تتعلم JQuery و Bootstrap و لكننا ننصحك بتعلمها لأن تعلمها سهل جداً و هما يستخدمان بشكل كبير جداً في تصميم المواقع.
ما الذي يجب أن تعرفه لتخزين و معالجة بيانات المستخدمين؟
يجب أن تتعلم كيف تتعامل مع قواعد البيانات ( Databases ) و ننصحك باستخدام قواعد بيانات MySQL لأنها الأكثر شهرة, مجانية 100% و التعامل معها سهل جداً.
يتبقى عليك تعلم شيء واحد فقط لتصبح قادراً على ربط تصميم الموقع بقاعدة البيانات.
الشيء الذي نضعه كوسيط بين قاعدة البيانات و تصميم الموقع يسمى API, و هذه الكلمة إختصار لجملة Application Programming Interface.
الـ API بشكل عام هو مجرد كود عادي تضعه في الموقع و يمكنك كتابته بأي لغة تريد و لست محصوراً بطريقة واحدة لبنائه. و الجميل هنا أيضاً أنه أصبح يوجد إطارات تطوير ( Frameworks ) كثيرة و مجانية يمكنك إستخدامها لبناء الـ API بكل سهولة حتى لا تضطر إلى كتابة كل الكود بنفسك.
من أشهر الإطارات المستخدمة لبناء الـ API نذكر:
- الإطار Nodejs المبني بلغة Javascript و التي يفترض أن تكون درستها سابقاً.
- الإطار Laravel و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
- الإطار Symphony و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
- الإطار Codelgniter و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
- الإطار CackePHP و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
- الإطار ASP Net Core و الذي يتطلب منك في البداية تعلم لغة #C لأنه مبني بها.
- الإطار Spring و الذي يتطلب منك في البداية تعلم لغة Java لأنه مبني بها.
يوجد إطارات و لغات أخرى لكن هذه الإطارات هي الأشهر حالياً. و يجب أن تعرف أنك لست مضطراً لإستخدام أي إطار حتى تبني API و لكن إستخدام إطار يعتبر أفضل بكثير بالنسبة للمبرمج و يوفر عليه الكثير من الوقت و الجهد.
مسار تطوير تطبيقات ديسكتوب
في حال أردت تعلم بناء تطبيقات سطح المكتب ( Desktop Applications ) فهناك خيارات عديدة يمكنك إختيار أحدها لبناء التطبيق و نذكر أهمها:
- يمكنك أن تتعلم لغة Java و من ثم تستخدم إطار JavaFX لبناء واجهة المستخدم الخاصة بالبرنامج.
- يمكنك أن تتعلم لغة #C أو ++C من ثم تستخدم إطار WPF لبناء واجهة المستخدم الخاصة بالبرنامج.
- يمكنك أن تتعلم لغة Javascript و من ثم تستخدم إطار Electronjs لبناء واجهة المستخدم الخاصة بالبرنامج.
- يمكنك أن تتعلم لغة Python و من ثم تستخدم إطار PyQT لبناء واجهة المستخدم الخاصة بالبرنامج.
طبعاً, سيكون عليك لاحقاً أن تتعلم كيف تتعامل مع قواعد البيانات من أجل تخزين بيانات المستخدمين و هنا يمكنك إستخدام أي نوع تريده و يمكنك إستخدام قواعد بيانات Access إذا كان التطبيق صغير و معد ليعمل على نفس جهاز المستخدم و يمكنك إستخدام قواعد بيانات MySQL إذا كان التطبيق ضخم و معد ليعمل على أكثر من جهاز و تريد الوصول لنفس البيانات من أكثر من جهاز.
مسار تطوير تطبيقات للهاتف
في حال أردت تعلم بناء تطبيقات لنظام Android يمكنك إستخدام أي لغة من اللغات التالية:
- لغة Kotlin و التي تم إعتبارها كلغة أساسية لبناء تطبيقات إندرويد.
- لغة Java و التي كانت سابقاً اللغة المعتمدة لبناء تطبيقات إندرويد قبل لغة Kotlin و التي لا يزال بإمكانك إستخدامها.
في حال أردت تعلم بناء تطبيقات لنظام IOS يمكنك إستخدام أي لغة من اللغات التالية:
- لغة Swift و التي تم إعتبارها كلغة أساسية لبناء تطبيقات لنظام IOS.
- لغة Objective C و التي كانت سابقاً اللغة المعتمدة لبناء تطبيقات لنظام IOS قبل لغة Swift و التي لا يزال بإمكانك إستخدامها و لكن ننصحك بتعلم Swift بدل تعلمها.
في حال أردت تعلم بناء تطبيقات تعمل بنفس الوقت على نظامي Android و IOS يمكنك ذلك أيضاً بطرق كثيرة, فمثلاً يمكنك إستخدام أي إطار ( Framework ) من الإطارات التالية:
- ReactNative
- Fluter
- Framework 7
- Xamarin
- PhoneGap
- Ionic
أي إطار تنوي تعلمه منهم, سيكون عليك معرفة لغة برمجة واحدة أو عدة لغات قبل تعلمه و لكن عندما تتابع أي دورة ستجد المحاضر يخبرك بما يجب أن تعرفه مسبقاً.
إنتبه لنقطة مهمة, لا يوجد إطار أفضل من إطار من كل النواحي, كل إطار له مميزات و له عيوب و أي إطار تتعلمه منهم يمكنك أن تبني تطبيقات بواستطه و أن تبيعها و تربح منها.
مسار تطوير الألعاب
في حال أردت تعلم تطوير ألعاب فهنا يجب أن يكون لديك خلفية جيدة في البرمجة. أي لا تفكر أن تبرمج لعبة و أنت لا تعرف أصلاً ما معنى برمجة. و طبعاً يجب أن يكون لديك خلفية في التعامل مع قواعد البيانات.
أي لعبة تطورها بنفسك ستكون عبارة عن مزيج من:
- الشخصيات و الأشكال الثلاثية الأبعاد مثل السيارات, المنازل, الأشجار, الأسلحة.
- الأصوات مثل أصوات اللاعبين, إنفجارات, نغمات حماسية إلخ..
- المؤثرات البصرية.
- قد تضمن فيديوهات قصيرة أيضاً.
- الكود الذي تكتبه لتحديد كيف ستتحرك الأشياء في اللعبة و كيف يتم التنقل بين المراحل إلخ..
إنتبه لنقطة مهمة, لست مضطراً لأن تتعلم كيف تفعل كل شيء بنفسك. فمثلاً تستطيع شراء شخصيات و مؤثرات و أصوات جاهزة و من ثم تقوم بتجميعها في لعبة خاصة بك.
الآن عند تطوير الألعاب ستستخدم برامج جاهزة لفعل ذلك تسمى محركات الألعاب ( Game Engines ).
أشهر البرامج المستخدمة لتطوير ألعاب تعمل على كل أنظمة التشغيل هي Unity3D و Unreal Engine و الإثنين يمكنك البدء باستخدامهما مجاناً.
في حال كنت ستستخدم Unreal Engine فعند كتابة كود اللعبة ستستخدم لغة ++C.
في حال كنت ستستخدم Unity3D فعند كتابة كود اللعبة ستستخدم لغة #C.
أي محرك ألعاب تقرر أن تستخدمه منهما ستجد في موقعه الرسمي كل ما تحتاج من دروس و مقالات و أشياء مجانية تساعك في البدء. و لا تضيع وقتك في المقارنة بينهما لأنه يمكنك أن تفعل ما شئت بكليهما و الإثنين يتم تطويرهما بإستمرار.
أول نوع قواعد بيانات ننصح بتعلمه
سواء كنت تنوي أن تكون مطور مواقع, تطبيقات ديسكتوب, تطبيقات للهاتف أو حتى ألعاب فلا بد لك من أن تتعلم كيف تقوم بتخزين و معالجة بيانات المستخدمين في قواعد البيانات ( Databases ) بطريقة منظمة و مرتبة.
من ناحية معالجة البيانات و حفظها في قاعدة بيانات فهنا بشكل أساسي يجب أن تتعلم أوامر SQL و أن تفهم كيف تربط جداول قاعدة البيانات مع بعضها بشكل صحيح.
الشيء الذي قد يسبب لك إرباكاً عندما تحاول أن تتعلم قواعد البيانات هو أنك ستجد عدة أنواع لقواعد البيانات و التي من أشهرها:
- MySQL
- SQL Server
- Oracle
- MongoDB
- PostgreSQL
- SQLite
- Access
الآن عليك أن تصدق أنك بمجرد أن تتعامل مع أي قاعدة بيانات منهم فلن تواجه أي مشكلة في التعامل مع أي قاعدة بيانات من نوع آخر و السبب في ذلك أن أوامر SQL التي تستخدمها فيها هي نفسها و منطق ربط قواعد البيانات مع بعضها هو نفسه أيضاً. أي لا تستمع لأي شخص يقول لك تعلم هذا و لا تتعلم ذاك.
الفرق ببساطة بين قواعد البيانات هو أنه إجمالاً في كل قواعد بيانات هناك دوال إضافية يمكنك الإستفادة منها عند كتابة أوامر SQL و منها ما هو مجاني 100% و منها ما يجب أن تدفع مبلغ معين حتى يسمح لك بإستخدامه.
كبداية ننصحك أن تستخدم قواعد بيانات MySQL لأنها الأكثر شهرة و مجانية و أغلب المطورين يستخدموها. و نضيف على ذلك أننا نستخدمها في هذه المدونة.
تعلم ما تحتاجه مجاناً
سبق و قمنا بإعداد مراجع شاملة و مجانية 100% لتعلم لغات البرمجة و لغات التصميم و قواعد البيانات من الصفر.
يمكنك مشاهدة جميع دوراتنا في أي وقت تريده من هنا و بدون الحاجة لتسجيل دخول أيضاً:
ختاماً
هذه النصائج ذكرتها لك من باب تجربه شخصية، أتمنى أن تفيدك في مسيرتك العلمية.