كما يطلق على المطورين
في مدونتي ، أستخدم المصطلحات "مبرمج" و "مبرمج" و "مطور" و "مهندس" بالتبادل لتجنب الحشو. ومع ذلك ، أعتقد أن هناك بعض الاختلافات بين هذه الكلمات وغيرها من الكلمات المماثلة.
في هذه المقالة ، سنناقش مجموعة من الأسماء النموذجية لتعيين شخص يكتب التعليمات البرمجية. سأقدم تفسيري لكيفية ارتباط هذه المصطلحات بمستوى الإتقان.
تفسير القيم
التعاريف المقدمة هنا ليست رسمية. لا أعرف أي تعريفات رسمية أو معيار مقبول. ومع ذلك ، كثير من الناس لديهم رأي قوي في هذه المسألة. إن فهمي لكل مصطلح يعتمد على 30 عامًا من الخبرة في صناعة البرمجيات ، لكنني مستعد تمامًا للآخرين للاعتراض على تفسيري.
لا أريد أن أجادل أو أقنع الناس برأي مختلف. بشكل عام ، من الصعب التحدث عن رأي صحيح أو خاطئ. ومع ذلك ، إذا لم تكن قد شكلت موقفًا بعد بشأن هذه القضية ، آمل أن يجلب هذا الدليل بعض الوضوح.
نهج ثلاثي
للتوضيح ، سيحصل كل مصطلح على ثلاث خصائص:
1. مستوى الإتقان
وصف لمستوى المهارة لهذا المصطلح في تفسيري.
2. بالتوازي مع صفوف فنون الدفاع عن النفس
تشابه مع صفوف فنون الدفاع عن النفس. على وجه الخصوص ، نقارن المستوى الفني للمهارات مع ألوان أحزمة الفنانين القتالية.
3. رمز عينة
مثال على كيفية تعامل شخص من هذا المستوى مع مهمة برمجة بسيطة. التعريف هنا تافه ولم يكن مقصودًا كمثال واقعي. الهدف هو مقارنة ومناقشة مستويات المهارة. من خلال البساطة ، يتم اختيار المثال ليتناسب مع أخصائي من أي مستوى. هذه هي المشكلة التي سنأخذها بعين الاعتبار:
احسب مجموع الأعداد الصحيحة
يرجى اللعب معي وتقديم هذه المهمة على أنها وسيطة لأصعب بكثير. في عالمنا الخيالي ، تتطلب المهمة تفكيرًا جادًا ولديها العديد من الحلول والأساليب المحتملة. تخيل أن هذه هي الوحدة المركزية للنظام التي تريد قياسها.
سأستخدم روبي لأمثلة التنفيذ تافهة. الرمز بسيط للغاية: إنه مفهوم حتى لو كنت لا تعرف روبي.
3. قائمة
الأسماء التي تمت مناقشتها:
- مبتدئ
- المبرمج
- (هاكر)
- مبرمج
- باحث (عالم كمبيوتر)
- مطور برامج
- مهندس برمجيات
- مهندس برمجيات
لذلك دعونا نبدأ.
أحزمة فنون الدفاع عن النفس

