صعوبة تبنّي لغات برمجة جديدة

السلام عليكم ورحمة اللهlanguages

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

نأخذ الخمسة عشر عام الأخيرة كمثال (من عام 2000 إلى عام 2015) فلانجد أن هناك لغات جديدة بدأت من الصفر في هذه الفترة وتبناها سوق البرمجة بصورة كبيرة. ماعدا عدة لغات ولها أسبابها. من هذه اللغات C# وفيجوال بيسك .net. والسبب أن هاتين اللغتين جائتا كبديل للفيجوال بيسك الذي كان له قاعدة كبيرة جداً من المستخدمين. فقامت ميكروسوفت بتحويل تلك القاعدة من المبرمجين إلى لغتي سي شارب وفيجوال بيسك .net

أيضاً هناك حالة أخرى وهي لغة   Swift اللغة البديلة للغة Objective C حيث قامت شركة أبل بإصدارها في عام 2014. قامت شركة أبل بتبني استخدام لغة البرمجة Swift لإنتاج برامج لمنصتها المشهورة iOS كبديل للغة Obective C لذلك نجد أن هذه اللغة الجديدة في تقدم في قائمة Tiobe المشهورة، ولغة Objective C في تقهقر بعد أن كانت أكثر لغة برمجة صعوداً في عامي 2011 و 2012

التجربة الثالثة  – والتي لم تنجح إلى اﻵن- هي لغة Go والتي اصدرتها قوقل كبديل للغتي C و C++ لكن بما أن هاتين اللغتين ليستا من إنتاج شركة قوقل فليس لها طريقة أن تقوم بإيقافهما، لذلك لم تنجح إلى اﻵن ولم يتبناها المجتمع بصورة كبيرة مثل لغات C# و Swift والدليل أنه لا وجود للغة Go إلى اﻵن في دليل Tiobe

التجربة الرابعة – والتي لم تنجح إلى اﻵن أيضاً- هي لغة البرمجة Ceylon التي قامت بتطويرها شركة رد هات كبديل للغة جافا، مع العلم أنها تستخدم منصة جافا نفسها حتى تعمل البرامج المكتوبة بها. لكن بما أن شركة رد هات هي أيضاً لا تملك جافا فلا نتوقع أن ينصرف مبرمجي جافا بسهولة إلى تلك اللغة الجديدة مهما كانت فيها من ميزات.

التجربة الخامسة، كانت من نصيب الفيسبوك بعد أن اشتقت لغة Hack من لغة البرمجة PHP. كان هذا في عام 2014 لكن لم نجد له أثر في السوق بعد ولم تُعتبر تهديد للغة PHP التي لا تملكها فيسبوك

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

وكبديل آخر هو تطوير مكتبات وframeworks لتسهيل عملية برمجية أو لإستحداث طريقة جديدة لإنجاز البرامج بطريقة أسرع، مثل برامج الويب، فكل فترة نسمع عن framework جديد.

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

تغيير جميع الموظفين في المؤسسات دورياً

السلام عليكمemployee

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

إنطلاقاً من التدوينة سابقة (شخص واحد يُفسد مؤسسة) والتي تكلمت فيها عن اﻷشخاص الذين يمكثون في المؤسسات والشركات أكثر مما يمكث اﻷثاث والمباني ولا يتحركون من مناصبهم ولا يأتون بجديد ويمنعون أي شخص آخر أن يأتي بالجديد. ففكرت أن يكون إحدى الحلول لأمثال هؤلاء أن يتم سن قانون جديد يمنع فيه أي موظف أن يعمل في مؤسسة واحدة أكثر من خمس سنوات. طبعاً هذه فكرة مستحيل تطبيقها وهذا قانون يستحيل سنه. لكنني وجدت هذه الفكرة الغريبة بعدما عانيت من مرارة ما أجد في المؤسسات التي بها هذه النوعية من اﻷشخاص.

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

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

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

