لقد حان الوقت لكي تكون جادًا في تحسين مهارات البرمجة لديك. دعنا نقوم به!
هذا هدف تحسين مهني سهل لمنح المرء نفسه ، لكن “أن تصبح مبرمجًا” ليس هدفًا بسيطًا. لسبب واحد ، يقول “أريد أن تتحسن” أنك تدرك كيف يبدو “أفضل”. بالإضافة إلى ذلك ، يهدف الكثير من الناس إلى التحسين دون أي شعور كيفية الوصول إلى هناك.
لذلك اسمحوا لي أن أشارك ثمانية مبادئ توجيهية قابلة للتنفيذ يمكن أن تكون بمثابة مخطط انسيابي لتحسين مهارات البرمجة الخاصة بك. يتم جمع هذه الحكايات الحكيمة من 35 عامًا في صناعة الكمبيوتر ، والتي تم إنفاق الكثير منها على شكل جندب متواضع عند أقدام بعض الأشخاص الذين قاموا بتعريفها وتوثيقها.
- ذكّر نفسك كم عليك أن تتعلم
الخطوة الأولى في تعلم شيء ما هي إدراك أنك لا تعرف ذلك. يبدو هذا واضحًا ، لكن المبرمجين المتمرسين يتذكرون المدة التي استغرقها التغلب على هذا الافتراض الشخصي. يتخرج عدد كبير جدًا من طلاب علوم الكمبيوتر ببراعة متكبرة “أعرف أفضل” ، وهو يقين قوي بأنهم يعرفون كل شيء والحاجة الشديدة لإثبات ذلك لكل زميل عمل جديد. بمعنى آخر: يمكن لموقفك “أعرف ما أفعله” أن يعيق تعلم أي شيء جديد. - توقف عن محاولة إثبات نفسك بشكل صحيح
لتصبح رائعًا – ليس جيدًا فقط – عليك أن تتعلم من التجربة. ولكن كن حذرا ، يمكن أن تعلمنا التجربة أن نكرر السلوك السيئ وأن نخلق عادات سيئة. لقد واجهنا جميع المبرمجين مع ثماني سنوات من الخبرة … في نفس العام من التجربة ، تكررت ثماني مرات. لتجنب هذه المتلازمة ، انظر إلى كل ما تفعله واسأل نفسك ، “كيف يمكنني تحسين هذا؟”
يبحث مطورو البرامج المبتدئون (والكثير منهم ذوو الخبرة) في التعليمات البرمجية الخاصة بهم ليعجبوا بروعتها. يكتبون اختبارات لإثبات أن التعليمات البرمجية الخاصة بهم تعمل بدلاً من محاولة جعلها تفشل. يبحث المبرمجون العظماء حقًا عن المكان الذي أخطأوا فيه – لأنهم يعلمون أن المستخدمين سيجدون في النهاية العيوب التي فاتهم - “الشفرة تعمل” ليست المكان الذي تتوقف فيه ؛ إنه المكان الذي تبدأ منه
نعم ، خطوتك الأولى هي دائمًا كتابة برامج عالية الجودة تفي بالمواصفات. استقال المبرمجون العاديون في تلك المرحلة وانتقلوا إلى الشيء التالي.
لكن التوقف بمجرد “الانتهاء” يشبه التقاط لقطة وتوقع أن يكون عملاً فنيًا. يعرف المبرمجون الكبار أن التكرار الأول هو التكرار الأول فقط. إنه يعمل – مبروك! – لكنك لم تفعل. الآن ، اجعله أفضل.
جزء من هذه العملية هو تحديد معنى “أفضل”. هل هي قيمة لجعلها أسرع؟ أسهل لتوثيق؟ أكثر قابلة لإعادة الاستخدام؟ أكثر موثوقية؟ تختلف الإجابة مع كل تطبيق ، لكن العملية لا تختلف. - اكتبه ثلاث مرات
المبرمجين جيدة كتابة البرامج التي تعمل. العظماء كتابة البرامج التي تعمل بشكل جيد للغاية. هذا نادراً ما يحدث في المحاولة الأولى. عادة ما يتم كتابة أفضل البرامج ثلاث مرات:
أولاً ، تكتب البرنامج ليثبت لنفسك (أو للعميل) أن الحل ممكن. قد لا يدرك الآخرون أن هذا مجرد إثبات للمفهوم ، لكنك تعرف ذلك.
في المرة الثانية ، تجعلك تعمل.
المرة الثالثة ، تجعله يعمل بشكل صحيح.
قد لا يكون هذا المستوى من العمل واضحًا عند النظر إلى عمل أفضل المطورين. كل ما يفعلونه يبدو رائعًا للغاية ، ولكن ما لا تراه هو أنه حتى مطوري نجم الروك ربما قاموا بإخراج الإصدارين الأول والثاني قبل عرض برامجهم على أي شخص آخر. يمكن أن يكون التخلص من الشفرة والبدء من جديد وسيلة قوية لإدراج “تحسينه” في سير عملك الشخصي.
إذا لم يكن هناك شيء آخر ، فإن “اكتبها ثلاث مرات” يعلمك عدد الطرق التي يمكن بها التعامل مع مشكلة ما. ويمنعك من الوقوع في شبق. - قراءة الرمز. قراءة الكثير من التعليمات البرمجية
ربما توقعت مني أن أؤدي هذه النصيحة ، وهي بالفعل الاقتراح الأكثر شيوعًا والأكثر قيمة لتحسين مهارات البرمجة. ما هو أقل وضوحًا هو أن قراءة كود الآخرين مهمة جدًا.
عندما تقرأ رمز الآخرين ، ترى كيف حل شخص آخر مشكلة في البرمجة. لكن لا تعاملها كأدب ؛ فكر في الأمر كدرس وتحدي. لكي تتحسن ، اسأل نفسك:
كيف كتبت كتلة التعليمات البرمجية هذه؟ ماذا ستفعل بطريقة مختلفة ، بعد أن رأيت حلاً آخر؟
ماذا تعلمت؟ كيف يمكنني تطبيق هذه التقنية على الكود الذي كتبته في الماضي؟ (“لم أفكر مطلقًا في استخدام النسب العودية هناك …”).
كيف يمكنني تحسين هذا الرمز؟ وإذا كان مشروعًا مفتوح المصدر وتثق فيه أن لديك حلاً أفضل ، فافعل ذلك!
اكتب الكود بأسلوب المؤلف. ممارسة هذا يساعدك على الوصول إلى رأس الشخص الذي كتب البرنامج ، والتي يمكن أن تحسن تعاطفك.
لا تفكر مطلقًا في هذه الخطوات. اكتب إجاباتك ، سواء في مجلة شخصية أو مدونة أو في عملية مراجعة الكود أو في منتدى مجتمع مع مطورين آخرين. تمامًا كما يمكن أن يساعدك شرح المشكلة لأحد الأصدقاء في تسوية الحل ، فإن كتابة تحليلك ومشاركته يمكن أن يساعدك على فهم سبب رد فعلك على رمز شخص آخر بطريقة معينة. هذا كله جزء من هذا التأمل الذي ذكرته سابقًا ، مما يساعدك على الحكم بنقاط القوة والضعف الخاصة بك.
تحذير: من السهل قراءة الكثير من الشفرات دون أن تصبح مبرمجًا رائعًا ، تمامًا كما يمكن للكاتب المتمني قراءة الأدب العظيم دون تحسين نثرها. ينظر الكثير من المطورين إلى المصادر المفتوحة أو غيرها من البرامج “للعثور على إجابة” ، وعلى الأرجح ، لنسخ ولصق الشفرة التي يبدو أنها تحل مشكلة مماثلة. إن القيام بذلك يمكن أن يجعلك بالفعل مبرمجًا أسوأ ، لأنك تقبل عمياء حكمة الآخرين دون أن تفحصها. (بالإضافة إلى ذلك ، قد يكون أكثر نشاطًا من نزهة صيفية ، ولكن نظرًا لأنك لم تأخذ الوقت الكافي لفهمه ، فلن تدرك أبدًا أنك استوردت مصنعًا للأخطاء فقط). - اكتب الكود ، وليس فقط كواجبات
العمل في مشاريع البرمجة الشخصية له العديد من المزايا. لأحد ، فهو يوفر لك طريقة لتعلم الأدوات والتقنيات التي لا تتوفر في وظيفتك الحالية ، ولكنها تجعلك أكثر قابلية للتسويق في الوظيفة التالية. سواء أكنت تساهم في مشروع مفتوح المصدر أو تباشر العمل لصالح منظمة مجتمع محلي ، فستكتسب مهارات تقنية وثقة بالنفس. (بالإضافة إلى ذلك ، تُظهر مشاريعك الشخصية لأصحاب العمل المحتملين أنك مبتدئة ذاتية لا تتوقف أبدًا عن التعلم.)
ميزة أخرى لكتابة التعليمات البرمجية للمتعة هي أنها تجبرك على اكتشاف الأشياء بنفسك. لا يمكنك ترك الأشياء الصعبة لشخص آخر ، لذلك يمنعك من طلب المساعدة في وقت قريب جدًا.
نصيحة للمحترفين: لا تختار سوى المشاريع الشخصية التي لا تفشل فيها أبدًا. تحتاج أن تفشل! لكنك ربما لا تريد أن تفشل في العمل أو عندما يكون لديك موعد نهائي. - اعمل شخصًا واحدًا مع المطورين الآخرين بأي طريقة ممكنة
إنها تساعد على الاستماع إلى أشخاص آخرين. قد يعني هذا البرمجة المزدوجة ، أو الانتقال إلى hackathon ، أو الانضمام إلى مجموعة مستخدمي البرمجة (مثل Vermont Coders Connection). عندما تساهم في مشروع مفتوح المصدر ، انتبه إلى التعليقات التي تحصل عليها من المستخدمين ومن المطورين الآخرين. ما هي القواسم المشتركة التي تراها في نقدهم؟
قد تكون محظوظًا بما يكفي للعثور على مرشد شخصي يمكنك الوثوق به لإرشادك في كل شيء بدءًا من تقنيات الترميز وحتى القرارات المهنية. لا تضيع هذه الفرص. - تعلم التقنيات ، وليس الأدوات
لغات البرمجة والأدوات والمنهجيات تأتي وتذهب. هذا هو السبب في أن الحصول على أكبر قدر ممكن من الخبرة مع أكبر عدد ممكن من اللغات والأطر. ركز على أساسيات البرمجة ، لأن الأساسيات لا تتغير أبدًا ؛ إيلاء المزيد من الاهتمام للهندسة المعمارية من البرمجة. إذا كنت متأكدًا من أن هناك طريقة واحدة صحيحة للقيام بشيء ما ، فقد حان الوقت للتحقق من الواقع. يمكن أن تعوق عقيدة قدرتك على تعلم أشياء جديدة ، وتجعلك بطيئًا في التكيف مع التغيير.
يمكنني الاستمرار ، ولكن هناك مبدأ رئيسي لتحسين الذات هو معرفة متى تتوقف.