عندما عشت في إيطاليا في شبابي - منذ حوالي 20 كيلوغرامًا - مارست الجودو والكونغ فو لعدة سنوات. ثم علمت أن مستوى المهارة في العديد من فنون الدفاع عن النفس يتوافق مع لون الحزام. عادة ما يتغير اللون من الأبيض إلى الأسود ، حيث يتوافق مستوى الخبرة مع ظلام الحزام.
المبتدئ يرتدي حزام أبيض لأنه ليس لديه خبرة. اللون الأبيض يعني "جديد ونظيف". أثناء التدريب ، يصبح الحزام أكثر قتامة ، ويظهر التقدم. يمثل اللون الأوساخ المتراكمة مع العمل الشاق والعرق. يصل فنان الدفاع عن النفس مع سنوات عديدة من الخبرة إلى الحزام الأسود في نهاية المطاف ، مما يعني مستوى عال من المعرفة والمهارات.
تقليديا ، كانت الأحزمة سوداء أو بيضاء فقط. في العقود الأخيرة ، ظهرت المزيد من الزهور. اليوم ، تستخدم مدارس فنون الدفاع عن النفس المختلفة ألوانًا مختلفة. يعتمد المخطط على الأسلوب والمدرسة والبلد.
لماذا نتحدث عن فنون الدفاع عن النفس؟
يتم استخدام ألوان الحزام لرسم موازٍ بين مهارات البرامج ومهارات فنون الدفاع عن النفس. للقيام بذلك ، خذ مخطط الألوان المستخدم بشكل شائع في أوروبا: الأبيض والأصفر والبرتقالي والأخضر والأزرق والبني والأسود.
يوضح الجدول التالي مستويات المطور التي تحدثت عنها. لكل منها ، يظهر لون الحزام والموضع الذي يعطى عادة لمتخصص من هذا المستوى:
المستوى المهني | مستوى فنون الدفاع عن النفس (لون الحزام) | مثال آخر |
---|
مبتدئ | أبيض | |
هاكر | ستريت فايتر (بدون حزام) | |
المبرمج | أصفر | المطور الصغير (Jr.Dev) |
مبرمج | برتقالي | مطور برامج |
باحث (عالم كمبيوتر) | أخضر | مطور برامج |
مطور برامج | أزرق | مطور برامج أول (Sr. Software Dev) |
مهندس برمجيات | بني | المطور الرئيسي (ديف الرئيسي) |
مهندس برمجيات | أسود | مهندس برمجيات |
يرتبط مستوى المهارات الهندسية بالمهارات الفنية والعمل الجماعي. عنوان المنشور هو مثال لكيفية استدعاء شخص في هذا المستوى في الصناعة (يعتمد هذا بشكل كبير على الشركة والمنطقة).
المبتدئ: الحزام الأبيض

عليك أن تبدأ في مكان ما ، وعادة ما يكون هذا هو مستوى "عدم وجود خبرة على الإطلاق". مبتدئ في تطوير البرمجيات هو شخص أصبح على دراية بالبرمجة وهو في المراحل الأولى من التدريب. لا يزال المبتدئون لا يستطيعون البرمجة بثقة ولا يفهمون البرامج البسيطة ، دون التحقق من الكتب والكتب المدرسية أو طلب المشورة من صديق خبير.
يمكن للمبتدئين كتابة رمز العمل ، ولكن غالبًا لا يفهمون تفاصيل سبب عمل هذا الرمز. يقضون الكثير من الوقت في البحث عن أجزاء من التعليمات البرمجية على StackOverflow أو مواقع مماثلة والجمع بين هذه الأجزاء حتى يعمل شيء ما.
الأدوات القوية ليست مجرد مهارات موثوقة.
لجعل الأمور أكثر إرباكًا ، تسمح العديد من اللغات والأطر "الحديثة" لأي شخص بإنشاء هيكل وبعض عمليات تنفيذ البرامج المعقدة دون فهم ما يجري وراء الكواليس. على سبيل المثال ، يمكن ترتيب تشغيل تطبيق Ruby on Rails بسيط وقبول طلبات HTTP باستخدام عدة أوامر من سطر الأوامر.
إليك كيفية القيام بذلك تحت * nix:
$ gem install rails
…
$ rails new website
…
$ cd website
$ bin/rails server
...
انتهى! هذا يكفي للخادم للرد على طلبات HTTP من المستعرض. إذا قارنت بفنون الدفاع عن النفس ، فهذه هي الطريقة التي تظهر بها على الحصير في الدروع والأسلحة. سيسمح لك Armor بالعيش لفترة أطول قليلاً ، ومع السلاح يمكنك الفوز في المعركة. لكن مثل هذا الانتصار لا يجعلك فنانًا عسكريًا مؤهلاً. تتيح لك هذه الأدوات ببساطة القيام بشيء معقد بدون تدريب وجهد تقليديين.
لا تفهموني خطأ. تتيح لك أدوات مثل Ruby on Rails إنجاز المهام بسرعة ، وهي رائعة. في الواقع ، أجد أنه من الرائع تقليل الوقت المستغرق في كتابة الرمز القياسي الأولي. هذه بداية رائعة للمشروع ، لكن مجرد حزام أبيض يكفي.
تبدأ المعركة الحقيقية حيث ينتهي البرنامج التعليمي ، حيث لا يمكن للأدوات إنشاء التطبيق الذي تحتاجه تلقائيًا. للمضي قدمًا ، تحتاج إلى أن تصبح مبرمجًا.
مثال
إذا كان المبتدئ يرغب في كتابة برنامج يلخص مجموعة من الأرقام باستخدام Ruby ، فيمكنه البحث في جوجل والبحث عن
هذه الصفحة . هذه أول نتيجة لـ Google في وقت كتابة هذه السطور. في صفحة StackOverflow ، كانت الإجابة الأكثر إنتاجًا هي 524 صوتًا:
array.inject(0){|sum,x| sum + x }
بالطبع يعمل. هنا مثال:
$ irb 2.4.2 :001 > array=[1,2,3] => [1, 2, 3] 2.4.2 :002 > array.inject (0){|sum, x| sum + x } => 6
قد يعمل هذا بالنسبة للمبتدئين ، لكنه لا يفهم ميزات هذا الرمز. كم هو مقروء؟ ما مدى سرعته مقارنة بالخيارات الأخرى؟ هل من السهل الحفاظ عليها؟ لماذا يعمل؟ ماذا يحدث بالضبط عندما يتم تنفيذ هذا الخط؟ ما مقدار وقت وحدة المعالجة المركزية المستخدم؟ هل يتم تحديد المتغيرات و
x بعد تنفيذ هذا السطر؟
مطور روبي المبتدئ لا يعرف الإجابة على معظم هذه الأسئلة.
التشفير: الحزام الأصفر

