كيف تفهم المبتدئ ، أي لغة تختار للمهنة المطلوبة؟

إخلاء المسؤولية: لا يُنصح بهذا النص للقراءة للأطفال دون سن 13 عامًا (يحتاجون إلى وضع سياسة خصوصية منفصلة) وكبار السن والوسطاء والأشخاص ذوي العقلية الضعيفة ومحبي لغة VBA و ALGOL ، وكذلك النساء الحوامل. كل ما سبق هو رأي شخصي للمؤلف غير المناسب ولم يتم تحديده هنا بهدف بث الخلاف بين أتباع الكتابة الثابتة والديناميكية. دعنا نذهب: موضوع جديد (). ابدأ ()



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

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

إذن أي لغة برمجة تختار؟


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

لا تفهم أي شيء على الإطلاق؟


ابدأ تعلم بنيات خوارزمية. الفروع والحلقات وهياكل البيانات والرسوم البيانية للكتل. إنه يساعد كثيرًا على نقل (نقل ، وليس نسخ ولصق من ويكيبيديا!) خوارزميات وحظر الرسوم البيانية إلى لغة برمجة حقيقية.

ما اللغة التي تبدأ بها إذا كنت تريد وضع الأساس؟


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

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

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

مثل بناء الموقع؟؟؟ حسنًا ، دعنا نكتب مثل الببغاء هنا: html و javascript وغيرهم مثلهم (لا يزال هناك ثعبان مع django والبعض الآخر يكمن بهدوء هناك)

هل تريد خدمات ويب قاسية؟ PHP و node.js و ruby ​​و Java ونفس Python.

هل تريد أن تكون أقرب إلى الأجهزة وأنظمة التشغيل؟ فهم C / C ++ (فقط لا تطلق النار على نفسك وتقطع نفسك ، على الرغم من أن الجميع ذهبوا إلى هناك في الجبيرة). بالمناسبة ، أنصح جميع المبرمجين على الأقل بالتعامل مع أساسيات C / C ++ والفئات الأساسية من STL ، كما تعلمون ، فإنه يساعد على النظر إلى GC بأعين مختلفة. إذا سقطت قطعة حديد على رأسك ، فتعلم المجمع.

هل تريد الكتابة النصية ، التحليل اللغوي ، العمل مع البيانات الضخمة ، بناء النماذج ، كتابة الروبوتات ، إدارة نظام التشغيل وأكثر من ذلك بكثير؟خذ بالفعل Python3 +. إذا كان هناك المزيد من العمل مع البيانات - فلا يزال بإمكانك تناول R.

هل تحلم بكتابة تطبيق سطح مكتب؟ هنا على أي شيء! على الرغم من أن دلفي أعتبر! مزحة ، بالطبع. هنا تحتاج إلى إلقاء نظرة على النظام الذي تكتب عنه ، وما إذا كانت هناك حاجة إلى منصة مشتركة. على سبيل المثال ، ستكون لغة Python أو Java محمولة. يجب بناء C / C ++ بشكل منفصل لكل نظام أساسي.

تريد أن تعرف جافا الأساسية؟ لذلك أنت تعرف بالفعل لماذا تحتاج إلى جافا. لا أعلم؟ كيف تفسر الآن لماذا تحتاج إليه. هل رأيت الهواء؟ ومع ذلك ، لا يمكن للمرء أن يعيش بدونها. :)

بالطبع هناك أشياء خيالية ، كوتلن ، على سبيل المثال. شيء رائع ، هذه اللغة قتلت صديقي القديم ، الملقب بـ NPE ، حسنًا ، عندما قتل - أصيب! لم أفهم كيف أدرسها بشكل طبيعي للأشخاص الذين لا يعرفون جافا؟ لا ، "Hello world" مكتوب عليها بسهولة وبدون جافا ، لكني لا أعرف المزيد.

ربما قررت كتابة الألعاب؟ هناك العديد من المصممين الجاهزين ، نفس Unity3D ، بالإضافة إلى محركات ثنائية الأبعاد ، عادةً تحت مجموعة من المنصات. أنت تبحث هناك بالفعل بنفسك: C # ، Java ، إلخ. وكل هذا مصقول من الأعلى بمعرفة بروتوكولات نقل البيانات المختلفة وأنظمة التشغيل والأطر والتشفير والتشفير والتفويض والمصادقة و XML و JSON وتقنيات قواعد البيانات وحماية التطبيقات ، أنظمة التحكم في الإصدار وأكثر من هذا بكثير.

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

وإلا كيف يمكنك أن تجيب على السؤال: "ما هي اللغة التي تتعلمها؟". من الواضح أن الشخص الذي ستتحدث معه.

مع خالص التقدير ، إدوارد كوخ ،
محاضر في مدرسة HackerU الدولية لتكنولوجيا المعلومات والأمن السيبراني

All Articles