عن المبرمج نتحدث – 3

المبرمج يولد مبرمجاً

هل هناك فارق بين الناس في مدي قابليتهم لتعلم البرمجة؟ هل هناك أشخاص لا يمكن تعليمهم البرمجة أم أن أي شخص يمكنه أن يكون مبرمجاً؟ بعبارة أخري، هل يولد المبرمج مبرمجاً أم أن المبرمج يمكن صناعته بالتعليم و الممارسة؟

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

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

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

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

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

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

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

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

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

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

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

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

متلازمة أسبرجر مرة أخري

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

ما لم أذكره هو أن التوحد (الذي تشكل متلازمة أسبرجر إحدي درجاته) مرض تلعب فيه العوامل الوراثية و الجينية دوراً قوياً. التوائم المتماثة تشترك في الإصابة أو عدم الإصابة بالتوحد بنسبة 90%، بمعني أنه إن كان أحد التوائم مصاب بالتوحد فإن هناك إحتمالاً نسبته 90 بالمائة أن الآخر سيكون مصاباً بالتوحد هو الآخر. متوسط نسبة الإصابة بالتوحد هي 1 من 500، و لكن إن كان للأبوين طفل مصاب بالتوحد فإن إحتمالية أن يأتي طفلهم الثاني مصاب بالتوحد ترتفع إلي 1 من 20.

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

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

قلنا أن الكثير من المبرمجين الأكفاء مصابون بمتلازمة أسبرجر. يشكل وادي السليكون تجمعاً للكثير من الشركات الكبري في مجال البرمجيات و الإلكترونيات. تشكل هذه الشركات نقاط جذب للمبرمجين و المهندسين الأكفاء عموماً، و هنا يظهر ما يسميه العلماء (زاوج تجانسي Assortative Mating ) و هو الزواج الذي يتم بين شخصين متماثلين في نقطة معينة (أشقر يتزوج شقراء، معوق يتزوج معوقة، الخ).

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

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

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

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

علامات مميزة في موجات المخ

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

في أحد الدراسات حاول العلماء البحث عن علامات مميزة في رسم المخ الخاص بالأشخاص الإنطوائيين (كما قلنا من قبل، 50 إلي 66% من المبرمجين شخصيات إنطوائية).

إكتشف علماء الإدراك أن هناك موجات معينة سمهوها “موجات الخلفية Background waves ” و هي موجات مسئولة عن إدراك المرء لما حوله أثناء تركيزه في عمل معين. يمكنك أن تشاهد فيلماً بتركيز شديد، و لكن يبقي هناك قدر من الإحاطة بالعالم المحيط بك. إن صرخ أحدهم مثلاً “حريق” فإنك ستنتبه و تترك الفيلم الذي تشاهده و تذهب لتري هذا الحريق و تري ما يمكنك فعله حياله. بالتالي هناك موجات رئيسية في المخ مسئولة عن تركيزك في شيء ما (الفيلم الذي تشاهده، كتاب تقرؤه، الخ) و موجات أخري مسئولة عن معرفة و متابعة ما يدور حولك.

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

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

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

المبرمجين في مصر

أنا لم أحتك بالكثير من المبرمجين العرب خارج مصر و لكني أعتقد أن الوضع في مصر لن يكون أفضل بكثير من وضع المبرمجين في العالم العربي.

للأسف مستوي المبرمجين في مصر منخفض بشدة. هناك العديد من الأسباب هذه أهمها:

التعليم

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

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

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

و حتي مع محاولات الكليات في الغرب لقياس إستعداد الطالب لتعلم و فهم البرمجة فإن الكثير من الطلبة (ما بين 30 إلي 60 بالمائة كما قلنا) يرسبون في السنوات الأولي في كليات الحاسب الآلي و يترك الكثير منهم المجال و يتجه لمجال مناسب لقدراته. قارن هذا بكلية مثل حاسبات و معلومات مثلاً التي لا يستغرب فيها أن تجد نسبة النجاح في السنة الأولي 100%. بالطبع ليس الطالب المصري أشد ذكاء من طلبة أمريكا و أوروبا، فقط الإمتحانات لدينا لا تقيس أي شيء و لا هدف لها سوي سد خانة و ليس قياس مستوي الطالب فعلياً.