يمكن لبرنامج التشفير ، دون مساعدة خارجية ، جمع العديد من أسطر رمز الكمبيوتر لحل المشاكل البسيطة. لن تكون النتيجة جميلة جدًا ، لكن برنامج التشفير يفهم سبب عمل البرنامج ، ويكمل المهمة بنجاح.
الخطوة الأولى الضرورية
اتصلت بمدونتي CoderHood ، لأن كل من يكسب عيشه من خلال البرمجة في مرحلة ما وصل إلى مستوى المبرمج. تعكس كلمة Coderhood حياة المطور في عالم التكنولوجيا ، بدءًا من الحزام الأصفر الأول.
الاختلاف الرئيسي بين المبتدئ والمشفّر هو أن المشفر قادر على كتابة التعليمات البرمجية وفهمها. قد لا يفهمون بالتفصيل ما يجري وراء الكواليس ، لكنه يعرف لماذا كتب مثل هذا الرمز فقط.
في الصناعة ، عادةً ما يتم تعيين موقع لبرنامج التشفير مثل "مطور صغير" (jr. developer) أو متدرب (مطور في التدريب).
مثال
أعتقد أن "برنامج تشفير روبي" سيكون قادرًا على التوصل إلى معظم الطرق التالية لحساب مجموع مجموعة من الأعداد الصحيحة وفهم الاختلاف بينها:
$ irb 2.4.2 :001 > array=[1,2,3] => [1,2,3] 2.4.2 :002 > array.inject (0){|sum, x| sum + x } => 6 2.4.2 :003 > sum=0;array.each { |x| sum+= x } => 6 2.4.2 :004 > array. sum => 6 2.4.2 :005 > array.inject(0, :+) => 6 2.4.2 :006 > array.reduce(0, :+) => 6 2.4.2 :007 > eval array.join '+' => 6
إذا كنت مهتمًا ، فإن بعض هذه الأساليب رهيبة ، لكنها تعمل.
هاكر: جينز بدون حزام

