أفضل المبرمجين الذين أعرفهم

لقد قابلتُ العديد من المبرمجين في حياتي. مؤخرًا، سألتُ نفسي: “ما الذي يتطلبه الأمر لأكون من بين الأفضل؟ ما هو القاسم المشترك بينهم جميعًا؟”

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

اقرأ المرجع

لو كان هناك شيء واحد كان عليّ فعله كمبرمج شاب، لكان قراءة مرجع البرنامج الذي كنت أستخدمه. أي قراءة وثائق خادم الويب Apache، أو مكتبة Python القياسية، أو مواصفات TOML.

لا تذهب إلى موقع Stack Overflow، ولا تسأل الذكاء الإصطناعي، ولا تُخمّن، بل اذهب مباشرةً إلى المصدر. غالبًا ما يكون سهل الوصول إليه ومكتوبًا بإتقان.

تعرف على أدواتك جيدًا

يفهم المبرمجين العظماء التقنيات التي يستخدمونها على مستوى أساسي.

إن القدرة على استخدام أداة شيء، وفهمها حقًا شيء آخر تمامًا. سيتخبط المستخدم العادي، ويرتبك بسهولة، ويفهمها بشكل خاطئ، ولن يُحسّن إعداداتها.

يدخل خبير (بعد قراءة المرجع!) ويجلس لكتابة ملف تهيئة للأداة، ويفهم كل سطر فيه، ويستطيع شرحه لزميله. هذا لا يترك مجالًا للشك!

لكي تعرف أداة ما بشكل جيد، عليك أن تعرف:

  • تاريخه: من أنشأه؟ ولماذا؟ ولحل أي مشكلة؟
  • حاضره: من يحافظ عليه؟ أين يعمل؟ على ماذا؟
  • حدودها: متى لا تكون الأداة مناسبة؟
  • نظامها البيئي: ما هي المكتبات الموجودة؟ من يستخدمها؟ ما هي الإضافات؟

على سبيل المثال، إذا كنتَ مهندسًا في مجال الواجهات الخلفية (backend) وتستخدم Kafka بكثرة، أتوقع منك معرفة الكثير عنه – وليس فقط ما تقرأه على Reddit. على الأقل هذا ما أتوقعه إذا كنتَ ترغب في أن تصبح من أفضل المبرمجين.

اقرأ رسالة الخطأ

كما في “اقرأ رسالة الخطأ جيدًا وحاول فهم ما هو مكتوب”. اتضح أنه بمجرد أن تجلس وتتأمل رسالة الخطأ، ستبدأ بالتأثير عليك. يستطيع أفضل المبرمجين استنتاج كم هائل من المعلومات من سياق ضيق جدًا. بمجرد قراءة رسالة الخطأ، يمكنك حل معظم المشاكل بنفسك.

مشاكل الأعطال

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

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

لا تخف من تلويث يديك

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

مساعدة الآخرين دائما

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

الكتابة

معظم المبرمجين الرائعين يتحدثون بشكل جيد ويسعدهم مشاركة المعرفة.

الأفضل أن يكون لديهم منفذ لأفكارهم: المدونات، أو المحادثات، أو المصادر المفتوحة، أو مزيج من هذه الأشياء.

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

يجد المبرمجون المتميزون متعة في اللعب بالكلمات.

لا تتوقف عن التعلم أبدًا

بعضٌ من أفضل المبرمجين الذين أعرفهم تجاوزوا الستين من العمر. يتفوقون عليّ بكثير. جزءٌ من السبب هو استمرارهم في التعلم. إذا كانت هناك أداة جديدة لم يجربوها أو لغة برمجة أعجبتهم، فسيتعلمونها. بهذه الطريقة، يبقون دائمًا على اطلاع دائم بالأمور دون بذل الكثير من الجهد.

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

على غرار ذلك، لا يتبع أفضل المبرمجين التوجهات السائدة، بل يُقيّمون دائمًا فوائد التقنيات الجديدة بعناية. فإذا رفضوها، يُمكنهم إخبارك بالسبب، ومتى تُعدّ هذه التقنية خيارًا جيدًا، وما هي البدائل.

الوضع لا يهم

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

بناء السمعة

يمكنك أن تكون مبرمجا جيدًا إذا قمت بعمل جيد، ولكن لا يمكنك أن تكون واحدًا من الأفضل إلا إذا كنت معروفًا بعملك الجيد؛ على الأقل داخل منظمة (أكبر).