الفكرة التي اقترحها في هذه المقالة (وربما لا يكون لها حيز آخر غير هذه المقالة) هي أن يتغيير قانون العمل في بلادنا ويُمنع أن يعمل موظف في شركة واحدة أكثر من خمس سنوات متتالية، لكن يمكن له أن يعمل في شركة أخرى ثم يعود بروح جديدة إلى نفس الشركة بعد فترة حتى تكون له تجارب جديدة، هذه الفترة يمكن أن يكون أدناها ثلاثة أعوام مثلاً. هذا المقترح ليس فيه إستثناء، بما في ذلك المدير العام للشركة أو المؤسسة، وذلك للتجديد الدائم للدماء واﻷفكار الشابة وإتاحة الفرصة للتغييرات الجذرية، حيث أن الموظفين القُدامي يمكن أن يمنعوا أي تغيير جذري في أي مؤسسة حتى لو كان في صالحها.

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

نقاش حول تعلم لغات البرمجة في الجامعات

السلام عليكمlanguages

دار بيني وبين اﻷخ المقداد نقاش حول تعلم لغات البرمجة في الجامعة. فأحببت أن أنقله في تدوينة منفصلة حتى تعم الفائدة:

المقداد

استاذ معتز لدي تجربة خارج نطاق الموضوع اريد مشورتك فيها ، قبل مدة بدأت في تعلم اساسيات البرمجة من حلال احد الدورات الاجنبية ، الدورة فعلا كانت مميزة وزاخرة بالكثير من المعلوامات عن الاساسيات البرمجية مثل الشروط والحلقات التكرارية ومفهوم كتابة الكود بشكل صحيح وجعله مقروء سواء اكان لك او لغيرك من المبرمجين وتعرفت ايضا علي مفهوم تنظيم الكود وتنظيفه من اجل التخفيف وعدم الاكثار من الكلاسات في البرنامج للتقليل من استهلاك الموارد ، فعلا معلومات قل ما تشرح في محتوي عربي ، بعدها انتقلت الي السي شارب في دورة اخري لكن واجهتني مشكلة كبيرة في التعامل معها فالسي شارب تحتاج منك لمعرفة كبيرة بالكائنات واستخدامها , واغرب شء لم انتبه له هو ان لغات الدوت نت هي لغات من فئة الـ manged language التي تحتاج الي مكتبات خارجية حتي تعمل ففكرت هل عند كتابة برنامج لشخص ساحتاج عند التحزيم الي اجبار المستخدم باستخدام حزمة اضافية ليعمل برنامجي عنده هنا اقتنعت بجدوي اللغات الـ native وتذكرت كلامك عن موضوع الـ Free pascal لذا ساعاود الكرة معها من اجل بداية جديدة معها لتعلم البرمجة عبرها , ساعطي نظرة علي كتابك املا في ايجاد ما اطمح اليه ، فعلا الكثير من المبرمجين يبدأون في تعلم لغة ما وتجد بعد تعبهم النتيجة غير مرضية بسبب عدم اخذ معلومات كافية عن اللغة قبل البدء وضياع الكثير من الزمن والجهد مثل الذي حدث معي .

معتز

في الحقيقة كل لغة برمجة لها إمكاناتنا ومجالها. وإنت في الجامعة عليك تعلم أكثر من لغة برمجة وأكثر من نوع، أي نوع managed ونوع آخر native وثالث script language في مجال العمل سوف تجد استخدامات لها الثلاثة

المقداد

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

معتز

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

المقداد

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

علي علي العموم هذا مثال لدورة في اعادة صناعة الكود البرمجي موجه للمبرمجين ، ما يعجبني في اسلوب دورات الشخص انها زاخرة بالمعلومات التي تضعك علي مسار صحيح وتغير من طريقة عملك علي البرنامج ككل , درست له في السابق دورة متعلقة بالاساسيات البرمجية , لكن هذه الدورة مختلفة فهي موجهة للمبرمجين , علي العموم هذا رابط الدورة علي الموقع الرئيسي واذا احببت رابط التحميل سارفقه لك : http://www.lynda.com/Developer-Programming-Foundations-tutorials/Foundations-Programming-Refactoring-Code/122457-2.html
ولي عودة ان شاء الله

