عتبة الدخول: عالية، منخفضة، متوسطة
من بين المبرمجين، يمكنك أن تسمع في كثير من الأحيان عن "عتبة الدخول" - وهو مفهوم يعكس مقدار الجهد المطلوب من الفرد "المبتدئ" لإتقان لغة برمجة بمستوى كافٍ لكتابة أول برنامج جاد له والعثور على وظيفة. تتكون "عتبة الدخول" من المعرفة:- ميزات بناء الجملة والفروق الدقيقة في اللغة؛
- المكتبات؛
- الخوارزميات وهياكل البيانات.
الويب أم لا الويب؟
ويب
يمكن تقسيم مبرمجي الويب إلى مطوري الواجهة الأمامية والواجهة الخلفية . ومن الجدير أن نفهم ما تعنيه هذه المصطلحات. يتعامل مطورو "Frontend" مع ما يسمى بجانب العميل - وهو ما سيراه المستخدم. "الواجهة الخلفية" هي جزء البرامج والأجهزة من الخدمة - أي ما يتم تشغيله على الخادم. لكي يقرر مطور الواجهة الأمامية لغة البرمجة التي سيختارها، يجب أن يكون لديه JavaScript وأطرها: Angular JS وReact وغيرها. لهجات JS ليست شائعة مثل اللهجات الأصلية، ولكنها قد تكون مفيدة أيضًا: CoffeeScript، وTypeScript. يوجد أيضًا flash AS، قبل أن يكون هناك JScript وVBScript، لكن الديناصورات فقط هي التي تتذكر ذلك =) بالإضافة إلى ذلك، تحتاج إلى فهم HTML و CSS .خارج نطاق الويب (المؤسسات، سطح المكتب، الهاتف المحمول)
لقد قمت بتجميع لغات البرمجة هذه على وجه التحديد في فئة تحمل هذا الاسم الغريب. يمكن استخدام معظمها لكتابة تطبيقات المؤسسات وسطح المكتب وحتى الأجهزة المحمولة. أصبحت Python ، وهي OOLP سهلة الفهم، شائعة بشكل لا يصدق مؤخرًا بسبب تطور التعلم الآلي : حيث يستخدم أتباعها Python على نطاق واسع. تعد ML منطقة شابة إلى حد ما في مجال تكنولوجيا المعلومات، وعلى الرغم من أن الثمار الأولى قد تم الحصول عليها بالفعل، إلا أنني لن أتسرع في الغوص في هذه الصناعة عند اختيار لغة برمجة. أولاً، يجب أن تكون جيدًا جدًا في الرياضيات. ثانيًا، قد تسير موجة الشعبية بنفس الطريقة التي تسير بها "البلوكتشين" أو "تقنية النانو". بالإضافة إلى ذلك، كما تتذكر، يتم استخدام بايثون في تطوير الويب. C++ : كلاسيكي، كل شيء مبني على أساس "الإيجابيات". كانت هذه اللغة هي سلف جميع لغات OOLPs الشائعة، ويجب على المبتدئ بالتأكيد الانتباه إليها. تعتمد عليه العديد من التطبيقات الشائعة. لكن الاحتمال الكبير لـ "إطلاق النار على قدمك" وبناء الجملة الذي يصعب فهمه ينفي احتمالية إتقان هذا المستودون من البرمجة للمبتدئين. Kotlin - Java for hipsters - مزيج مجنون من OOP والبرمجة الوظيفية. تحظى بشعبية كبيرة مؤخرًا نظرًا لحقيقة أن المطور ذي الخبرة الذي يتحول من Java إلى Kotlin يعمل على تحسين إنتاجيته بشكل كبير. سوف يعتاد المطور ذو الخبرة على هذه اللغة بسرعة. بالمناسبة، الأمر نفسه ينطبق على Scala، لكن Kotlin تحظى بشعبية كبيرة في Android. لغة جافا سهلة التعلم للمبتدئين. بما في ذلك، بفضل JavaRush : لقد فهمت هنا كيفية اختيار لغة برمجة =) بناء جملة Java واضح، وهناك إمكانية "إطلاق النار على قدمك"، ولكنها ليست حرجة.OOP أو POP؟
النهج الإجرائي
يتضمن النهج الموجه نحو الإجراءات كتابة برنامج يتكون من بيانات متسلسلة يمكن تجميعها في كل واحد لحل مجموعة محددة من المشكلات بشكل فعال. وتشمل هذه اللغات: C و PureBasic و Pascal . نفس تلك التي تجلب اليأس لطلاب المدارس الثانوية والمبتدئين. هناك أيضًا GO صغير نسبيًا . ومع ذلك، فإن الإلمام باللغات الإجرائية مفيد جدًا للمطور المحتمل. بالنسبة لي، يرتبط الانغماس في اللغات الإجرائية بنظام Mathematica (Wolfram) وأنشطة البحث الجامعي. بفضل الأساليب الخوارزمية الصحيحة والإجراءات البسيطة، والانتقال خطيًا من بداية البرنامج إلى نهايته، تمكنت من حساب القيم ذات الصلة بالفيزياء النظرية الحديثة. بفضل هذه اللغات "المتسلسلة" تبدأ في فهم أنه في بعض الأحيان يكون من الأسهل كتابة التعليمات البرمجية بدلاً من الاعتماد عليها بنفسك. توفر دراسة الشراكة بين القطاعين العام والخاص تدريبًا خوارزميًا جيدًا، والذي يرغب صاحب العمل دائمًا في رؤيته عند المرشح عند التوظيف. إن أسس كل شيء وكل شخص في مجال تكنولوجيا المعلومات مبنية على لغات إجرائية، لذا لا تقلل من شأنها. بالمناسبة، غالبًا ما يعتقد المبتدئون الذين يقررون لغة البرمجة التي يريدون تعلمها أن تعدد مؤشرات الترابط هو اختصاص حصري لـ OOP. هذا خطأ. تتيح لك لغات البرمجة الإجرائية أيضًا إجراء عمليات حسابية متوازية.النهج الموجه للكائنات
غالبًا ما يتمتع أولئك الذين بدأوا باللغات الإجرائية بمعرفة جيدة بالرياضيات والخوارزميات وهياكل البيانات (وهذا بسبب التركيز على مجالات المعرفة هذه في الجامعات التقنية). ومع ذلك، في الواقع الحديث، غالبًا ما يكون المبرمجون الناجحون هم أولئك الذين أتقنوا جيدًا نهجًا آخر للبرمجة - وهو التوجه الشيئي. تتيح أيديولوجية OOP بناء أنظمة عالمية حقيقية. خصوصية هذا النهج هو تشابهه مع العالم الحقيقي:- تتفاعل الكائنات المختلفة مع بعضها البعض وتوجد بشكل مستقل عن بعضها البعض.
- الكائنات لها تسلسل هرمي وقادرة على تبني أو تغيير سلوك أسلافها.
- يمكنك العمل باستخدام مفاهيم مجردة، لكن الكائنات الموجودة بالفعل فقط هي التي يمكنها التفاعل.
مثال اللغات ذات التوجه الإجرائي هي أدوات لحل مشاكل محددة. وإذا خضعت مهمتك لتغيير، حتى ولو كان بسيطًا، فمن المرجح أن تضطر إلى قضاء الوقت والجهد في إعادة كتابة جميع الخوارزميات. Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
أوسع قاعدة وثائق: وثائق أوراكل الرسمية، وبوابات التدريب، والمجتمع المتطور باستمرار. يمكن العثور على إجابات لمعظم الأسئلة التي تنشأ أثناء التطوير في بضع دقائق، والشيء الرئيسي هو فهم ما يجب كتابته في محرك البحث =)
-
شعبية.
Java هي لغة البرمجة الأكثر شعبية في العالم: بالإضافة إلى مطوري Android والويب المذكورين أعلاه، يكتب كل مطور مؤسسي لأول مرة تقريبًا بلغة Java. المؤسسة عبارة عن تطوير داخلي ضروري لاحتياجات الشركات الكبيرة.
في كل عام، يتوقع الكارهون "موت جافا"، فيقولون: " سوف تتوقف أوراكل عن دعمها، وبشكل عام أنت تفعل هذا الهراء ". هذا خطأ! يتم الوعد بإصدار إصدارات جديدة من Java كل ستة أشهر. ويمكن قراءة أهم الابتكارات والمميزات للإصدار الأخير هنا .
بالنسبة لي، كانت لامدا في Java 8 بمثابة ثورة واكتشاف، ناهيك عن الإصدارات الجديدة! الآن أعمل على مشروع "رجعي"، لذلك لا أخوض في الابتكارات، ولكن حقيقة أن Java تعيش هي حقيقة.
-
ذكري المظهر.
لقد احتل نظام Android بثقة أكثر من 80% من سوق الهواتف المحمولة على مدار السنوات الأربع الماضية، وتعمل أجهزة التلفزيون ومشغلات الوسائط وحتى أنظمة الوسائط في السيارات تحت نظام التشغيل هذا. ويتم تطوير نظام التشغيل هذا بشكل أساسي في Java. فقط تخيل ما هي الآفاق التي تفتح. عندما حصلت على وظيفة كمطور Android، أصبحت مهتمًا: ما هي تكلفة المنتج الذي أقوم بتطويره؟ اتضح أن السعر سنويًا يبلغ حوالي 5 دولارات. نشأ سؤال معقول: من أين أتت الأموال اللازمة لهذا المكتب، للرواتب والبسكويت وطاولة التنس والروبوتات وغيرها من "الأشياء الجميلة"؟ إنها مسألة كمية: تطبيقنا يضم 20 مليون مستخدم.
-
الرواتب.
وللحلوى: يعد راتب مطور Java من أعلى الرواتب في الصناعة. سوف تتعلم البرمجة لغرض محدد: الحصول على وظيفة جيدة.
شعبية لغة البرمجة
عند اختيار لغة البرمجة، عليك أن تفكر في الهدف النهائي للتعلم - وهو الحصول على وظيفتك الأولى. لتقييم شعبية اللغات المختلفة، ذهبت إلى بوابة التوظيف الشعبية وبدأت في النظر في عدد الوظائف الشاغرة للطلبات المختلفة لموسكو. يمكنك ان ترى النتائج اسفل.جافا: | 277 |
بايثون: | 227 |
بي أتش بي: | 188 |
ج#: | 147 |
ج++: | 131 |
روبي: | 40 |
سكالا: | 24 |
كوتلين: | 20 |
نتائج
إليك ما يجب على المبتدئ الانتباه إليه عند اختيار لغة البرمجة:- الشعبية (تحتل Java مكانة رائدة باستمرار)؛
- عتبة الدخول (بالنسبة لـ Java - متوسط: نطاق الكفاءات المطلوبة من قبل صاحب العمل واسع جدًا)؛
- المواد المتاحة (لا توجد بوابات مشابهة لـ JavaRush باللغة الروسية، لذلك يمكنك تخمين من =))؛
- مجالات التطبيق: كلما زاد عدد الصناعات التي يمكن فيها استخدام لغة البرمجة، زادت الحاجة إلى المتخصصين في السوق. لقد تحدثت بالفعل عن النظام الأساسي المشترك، لكنني لن أتعب من تكرار ذلك.
GO TO FULL VERSION