لقد وضعت "مخترق" في القائمة لأنني سئلت عنه. لكنها ليست مناسبة تماما لمناقشتنا.
ليست المهارة الرئيسية
لا أعتقد أن "القرصنة" هي مهارة ضرورية في تطوير مطور برامج. هذه التجربة مفيدة لتعلم كيفية اختبار التطبيقات والبرامج وأنظمتها وحمايتها ، لكنني لا أرى هنا وصفًا لـ "مستوى المهارات" العام. سأصنف هذا على أنه مجال معين من النشاط ، وليس مستوى من المهارة الفنية. في الواقع ، يمكن أن يكون مستوى مهارة القراصنة. بعضها مدهش ، والبعض الآخر
ليس كذلك .
نظرًا لأن القرصنة ليست خطوة ضرورية في تطوير المطور ، من خلال قيادي ، فإن القراصنة لا يمتلكون حزامًا تقليديًا. إنهم يبدون أشبه بمقاتلي الشوارع الذين يرتدون الجينز.
البعض منهم هم بلطجية شريرة ، والبعض الآخر يحاول البقاء على قيد الحياة ، والبعض الآخر رجال طيبون يحمون البقية ، ولكن معظمهم في مكان ما بينهما.
أنواع كثيرة من "الهاكرز"
هناك العديد من أنواع المتسللين. يمكن للبعض برمجة ، والبعض الآخر لا. يعتمد معنى الكلمة على السياق وعلى من يستخدمها. بعض التعريفات الشائعة:
- خبير كمبيوتر يلتزم بثقافة فرعية من التكنولوجيا والبرمجة.
- شخص يمكنه اختراق أمان الكمبيوتر لأغراض ضارة (القبعة السوداء) أو لأغراض البحث (القبعة البيضاء).
- مطور يقوم بالعمل بأسرع الطرق وأكثرها قذارة.
- هو الشخص الذي يدرس أو يختبر أو يحقق في أنظمة ومعدات الاتصالات السلكية واللاسلكية والأنظمة المتصلة بشبكات الهاتف. ويطلق على هؤلاء المتسللين أيضًا phreakers.
- مهندس مؤهل يعمل قريبًا جدًا من الأجهزة من أجل الحصول على تحكم أفضل في النظام من أجل عمل جيد (أي ضغط المزيد من الأداء خارج المعدات) أو لأغراض ضارة (أي استخدام ثقوب الأمان وإيجاد طريقة حول حماية غرفة العمليات أنظمة).
بعض الأمثلة
اكتب 3
يمكن للقراصنة من النوع 3 تحديد هذا الخيار لجمع مجموعة من الأعداد الصحيحة:
$ irb
2.4.2: 001> "صدى" 1 2 3 "/ bc'.to_i
=> 6
تعمل الطريقة ، على الأقل في بعض الأنظمة ، لكنها ... "اختراق كامل". وكذلك يفعل المتسللون غير المهرة الذين يمكنهم البرمجة. إنهم يحلون القضايا بطرق مريبة ، عادة عن طريق تنفيذ أوامر سطر الأوامر غير المقروءة حتى يحصلوا بطريقة ما على النتيجة المرجوة.
اكتب 5
يعمل المتسللون من النوع 5 على مستوى منخفض جدًا. ليس من السهل الحصول على هذه المهارات ويمكن أن تكون ذات قيمة كبيرة إذا كنت تحاول تكوين حماية البرامج أو إنشاء تطبيقات عالية الأداء للغاية. لم أكن مطلقًا "مخترقًا" ، لكنني قمت بالبرمجة على مستوى منخفض (C و المجمع) وما زلت في القلب أعتبر نفسي متخصصًا في البرمجة منخفضة المستوى.
يمكن للقراصنة من النوع 5 أن يكونوا مقاتلين رائعين في الشوارع ، بمهارات مجنونة تمسح أنف العديد من المبرمجين المحترفين في بعض المهام المتخصصة. يمكن لهذه "القراصنة" تلخيص مجموعة من الأعداد الصحيحة باستخدام المجمع
مثل هذا .
مبرمج: حزام برتقالي

يمكن للمبرمج كتابة التطبيقات العاملة ، ويفهم الخوارزميات الأساسية ويعرف أساسيات علوم الكمبيوتر. يمكن أن يجعل البرنامج يعمل ، حتى لو لم يكن قابلاً للتطوير للغاية ومدعومًا على المدى الطويل. كقاعدة ، يعمل المبرمج بشكل جيد وحده. ليس حقيقة أنه سيكون لاعب فريق جيد.
يتوقف معظم المطورين عند هذا المستوى ، خاصة إذا لم يخططوا لدراسة نظرية علوم الكمبيوتر. يمكن للمبرمجين كتابة كود لائق والعمل في صناعة البرمجيات على هذا المستوى طوال حياتهم المهنية.
من منظور الوظيفة ، غالبًا ما يُشار إلى المبرمجين باسم "مطوري البرامج" أو "مهندسي البرمجيات".
في مثال بسيط على مجموع مصفوفة أعداد صحيحة ، يمكن للمبرمج كتابة التعليمات البرمجية بهذه الطريقة:
يطبق هذا الكود أمر سطر أوامر مفيد لتلخيص قائمة الأرقام. إذا قمت بتسميته بدون معلمات ، فإنه يعرض رسالة استخدام مفيدة. خلاف ذلك ، يطبع الإخراج القياسي. هنا مثال للاستخدام:
$./sum
Usage:
sum [ , ]
$ sum 1 2 3
6
هذا هو "الحل الكامل" ، التوثيق الذاتي وملخص إلى حد ما ، لأنه يمكن استدعاء البرنامج من سطر الأوامر.
الباحث: الحزام الأخضر