هناك العديد من الطرق لبناء سمعة لنفسك:

  • لقد قمت ببناء وشحن خدمة مهمة لمنظمة (أكبر).
  • لقد كتبت أداة مشهورة
  • تساهم في أداة مفتوحة المصدر شائعة
  • لقد كتبت كتابًا يتم ذكره كثيرًا

لماذا أعتقد أنه من المهم أن تكون معروفًا بعملك؟ كل ما سبق طرقٌ لتوسيع نطاق تأثيرك في المجتمع. يؤثر المطورون المشهورون على عدد أكبر بكثير من الناس مقارنةً بالمطورين غير المشهورين. هناك حدودٌ لكمية الأكواد التي يمكنك كتابتها. إذا كنت ترغب في “توسيع” تأثيرك، فعليك أن تصبح رائدًا فكريًا.

بناء السمعة الطيبة هدفٌ طويل الأمد. لا يتحقق بين ليلة وضحاها، ولا يجب أن يتحقق. ولن يحدث صدفة. أنت تحضر كل يوم وتؤدي عملك. مع مرور الوقت، سيُظهر عملك جدارته. سيثق بك وبعملك المزيد من الناس، وسيرغبون في العمل معك. ستعمل على مشاريع أكثر شهرة، وستتسع دائرة معارفك.

سمعتُ ذات مرة أن أعمالك الأخيرة يجب أن تطغى على كل ما سبقها. وهذا دليلٌ على أنك تسير على الطريق الصحيح.

تحلى بالصبر

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

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

لا تلوم الكمبيوتر أبدًا

يلقي معظم المطورين باللوم على البرنامج، أو الأشخاص الآخرين، أو كلابهم، أو الطقس، فيما يتعلق بالأخطاء المتقطعة “العشوائية” على ما يبدو.

أفضل المطورين لا يفعلون ذلك.

بغض النظر عن مدى غرابة أو شقاوة سلوك الكمبيوتر، هناك دائمًا تفسير منطقي: ولكنك لم تجده بعد!

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

بهذه الروح، يتمكنون من إحراز تقدم مذهل وتعلم أشياء يعجز عنها الآخرون. عندما تخلط بين الحشرات والسحر الغامض، سيبقى السحر هو هو.

لا تخف من قول “لا أعرف”

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

قال أفضل المرشحين: “هاه، لا أعرف، لكن هذا سؤال شيق! لو خُمّنتُ، لقلتُ…” ثم شرعوا في استنتاج الإجابة. هذه علامة على أن لديك القدرة على أن تصبح مبرمج بارع.

إذا كنت تخشى قول “لا أعرف”، فأنت تنطلق من موقف متعجرف أو دفاعي. لا أحبّ المُضلّلين في فريقي. من الأفضل أن تُقرّ بأنك لا تستطيع معرفة كل شيء. بمجرد أن تتقبل ذلك، ستُتيح لنفسك فرصة التعلّم. قال ألبرت أينشتاين: “المهم هو ألا تتوقف عن طرح الأسئلة”.

لا تخمن

“في مواجهة الغموض، ارفض إغراء التخمين” هذه واحدة من القواعد المفضلة لدي في PEP 20 – Zen of Python.

ومن المغري جدًا التخمين!

لقد ذهبت إلى هناك عدة مرات وفشلت في تحقيق طموحاتي.

عندما تخمن، يمكن أن يحدث شيئان:

  • في أفضل الأحوال، أنت مخطئ وافتراضاتك الخاطئة تؤدي إلى خطأ.
  • في أسوأ الأحوال، أنت على حق… ولن تتوقف أبدًا عن إعادة النظر في نفسك. ستبني نموذجك الذهني بناءً على افتراضات خاطئة. قد يطاردك هذا طويلًا.

مرة أخرى، قاوم الرغبة في التخمين. اطرح أسئلة، اقرأ المرجع، استخدم مصحح أخطاء، وكن دقيقًا. افعل ما يلزم للحصول على الإجابة.

ابقي الأمر بسيطًا

المهندسون الأذكياء يكتبون أكوادًا ذكية. المهندسون الاستثنائيون يكتبون أكوادًا بسيطة.

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

يمكنك تحقيق الكثير بالبساطة. ركّز على الأمور الصحيحة.

الأفكار النهائية

إن ما ورد أعلاه ليس قائمة تحقق أو مسابقة؛ والهندسة العظيمة ليست سباقًا.

لا تخدع نفسك بالاعتقاد بأنك تستطيع تجاوز العمل الشاق. لا يوجد طريق مختصر. بالتوفيق في رحلتك.


اكتشاف المزيد من بايثون العربي

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading