وصفة علاجية لمبرمج يعاني من ألم حاد في الشفرة

 


في عالم البرمجة يقبع المبرمج تحت كثير من التساؤلات التي تجول في ذهنه حول أقرانه من المبرمجين وخصوصاً الموجودين في شركات كبيرة أمثال  Google, Apple , Microsoft

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

 سأقارنك أنت بمبرمج اخر من شركة جوجل ويملك من الخبرة الكثير لتعرف أين الخلل بالضبط وتعالجه.  

الآن لو قارنتك معه من حيث الإمكانيات الجسدية فلديك مالديه يدين ورجلين ورأس وعقل وكل شئ والحمد لله. 

 لو أتينا للمقارنة البرمجية فإنك أنت وهو عندما تريدان بناء برنامج يحصل التالي : 

 تأتي لك وله الفكرة .. جميل

 ثم بعدها انت تحلل البرنامج وهو يحلل البرنامج 

ثم بعدها كلاكما يحدد اللغة المناسبة للمشروع .. جميل

 ثم بعد ذلك تأتي مرحلة بناء البرنامج وهنا يكمن الفرق الجوهري بينك وبينه فالذي يحدث كالتالي : 

وهو أن المبرمج في شركة جوجل يسأل السؤال التالي : ماهي الأشياء التي أجهلها في هذا المشروع والتي ستعيقني عن بناء البرنامج ؟  بعد ذلك يحدد قائمة بالمشاكل أو نقاط الضعف والأمور التي يجهلها ثم يحدد وقت معين لدراسة تلك الأشياءوتسمى فترة الدراسة بـ   Learning Period  

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

 أولاً تعلم لغة بايثون

 ثانياً معرفة المكتبات البرمجية التي تخص موضوع الرسومات في بايثون

 فهم آلية الآحداث في بايثون 

التعرف على مكتبات GUI في بايثون …

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

إرسال تعليق

[blogger]
الجافاسكريبت غير مفعلالمرجو تفعيل الجافاسكريبت لإضهار الويدجات.