كيف تتخطى عقبات السنة أولى برمجة؟

معلومات عامة  -  بواسطة:   اخر تحديث:  2020/10/24
كيف تتخطى عقبات السنة أولى برمجة؟

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


بعد عدة كورسات عشوائية أي طالب سنة أولى في مكاني سيدرك أنه يمشي في طريق خاطئ، فمجرد إنهائك لمقرر ما وكتابة كود بما تعلمته لا يعني أنك احترفت أي شيء على الاطلاق!


أنت تعرف الأساسيات، لكنك تعجز عن تطبيقها في شيء مفيد، أليس كذلك؟!


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


الآن لنكف عن اللف والدوران والضياع في عالم الكورسات والأكواد الجاهزة، وتجهزوا لتعرفوا حقيقة أخطاء المبتدئين … لكن من لا يخطئ لا يتعلم أليس كذلك؟


فكيف تتخطى عقبات السنة أولى برمجة؟ وكيف تكسر لعنة كتابة الكود البرمجي الأول ؟


العثور على بداية الطريق الصحيح


من الضروري للغاية عند قيامك بأي عمل في العالم، أن تقوم به للأسباب الصحيحة!


لا تحاول تعلم البرمجة فقط لغرض أن تتعلم أو لأنك سمعت أن المبرمجين أناسٌ رائعون …ما هي الأسباب الصحيحة ؟ حسنًا، كبداية صناعة تطبيقات قد تساعد الناس من حولك، إطلاق خدمة مفيدة أو ربما تصميم موقع الكتروني خاص بك لعرض منتجات أو لمجرد تدوين الأفكار.


إن كنت تحب البرمجة وترغب بأن تصنع لنفسك مهنة فيها، فإياك أن تيئس من أول عملية Build أو Debugging فاشلة.


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


بيئة البرمجة الجاهزة


غالبًا ما يوفر لك أي كورس على الشبكة بيئة جاهزة لتجرب فيها الأكواد التي تتعلمها، لكن هذا الأمر -الذي بالطبع يساعدك خلال الكورس- سيضرك جدًا في نهاية المطاف.


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


الصبر ثم الصبر، فخطؤك الأول كان الاعتماد على شيء جاهز تفاديًا لعذاب عمل شيء من الصفر، لكن ما قمت به في الواقع هو تأجيل العذاب إلى وقت لاحق فقط.


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


على سبيل المثال، تبين الصورة جزءًا من كود لبناء سيرفر HTTP بواسطة Node.js، وإن لم تكن مطور Node.js محترف فكيف ستعلم ماهية هذا الكود؟


كيف تتخطى عقبات السنة أولى برمجة؟
مقتطف من كود برمجي باستخدام Node.js

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


اتبع قاعدة 80/20


إن قمت بسؤال عشر مطورين في مجال معين عن الصعوبات التي واجهتهم أثناء التعلم ستجد أن العديد من المشكلات هي ذاتها. ولسبب أو لآخر فإن معظم الكورسات تولي معظم المفاهيم نفس القدر من الوقت!


لنفترض أن لديك كورس للغة CSS مكون من 10 دروس ومن المتوقع أن ياخذ معك 10 ساعات لتنهيه، فكل درس سيأخذ معك حوالي 30 دقيقة. تكمن المشكلة هنا أن المواضيع السهلة ستستغرق نفس وقت المواضيع الأصعب! وهذا ليس بالأمر المنطقي على الاطلاق.


ما الحل إذًا؟


يعمد بعض المدرسين إلى اتباع قاعدة 80/20 لتركيز جهودهم على الأمور المناسبة، هذا يعني أن 20% من المفاهيم الجديدة ستأخذ 80% من وقت الطالب.


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


ستعرف أنك تدور في حلقة مفرغة عندما تمضي ساعات في محاولة تعلم شيء جديد ولا تعرف أي كارثة ستحصل إن عدلت سطرًا واحدًا في الكود.


يمكنك اتباع طريقة فاينمان لتحديد المواضيع التي لم تفهمها بشكل جيد:


  • اختر مفهومًا أو موضوعًا ما

  • علمه لطفل صغير

  • حدد الثغرات وعد للأساس

  • راجع الأمر وحاول تبسيطه

تذكر أنك لست خبيرًا … بعد!


العديد من الكورسات قد كتبها مهندسون أو مطورون خبراء مع عدد سنوات خبرة تفوق العشر سنوات، ما المشكلة هنا إذًا؟


كيف تتخطى عقبات السنة أولى برمجة؟


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


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


تصحيح الأخطاء


كيف تتخطى عقبات السنة أولى برمجة؟


“أنت تعرف الحل لكنه لا يعمل”، يعاني من هذه المشكلة جميع المبرمجين سواء الجدد أو الخبراء. إذًا لماذا لا يعمل الحل؟ لأن المشكلة في الغالب خطأ برمجي Bug في الكود الخاص بك!


كيف تصلحه؟ من خلال القيام بـ debugging  للكود، وهذه من أهم المهارات التي عليك اكتسابها كمبرمج ولا يمكن أن تنجح في إيجاد الحل بمحض الصدفة أو الحظ!


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


فكر في الأمر كفرصة لإصلاح مفاهيمك الخاطئة وتحسين قدراتك البرمجية وكلما حللت خطأ، اسأل نفسك هذا السؤال: لماذا ارتكبت هذا الخطأ في المقام الأول؟ وكيف يمكنني منع نفسي من تكرار نفس الأخطاء في المستقبل؟


ابقِ ملاحظاتك على حاسبك !


في سياق متصل بالسؤال الأخير أعلاه، إبقاء ملاحظاتك وحلولك في متناول اليد أمر رائع! لكن الحل ليس مجموعة من قصاصات الورق المعلقة على مكتبك التي تقول “المشكلة الفلانية تحل بالشكل الفلاني”.


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


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


إن كنت مبرمجًا خبيرًا ولديك بعض النصائح أو تجربة ترويها لا تنسى أن تشاركها معنا في التعليقات