نوعية الكتب التي يقرؤها المبرمج

كتب البرمجة المنتشرة في مصر هي في الغالب كتب مبتدئين. الكتب المخصصة للمستويات الأعلي غالباً لا تجدها في مصر. يمكنك أن تجد المئات من الكتب التي تتحدث عن لغة ال C++ ولكن لا يمكنك أن تجد كتاب The C++ Programming Language بسهولة، و هو الكتاب الذي قام بتأليفه بيارن ستروسترب مصمم اللغة، و هو أكثر الكتب عمقاً في مناقشته لدخائل اللغة.

بالإضافة لهذا فإن الكتب المتعلقة بموضوعات هندسة البرمجيات مثل إدارة المشروعات، تقييم الوقت و التكلفة، دورة حياة المشروع Project life cycle، الخ.. كل هذه الكتب لا تجدها عادة في مصر و عليك أن تأتي بها من علي الإنترنت أو تشتريها من الخارج. خلال عملي لم أحتك بمبرمج يعرف كتباً مثل Code Complete الذي صنف علي أنه أحد أكثر كتب هندسة البرمجيات مبيعاً في العالم، Mythical Man Month الذي يلقب ب “مرجع هندسة البرمجياتThe Bible of Software Engineering“، أو كتاب مثل Peopleware الذي يعتبر مرجعاً أساسياً في التعامل مع المبرمجين، الخ. هذه الكتب التي تمثل علامات في علم هندسة البرمجيات لم يسمع بها في مصر إلا عدد قليل من المبرمجين، فما بالك بمن قرأها.


خاتمة:

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

المصادر:

  1. Code Complete
  2. The Mythical Man-Month: Essays on Software Engineering
  3. Rapid Development
  4. http://moishelettvin.blogspot.com/2006/11/windows-shutdown-crapfest.html
  5. Orphans preferred
  6. Peopleware
  7. The Geek Syndrome
  8. Software Developers and Asperger’s Syndrome
  9. The Camel has Two Humps
  10. Natural Language Acquisition
  11. Alan Kay on ‘The Camel has Two Humps

Comments