قام الباحث (عالم الكمبيوتر) بدراسة علوم الكمبيوتر سواء في المدرسة أو في العمل. لديه فهم جيد لمثل هذه المفاهيم:
- Base Base-N (N = 2، 10، 16)
- العمليات الثنائية
- منطق منطقي
- التعقيد الخوارزمي وتدوين كبير- O
- هياكل البيانات (المصفوفات والقوائم المرتبطة والأشجار B والأشجار الحمراء والأسود والصفوف والأكوام والجداول التجزئة والأكوام والمجموعات والرسوم البيانية)
- خوارزميات الفرز ومتى يتم استخدامها
- خوارزميات أساسية متعددة الخيوط
- إدارة الذاكرة وجمع القمامة (فقط لأن لغة البرمجة الخاصة بك تهتم بإدارة الذاكرة نفسها لا يعني أنه يمكنك تخطي هذا الموضوع)
- المؤشرات (تحتاج إلى فهم المفهوم على الأقل ، حتى إذا لم تقم بالتشفير في لغة C) والفرق بين معلمات التمرير حسب القيمة أو المرجع.
- مفاهيم OOP (الواجهات ، الميراث ، المنشئات ، المدمرون ، الفئات ، الأشياء ، التجريد ، التغليف ، تعدد الأشكال ، إلخ ...)
- تصميم وقوالب كائنية التوجه
- العودية
- بعض المفاهيم الأساسية حول البرمجة الديناميكية وتحليل الجشع والاستهلاك ومقارنة السلاسل وخوارزميات التقريب
حصل الباحث على درجة علمية في علوم الكمبيوتر أو عمل لعدة سنوات كمطور ، ودرس علوم الكمبيوتر التطبيقية في العمل. كما تعلم ،
لا أعتقد أن الحصول على درجة علوم الكمبيوتر ضروري لمهنة التطوير الناجحة .
إن مجرد كونك "عالم كمبيوتر" لا يجعلك مبرمجًا ممتازًا. هنا يبدو أن التناظر مع ألوان الأحزمة مكسور. لكن الأمر ليس كذلك. فكر في هذا الجانب: حتى في عالم فنون الدفاع عن النفس ، هناك تخصصات. بعض الأحزمة الخضراء تفعل أشياء أفضل من غيرها. التقدم غير الخطي. غالبًا ما يمثل لون الحزام مستوى الخبرة ومقدار العمل المبذول في إتقان فنون الدفاع عن النفس ، بدلاً من مستوى المهارة المطلوب في كل جانب.
من المحتمل أن يكتب العالم الرمز نفسه لمجموع الأرقام المبرمج. الفرق هو أنه يمكن للعالم أن يقول على الفور أن تعقيد هذه الخوارزمية هو O (n) الوقت. كما ذكرنا سابقًا ، هذا مثال أولي ، لكنك فهمت الفكرة.
مطور برامج: الحزام الأزرق

يمكن لمطور البرامج التعامل مع مشاريع أكبر وأكثر تعقيدًا. مقارنة بالمبرمج والباحث:
- يكتب تعليمات برمجية أنظف وأكثر تنظيماً وصيانتها وتوثيقها وقراءتها
- يسمح بأخطاء أقل.
- يعمل بشكل أسرع.
- يعمل بشكل أفضل كفريق ويدرك قيمة عمليات التطوير.
- يعمل على تحديد الاختناقات في أنظمة البرمجة والبرامج وتحسينها.
- لديه خبرة أكبر.
مثال
في مثال بسيط على مجموع الأعداد الصحيحة ، يمكن لمطور البرامج حل المشكلة عن طريق إنشاء خدمة توفر واجهة برمجة تطبيقات ويب. تأخذ الواجهة مجموعة من الأعداد الصحيحة وترجع المجموع.
أعتقد أن التطبيق سيتم توثيقه جيدًا وإعدادات الدعم ، وأن تكون مصحوبة باختبارات ولها بنية الشفرة الصحيحة ويمكن صيانتها بسهولة من قبل المطورين الآخرين.
على روبي ، قد يبدو التطبيق الرئيسي الذي يستخدم سيناترا شيئًا مثل هذا:
require 'sinatra' require "sinatra/config_file"
مطور برامج جيد يدرك جيدًا القيود العديدة لهذا الحل مقارنة بالآخرين. على سبيل المثال ، يقتصر على مجموع مجموعة من الأرقام التي تناسبها في URI. لا يوجد تدقيق صريح للأخطاء ؛ يجب أن تبدأ الأسطر برقم ، إلخ.
مهندس برمجيات: الحزام البني

