مسارات البرمجة
برمجة الكمبيوتر هي العملية التي يستخدمها المحترفون لكتابة التعليمات البرمجية التي ترشد كيفية أداء الكمبيوتر أو التطبيق أو البرنامج. في أبسط صورها ، برمجة الكمبيوتر عبارة عن مجموعة من التعليمات لتسهيل إجراءات محددة. إذا كنت تتساءل عن ماهية مبرمج الكمبيوتر ، فهو محترف يقوم بإنشاء تعليمات لجهاز الكمبيوتر عن طريق كتابة واختبار التعليمات البرمجية التي تمكن التطبيقات والبرامج من العمل بنجاح.
وأول ما يجب عليك فعله حين تقرر تعلم البرمجة, هو تحديد المجال الذي تحب أن تتعلمه. فمثلاً تريد أن تصبح مطور تطبيقات ديسكتوب, مطور مواقع, مطور تطبيقات للهاتف أو مطور ألعاب.
إذا كنت تحب أكثر من مجال و هذا شيء طبيعي جداً, فعليك اختيار مجال واحد فقط للبدئ فيه. بعد دراسة هذا المجال و بناء بعض المشاريع فيه و تحقيق ربح منها, عندها يمكنك البدء بمجال جديد.
من فضلك لا تقم أبداً بتعلم مجاليَن في وقت واحد لأنك ستفشل بسبب الضغط الذي سببته أنت لنفسك.
أول خطوة بالنسبة لأي شخص مبتدئ يريد تعلم البرمجة من الصفر هي تعلم المنطق البرمجي, أي تعلم الخوارزميات. بعد أن تتعلم الخوارزميات, الشيء الذي تنوي فعله هو ما يحدد ما الذي عليك تعلمه تباعاً حتى تصل لهدفك.
مسار تطوير المواقع
في حال أردت تعلم تطوير المواقع الإلكترونية ( 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 لأنها الأكثر شهرة و مجانية و أغلب المطورين يستخدموها.