25 Responses to “عن المبرمج نتحدث – 3”

  1. طارق إبراهيم on March 27th, 2009 3:48 pm

    لو عندك نسخة من Peopleware يا ريت تبعتهالى لانى فاكر انى كنت شفت رابط لكتاب مشابه على امازون

  2. محمد عادل on March 27th, 2009 4:10 pm
  3. TigerEye on March 28th, 2009 9:47 am

    بسم الله ما شاء الله
    ايه الجمال ده
    الله ينور عليك يا محمد وتسلم ايدك ودماغك الحلوة
    بجد انا اتبسطت جدا بالدراسة دي

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

  4. محمد عادل on March 28th, 2009 11:34 am

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

    أنصحك أن تصلي صلاة إستخارة و أن لا تترك مجالك في يوم و ليلة و تنتقل إلي مجال البرمجة، بل حاول أن تنتقل بالتدريج، من خلال العمل في مشروعات صغيرة لعملاء صغار، مشروعات تقوم بها في المنزل مثلاً في وقت فراغك، ثم إن نجحت فيها تبدأ العمل لجزء من الوقت (20 ساعة أسبوعياً مثلاً) في شركة صغيرة، ثم إن إستمر نجاحك، قم بالإنتقال إلي شركة كبيرة و التفرغ لمهنة البرمجة.

  5. d3veloper on March 28th, 2009 7:14 pm

    اشكرك على السلسلة الاكثر من رائعة واتمنى منك رفع مجموعة الكتب والمراجع التى ذكرتها بالطبع لدى البعض منها ولكن للاستفادة لى ولباقى زوار المدونة … تحياتى

  6. محمد سعد on March 29th, 2009 3:19 am

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

  7. محمد عادل on March 29th, 2009 9:22 am

    الكتب و المراجع التي تحدثت عنها موجودة معظمها علي مواقع rapidshare و 4shared و الكثير من برامج ال p2p.

  8. محمود مهران on April 5th, 2009 3:41 pm

    كلامك جميل بس مش متفق معاك فى نقطة انى المبرمجين فى مصر مستواهم منخفض بشدة

  9. حسن السويعدي on April 14th, 2009 3:17 am

    الحقيقة معلومات ممتازة جدا ، حيث ان عالم البرمجة هو من المجالات القليلة جدا التي يكتب عنها في الدول العربية لانها بالاصل مهنة نادرة او قليل من يعمل فيها ، عموماُ شكري وتقديري لشخصكم الكريم
    حسن السويعدي – بغداد- العراق

  10. مروان on April 25th, 2009 4:08 am

    حاول تنقل أفكار حول ضرورة التأكد من وجود متلازمة اسبرجر في المبرمج عند التوظيف في شركات البرمجة في مصر وستدرك أن هذا البرجر لايفيدك كثيرا :)

    وعلى ما أعتقد يا محمد أن كلامك عموما على مبرمج متميز وليس عينة مبرمجي برامج الصيدليات والأساليب المحفوظة ونحوه

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

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

    مقال متميز أعتقد أن محمد عادل الذي لا أجرؤ على الاختلاف معه في وجهات النظر هو محمد عادل المبرمج :)
    دع محمد عادل يطرح أي رأي عن البرمجة وسيصير خلال خمس دقائق فحسب رأيي ( بعد أن أفهمه طبعا ) ولا مانع من التشدق به في شركتي :)

  11. محمد الجوهري on May 22nd, 2009 1:41 am

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

  12. abuouf on May 22nd, 2009 7:36 am

    مقال رائع والحمدلله خرجت منه باني مريض
    والاهم مجموعة اسماء الكتب التي لم اسمع عنها من قبل
    ولكن عندنا نسبة النجاح منخفضة في حاسبات المنوفية
    واغلب المتفوقين ان لم يكن 99% لايصلحو ان يكونو مبرمجين
    أهم شيء اني عرفت لماذا عدد من يفهمون البرمجة في دفعتي لايتعدون 10 يعني نسبة 4% تقريباً
    وجزاك الله خير

  13. خالد on May 22nd, 2009 10:23 am

    شكراً لك على الموضوع القيم جداً قرأت الأجزاء الثلاثة بنهم شديد، الموضوع متعوب عليه بشكل كبير فجزاك الله خيراً.

  14. jojo on May 22nd, 2009 1:43 pm

    بسم الله ماشاء الله

    ربنا ينفعنا بيها

  15. yasser alrooby on May 25th, 2009 6:26 am

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

  16. Muhammad Adel on May 25th, 2009 6:38 am

    في أمريكا يمثل عدد العاملين الغير أمريكيين في وادي السيليكون 50%. في جوجل عدد غير الأمريكيين الذين لم يحصلوا علي الجنسية بعد 20%، هذا غير الذين حصلوا عليها بالفعل.
    في عام 1999 طالبت شركات التكنولوجيا بفتح فيزا لغير الأمريكيين ليعملوا في الشركات الأمريكية. قام بيل كلينتون بالتصديق علي ما يقرب من 64 الف فيزا توزع سنوياً علي الشركات العاملة في مجال التكنولوجيا لإستقدام غير أمريكيين للعمل بهذه الشركات. بعدها بعامين طالبت الشركات الأمريكية برفع الرقم فتمت مضاعفته إلي ما يزيد عن 120 الف فيزا سنوياً، و حين تم إعادة الرقم إلي ما يقرب من 64 الف سنوياً بعد عدة سنوات عمت الشكاوي من شركات تكنولوجيا المعلومات في أمريكا حتي وصل الأمر بأحد مديري إنتل لأن وصف الأمر بأنه (إنهيار إقتصادي).

    لو كان الأمر يتعلق بالتدريب و التعلم لكان من اليسير علي مديري هذه الشركات أن يعلموا المبرمجين الأمريكيين و يوفروا علي أنفسهم العناء. لو وضعنا في الإعتبار أنهم لا يقابلون سوي 2% من الذين يرسلون لهم بسيرتهم الذاتية لأدركنا أن هناك إقبال ضخم من المبرمجيين الأمريكيين للعمل في هذه الشركات.

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

  17. Lamiaa Basyoni on October 6th, 2009 12:49 pm

    A coincidence led me to this survey, a very well organized one . The ideas and supporting information are formed in an interesting way .

  18. Muhammad Adel on October 6th, 2009 12:58 pm

    مرحباً يا لمياء. أنا سعيد أن المقال قد راق لك.

  19. Ahmed Diaa on December 23rd, 2009 6:04 pm

    والله الموضوع جميل

    ولكن انا شايف ان موضوع البرمجه فى مصر عايز عزيمه ومثابره وكمان مش محتاج ان الناس تقلل من قيمه المعلومات عند بعضها يعنى مثلا مش واحد زى على اول الطريق وعادى بعمل حاجات بسيطه بالفيجوال بيسك وكده زى برامج لاداره معارض سيارت مطاعم كده الاقى واحد تانى يقولى هى دى برامج او هو ده مش عارف ايه

    الناس بجد بتحبط بعض بدل ما تلاقى حد بيشجع التانى لا بيحبطه ناهيك عن مراكز التدريبات لبرامج اللغات تلاقى واحد بيتكلم فى وادى وانت فى وادى تانى خالص وتسأل انت بتقول ايه يقولك ده كتاب تعليم البرمجه وانا يا دوب بقرأ منه المصيبه ان فيه ناس بدرس برمجه وعمرها ما ممسكت ماوس ولا حتى فتحت برنامج برمجه واحد

    الموضوع محتاج موقع بجد يفيد ويستفيد مش زى المنتديات اللى بنشوفها ولكن موقع تبقى فكرته الوحيده اخرج محترفين بجد

    وشكرا ويارب مكنش صدعتكم

  20. M.abdelghany on January 10th, 2010 11:04 am

    اشكرك كثيرا على هذه المقالات المتميزه
    لقد قرات معظمها تقريبا واتمنى ان تكتب المزيد
    لك خالص تحياتى

  21. Mahmoud Fayed on May 5th, 2010 1:06 pm

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

    بعد سنوات من المضى فى مجال البرمجة
    انا متفق تماما مع الراى العلمى لكتاب المقال
    قى كون البرمجة تعود بنسبة كبيرة الى الموهبة وهذا امر يجعل المبرمج مطمئنا الى حد كبير فيما يتعلق بالمنافسة ومجالات العمل فى المهنة لان فرص العمل كثيرة مقارنة باعداد المبرمجين الموهوبين

    وحتى اكون علميا وكما تعودت ان اكتب لتعريف البرمجة
    علم + تقنية + فن
    فالعلم يدرس فى الكتب والجامعات
    والقنية او التكنولوجيا تطورها الشركات او المصادر المفتوحة اول باول
    اما الفن فهو يعود الى موهبة الشخص ومدى عمله على تطوير نفسه ويتطور ذلك مع الوقت

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

    والله الموفق

    م. محمود فايد

  22. مجد on June 7th, 2010 10:34 pm

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

  23. M.B.O on January 12th, 2012 8:23 pm

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

    شكرا ً لك على هذا البحث سلمت يمناك

  24. sara on May 27th, 2012 7:33 pm

    كلامك صحيح 100% ولا جدال عليه فالمبرمج يولد مبرمج

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

  25. Abdallah Abbass on May 27th, 2012 10:32 pm

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

Leave a Reply




© 2014 Software Thoughts. Theme by WordPress Themes and Linux Web Hosting