.

المقداد

خطوتي الاولي مع الـ ObjPascal :

بعد يومين من تجربتي لقراءة كتابك الخاص ابدأ مع اوبجكت باسكال بدأت في تصفح الكتاب وفعلا معلومات زاخرة جدا ويشرح المكونات بشكل دقيق وايضا وجدت التجانس في الدروس من حيث التعقيد فانت تصعد بسلاسة في كل مرة .
ما اعجبني ايضا في الباسكل اكتشفت انني لست غبيا كما كنت اعتقد في السابق حين جربت السي شارب ، اصبحت اتفهم الاخطأ جيدا واطبق البرنامج دون ظهور اي خلل وحتي في حال ظهور اجدها اخطاء غير منطقية او الـ logical error وبدأت اهتم اكثر بنظافة الكود وترتيبه من اجل الراحة في فيما بعد ونتيجة كتابة الكود النظيف علمتني مهارة جديدة الا وهي تصيد الاخطاء حتي قبل تنفيذ البرنامج فصرت اعرف انني اخطاءت في السطر الفلاني ونسيت شيئا هنالك وهكذا ،
ايضا اصبحت افكر في محاول تعقيد الكود بوضع بعض الفرضيات مثلا برنامج المطعم ماذا لو اضفنا رسالة للزبون تخبره اذا كان يريد عصيرا بعد طلبه لوجبة .:)
ايضا من الملاحظات التي لاحظتها هي عند استخدامك لعبارة الشرط مع الـ else لاحظت ان اضافة الـ semicolon عند نهاية التعابير تؤدي الي خلل عند ترجمة البرنامج بعتبار ان دورها يخبر المترجم بانتهاء العبارات لذا كنت اكتبها في اخرعبارة او statement ينتهي عندها التعبير وهو الشيء الذي لم تذكره في الكتاب .
برنامج الاوزان وجدته معقدا بعض الشيء وخاصة جزئية اضافة الدالة التي اضطررت الي اضافتها بعد مجموعة من الاخطاء والرسال من مصحح الاخطاء بعدم وجود الـ idefiner وتم حل المشكلة بعد اضافة المكتبة ، ايضا حاولت فهم كيف تم التفكير في هذا البرنامج بعد البحث وجدت انها معادلة رياضية قديمة تم صياغتها في شكل برنامج .
طبعا كل هذا الكلام ولم اتخطي الصفحة الـ 26 من الكتاب لكن احببت طرح تجربتي مع اللغة كمبتدي فيها .

معتز

لغة الباسكال هي لغة غنية تجمع بين سهولة التعلم واﻹستخدام الحقيقي في بيئة عملية، وهي مثال حقيقي للغة برمجة Native وتجمع بين الطريقتين structured و object oriented
بالنسبة للـ semicolon مع عبارة IF فهي مشكلة حقيقة، وقد حدثت لي مرة أن قمت بإضافتها في نهاية الشرط فكان يتم تنفيذ الشرط في كل اﻷحوال. سوف احاول ذكر هذا الموضوع عند التعديل القادم بإذن الله

المقداد

في الحقيقة استاذ معتز اعجبتني جدا اللغة ، لكن لي استفسار الكثير من المبرمجين الجدد يقعون في متاهة اللغات والوقوع في مشكلة اراء الاخرين في الامس تكلمت مع احد الاصدقاء عن اللغات الـ native وتحدث عن جدوي لغة الباسكال مع لغات مثل السي والسي بلس بلس ، بعتبار انهما الاساس لكل مبرمج مع ان قناعتي ان اللغات البرمجية تتشابه في الكثير من الامور المشتركة تعلم لغة من لغات الجيل الثالث يتيح لك تعلم الكثير من اللغات ذات المستوي الاعلي فمثلا اذا انتقلت من الباسكال الي الجافا فلن اواجه صعوبة عكس الذين يبدأون البرمجة من لغات ذات مستوي عالي مثل لغات الجيل الخامس مثل البايثون والروبي والجافا سكريبت ، وبالتالي سيواجهون صعوبة في فهم الكثير من الاشياء المطلوبة كل مرة اتعمق في البرمجة اجد مفاهيم جديدة تحتاج الي الدراية مثلا بالامس وجدت مفهوم الـ Desing pattren الذي لم استوعبه بعض الشيء سوي انها ومجموعة من القوالب او المكتبات تساعد المبرمج علي الاستفادة من الوقت اثناء اداء المشروع . .

