آستانه ورود: بالا، کم، متوسط
در میان برنامه نویسان، شما اغلب می توانید در مورد "آستانه ورود" بشنوید - مفهومی که نشان دهنده میزان تلاش مورد نیاز برای یک "جوانر" فردی برای تسلط بر زبان برنامه نویسی در سطح کافی برای نوشتن اولین برنامه جدی خود و یافتن شغل است. "آستانه ورود" شامل دانش است:- ویژگی های نحو و تفاوت های ظریف زبان؛
- کتابخانه ها
- الگوریتم ها و ساختارهای داده
وب یا نه وب؟
وب
برنامه نویسان وب را می توان به توسعه دهندگان Frontend و Backend تقسیم کرد . ارزش درک این را دارد که این اصطلاحات به چه معنا هستند. توسعه دهندگان "Frontend" با به اصطلاح سمت مشتری سر و کار دارند - آنچه کاربر خواهد دید. "Backend" بخش نرم افزاری و سخت افزاری سرویس است - چیزی که روی سرور اجرا می شود. برای یک توسعه دهنده Frontend که تصمیم می گیرد کدام زبان برنامه نویسی را انتخاب کند، جاوا اسکریپت و چارچوب های آن ضروری است : Angular JS، React و دیگران. لهجه های JS به اندازه والد خود محبوب نیستند، اما می توانند مفید باشند: CoffeeScript، TypeScript. فلش AS نیز وجود دارد، قبل از اینکه JScript و VBScript وجود داشته باشد، اما فقط دایناسورها به یاد دارند که =) علاوه بر این، شما باید HTML و CSS را درک کنید .
غیر وب (سازمانی، رومیزی، تلفن همراه)
من به طور خاص این زبان های برنامه نویسی را در دسته ای با چنین نام عجیبی گروه بندی کردم. بیشتر آنها را می توان برای نوشتن برنامه های کاربردی سازمانی، دسکتاپ و حتی تلفن همراه استفاده کرد. Python ، یک OOLP آسان برای درک، اخیراً به دلیل توسعه یادگیری ماشینی بسیار محبوب شده است : طرفداران آن به طور گسترده از Python استفاده می کنند. ML یک حوزه نسبتاً جوان در IT است و اگرچه اولین ثمرات قبلاً دریافت شده است ، هنگام انتخاب یک زبان برنامه نویسی عجله ای برای فرو رفتن در این صنعت ندارم. اول، شما باید در ریاضیات خیلی خوب باشید. ثانیاً، موج محبوبیت ممکن است مانند «بلاک چین» یا «نانوتکنولوژی» پیش رود. علاوه بر این، همانطور که به یاد دارید، پایتون در توسعه وب استفاده می شود. C++ : کلاسیک، همه چیز بر اساس "مضافات" ساخته شده است. این زبان مولد همه OOLP های محبوب بود و یک مبتدی قطعا باید به آن توجه کند. بسیاری از برنامه های محبوب بر اساس آن هستند. اما احتمال زیاد "تیراندازی به پای خود" و نحوی که درک آن دشوار است، احتمال تسلط یک مبتدی بر این ماستودون برنامه نویسی را نفی می کند. Kotlin - جاوا برای هیپسترها - ترکیبی دیوانه از OOP و برنامه نویسی کاربردی. اخیراً به دلیل این واقعیت که یک توسعهدهنده با تجربه که از جاوا به کاتلین تغییر میکند، به طور قابل توجهی بهرهوری خود را بهبود میبخشد. یک توسعه دهنده با تجربه به سرعت به این زبان عادت می کند. به هر حال، همین امر در مورد اسکالا نیز صدق می کند، اما کاتلین در اندروید محبوب است. یادگیری جاوا برای یک مبتدی آسان است. از جمله، به لطف JavaRush : اینجا بود که فهمیدم چگونه یک زبان برنامه نویسی را انتخاب کنم =) نحو جاوا واضح است، امکان "تیراندازی به پای خود" وجود دارد، اما مهم نیست.OOP یا POP؟
رویکرد رویه ای
رویکرد رویه گرا شامل نوشتن برنامه ای متشکل از عبارات متوالی است که می توانند در یک کل واحد جمع شوند تا به طور موثر طیف خاصی از مسائل را حل کنند. این زبان ها عبارتند از: C ، PureBasic و Pascal . همان هایی که باعث ناامیدی دانش آموزان دبیرستانی و راهنمایی می شود. همچنین یک GO نسبتاً جوان وجود دارد . با این حال، آشنایی با زبان های رویه ای برای یک توسعه دهنده بالقوه بسیار مفید است. برای من، غوطه ور شدن در زبان های رویه ای با سیستم Mathematica (Wolfram) و فعالیت های تحقیقاتی دانشگاه مرتبط است. به لطف رویکردهای الگوریتمی درست و رویههای ساده، حرکت خطی از ابتدای برنامه تا پایان آن، من توانستم مقادیری را محاسبه کنم که با فیزیک نظری مدرن مرتبط هستند. به لطف این زبان های "متوالی" است که شما شروع به درک می کنید که گاهی اوقات نوشتن کد آسان تر از حساب کردن روی خود است. مطالعه PPP آموزش الگوریتمی خوبی را ارائه می دهد، که یک کارفرما تقریباً همیشه می خواهد در هنگام استخدام آن را در یک نامزد ببیند. اساس همه چیز و همه افراد در IT بر روی زبان های رویه ای بنا شده است، بنابراین آنها را دست کم نگیرید. به هر حال، مبتدیانی که تصمیم می گیرند کدام زبان برنامه نویسی را برای یادگیری انتخاب کنند، اغلب فکر می کنند که multithreading در انحصار 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ова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
گسترده ترین پایگاه اسناد: اسناد رسمی اوراکل، پورتال های آموزشی، جامعه دائما در حال توسعه. پاسخ به اکثر سوالاتی که در طول توسعه ایجاد می شود را می توان در چند دقیقه پیدا کرد، نکته اصلی این است که بفهمیم چه چیزی را در موتور جستجو تایپ کنیم =)
-
محبوبیت.
جاوا محبوب ترین زبان برنامه نویسی در جهان است: علاوه بر توسعه دهندگان اندروید و وب که در بالا ذکر شد، تقریباً هر توسعه دهنده سازمانی که برای اولین بار است به جاوا می نویسد. Enterprise یک توسعه داخلی است که برای نیازهای شرکت های بزرگ ضروری است.
هر سال، متنفران "مرگ جاوا" را پیش بینی می کنند، آنها می گویند: " اوراکل از آن پشتیبانی نمی کند، و به طور کلی شما مزخرف می کنید ." این اشتباه است! نسخههای جدید جاوا هر شش ماه یکبار منتشر میشوند. مهم ترین نوآوری ها و ویژگی های آخرین نسخه را می توانید اینجا بخوانید .
برای من لامبداها در جاوا 8 یک انقلاب و یک کشف بود، نه به نسخه های جدید! اکنون من روی یک پروژه رتروگراد کار می کنم، بنابراین به نوآوری ها نمی پردازم، اما این واقعیت که جاوا ادامه دارد یک واقعیت است.
-
اندروید.
اندروید با اطمینان بیش از 80 درصد از بازار تلفن همراه را در 4 سال گذشته اشغال کرده است ؛ تلویزیون ها، پخش کننده های رسانه ای و حتی سیستم های رسانه ای در خودروها تحت این سیستم عامل کار می کنند. و توسعه این سیستم عامل عمدتاً در جاوا انجام می شود. فقط تصور کنید چه چشم اندازی در حال باز شدن است. زمانی که به عنوان یک توسعه دهنده اندروید مشغول به کار شدم، علاقه مند شدم: هزینه محصولی که در حال توسعه آن هستم چقدر است؟ معلوم شد که قیمت در سال تقریباً 5 دلار است. یک سوال منطقی مطرح شد: بودجه این دفتر از کجا آمده است، برای حقوق، کلوچه، میز تنیس، روبات ها و سایر "چیزهای خوب"؟ این موضوع کمیت است: برنامه ما 20 میلیون کاربر دارد.
-
حقوق و دستمزد
و برای دسر: حقوق یک توسعه دهنده جاوا یکی از بالاترین حقوق در صنعت است. شما قصد دارید برنامه نویسی را برای یک هدف خاص یاد بگیرید: به دست آوردن یک شغل خوب.
محبوبیت یک زبان برنامه نویسی
هنگام انتخاب یک زبان برنامه نویسی، باید به هدف نهایی از یادگیری فکر کنید - به دست آوردن اولین شغل خود. برای ارزیابی محبوبیت زبان های مختلف، به یک پورتال محبوب استخدام رفتم و شروع به بررسی تعداد جای خالی برای درخواست های مختلف برای مسکو کردم. در زیر می توانید نتایج را مشاهده کنید.جاوا: | 277 |
پایتون: | 227 |
php: | 188 |
c#: | 147 |
c++: | 131 |
یاقوت سرخ: | 40 |
اسکالا: | 24 |
کاتلین: | 20 |
نتایج
در اینجا چیزی است که یک مبتدی باید در هنگام انتخاب یک زبان برنامه نویسی به آن توجه کند:- محبوبیت (جاوا به طور مداوم موقعیت پیشرو را اشغال می کند).
- آستانه ورود (برای جاوا - میانگین: دامنه شایستگی های مورد نیاز کارفرما بسیار گسترده است).
- مواد موجود (هیچ پورتالی مشابه JavaRush به زبان روسی وجود ندارد، بنابراین، کف دست می رود تا حدس بزند چه کسی =)).
- زمینه های کاربردی: هر چه صنایعی که بتوان از زبان برنامه نویسی در آن ها استفاده کرد، به متخصصان بیشتری در بازار نیاز است. قبلاً در مورد کراس پلتفرم صحبت کرده ام، اما از تکرار آن خسته نمی شوم.
GO TO FULL VERSION