هل ينبغي للمطورين اليوم أن يكونوا أكثر أو أقل تخصصًا؟
على مدار السنوات القليلة الماضية، سمعنا الكثير عن مطوري البرامج الكاملة. في الواقع، يفضلهم بعض مديري التوظيف. ومع ذلك، فإن التعقيد المتزايد لتطوير البرامج يتطلب معرفة متخصصة قد لا يمتلكها المتخصصون. من ناحية أخرى، قد يفتقر المتخصصون إلى الرؤية الشاملة التي يتمتع بها مطورو البرامج الكاملة.
الحجة لصالح المزيد من المتخصصين
حول فرويند، الرئيس التنفيذي والمؤسس المشارك لـ ويلكوتقول منصة تطوير المهارات لمهندسي البرمجيات إن التخصص ليس ضمانًا للمستقبل لأن المهارات تتغير دائمًا.
يقول فرويند في مقابلة عبر البريد الإلكتروني: “إذا كنت تريد التخصص، فيجب أن تتخصص في القدرة على اكتساب مهارات جديدة بسهولة. يجب أن يركز المطورون على أن يكونوا متخصصين في مجالات عامة يمكنهم التكيف بسهولة مع التقنيات والمنهجيات الجديدة. وهذا صحيح بشكل خاص مع الذكاء الاصطناعي، حيث يجب أن يكون الافتراض هو أن الذكاء الاصطناعي سيتولى في النهاية أي مهارة أو تخصص معين. إذا كان بإمكانك اكتساب مهارات جديدة، فيمكنك التحول إلى المجالات المطلوبة”.
غازينفر منصور، مؤسس ومدير تنفيذي لشركة تطوير تطبيقات الهاتف المحمول والويب للرعاية الصحية أنهار التكنولوجيا، يعتقد أن هناك حاجة متزايدة لمطوري البرامج الكاملة.
يقول منصور في مقابلة عبر البريد الإلكتروني: “يُظهِر هذا الاتجاه ابتعادًا عن الوظائف المتخصصة المعتادة. ونتيجة لهذا الاتجاه، تُطرَح أسئلة كبيرة حول الطريقة التي يمكن بها للشركات مزج المعرفة المتخصصة مع المهارات الأوسع للتعامل مع احتياجات التكنولوجيا اليوم وغدًا”.
أندريا مالاجودي، مدير تكنولوجيا المعلومات في شركة تقديم حلول الكود النظيف سوناريعتقد أن امتلاك مجموعة أوسع من المهارات يسمح بالاستفادة من الفرص التي تأتي وأن التخصص المفرط يمكن أن يشكل عائقًا أمام بناء مهنة تطوير البرمجيات.
“أعتقد أن امتلاك خلفية متنوعة وفهم أوسع ومجموعة مهارات أمر مهم لمهنة ناجحة طويلة الأجل في تطوير البرمجيات. المعرفة والخبرة بلغات البرمجة والتقنيات المختلفة ذات قيمة كبيرة”، كما يقول مالاجودي. “يساعد هذا المطورين على التفكير بشكل أكثر انتقادًا وإبداعًا وفي النهاية تعزيز دورهم كمصمم/مبرمج برمجيات. من المهم أيضًا أن تكون منفتح الذهن بشأن المستقبل”.
الحجة لصالح المزيد من المتخصصين
ستيفن هيليون، نائب الرئيس الأول للبيانات والذكاء الاصطناعي في شركة تقديم منصة تنسيق البيانات عالم الفلك، نرى أن عدد المطورين المتخصصين يتزايد بسبب زيادة تعقيد البرامج.
يقول هيليون: “لن تتغير الحاجة إلى المتخصصين. بل أتوقع أن تزداد الحاجة، فما زال لدينا عدد من العملاء الذين يعتمدون على مطوري البرامج الكاملة. وأود أن أقول إن الاتجاه العام هو نحو احتياج الشركات إلى مطورين أكثر تخصصًا يتمتعون بالتركيبة الصحيحة من المهارات الفنية والمعرفة القطاعية لتقديم ما هو مطلوب في مجموعة التقنيات المعقدة. وهناك طلب كبير على المطورين المتخصصين في قطاعات صناعية معينة”.
إيليا بادييف، رئيس قسم علوم البيانات في شركة السفر العالمية
مجموعة تريفولوشن ويرى أيضًا اتجاهًا نحو مزيد من التخصص.
يقول باديف في مقابلة عبر البريد الإلكتروني: “منذ حوالي 20 إلى 30 عامًا، لم يكن هناك تمييز بين مطوري “الواجهة الخلفية” و”الواجهة الأمامية”. كان هناك فقط مبرمجون يتمتعون بمجموعة واسعة من المهارات التي تغطي عمليات البرمجيات بالكامل. كان بإمكانهم إعداد أنظمة التشغيل وكتابة كود الخادم وحتى إصلاح HTML. في بعض الأحيان كانوا يعرفون كيفية لحام الأجهزة البسيطة والقيام بالبرمجة منخفضة المستوى. في الوقت الحاضر، نشهد اتجاهًا مثيرًا نحو التخصص: الواجهة الأمامية والخلفية وDevOps ومهندسي السحابة ومهندسي البيانات وما إلى ذلك”.
وبشكل عام، يرى أن تطوير برمجة الذكاء الاصطناعي يتقدم نحو أداء مهام المطورين المبتدئين والمتوسطين، مثل كتابة التعليمات البرمجية بناءً على مواصفات تقنية جاهزة. ومع ذلك، فإن الهندسة المعمارية والتخطيط سيظلان تحت سيطرة الإنسان في الوقت الحالي.
“تخيل أنك تصف نظامًا، وبنية حل تقريبية، ويكتب الذكاء الاصطناعي جميع أجزاء التعليمات البرمجية اللازمة لك، بما في ذلك البنية الأساسية. كل ما عليك فعله هو مراجعتها”، كما يقول باديف. “ومع ذلك، في المستقبل، من المرجح أن يكون الذكاء الاصطناعي قادرًا على تصميم البنية الأساسية بالإضافة إلى إنشاءاللغة الإنجليزية هي لغة البرمجة الأكثر شعبية“.”
ومع ذلك، يقول بيتر أوبريشت، كبير مهندسي البرمجيات في شركة تقديم خادم التطبيقات مفتوح المصدر: خدمات بايارا، يقول العديد من المطورين الذين يعرفون أنفسهم بأنهم مطورون متكاملون لديهم خلفية أقوى في تطوير الواجهة الخلفية مع مهارات محدودة في الواجهة الأمامية. قد تكون معرفتهم بلغة HTML وCSS قديمة، وتفتقر إلى العمق المطلوب لتطوير الويب الحديث، والذي يتطلب الكفاءة في مجالات مثل الترميز الدلالي وتحسين محركات البحث وإمكانية الوصول والتوافق بين الأجهزة.
“مع استمرار تطور التكنولوجيا، يميل الاتجاه نحو المزيد من التخصص بدلاً من التعميم. إن تعقيد التطبيقات الحديثة والتقدم السريع للتكنولوجيا يعني أنه من الصعب بشكل متزايد على مطور واحد أن يتقن جميع مجالات المكدس بشكل شامل”، كما يقول أوبريشت. “في نطاق تطوير الواجهة الأمامية، نرى الآن تخصصات فرعية. على سبيل المثال، تركز “واجهة المستخدم” على واجهة المستخدم والتخطيطات والجوانب المرئية لتطبيق الويب، بينما تتعامل “الواجهة الخلفية” مع واجهات برمجة التطبيقات والتوجيه وعمليات CRUD. في السابق، كان مطورو الواجهة الخلفية يتعاملون مع هذه المهام باستخدام لغات جانب الخادم، مثل PHP أو Python. اليوم، مع تشغيل JavaScript على الخادم، اتسع نطاق ما يعتبر عملاً “واجهة أمامية” بشكل كبير.”
القليل من كليهما
لا يحتاج مطورو البرامج الكاملة والمتخصصون إلى أن يكونوا متنافيين. في الواقع، يفضل البعض كليهما.
على سبيل المثال، كيتلين وينيانين، خبيرة التوظيف والتوظيف في وكالة توظيف تكنولوجيا المعلومات تأجير على الإشارة يقول إنه نظراً لحالة التغير المستمر التي تشهدها التكنولوجيا، فإن أفضل مهندسي البرمجيات يظلون في المقدمة من خلال التعلم المستمر للتقنيات الجديدة في المنزل، إذا لزم الأمر.
يقول وينياينن في مقابلة عبر البريد الإلكتروني: “بينما قد يتخصص مهندسو البرمجيات في تطوير الواجهة الخلفية أو الأمامية، فإن معظم الشركات اليوم تسعى إلى تطوير مطورين متكاملين. أولئك الذين يظهرون فضولًا حقيقيًا للتعلم والاستعداد للتعلم يمكنهم تسويق أنفسهم كمطورين متكاملين لأنهم يأخذون الوقت الكافي للتعلم واللعب بالكود في وقتهم الخاص. يبدو أن مهندسي البرمجيات العظماء يريدون تعلم كل شيء عن أي عملية من البداية إلى النهاية وهم قادرون على التواصل بشكل جيد في المقابلات”.
ماكسيم إيفانوف، الرئيس التنفيذي والمؤسس المشارك لمزود منصة تنسيق البيانات ايمبروسوفت، يعتقد أن بعض المعرفة العامة مهمة للمتخصصين.
يقول إيفانوف في مقابلة عبر البريد الإلكتروني: “بدون المعرفة الأساسية، فإن متابعة أي مجال تطوير محدد يشكل تحديًا. ولهذا السبب، من الضروري البدء بإتقان التقنيات الأساسية التي يتقنها الشخص بشكل أكبر، مما يساعده على تعلم أشياء جديدة بشكل أسرع. ومع ذلك، لا ينبغي أن تكون التقنيات الأساسية هي الهدف النهائي. من الضروري أيضًا مواكبة اتجاهات التكنولوجيا والاستمرار دائمًا في استخدام التكنولوجيا الجديدة”.
تتطلب المهام التي تتجاوز المتطلبات القياسية أو العامة مشاركة متخصصين لديهم المعرفة والخبرة في مجالات محددة. على سبيل المثال، يتطلب المشروع الذي يتطلب خوارزميات معقدة أو تقنيات محددة متخصصًا لديه فهم عميق لها.
يقول إيفانوف: “إن التطوير الضيق والمتخصص والشامل يكمل كل منهما الآخر. يتمتع مطورو التطوير الشامل بمعرفة واسعة ويمكنهم تغطية عملية التطوير بالكامل من الواجهة الأمامية إلى الواجهة الخلفية، مما يضمن الوظائف الأساسية وتكامل النظام. وفي الوقت نفسه، يمكن للمطورين المتخصصين التركيز على أجزاء معقدة أو فريدة من المشروع تتطلب فهمًا عميقًا لتقنية أو منهجية معينة”.
لورين بيريز، مدير تصميم تجربة التعلم في شركة تقدم حلول التدريب التقني والمواهب الجمعية العامة، يوافق.
يقول بيريز: “يمكن للمطورين الذين يعملون في مجالات متعددة التحرك بسلاسة بين طبقات مختلفة من التطبيق، مما يقلل من الحاجة إلى عمليات التسليم بين أعضاء الفريق المتخصصين. وهذا يسمح بتكوين فرق أصغر حجمًا، ولكن قد يتطلب استشاريين للمشروعات التي تتطلب خبرة عميقة في مجالات محددة. بالنسبة للطلاب الذين يقتحمون مجال التكنولوجيا، فإن امتلاك مهارات متعددة أو أوسع نطاقًا يمكن أن يجعلهم أكثر قابلية للتوظيف، خاصة عند البحث عن وظيفة على نطاق واسع. بشكل عام، هناك عدد أقل من الوظائف المتخصصة للغاية في أي مجال، والطلب عادة ما يكون على الخبراء ذوي الخبرة المرنة”.
ولكن في النهاية، يتعلق الأمر بالتوازن. فالتخصص يوفر ميزة أن تصبح خبيرًا في مجال محدد، وهو ما قد يكون مجزيًا ماليًا وشخصيًا، ولكن كونك متخصصًا في مجالات عامة يوفر المزيد من المرونة ويجعل المطورين قادرين على التكيف.
يقول بيريز: “قد يكون النهج الأفضل هو مزيج من الاثنين: الحصول على قاعدة متينة من المهارات مع التعمق في المجالات التي تهتم بها من خلال صاحب العمل الخاص بك”.