[Extra Credits] تريد أن تصبح مطوراً ؟ (الجزء الثاني)
Extra Credits هو برنامج على YouTube يقدم سلسلة من الدروس والنقاشات التي تهتم بصناعة الألعاب وخصوصاً الألعاب المستقلة (Indie Games) . الأخ عبدالله كونش من مدونة تصميم الألعاب قام بمبادرة جميلة مع مؤسسين هذه السلسلة لعمل اتفاقية ترجمة الحلقات للغتنا العربية. كانت لنا فرصة جميلة بأن نتعاون مع عبدالله لدعم هذه المبادرة من طرفنا والمساعدة في الترجمة. الحلقة في هذه التدوينة هي الحلقة الثانية التي كانت من ترجمتنا بناءاً على هذا التعاون المشترك.
عنوان الحلقة: تريد أن تصبح مطوراً ؟ الجزء الثاني
وهي تتمة للحلقة الأول التي تخاطب فئة المبرمجين – أو كما يحبون تسمية أنفسهم: المطورين. في هذا الجزء سيكون التركيز على مهارة التواصل ومدى أهمية هذه المهارة في الفريق المتكون من تخصصات مختلفة. أيضاً ستتحدث الحلقة عن أهم المهارات الأخرى التي يجب على كل مطور أن يصقلها أثناء مسيرة عمله كمبرمج.
لمناقشة أفكار الحلقة، يمكنك ترك تعليق بالأسفل.
مشاهدة ممتعة!
إذا كنت تفضل القراءة على مشاهدة الفيديو أو في حالة أن YouTube لا يعمل في العمل 🙂
تفضل نص الترجمة:
مرحباً بكم، أهلاً بكم في الجزء الثاني من حلقاتنا عن كيف تصبح مطوراً ماهراً، قُدمت لكم بعد مساعدة الناس الطيبين من مجتمع Stack Exchange.
طيب لنقم بمراجعة ما ناقشناه حتى الآن: التطوير – أو البرمجة – يدور حول حل المسائل: تفكيك مشكلة معينة وإيجاد الحل الأنسب. لعمل ذلك يجب أن تكون مفكر تحليلي عظيم و مُرقّع محترف قادر على تفكيك أي نظام رقمي، فهم كيفية عمله، وإعادة تركيبه من جديد. أفضل من يحل المسائل هم المستكشفون الذين يتعلمون الأدوات والتقنيات الجديدة بأنفسهم بثبات ومن المطورين الآخرين. اليوم، أود البدء بالتحدث عن ثالث أهم مهارة للمطور الفعّال: مهارة الاتصال. لأنه إن كنت ستعمل مع أناس آخرين – وهو ما سيتحتم عليك – ستظطر في مرحلة ما إلى التحدث معهم.
معظم المطورين لا يعجبهم هذا الموضوع في الواقع. يحبوا أن يتخيلوا أنفسهم كالذئب الوحيد المحترف، الذي يمزق الكود البرمجي في ساعات الفجر الأولى، بعيداً عن استنزافات الوقت الغبية كالاجتماعات. الواقع أن التطوير الجد يكاد لا يخلو من إطار الفريق لأن هناك حد لما يقدر على فعله المطور الوحيد. الفريق المنسق بشكل جيد يقدر على مجابهة المشاكل الأصعب، توزيع المهام على كل عضو بحسب نقاط قوته، وحل المسائل بشكل أسرع وأفضل عن ما إذا أي عضو عمل نفس الشيء لوحده. مطور واحد سيء في التواصل مع الآخرين قد يهدم كل ذلك: عندما لا يتكلم الأشخاص إلى بعضهم البعض لا تتلائم القطع المتنوعة على بعض، يتم حل المسألة الخطأ، الافتراضات تتكون، الأخطاء البرمجية تتراكم وبالتالي تتأخر المشاريع. هذا المنطق ينطبق على العمل مع غير المبرمجين كما هو الحال مع المطورين المقربين. في مكان ما في فريقك سيكون هناك مدير، أو فنان، أو اختصاصي تسويق مهم لإنجاز المشروع وتقديمه إلى العملاء. إذا لم تكن تتواصل مع هؤلاء، فلن يستطيعوا القيام بمهمتهم وبالتالي سيعاني المنتج الأخير.
طيب كيف تحسن مهاراتك في التواصل؟ أولاً، عامل هذا الشيء كأي مشكلة أخرى، وتفقد الأدوات التي بحوزتك. اجتماعات، مكالمات هاتفية، سكايب، دردشة، بريد إلكتروني، ملاحظات جس نبض من النوع السلبي العدواني – كل تلك الأشياء طرق للحفاظ على التنسيق ما بينك وبين باقي أعضاء الفريق، لذا لا تتجاهلها. ولكن ثانياً، لا تريد أن تتعامل مع هذه المشكلة كأي مشكلة أخرى، لأنك تتعامل مع آدميين. يعني أن تستمع لأفكارهم، تحسن الظن فيهم، لا بافتراض أن طريقك هو دائماً الطريق الصواب. بالذات عند العمل مع غير المبرمجين بما أن نزعتك ستجعلك تفترض أن عقلية المبرمج صحيحة والفنان هو مجرد شخص مجنون. خذ نفساً عميقاً، استمع لما يقولونه مرة أخرى، وافترض حتى يتم إثبات العكس أنهم على مستوى عالي في أداء وظيفتهم بقدر مستواك في وظيفتك. الفريق الذي يحسن مهارة التواصل سيكون دائماً أفضل من الفريق الغير ممتلك لهذه المهارة.
طيب في هذه المرحلة، فقد قمنا بتغطية معنى أن تصبح مطوراً متمكناً بشكل كبير. بالطبع، هناك الكثير – بمراحل – عن ما تعنيه الصورة الكبرى عموماً. نسرد هنا بعض النصائح المحددة والمهارات التي يجدر بك صقلها كمطور.
1- الرياضيات، على الأقل الجبر وعلم الهندسة. لا يلزم بأن تكون طليق في الرياضيات حتى تصبح مبرمج، لكن ستحتاج إلى استخدمه. معظم المطورون لن يطبقوا الكثير من علوم الرياضيات المتقدمة، ولكن ستستخدم بدون شك الجبر، علم المثلثات/ الهندسة، وأساسيات علم الاحتمالات أثناء مسيرة عملك. إن كنت ممن يريدون تطوير الألعاب أو المالية ، المستويات المتقدمة من الرياضيات ستكون أكثر أهمية.
2- تقدير الوقت. صناعة البرمجيات مشهورة بتجاوز المواعيد النهائية، أحياناً بشهور أو حتى بسنوات .بعض ذلك بسبب هوس المميزات الإضافية – من الصعب جداً مقاومة إضافة مجرد ميزة واحدة أخيرة – ولكن غالباً ما يكون سبب التأخير هو كون المطورين سيئين في تقدير الوقت المطلوب لعمل شيء معين. اعمل بنشاط على مهاراتك في التقدير: فكّك كل قطعة وقدّر كل جزء، سجّل تقديرك الشخصي وكم من الوقت أخذت واقعياً، وقم باكتشاف أين أخطئت. إن لم تقيم نفسك، فاعلم أنك لن تتحسن.
3- علم الاقتصاد المصغر. إن لم يكن بإمكانك التحدث بلغة أساسيات الاقتصاد — التزويد، الطلب، تكلفة الفرص البديلة، نظرية الألعاب، إلخ – أنت وأصحاب البدل ستتكلمون باتجاه بعض فقط. أغلب القرارات الحقيقية في المشاريع تتأثر بالمال، والكثير من المبرمجين يجعلوا من أنفسهم بدون أي علاقة مع عملية أخذ القرارات النهائية بالإصرار على التفكير في جعل البرنامج متكامل بدلاً من التفكير في تقديم الأنسب للعمل.
4- أساسيات تصميم واجهة المستخدم. ببساطة هذه التجربة لا يمكن تفاديها: في مرحلة ما خلال مسيرتك المهنية، ستضطر لأن تعمل شيء سيُستخدم من قبل شخص حقيقي، ومعظم واجهات المستخدم السيئة تأتي من المبرمجين. استيعاب استعارات واجهات الاستخدام الشائعة ومتى تُستخدم ( القوائم القابلة للتمدد، النوافذ التوقيفية، الأزرار، الأيقونات، الألسنة، المجلدات، إلخ.)، وتعلم رؤيتها من منظور المستخدم هو ما سيصنع الفارق. قد تكون لست على كفء مع المصممين بالنسبة للخروج بتصميم جميل، ولكن كل مبرمج عليه أن يكون مقتدراً على الخروج بشيء قابل للاستخدام.
5- لغات البرمجة منخفضة المستوى مثل C و Assembly. قد لا تستخدم هذه اللغات كل يوم – في الواقع، قد لا تستخدم هذه اللغات مطلقاً – لكن التجريد الحاصل في كل لغات البرمجة عالية المستوى هو مبني على نفس أساسيات المؤشرات، التفرع، والعلميات الحسابية. في مرحلة ما في كل مجال صناعي تقريباً، الأداء يُعتبر معضلة واستيعاب كيفية عمل الكود في المستويات السفلى تعتبر الطريقة الوحيدة للوصول إلى كود عالي الجودة.
6- استيعاب كيفية عمل الحواسب. وهذا يعني استيعاب البنية العتادية للحاسب، الشبكات، وأنظمة التشغيل. معظم تلك التفاصيل لهذه المفاهيم تُعتبر مجردة بإتقان لك 99% من الوقت، لكن يوماً ما سيتوجب على فريقك التعامل مع فقدان رزمة بيانات، أو عطل في أحد صفحات الذاكرة العشوائية، أو فشل بنية عتادية، ولن تريد أن تلعب دور المفتش في تلك اللحظة. امتلاك استيعاب قوي لكيفية عمل كل تلك الأنظمة سيجعل منك مطوراً أفضل.
7- فقط ابدأ البرمجة! إن كانت كل هذه المفاهيم تبدو دسمة لاستيعابها حتى الآن، لن يضر أن تكسب خبرة برمجية بشكل أكبر. إذا كنت تشاهد هذه الحلقة على حاسب على الإنترنت، فأنت تمتلك كل ما تحتاج للبدء في البرمجة، شوف شغلك!
وهذا كل شيء! مرة أخرى، شكر خاص لأصدقائنا على gamedev.stackexchange.com لأفكارهم المفيدة في تطوير الألعاب. مرة أخرى، إذا كنت تتطلع لأن تصبح مبرمجاً، عليك أن تخصص بعض الوقت لزيارتهم. وحتى وإن كنت لا تريد أن تصبح مبرمجاً، Stack Exchange فتحوا موقع مرتب لسؤال وجواب أسئلة عامة أكثر تخص الألعاب، وهو ما يمكن أن تجده على: gaming.stackexchange.com. شكراً لكم مجدداً، رفاقنا! اعتقد بأنكم فعلاً قمتم بمساعدة على الأقل بعض الناس لمعرفة كيفية السعي وراء هذه المهنة.
أعجبك المحتوى؟
تفضل بتسجيل بريدك الإلكتروني حتى نرسل لك التدوينات القادمة فور نشرها في المجالات التي تهمك:
[wysija_form id=”1″]
كما نرجو منك عزيزي القاريء بأن تدعمنا بنشر هذا المحتوى على الوسط المفضل لديك من الشبكات الاجتماعية بالأسفل: