استدعى مدير الشركة أفضل أربعة مبرمجين عنده، وقال لهم: لقد أَبْهَرْتُمُونِي بما تحققونه من نجاح منقطع النظير في كل ما أكلفكم به، ولا أملك إلا أن أقف لكم وقفة إجلال وإكبار لَعَلِّيَ بها أُوَفِّيكُمْ بعض أفضالكم، وما أحوجني - وأنا مديركم - أن أجالسكم على هذه المائدة وأستفيد من خبراتكم وتجاربكم، لعلي أصطنع بها يدا جديدة في البرمجة، أو أُزِيحَ بها ركام الجهل الذي يعوقني على أن أكون مثلكم!
ابتسم أكبر المبرمجين سنا في خجل وهو يقول:
هذا تواضع منك يا حضرة المدير، وما دام جلوسنا معك على هذه المائدة سيضفي عليك بهجة وسرورا فَلْيَطِبْ خاطرك إذا، فإن لك عندنا أياد بيضاء، ونتودد إليك برد بعض جمائلك!
أطرق المدير برأسه، ثم رفعه مبتسما وهو يقول:
إن كنت ذاكرا سببا من أسباب تطويع الكود في يدي، فلن أغفل عن سبب الحفظ، ولست أعني بالحفظ كتابة الكود على ورق واستظهاره، أبدا..
ولا أزيد على سبب الممارسة في ترسيخ الحفظ إلا سبب البحث والتنقيب، فإنني كلما واجهت مشكلة بحثت عنها، وما خذلتني محركات البحث أبدا ما دمت أكتب المشكلة على الوجه الذي ينبغي!
أما أنا يا حضرة المدير، فقد طَوَّعْتُ الكود عبر حيازتي للأساس المعرفي المتين، فما خضت غمار مشروع إلا وقدمت له بالدراسة والاجتهاد، وأذكر جَلِيًّا أنك حينما كلفتني بمشروع ويب بتقنية ASP.NET MVC، وكان من ضمن مكونات المشروع مجزوءة متعلقة بالمراسلات السريعة بين الدعم الفني وبين زوار الموقع، وأبلغتك حينها أنني أمام خيارين:
1. إن كنا في حرج وضيق من الوقت، اعتمدت على المراسلات بواسطة قاعدة بيانات، وهو أمر سهل لكنه غير فعال!
2. وإن كان أمامنا وقت فاسمح لي بالبحث عن الحل الأنسب!
وقد أذنت لي حينها بالبحث عن الحل الأنسب، فوجدت مكتبة تسمى SignalR، لم أكن قد سمعت بها، لكنني وسعت صدري، ودرستها من كتاب، حتى فهمتها، فأقحمتها في المشروع فكانت النتيجة كما رأيتها، عمل مشرف وبالتقنية المناسبة!
ولا أزيد على سبب القراءة والدراسة في تطويع الكود وبلوغ المساعي إلا سبب تقليل الموارد، فلو حملت أكثر من كتاب، ما كنت لأنجز شيئا، لأن الكثرة تدفع إلى الانتقائية، والانتقائية مدعاة إلى المماطلة!
حملت كتابا واحدا فقط يا سيدي، فالتهمته وأسقطت ما جاء فيه على المشروع فكان على ما كان عليه!
وإنني لأذكر نصيحتك جيدا حينما قلت لي مؤكدا:
أما أنا فقد نفعتني لما صفعتني!
كنتُ مبرمجا محترفا، حُزْتُ طَرَفَيْ البرمجة: تنظيرا وتطبيقا..
لكنني كنت متهاونا، لا أعير للوقت بالا، أنغمس في المشروع غير جاد، فيمضي الوقت ويغضب العميل...
فأترنح أنا وأميل!
أذكر جيدا حينما صفعتني بكلام قاس، قلت لي حينها:
كن أنت وكفى، فإذا بدر الخطأ قل: مني، وإن برز الخلل قل: أنا السبب!
كفاك تهربا، وتحميلا للجن الأزرق مسؤولية تقصيرك، فتكون بذلك كتلك التي "خانها ذراعها فقالت مسحورة" على حد تعبير إخوتنا في ليبيا..
فَغَيَّرْتُ من حالي، وبدأت أُقَسِّمُ عملي على الوقت المتاح، واشتغلت بجد واجتهاد، فكان من نجاحي ما رأيت يا حضرة المدير..
وأعود وأقول:
حضرة المدير، لقد وظفتني عندك وأنا كبير السن..
قد اشْتَدَّ عودي، وَضَعُفَ كودي..
كنت أبرمج بلغات أكل الدهر عليها وشرب، لكن مع ذلك وضعتَ ثقتك فِيَّ، وقلت لي:
فبدأت أفقد الثقة في نفسي، وصرت ألجأ إلى زملائي في البرمجة، كلما وقعت في مشكلة اعتمدت عليهم وأتيت إليهم..
فَكَثُرَ زَلِّي وَتَقَلَّصَ ظِلِّي..
لأن كثرة السؤال مذلة، وماذا لدى فاقد الأداة إلا السؤال؟!
نسيت أنني مبرمج وفقدت ثقتي في نفسي، فكان كل العمل الذي أقوم به قوامه دعم زملائي، بل إنني كنت في كثير من الأحيان أكتب الكود على ورق، وأمضي في الباحة جيئة وذهابا مستظهرا..
فلما يئست وقررت ترك البرمجة..
جاءت كلمتك الباعثة..
كلمتك التي انتشلتني من براثن الفشل، ووضعت على رأسي تاج الثقة..
أ تذكر حينما وجدتني أعتمد على أحد الزملاء في عملي فقلت لي باقتضاب:
فحددتُ حينها حقل تخصصي، وانكببتُ عليه متعلما، لا يذعرني عن هدفي شيء حتى بلغته، وما بلغته إلا باعتمادي على الحي الذي لا يموت، ثم بثقتي في نفسي وإيماني بمقدرتي على بلوغ الرغاب وتذليل الصعاب..
وكذلك كان!
فإن كنت في القمة فَلِأَنَّ كلماتك كانت سلالم..
وطوبى لمن وجد من يغرس في سويداء قلبه معاني التعلق بالله واليقين التام أَنْ لا غايةَ تُنْشَد إلا بمشيئته ولا تُبْلَغ إلا بإرادته ولا تُدْرَك إلا بتوفيقه..
ولن أنسى كلماتك ما حييت:
لا تعتمد على أحد، اعتمد على الأحد..
وإن تاجك قل..
إنتاجك قل!
فَلِلَّهِ دَرُّكَ مِنْ مُديرٍ، فإن قضينا مساعيك فنحن صنائعك، وما توفيقنا إلا بالله!
ابتسم أكبر المبرمجين سنا في خجل وهو يقول:
هذا تواضع منك يا حضرة المدير، وما دام جلوسنا معك على هذه المائدة سيضفي عليك بهجة وسرورا فَلْيَطِبْ خاطرك إذا، فإن لك عندنا أياد بيضاء، ونتودد إليك برد بعض جمائلك!
أطرق المدير برأسه، ثم رفعه مبتسما وهو يقول:
على مائدة أكواد دسمة إذن!فجلسوا أربعتهم، خامسهم مديرهم، وَخَيَّمَ على القاعة صمت طويل قبل أن يكسره أصغر المبرمجين قائلا:
إن كنت ذاكرا سببا من أسباب تطويع الكود في يدي، فلن أغفل عن سبب الحفظ، ولست أعني بالحفظ كتابة الكود على ورق واستظهاره، أبدا..
فإن الكود يُحفظ بالممارسة، وكثرة المدارسة..وإذا تحقق رسوخ الكود في الذهن، كان حل المعضلات المتعلقة به أو القريبة منه من أيسر ما يكون، ألا ترى معي قدرة الحلاق على قص الشعر والمقص في يده؟ فكذلك حيازة الكود في الذهن، فهو أداة المبرمج، ووسيلته لبلوغ غايته..
ولا أزيد على سبب الممارسة في ترسيخ الحفظ إلا سبب البحث والتنقيب، فإنني كلما واجهت مشكلة بحثت عنها، وما خذلتني محركات البحث أبدا ما دمت أكتب المشكلة على الوجه الذي ينبغي!
هذا سر براعتي: ترسيخ الكود عبر الممارسة، وتجاوز المشكلات عبر آليات البحث!ابتسم المدير في إعجاب، ثم التفت إلى المبرمج الثاني آذنا له بالكلام، فقال بهدوء:
أما أنا يا حضرة المدير، فقد طَوَّعْتُ الكود عبر حيازتي للأساس المعرفي المتين، فما خضت غمار مشروع إلا وقدمت له بالدراسة والاجتهاد، وأذكر جَلِيًّا أنك حينما كلفتني بمشروع ويب بتقنية ASP.NET MVC، وكان من ضمن مكونات المشروع مجزوءة متعلقة بالمراسلات السريعة بين الدعم الفني وبين زوار الموقع، وأبلغتك حينها أنني أمام خيارين:
1. إن كنا في حرج وضيق من الوقت، اعتمدت على المراسلات بواسطة قاعدة بيانات، وهو أمر سهل لكنه غير فعال!
2. وإن كان أمامنا وقت فاسمح لي بالبحث عن الحل الأنسب!
وقد أذنت لي حينها بالبحث عن الحل الأنسب، فوجدت مكتبة تسمى SignalR، لم أكن قد سمعت بها، لكنني وسعت صدري، ودرستها من كتاب، حتى فهمتها، فأقحمتها في المشروع فكانت النتيجة كما رأيتها، عمل مشرف وبالتقنية المناسبة!
ولا أزيد على سبب القراءة والدراسة في تطويع الكود وبلوغ المساعي إلا سبب تقليل الموارد، فلو حملت أكثر من كتاب، ما كنت لأنجز شيئا، لأن الكثرة تدفع إلى الانتقائية، والانتقائية مدعاة إلى المماطلة!
حملت كتابا واحدا فقط يا سيدي، فالتهمته وأسقطت ما جاء فيه على المشروع فكان على ما كان عليه!
وإنني لأذكر نصيحتك جيدا حينما قلت لي مؤكدا:
أصعب من بدئك من الصفر: شعورك بأنك صفر!ابتسم المدير من جديد مفتخرا، وأدار وجهه ناحية المبرمج الثالث وأومأ له بالكلام، فقال بصوت دافئ:
أما أنا فقد نفعتني لما صفعتني!
كنتُ مبرمجا محترفا، حُزْتُ طَرَفَيْ البرمجة: تنظيرا وتطبيقا..
لكنني كنت متهاونا، لا أعير للوقت بالا، أنغمس في المشروع غير جاد، فيمضي الوقت ويغضب العميل...
فأترنح أنا وأميل!
أذكر جيدا حينما صفعتني بكلام قاس، قلت لي حينها:
كن أنت وكفى، فإذا بدر الخطأ قل: مني، وإن برز الخلل قل: أنا السبب!
كفاك تهربا، وتحميلا للجن الأزرق مسؤولية تقصيرك، فتكون بذلك كتلك التي "خانها ذراعها فقالت مسحورة" على حد تعبير إخوتنا في ليبيا..
وذكرتني بمقولة نابليون بونابرت المؤلمة: "لا تفسر بالفأل السيء قلة كفاءتك"!كان كلامك جارحا حينها لكنه كان بصدق وسيلة نجاة، علمت يومها أنها قسوة كقسوة الأب، وإنما جنحتَ إليها لمصلحتي..
فَغَيَّرْتُ من حالي، وبدأت أُقَسِّمُ عملي على الوقت المتاح، واشتغلت بجد واجتهاد، فكان من نجاحي ما رأيت يا حضرة المدير..
وأعود وأقول:
نَفَعْتَنِي لما صَفَعْتَنِي!حرك المدير ثغره بابتسامة عريضة، ثم أومأ للمبرمج الرابع وكان أكبرهم سنا مشيرا إليه بالكلام فقال:
حضرة المدير، لقد وظفتني عندك وأنا كبير السن..
قد اشْتَدَّ عودي، وَضَعُفَ كودي..
كنت أبرمج بلغات أكل الدهر عليها وشرب، لكن مع ذلك وضعتَ ثقتك فِيَّ، وقلت لي:
كن نوحا، واجعل أعداء نجاحك قومه.. ولسوف تنجح وسيغرقون!زرعت كلماتُك فِيَّ حماسا رهيبا، فكنت أصل الليل بالنهار من أجل تحصيل مستجدات التقنية، لكنني كنت لا أتقدم قيد أنملة..
فبدأت أفقد الثقة في نفسي، وصرت ألجأ إلى زملائي في البرمجة، كلما وقعت في مشكلة اعتمدت عليهم وأتيت إليهم..
فَكَثُرَ زَلِّي وَتَقَلَّصَ ظِلِّي..
لأن كثرة السؤال مذلة، وماذا لدى فاقد الأداة إلا السؤال؟!
نسيت أنني مبرمج وفقدت ثقتي في نفسي، فكان كل العمل الذي أقوم به قوامه دعم زملائي، بل إنني كنت في كثير من الأحيان أكتب الكود على ورق، وأمضي في الباحة جيئة وذهابا مستظهرا..
فلما يئست وقررت ترك البرمجة..
جاءت كلمتك الباعثة..
كلمتك التي انتشلتني من براثن الفشل، ووضعت على رأسي تاج الثقة..
أ تذكر حينما وجدتني أعتمد على أحد الزملاء في عملي فقلت لي باقتضاب:
لا تعتمد على أحد، اعتمد على الأحد!بهذه الكلمة صنعتني، وأردفتها بكلمة أخرى قائلا:
إنْ تاجُك قَل، إنتاجُك قَل..فسألتك عن معناها، فأجبتني: إذا قَلَّتْ ثقتك بنفسك قل إنتاجك!
فحددتُ حينها حقل تخصصي، وانكببتُ عليه متعلما، لا يذعرني عن هدفي شيء حتى بلغته، وما بلغته إلا باعتمادي على الحي الذي لا يموت، ثم بثقتي في نفسي وإيماني بمقدرتي على بلوغ الرغاب وتذليل الصعاب..
وكذلك كان!
فإن كنت في القمة فَلِأَنَّ كلماتك كانت سلالم..
وطوبى لمن وجد من يغرس في سويداء قلبه معاني التعلق بالله واليقين التام أَنْ لا غايةَ تُنْشَد إلا بمشيئته ولا تُبْلَغ إلا بإرادته ولا تُدْرَك إلا بتوفيقه..
ولن أنسى كلماتك ما حييت:
لا تعتمد على أحد، اعتمد على الأحد..
وإن تاجك قل..
إنتاجك قل!
فَلِلَّهِ دَرُّكَ مِنْ مُديرٍ، فإن قضينا مساعيك فنحن صنائعك، وما توفيقنا إلا بالله!
رائع كعادتك، بارك الله فيك ووفقك لما فيه كل خير.
ردحذففليمثل كلاً دور المدير وليكن مديراً لنفسه يوجه وينصح ويعدل من نفسه ويقيم في كل مرة حتى يصير الأفضل.
ردحذفجزاك الله كل خير - مبدع
ردحذفاللهم بارك .. رائع
ردحذفجزاك الله خيرًا ونفع بك
كلمات ووزن بالذهب شكرا أستاذي
ردحذفراااائعة كلام صح 100%
ردحذفرااااائع ... كما عودتنا
ردحذفأزال المؤلف هذا التعليق.
ردحذف.؟
ردحذف.؟
ردحذفمبدع مقال جبار وجميل ومحفز
ردحذفالله يوفقك ويرفع قدرك
رفع الله قدرك
ردحذفرائع و دا موقعي و شكرا للزيارة و اعطاء رأيك
ردحذفwww.network-programmers.xyz
رائع و دا موقعي و شكرا للزيارة و اعطاء رأيك
ردحذفwww.network-programmers.xyz
والله انك مبدع اكبر تحيه لك من مصر استاذى الفاضل
ردحذفالسلام عليكم ورحمة الله وبركاته
ردحذفأود دمج برنامجين موجودين بالفعل في برنامج واحد فهل ذلك ممكن
أختصر نتائج برنامج ولا حاجة لعرضها بل أدمجها لتخضع لعمليات أخرى من برنامج أخر وهكذا ثم برنامج اخر
نظريا أظن أن هذا ممكن جدا ولكن عمليا صعب علي جدا بحكم أن دكتوراتي في مجال بعيد عن البرمجة فهل منكم من يستطيع ذلك
أرجو منكم الإيضاح
وظني أنه يمكن الحصول على الخطوات البرمجية من البرامج نفسها -اختصار الخطوات الخاصة بالأشكال وطريقة العرض ونحوه-واستخدامها....كما تقدم
أعرف أن العملية صعبة وتحتاج مهارة خاصة ولكن ورد في الحديث الشريف عن النبي محمد صلى الله عليه وسلم ما معناه أن لو تعلق ابن آدم بما وراء العرش لناله
الرجاء الرد علي عاجلا وشكرا
مقالة جميلة وفيها حكم كثير
ردحذفجزاك الله خير على كل ما تقدم وجعله الله في ميزان حسناتك
ردحذفتحياتي لك من ليبيا :)
ردحذفواوو
ردحذففَلِلَّهِ دَرُّكَ مِنْ مُديرٍ، فإن قضينا مساعيك فنحن صنائعك، وما توفيقنا إلا بالله!
ردحذفشكرا مدير خالد
رااااائع
ردحذفرائع وملهم
ردحذف