
السلام عليكم ورحمة الله وبركاته اهلا بكم رواد واعضاء منتدى ستار تايمز اما بعد : 
قد يكون حصل معك هذا الأمر عدة مرات وتسألت لماذا لم أستطيع أن أنتج اي برنامج أو أقوم بحل مشكلة ما عن طريقة لغة البرمجة التي تعلمتها. أنت تعلمت الأداة فقط ولكن لم تتعلم طريقة الحل بواسطة تلك الأداة. تعلم البرمجة يجب أن يكون مرتبطا بتعلمها من أجل حل مشكلة ما أو عمل وتصميم شيء تحبه. مثلا يعجبك تصميم موقع ما وتريد أن تقوم بتصميم وبرمجة بحيت يعمل الخاصية كدا وكدا... الان ستكون طريقك واضحة من أجل تعلم البرمجة. هذه الطريقة تسمى تعلم البرمجة عن طريق عملها وتطبيقها (Learn Programming By Doing) عندما ستختار فكرة ما او تعرف انك تريد عمل موقع يقدم خدمات للناس او خاصية معينة... ستقوم بعمل بحت على ماهي اللغات البرمجية الخاصة بعمله وكيف يمكن عمل ذلك. 
في رحلة محاولة برمجتك لموقع أو شيء ما... أكيد ستتعلم طرق البرمجة وكيف يتم حل المشاكل. المشكلة التي يقع فيها العديد من الأشخاص وهي أنهم يتعلمون أساسيات لغة برمجة معينة ولكن لا يستطيعون أن يبرمجوا بها أو يحلوا مشاكل أو كتابة أكواد برمجية لإنتاج شيء معين. الأساسيات مهمة ويجب تعلمها ولكن يلزم أيضا تعلم طرق حل المشاكل (ممكن عن طريق عمل تمارين برمجية أو محاولة تعلم خوارزميات بسيطة) ستتطور عندك هذه المهارة مع وقت... 
معادلة البرمجة = فهم طريقة حل المشاكل + تعلم لغة البرمجة + تعلم وفهم الأدوات الأخرى التي تختص بالمجال الدي تبرمج ضمنه. 
المبرمج يجب أن يكون يعرف كيف يحل المشاكل البرمجية (وهذا سيتعلمه مع الوقت يعني مع كثرة المحاولة والفشل في انتاج برامج وحل تمارين برمجية وأيضا عمل أمتلة خاصة به) ستكون لديه عقلية البرمجة وسيتعلم طرق الابداع فيها. بعد ذلك يجب ان يكون يعرف خبايا وأساسيات لغة البرمجة ومكاتبها. وأيضا يعرف بعض الامور عن المجال الذي سيبرمج فيه(اذا كان سينتج برنامج للتعامل مع الصوت والصورة في الحاسوب فيجب ان يفهم في هذا الامر لكي يستطيع تطبيق الطرق البرمجية للوصول الى حل فعال في ذلك المجال). 
لتقوية قدرتك على حل مشاكل برمجية وانتاج حل فعال... يجب عليك تعلم الأساسيات الخاصة بلغة برمجة وتطبيق أمثلة التي يقدمها لك الاستاذ أو صاحب الشرح وبعد ذلك حاول ان تبدع وتخترع أمتلة خاصة بك في كل فصل. مثلا اذا تعلمت درس الشروط في لغة معينة... يجب أن تقوم باختراع أمتلة خاصة بك ومحاولة التلاعب بالشرط if وادخال وسطه if اخرى وهكدا كأنك تحاول بناء خاصية برمجية. لأن كل البرامج التي أنتجها مبرمجون محترفون ستجد فيها الشروط والتكرار وكل الامور الأساسية ولكن لأنك غير متعود على التلاعب وتجربة أمثلة بنفسك فلن تستطيع انتاج برامج متكاملة من دون مساعدة شخص ما. حاول أن تقوم بعمل أمثلة خاصة بك تدمج فيها الشروط if مع التكرار loop. بهذه الطريقة ستعود نفسك أن تخترع وتقوم بحلول بنفسك في مشاريعك المستقبلية. 
أيضا دراسة طرق حل المشكلات بصفة عامة ستساعدك بتعلم حل المشاكل. مثلا بعض الطرق لحل المشكلة وهي تندرج في تقسيم المشكلة الى عدة مراحل وأجزاء ومحاولة حل الجزء الأصغر أو حل فقط جزء واحد وبعد ذلك الانتقال للجزء الاخر حتى يكتمل الحل. ادا بحت عن طرق حل المشكلات في الحياة بصفة عامة ستنمي فيك حس حل المشكل وعدم الاحساس بالفشل والوقوف عن المحاولة من أول لحظة فشل. حاول دراسة مجال التفكير المنطقي وحل المشكلات. خاصة المرتبط بالبرمجة وعلوم الحاسب. دراسة الخوارزميات والرياضيات تنفع في تعلم حل المشكلات. 
بعد تعلم الأساسيات الخاصة بلغة معينة ومحاولة ادماج طرق حل المشكلات في رحلة تعلمك البرمجة... يجب أن تتعلم المكتبات الخاصة باللغة وكيف تتعامل مع عدة مجالات مرتبطة بتلك اللغة. لأنك قد تحتاج مكتبة معينة أو أداة معينة في احد برامجك. كما سبق وأن قلت لك انك يجب أن يكون تعلمك للبرمجة مرتبط بانتاج شيء ما او حل مشكلة معينة... يجب أن تقوم بالبحت عن دروس وشروحات التي تمكنك من انتاج موقع ما أو تطبيق... تعلم وطبق في نفس الوقت وحاول الابداع بحيت لا تقف فقط عند الشرح المتوفر بل يجب ان تدمج كل الأساسيات والطرق بعض المكتبات ضمن مشروعك الذي تعمل عليه. عندما تكمل المشروع الاول حاول ان تذهب لمشروع اخر وايضا ارجع للمشروع الاول بعد مدة بحيت يكون تطور مستواك. 
ومهارة أيضا مهمة ستحتاجها في رحلتك وهي مهارة البحت في محركات البحت وفي المواقع ودليل اللغة وأيضا في ChatGPT و موديلات الذكاء الاصطناعي. اي معلومة او مشكلة حصلت معك... حاول ان تبحت عن حل بدون ان تسأل شخص ما في مكان ما. ابحت بنفسك واذا لم تصل لاي نتيجة مهمة... حاول في ذلك الوقت ان تقوم بسؤال شخص في منتدى أو في موقع stackoverflow. رحلة تعلمك للبرمجة لن تقف هنا بل دائما تعلم اشياء جديدة وابقى على اطلاع باخر التحديثات. 
كان هذا شرحي لطريقة تعلم البرمجة من منظوري الشخصي. نسأل الله أن يوفق كل شخص حلمه تعلم البرمجة وانتاج برامج قوية مستقبلا. |