خليط من مشاعر الإحباط والتوتر تسيطر عليك، ترغب بتعلم البرمجة لكنك غير قادر على حفظ الأكواد البرمجية التي تصادفك، كيف لك أن تصبح مبرمجًا محترفًا وتتقاضى أجرًا عاليًا من دون كل ذلك المجهود بالحفظ، من أراد شيئًا عليه أن يبذل ما بوسعه لتحقيقه، والبرمجة ليست استثناءً. افتح محرك البحث جوجل، ابحث عن أمثلة مكتوبة باللغة التي ترغب بتعلمها، على سبيل المثال: (JavaScript code example)، سيظهر أمامك ما يقارب المليار نتيجة على الأقل. برأيك كم من الوقت تحتاج لحفظ كل تلك الأكواد؟ الأمر محبط أليس كذلك؟

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

المبرمجون لا يحفظون الأكواد وإنما يكتبونها، فهم المخترعون لها!

إجابة أحد المبرمجين عبر موقع Quora عند سؤال أحدهم عن أفضل طريقة لحفظ الأكواد البرمجية.

هل يجب حفظ الأكواد البرمجية؟

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

بدايةً دعنا نفهم لماذا تعلُّم البرمجة عن طريق حفظ الأكواد البرمجية أمر عقيم وغير مجدٍ. لنفترض أنك ترغب بحساب مربع عدد مثلاً، أو حتى طباعة عبارة ما "Hello World" خمس مرات متتالية على الشاشة، ابحث عن الأكواد التي تقوم بتنفيذ تلك المهمة باستخدام اللغة التي ترغب، اكتبها وكرر كتابتها عدة مرات متتالية.. جيد أنت الآن تحفظ الأكواد التي تقوم بهاتين المهمتين وتستطيع استخدامها حيث شئت. 

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

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

ولذلك فإن تلك ليست الطريقة الصحيحة لتعلم البرمجة، ونتيحة لفهم خاطئ، يخلط أغلب المتعلمين الجدد للبرمجة بين أهمية حفظ قواعد اللغة البرمجية (Syntax) وحفظ الأكواد البرمجية والأمر مختلف هنا بشكل كبير!

ما هو قواعد اللغة البرمجية - Syntax وكيف يمكن حفظها؟

يعرف مصطلح "Syntax" بأنه مجموعة القواعد المتبعة للكتابة باستخدام لغة برمجية ما، وبمعنى آخر هو طريقة محددة للكتابة والتي تحدد بنية اللغة (Language structure)، لإعلام الكمبيوتر بما نرغب بتنفيذه، حيث تختلف هذه القواعد باختلاف لغة البرمجة المستخدمة، وبدونها يكاد يكون من المستحيل فهم معنى أو دلالات اللغة.

الأمر شبيه جداً باللغات التي يستخدمها البشر للتواصل، على سبيل المثال: جملة "الولد التفاحة أكل"، غير مفهومة ولا تحمل معنى، وإنما مجرد مجموعة من الكلمات المتتالية، ولكن إذا أعدنا ترتيبها إلى "أكلَ الولدُ التفاحةَ" فستصبح جملة مفهومة ذات معنى؛ وذلك لأنها تتبع مجموعة من القواعد (فعل، فاعل، مفعول به).

أما بالنسبة للغات البرمجة، فعليك تعلم كيفية كتابة الحلقات التكرارية (Loops)، أو كيفية كتابة الدوال البرمجية أو مثلاً التعريف عن المتغيرات. لو افترضنا أنك ترغب بالتصريح عن المتغير "X" في لغة C فيجب عليك اتباع الترتيب التالي،  int x;

أي تغيير بالترتيب السابق أو تجاهل كتابة الفاصلة المنقوطة في نهاية السطر سيؤدي لظهور أخطاء - errors وبالتالي عدم القدرة على تنفيذ الكود البرمجي الذي كتبته.

ولكن كيف يمكن حفظ قواعد اللغة البرمجية Syntax؟

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

كما ذكرت سابقاً لكتابة برنامج باستخدام إحدى لغات البرمجة يجب أن تكون على علم بقواعد الكتابة، كيف تصرح عن متغيرات، كيف تكتب الدوال (Functions) وتستدعيها، كيف تكتب العبارات الشرطية (If statements) ماهي الكلمات المحجوزة (Keywords) وغيرها. وللقيام بذلك اتبع النصائح التالية وتجنب حفظ الأكواد البرمجية:

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

ابدأ بالأساسيات وافهمها: عند بدء تعلم قواعد اللغة وأساسياتها، لا تركز على الحفظ بل ركز على الفهم والغاية من استخدام كل جديد تتعلمه. أنت تحتاج لربط كل ما تتعلمه بمفهوم لكي تتمكن من استرجاعه واستخدامه، الحفظ من دون فهم لن يجعل منك مبرمجاً.

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

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

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

الخلاصة.. حفظ الأكواد البرمجية لا يجعلك مبرمجًا!

حفظ الأكواد البرمجية أمر غير منطقي وغير مجدٍ ولا يعدو كونه مضيعة للوقت، تعلم قواعد اللغة والمفاهيم الأساسية وبنية اللغة وافهمها جيّداً، وطبق ما تتعلمه على الدوام ومع الممارسة سيصبح حفظ الـ Syntax تحصيل حاصل، وجوجل ويوتيوب دائماً موجودان إن احتجتهما، فطالما لن نستيقظ في يوم لنجد أن محرك بحث جوجل اختفى، فلماذا نضيع طاقتنا بحفظ معلومات يمكن الوصول إليها في أي وقت؟

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