الفرق بين مطور البرامج ومهندس البرمجيات خفي ؛ أعترف بذلك بالكامل. يتم استخدام هذه المصطلحات بشكل مترادف. ومع ذلك ، أفترض أن مهندس البرمجيات متخصص في المعرفة في مجال علوم الكمبيوتر وخبرة واسعة كمطور برامج. الاختلافات الرئيسية:
- القدرة على إنشاء أنظمة أكثر قابلية للتطوير.
- طول العمر. يعملون لفترة أطول ومع مشاكل أقل.
- أخطاء أقل وجودة رمز أفضل.
- القدرة على العمل كمدير مشروع فني وفريق.
- مهارات تعاون واتصال ممتازة.
- معرفة كافية ببنية البرمجيات للقيام بهذه المهمة.
في الشركات ، قد يكون لمثل هؤلاء المطورين وظائف "مطور أول" أو "مطور أول".
مثال
يمكن لمهندس برمجيات كتابة تطبيق كمطور من خلال إنشاء خدمة وتوفير واجهة برمجة تطبيقات لأخذ مجموعة من الأعداد الصحيحة. لكن أعتقد أن قرار المهندس سيشمل بعض التحسينات:
- نتائج التخزين المؤقت.
- تجريد المفهوم من المجموع إلى أي تعبير رياضي في الاستعلام.
- التسجيل ، المصادقة ، تتبع الخطاف ، إلخ.
يصبح المثال غبيًا
كما ترون ، فإن المثال البسيط جدًا في هذه المرحلة يصبح سخيفًا قليلاً. يتعلق الأمر بمناقشة كيفية تحسين حل فائض بالفعل لمشكلة تافهة.
على سبيل المثال ، من المرجح أن تكون إدارة ذاكرة التخزين المؤقت بنتائج عمليات بسيطة على مجموعة صغيرة من الأرقام أصعب وأبطأ من الحسابات البسيطة. ستكون ذاكرة التخزين المؤقت منطقية في حالة وجود مجموعة ضخمة من الأرقام لتمريرها إلى واجهة برمجة التطبيقات ، ولكن بعد ذلك لن تتناسب القائمة مع عنوان URI للطلب.
يمكنك نقل قائمة الأرقام إلى نص الطلب ، ولكن بعد ذلك لن تكون واجهة برمجة التطبيقات RESTFUL ، ولن يتم تخزين الطلب في ذاكرة التخزين المؤقت بعد ذلك. عند هذه النقطة ، سيكون من المغري تغيير الطلب إلى POST ، ولكنه لن يصبح مخبأًا أبدًا. على أي حال ، يمكن أن تستمر المناقشة وتستمر.
جزء حرج
انظر ماذا يحدث؟ مع تحسن مهارات المطورين وتصبح المشاريع أكثر تعقيدًا ، يحدث شيء مضحك. تتزايد المشاكل بعيداً عن "الكود الأساسي". بدلاً من ذلك ، سيعملون بشكل متزايد على معالجة السياق الذي تعمل فيه الشفرة الرئيسية.
ونتيجة لذلك ، يقضي المطورون ذوو المهارات العالية معظم وقتهم في تحسين جوانب النظام مثل قابلية التوسع والأداء والتحقق من الأخطاء والموثوقية وقابلية الصيانة والتجريد وقابلية النقل ومعالجة شروط الحدود وما إلى ذلك.
بالإضافة إلى ذلك ، سوف يتعلمون كيفية العمل بشكل أكثر كفاءة أو تحسين التفاعل مع المطورين الآخرين وكيفية العمل لتقليل المخاطر ، وما إلى ذلك. يتحول تطوير البرمجيات من التشفير إلى الأنظمة الهندسية وحل المشكلات.
مهندس البرمجيات: الحزام الأسود

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

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