لو بتتعلم برمجة وحاسس إن أنت لسه مش عارف توظف اللي اتعلمته في تطبيقات عملية فالمقال ده هينفعك جدا، يللا بينا
السلام عليكم ورحمة الله وبركاته.
بنسمع من ناس كتير إنه بدأ يتعلم برمجة ولكن مش قادر يربط بين الجانب النظري في الكورسات وبين المشاريع اللي المفروض يعملها، يعني مثلا شخص بدأ يتعلم html, css ولكن مش عارف إزاي هيبني بيهم صفحة ويب المستخدمين يشوفوها.
حابب بس في الأول أطمنك لإن الموضوع ده كل الناس بتمر بيه، الموضوع عامل زي اللي بتدرسه في الكلية في المواد النظرية والتطبيقات العملية بتاعتها، يعني كلنا تقريبا درسنا تكامل، وتقريبا فضلنا فترة كبيرة لحد ما عرفنا إن التكامل ده له تطبيقات عملية في الإحصاء زي إنك تاخد شريحة أو عينة وتعمل عليها الاختبار وباستخدام التكامل تقدر تطبق النتايج دي على نطاق أوسع من العينات.
كذلك البرمجة، بتروح تتعلم فيها الأساسيات وتعرف المتغيرات والثوابت والدوال والكلاسات والأوبجكت ولكن بتفضل تايه ومش عارف إزاي هتوظف ده علشان تعمل بيه مشروع حقيقي، أو حتى لما بتبص على مشروع معين مبتبقاش قادر تربط إن الجزء المعين من المشروع ده معمول بالحاجة اللي أنت درستها في الكورس الفلاني.
خلونا في البداية نتكلم عن أهمية التطبيق العملي في تعلم البرمجة :
– تعميق الفهم لما تعلمته :
كلنا عارفين إن أكثر طريقة فعالة للتعلم هي التعلم عن طريق التطبيق وإنك تشتغل بإيدك في الحاجة، لو جبت مهندس مدني حافظ المناهج بتاعته وعمره ما نزل موقع ولا اشتغل بإيده فغالبا هتلاقيه مش عارف حاجة، والمعرفة النظرية وقتها مش هتساعده في إنه يتعامل، ولكن لو جبت مقاول مثلا بقاله 20 سنة شغال في الموضوع ولكن مدرسش علم نظري هتلاقيه قادر يتعامل أحسن من المهندس حتى لو مدرسش أساسيات الكلام ده في الكلية، لإن كلمة السر هي التطبيق العملي، التعلم عن طريق التطبيق بيخليك قادر تستوعب ايه اللي بيحصل وهو اللي بيديك الخبرة في أي مجال.
– ربط الأشياء ببعضها:
مستحيل تعرف إيه الوظيفة الفعليه للحاجة اللي اتعلمتها غير لما تطبقها بإيدك في مشروع حقيقي، لو أنت بتدرس HTML وأخدت فيها القوائم أو ال UL كل اللي بيتقالك في الكورس إنك تقدر تعمل بيها Un Orderd List وإن في فرق بينها وبين القائمة المرتبة، ولكن لما تيجي تشتغل في مشروع حقيقي هتقدر وقتها تربط إن ال nav bar دا عبارة أصلا عن ul واخدة مجموعة من الخواص بال css علشان تكون الشكل اللي قدامك ده، وهكذا في كل حاجة تقريبا، دماغك بتبدأ تربط بين الكلام النظري اللي درسته وبين التطبيق الفعلي للحاجة دي في مشروع حقيقي.
– التدريب مسؤول عن الإبداع :
الحاجة اللي بتفرق الشخص المبدع عن الشخص الأقل إبداعا مش العلم النظري، التطبيق العملي هو اللي بيطلق العنان ليك في الإبداع سواء في الأفكار اللي بتنتجها أو في طريقة تنفيذها وكتابتها وتحويلها لكود، لإنك لما بتجرب الحاجة مرة واتنين غير لو أول مرة تعملها، بتقدر مع التمكن تعمل الحاجة بشكل أسهل وأسرع ودا بيديك حرية ومساحة إبداعية محترمة. الكاتب المبتدئ اللي لسه بادئ كتابة بيكون مركز جدا على الأخطاء النحوية والتراكيب الصحيحة للغة ودا بيحجم شوية من الإبداع، أما في مرحلة الإحتراف فهو بالسليقة بيكتب صح ومبيبذلش مجهود في ده، ودا بيديله مساحة ابداعية رهيبة ويطلع بحاجات تبهرنا، فالبرمجة كذلك.
– بناء سابقة أعمالك:
من أكثر الأسئلة اللي جتلنا على القناة هي إزاي أقدم على شغل وأنا مشتغلش قبل كده ومعنديش سنين خبرة، والإجابة بكل بساطة هي المشاريع البرمجية، المشاريع اللي كتبتها بإيدك واشتغلت عليها سواء وانت بتتعلم أو بعد ما اتعلمت وبدأت تشتغل على مشاريع أكتر علشان تتقل السي في بتاعك، صدقني كل مشروع عملي بتشتغل عليه بيضيفلك كتير من الخبرات ممكن تعادل خبرة الشخص اللي اشتغل في شركة.
إزاي أتدرب على مشاريع وأطبق بإيدي؟
في أكتر من طريقة ويفضل تعملهم مع بعض علشان تحقق أقصى استفادة.
– قياس فهمك للأساسيات :
عن طريق حل اختبارات خاصة باللغة وبتكون اختبارات مباشرة جدا، زي مثلا الاختبارات الموجودة على موقع w3schools الخاصة بلغات الويب، أسئلة سهلة وبسيطة ولكن بتأكد معاك على المعلومة علشان متنساهاش.
ودي تقدر تعملها عن طريق إنك تكتب في جوجل اسم الحاجة اللي بتتعلمها وجنبها quiz وهيجيلك مواقع كتير جدا تحل الأسئلة اللي فيها وكمان تقيس مستواك وتديك نتيجتك.
– حل مسائل وبرامج صغيرة:
وهي مش هنقول عليها مشاريع قد ما هنقول عليها تطبيقات مصغرة، وفي المسائل دي بيطلب منك تكتب كود بيأدي وظيفة معينة وبيديك شوية معطيات تساعدك ومطلوب منك إن الكود يشتغل ويطلع نتيجة.
وتقدر توصل للبرامج المصغرة دي عن طريقة إنك تكتب في جوجل مثلا javascript small projects هيجيلك مشاريع صغيرة وأفكار كتير تبدأ تحاول تنفذها باللغة اللي أنت بتتعلمها.
– العمل على مشاريع وتطبيقات حقيقية:
ودي أكتر حاجة ممكن فعلا تكون صعبة شوية وبتاخد وقت أكتر من اللي قبلها ولكنها أكثر طريقة فعالة، يعني لو أنت شخص درست مسار الفرونت إند في الويب فالمفروض تبدأ تدور على تصميمات معمولة بالفعل وتقلدها وتعمل زيها وممكن كمان تضيف لمستك الفنية فيها، مش عيب إنك تقلد التصميم لحد ما تطلع بأفكارك أنت اللي هتبدأ تنتجها بعدين،
في مجال الفرونت اند لو بحثت على html&js templates هتلاقي نتائج كتير جدا تقدر تنزل المشاريع دي وتبص عليها معمولة إزاي وتبدأ تقلدها، وممكن كمان تتفرج على حد بيعمل التصميم وتتابع معاه وتفهم منه زي التطبيقات الموجودة في قناة الزيرو في مسار الفرونت إند.
أما عن مسار الباك إند فممكن تعمل حاجة زي ecommerce فيه shop وعليه منتجات وcart وأوبشنز بقا لكل منتج وكده ودا بيكون طبعا ب php