الصناعة اﻷصلية ذات النوعية الرديئة

السلام عليكم ورحمة اللهusb-hub

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

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

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

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

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

المشكلة اﻷخيرة هي الشعور بعدم الثقة في المُنتجات، خصوصاً المُنتجات التي تترتب عليها استمرار خدمة أو يتأثر بها شيء آخر، مثلاً تشتري كمبيوتر ليعمل على الدوام وتترتب عليه خدمة مهمة لزبائن. أو موتور أو حتى خزان مياه يترتب عليه توفر الماء بكل مستمر، أو حتى وصلة كهرباء يترتب عليها المحافظة على اﻷجهزة الكهربائية الموصلة بها.

تقنيات ليست لنا

السلام عليكم ورحمة اللهTelevision

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

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

اﻷجهزة الحديثة مثل الهواتف الذكية والأجهزة اللوحية ومستقبلات القنوات الفضائية ومواقع اﻹنترنت مثل والـ youtube، كان لها أثر سلبي كبير جداً على أخلاق كثير من الشباب وعلى تحصيلهم العلمي، بل حتى على الوظيفة. ولم يكتفي المستهلكون لهذه التقنيات من المسلمين باستخدامها فقط، لكن روجوا لها، فأصبحت حديث المجالس. بالنسبة لي أصبحت استطيع تمييز الشخص المنتج من الشخص غير المُنتج – نسميه غير المُنتج في هذه المقالة، وهذه تسمية علمية، لكن يمكن أن تسموه ما شئتم- يمكن تميزه بواسطة كلامه عن التقنيات، حيث تجد بعض اﻷشخاص يتكلمون مع بعضهم: هل قرأت هذه النكتة ، وهل شاهدت هذا المقطع، هل تريدني أن أرسله لك بالواتس آب –  وللأسف كلها أشياء لا تزيدنا بشيء نافع لكنها أصبحت شغل الناس الشاغل ومضيعة للوقت الذي يُفترض به أن يكون أثمن شيء عندنا. الشخص المُنتج تجده ليس لديه وقت لهذا الهُراء، لا استطيع أن أُسميه غير هذا الاسم. حتى الغرب ربما لا يستخدمون هذه التقنيات لإشاعة الهُراء بينهم. وقد قرأت مرة أن إستيف جوبز مؤسس شركة أبل، عندما سؤل مرة في لقاء عن اﻵيباد، ماهو رأي أبنائه فيه، قال لهم أنهم لا يستخدمونه وأنهم لديهم تقنيين لاستخدام التقنية لأبنائهم، فهل نحن نقنن استخدام التقنية لأبنائنا أم نترك لهم الحبل على الغارب.

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

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

التطور الطبيعي للمبرمج: العام الرابع

السلام عليكم ورحمة اللهprogramming

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

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

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

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

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

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

البيئة أيضاً أصبحت أفضل هذا العام بفضل الله، فساعدت على تحسين العمل وراحة المبرمجين، وهذا شيء مهم جداً لأن يرتاح الفرد في عمله ولا يهتم بشيء آخر.

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

تغيير طفيف في العرض، له أثر كبير في زيادة التصفح

السلام عليكم

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

وهذه صورة بيانية توضح الزيادة في اﻷيام اﻷربع اﻷخيرة:

 

stats