تخصصية المبرمج

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

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

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

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

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

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

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

وإذا فكر المبرمج أن يفك إرتباطه بأداة أو أدوات التطوير (متضمنة بيئة التشغيل) فسوف يُواجه صعوبات في تعلم لغات البرمجة التي لا يعرفها، حتى لو تعلمها على عُجالة فهل يستطيع كتابة أنظمة يُعتمد عليها وذات كفائة عالية؟

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

5 thoughts on “تخصصية المبرمج

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

  2. توجد مشكلة أخرى، ربما تتطلب تدوينة منفصلة، وهي أن المبرمج عندما يعمل في تخصص واحد يمل منه، مثلاً أحد المبرمجين في إمباركاديرو إسمه باري قال أنه قدم إستقالته من شركة إمباركاديرو أمس لأنه مل من العمل في مترجم دلفي لست سنين متواصلة:
    http://blog.barrkel.com/2012/09/moving-on.html

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

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

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s