10 مهارات ينبغي على المبرمج أن يتحلّى بها خلال الخمس سنوات القادمة -استرها علينا يارب-


لو أنت مطوّر -Developer- وتريد الاستمرار في مجالك -أو في بعض الأحيان , تريد الحفاظ على وظيفتك- .. فإن هذا الوقت ليس الوقت لترضى بما لديك .
يعطي Justin James مجموعة من المهارات التي من المفترض أن تتحلّى بها لكي تواصل عملك وتنجح في حباتك المهنية .

مع التغيرات القائمة الآن في الاقتصاد , الكثير من المطورين يركزون على المستوى القريب من طموحاتهم الوظيفية .

هنا 10 مهارات يجب عليك تعلّمها الآن لكي تتأكد من أنك سوف تكمل في عملك خلال الخمس سنوات القادمة .

1- واحدة من الكبار الثلاث (Java , .NET , PHP)
ما لم يكن هناك تحول كبير في تطور العالم , يجب على أي مطور ان يعلم أحد هذه الأنظمة الثلاث NET (VB.NET or C#), Java, or PHP. في المستقبل القريب .
لا يكفي أن تعلم اللغات فقط , فالمشاريع تشمل المزيد و المزيد من الوظائف المتباينة و التي ستتطلب منك معرفة الـ frameworks و libraries بشكل أعمق .

2- تطبيقات الإنترنت الغنية -(Rich Internet Applications (RIAs-
سواء أحببتها أو كرهتها , في  الآونة الاخيرة فجأة أصبح الـ Flash يستخدم ليس فقط في عروض السخرية من السياسيين أو الألعاب التافههة , فقد تم إضافة وظائف جديدة في الشكل أو Flex و AIR -تقنيات من الـ Flash- .
ومنافسوا الـ Flash كـ JavaFx و Silverlight هم أيضاً يقومون بتكثيف خصائصهم و أدائهم .
لكي تجعل موقعك أكثر تعقيداً , HTML 5 يدمج لك كل مهام RIA بالإضافة إلى database connectivity ووضع الختم الرسمي W3C على AJAX .
في المستقبل القريب , أن تكون محترف RIA سيكون مفتاح استمرار تقدم طموحاتك العملية .

3- تطوير تطبيقات الإنترنت (Web development)
الكثير من المطورين استلقوا وأهملوا الويب واعتمدوا على إطار العمل الذي يقدم لهم جاهزاً وبدون جهد , ولكن الشركات تطلب الكثير و الكثير ممن يعلمون فعلاً كيف يتعاملون مع أساسيات التكنولوجيا في مستوى “hand code” .
لذلك طور نفسك جيداً في JavaScript, CSS و HTML لكي تنجح خلال الخمس سنوات القادمة .

4- خدمات الإنترنت (Web services)
REST أو SOAP ؟ JSON أو XML ؟ , في حين أن هذين السؤالين و إجابتهم يعتمدون على المشروع ذاته , فما يزيد من صعوبة كونك مطور أن تعمل بدون Web service .
حتى على المستوى الذي يستخدم نطاقات ODBC, COM إو RPC ينتقلون إلى أشكال متعددة من الـ Web services .
المطورون الذين لا يستطيعون العمل مع الـ Web services سيجدون أنفسهم في مستويات متدنية .

5- المهارات الشخصية (Soft skills)
اتجاه واحد مستمر منذ فترة ليست بالقصيرة وهو تزايد بروز تكنولوجيا المعلومات داخل و خارج المؤسسات و الشركات .
تم إشراك المطورين إلى الكثير و الكثير من الاجتماعات التي تهتم بالشأن الغير برمجي أو الغير منوط بالتطوير ذاته و العمليات التي يراد منها إعطاء تغذية عكسية لعملهم .
على سبيل المثال مدير حسابات شركة ما , الـ -CFO- لا يستطيع تغيير قوانين الحسابات بدون العمل مع قسم الـ IT لتطوير و تعديل النظام .
ومدير العمليات لا يستطيع تعديل عمليات مركز الاتصالات -call center- بدون أن يطور قسم الـ IT طريقة عمل إدارة علاقات المستهلكين , الـ -CRM- .
بنفس الطريقة , يريد بعض المستهلكين العمل مباشرة مع فرق المطورين ليتأكدوا ان متطلباتهم قد وصلت بالشكل المطلوب .
حسناً , هل على كل مطور أن يتعلم كيفية كسب الأصدقاء أو يتعلم طرق التأثير على الناس ؟! لا , ولكن المطورون الذين يفعلون ذلك سوف يزيدون من قيمتهم عند مشغليهم , وسوف يساعدهم ذلك في سوق العمل .

6- لغة برمجة ديناميكية مع أو لغة برمجة وظيفية , على الأقل واحدة (One dynamic and/or functional programming language)
لغات مثل Ruby و Python و #F و Groovy حتى الآن ليسوا الإتجاه السائد و كلن من المتوقع لهم الكثير .
على سبيل المثال LINQ system في Microsoft’s .NET هي نتاج أسلوب البرمجة الوظيفية -functional programming- .
كل من Ruby و Python أصبحوا ملائمين جداً في بعض القطاعات .
تعليم واحد من هذه اللغات لن تحسن من فرصك الوظيفية فقط ولكنها أيضاً سوف توسع من مداركك .
كل المطورين الكبار الذين قابلتهم -والكلام للكاتب- يوصون بتعلم على الأقل لغة برمجة واحدة سواء ديناميكية أو وظيفية -dynamic or functional- لتعلم طرق تفكير جديدة , وعن تجربة شخصية فإن جدوى ذلك كبيرة .

7- منهجيات Agile methodologies) Agile)
في السابق واجهت تلك المنهجيات ببعض الشكوك ولكن بمرور الوقت الأفكار التي وراء Agile تم تعريفها و توضيحها جيداً .
المطورون الذين نجحوا في فهم بيئة Agile سوف يكونون مطلوبون بشدة خلال الخمس سنوات القادمة .

8- مجال المعرفة (Domain knowledge)
يداً بيد مع منهجيات Agile , فرق المطورين أصبحوا مشاريكن بشكل أساسي في تعريف وتحديد المشروعات .
بما يعني أن المطورون الذين يفهمون مجال المشكلة قادرون على المساهمة في المشروع بشكل كبير و بصورة قيمة و فعالة .
مع Agile , المطور الذي يقول "من هنا , بإمكاننا أيضاً إضافة تلك الخاصية بسهولة , وسوف تعطينا قيمة أكبر" أو "فعلاً , هذا المتطلب لا يتماشى مع ما نفعل" وبالتالي سوف يبرز دوره .
كما هو الحال مع الكثير من المطورين يقاومون فكرة أن يضطروا إلى معرفة أي شيء عن المشكلة -problem domain- , لا ينكر أحد أن زيادة أعداد المنظمات يعطي الألوية إلى -إذا لم يكن من المطلوب- المطورين على الأقل لفهم الأساسيات .

9- "Development "hygiene
لسنين قليلة مضت , الكثير -إن لم يكن معظم- المهتمين بشان التطوير , لم يتمكنوا من العمل على أنظمة تتبع الأخطاء -bug tracking systems- أو التحكم في الإصدارات -version control- و الكثير من الأدوات المشابههة .
لم يكن هناك إلا المطورون وبيئات العمل التي اختاروها , ولكن الآن الفضل يرجع إلى برامج مثل Microsoft Visual Studio Team System و الثورة في معدل التشغيل بكفاءة عالية , والبيئات المفتوحة المصدر .
على المطورين أن يعلموا ليس فقط كيفية فحص الكود أو كيفية استخدام الـ VM لعمل بيئات اختبارية لبرامجهم . فهم يحتاجون إلى rigorous habit of hygiene في مكان ليتأكدوا أنهم يتعاونون مع فرقهم بشكل سليم .
“Code cowboys” هو الذي يخزن كل شيء على USB drive .

10- تطوير تطبيقات الموبايل (Mobile development)
شهدت التسعينيات صعود تطوير تطبيقات الإنترنت والذي أدى بعد ذلك إلى أن وضع تطبيقات سطح المكتب في المرتبة الثانية في العديد من المناطق .
في 2008 تطوير تطبيقات الموبايل تبعت المسيرة و سوف تكون مهمة جداً خلال الخمس سنوات القادمة .
بالتأكيد هناك مجالات متعددة لتطبيقات الموبايل : فمن تطبيقات الإنترنت التي صممت لكي تعمل على أجهزة الموبايل و RIAs التي تستهدف هذا السوق إلى التطبيقات التي تعمل مباشرة مع تلك الأجهزة .
بصرف النظر عما ستختار من هذين المجالين , إضافة مهارة عمل تطبيقات الموبايل إلى مهاراتك , سوف يكون ضمانة لاستمرار الطلب عليك في المستقبل .

تمت إضافة بعض اللينكات لتوضيح المصطلحات إلى الويكيبيديا لزيادة المعرفة .

أرجو ان تكونوا قد استفدتم .

المقال مترجم من هنا .

ليست هناك تعليقات:

إرسال تعليق

---- أتشرف بتعليقاتكم ----