▪︎ مجلس نيوز
يسألني أحد الأصدقاء أو المعارف أسبوعيًا تقريبًا ، “أريد أن أتعلم البرمجة ؛ بأي لغة يجب أن أبدأ بها؟ ” أحصل على DM على LinkedIn أكثر أو أقل كل أسبوعين بدءًا من ، “يجب أن يبدأ ابني البرمجة ؛ ما هي افضل لغة له؟ “
ليس فقط الأشخاص الذين لم يسبق لهم الترميز من قبل. غالبًا ما أتلقى هذه الرسائل من أشخاص لديهم عدة سنوات من الخبرة في الترميز تحت أحزمتهم.
أنا لا أقول هذا للشكوى.
انضم إلى TNW في فالنسيا!
يأتي قلب التكنولوجيا إلى قلب البحر الأبيض المتوسط
أكسب نصف عيشتي من حث إيجابيات وسلبيات لغات البرمجة وأطر العمل ونماذج الذكاء الاصطناعي المختلفة هنا على Medium. أنا أستفيد كثيرا من الناس الذين لديهم مثل هذه الأسئلة.
الأسئلة بديهية للغاية. بعد كل شيء ، يرغب الجميع في العمل بأفضل الأدوات الممكنة وبناء مهاراتهم البرمجية في أسرع وقت ممكن.
وعندما تلاحظ أن كل مطور يبدو أنه يستخدم مجموعة تقنيات مختلفة ، فمن المنطقي تمامًا أن تتساءل عن الأفضل.
الشيء هو أن كل هذا يتوقف على المشكلة المطروحة.
لا توجد تقنية بحد ذاتها جيدة أو سيئة ؛ يعتمد الأمر فقط على نوع المشكلة التي تريد حلها. في نهاية المطاف ، البرمجة هي فقط: حل المشكلات عن طريق استخدام الكمبيوتر.
لذلك ، بالنسبة للأشخاص الذين يرغبون في بدء البرمجة أو تحسين مهاراتهم في تطوير البرامج أو علم البيانات ، لا ينبغي أن يكون السؤال ، “ما الذي يجب أن أستخدمه ، بايثون أو جوليا؟ ” يجب أن يكون السؤال: “كيف يمكنني حل مشكلات البرامج بشكل أفضل؟”
كيفية حل المشاكل
للإفصاح الكامل ، أنا لست عالم كمبيوتر عن طريق التجارة. أنا عالم فيزياء الجسيمات وقد استخدمت مفاهيم من علم البرمجة والبيانات لأنني أتعامل مع كميات هائلة من البيانات من مصادمات الجسيمات.
ومع ذلك ، فإن علماء الفيزياء مطلوبون بالمثل مثل علماء الكمبيوتر. هذا ليس بسبب معرفتهم بالنيوترينوات أو الثقوب السوداء. إنه بسبب قدراتهم في حل المشكلات.
نُقل عن أبراهام لينكولن قوله ، “امنحني ست ساعات لقطع شجرة وسأقضي الأربع ساعات الأولى في شحذ الفأس.”
بالنسبة للمبرمجين وعلماء البيانات ، يعني هذا قضاء الوقت في فهم المشكلة وإيجاد حلول عالية المستوى قبل البدء في البرمجة. في مقابلة الترميز المتوسطة ، من المتوقع أن يقضي المرشحون أقل من نصف وقتهم في كتابة التعليمات البرمجية ، والوقت المتبقي في فهم المشكلة.
1. فهم المشكلة
لا تتخطى هذه الخطوة أبدًا!
المفتاح لمعرفة ما إذا كنت تفهم مشكلة ما هو ما إذا كان يمكنك شرحها لشخص ليس على دراية بها. حاول كتابتها بلغة إنجليزية بسيطة أو بلغتك الأم ؛ ارسم مخططًا صغيرًا أو أخبر صديقًا عنها. إذا لم يفهم صديقك ما تتحدث عنه ، فعليك العودة إلى بيان المشكلة.
الأسئلة الرئيسية التي يجب طرحها هي:
- ما هو المدخل؟ ما هو الناتج المطلوب؟
على سبيل المثال ، يمكن أن يكون الإدخال عبارة عن مصفوفة من البيانات ، وقد يكون الإخراج انحدارًا خطيًا على البيانات. - ما هي الافتراضات الكامنة وراء المشكلة؟
على سبيل المثال ، قد تفترض أنه لا يوجد (تقريبًا) خطأ في القياس في بياناتك. - ما الذي يجعل هذه المشكلة معقدة؟
على سبيل المثال ، قد تكون البيانات التي بحوزتك غير مكتملة أو قد تكون مجموعة البيانات صغيرة جدًا لاستخلاص استنتاجات واضحة.
2. كسر المشكلة
كل مشكلة كبيرة تتكون من الكثير من المشاكل الصغيرة. بالنظر إلى مثالنا السابق مع الانحدار الخطي ، قد ترغب في النظر في المشاكل الفرعية التالية:
- تنظيف البيانات
- معرفة أي المتغيرات في البيانات ذات مغزى للانحدار ، وأيها يمكن إهمالها بأمان
- البحث عن الأداة الصحيحة لإجراء الانحدار (هذا هو المكان الذي يلعب فيه السؤال القديم حول لغات وأطر البرمجة)
- تقييم نتائجك والتحقق من الأخطاء
يساعدك تقسيم المشكلة على وضع خطة مناسبة لعملك.
إنه أيضًا أكثر تحفيزًا ، لأنك ستحقق إنجازات صغيرة ولكنها مهمة على طول الطريق. هذا أكثر إرضاءً من الجلوس أمام جبل من العمل والشعور بأنك لا تمضي قدمًا.
3. ابدأ بمثال
الشيطان يكمن دائما في التفاصيل.
بدلاً من البدء بالمشروع بأكمله ، خذ جزءًا صغيرًا منه. جرب ما إذا كانت خطتك تعمل ، أو ما إذا كان عليك تعديلها بسبب صعوبات غير متوقعة.
هذا يساعدك على الالتفاف حول الأجزاء الصعبة. تبدو العديد من المشكلات بسيطة ، ولكن عندما تبدأ في بنائها ، يكون هناك حاجز واحد تلو الآخر.
في مثالنا ، بدلاً من استخدام جميع المتغيرات ذات الصلة ، يمكن للمرء إجراء انحدار خطي على متغيرين أولاً. لن يمنحك هذا أي نقاط لإكمال المشروع ؛ ومع ذلك ، فإن العثور على أخطاء في البرامج النصية الخاصة بك عندما لا تزال تتعامل مع كمية صغيرة من البيانات يمكن أن يكون منقذًا للحياة.
عندما تقوم بإلقاء جميع بياناتك على الجهاز ، وتشغيله لساعات ، ثم العودة لإدراك أن النص تم تعليقه في منتصف الطريق ، فسوف تشعر بالإحباط الشديد.
صدقني ، هذا يحدث كثيرًا!
قم بإجراء اختبارات صغيرة أولاً ، وتأكد من أن الحل الخاص بك يعمل كما تصوره.
4. تنفيذ
هذا هو الجزء اللحمي. الآن يمكنك بناء الحل لمشكلتك الكبيرة.
ارمي جميع البيانات الخاصة بك في الكود. قم بتشغيل نموذج خيالي. افعل ما تشاء.
بعد الانتهاء من الخطوات الثلاث السابقة ، يجب أن يتم ذلك بسلاسة تامة!
إذا كانت هناك أخطاء ، فقد يتعين عليك الرجوع إلى الخطوات من 1 إلى 3 لمعرفة ما إذا كنت قد فهمت كل شيء بالفعل ولم تتجاهل أي أخطاء.
5. التفكير
فقط لأنك وجدت حلاً واحدًا لا يعني أنك وجدت الحل الأفضل. لا تهرب وتسميها يومًا ؛ فكر في كيفية تحسين الحل الخاص بك وكيف يمكنك التعامل معه بشكل مختلف.
قد ترغب في التبادل مع زملائك واسألهم عن كيفية حل المشكلة. هل نهجهم مختلف عن أسلوبك؟
يمكنك أيضًا محاولة تحديد أكبر الاختناقات في الحل الخاص بك ، أي الأجزاء التي تستغرق معظم الوقت والموارد لتنفيذها. كيف يمكنك تحسينها؟
أخيرًا ، فكر في كيفية تطور الحل الخاص بك في المستقبل. هل ستجعل أطر البرامج الجديدة أو استخدام الذكاء الاصطناعي الحل أفضل؟ كيف يمكن أن يساهم الحل الخاص بك في حل مشاكل أخرى أكثر تعقيدًا؟
اشهر اخر كلمات
يميل الأشخاص ، بمن فيهم أنا ، إلى الاستحواذ على لغات البرمجة المختلفة وأحدث إطار عمل قد يجعل كل شيء أكثر كفاءة بمقدار 1000 مرة.
يجدر تذكير نفسك بأن هذا أقل من نصف ما يتطلبه الأمر لتصبح مبرمجًا ممتازًا. النصف الآخر هو حل المشكلة.
لن تكتسب مهارات حل المشكلات بين ليلة وضحاها.
ولكن إذا قمت بتطبيق هذه الخطوات ، وطرح الأسئلة الصحيحة ، وفعلت ذلك كثيرًا ، فأنت على الطريق الصحيح لنقل حياتك المهنية من جيدة إلى عظيمة.
تم نشر هذه المقالة في الأصل على موقع Medium. يمكنك قراءتها هنا.