Комментарии 62
__
Хотя вакансий на Python у нас действительно много в абсолютном количестве, но если мы начнем их изучать, все станет гораздо интереснее.
1) Сфера. Python у нас используется для: QA/Бекенд/Геймдев/Devops/ML/DataVision. И эти сферы очень сильно различаются между собой по необходимой квалификации и опыту. Т.е. бекендер с опытом на Python ничего не сможет сделать в ML, хотя там вроде бы также используется Python.
При этом этот же бекендер на Python, сможет достаточно быстро въехать в бекенд на том же Java или PHP.
2) Догрузка. Языки типа Python и Java очень часто дописываются в вакансии, как такой хороший плюс. Типа, у нас проект на C#, но если вы знаете Python для настройки ansible — то будет круто. Т.е. по факту — это вакансия на C#, а не Python, хотя в вакансии и идет речь про Python.
В итоге, если мы начнем считать количество вакансий веб-бекенд на php/java и python, окажется, что на python вакансий сильно меньше, чем на php и java.
___
Поэтому простой совет — сравнивать не количество вакансий в общем, а количество вакансий на нужную сферу.
Кстати да, мне тоже странным показалось что питон выше c#
При этом C# в 90% случаев именно бэкенд
А бывает C# фронтенд? или речь не про веб?
Бывает мобильная и десктопная разработка
А всякие Unity?
Фронт на C# возможен. Примером тому Blazor.
То есть я бы сказал что на данный момент фронт на C# это преимущественно WPF/WinForms и немного Xamarin.
Хм... почитал про него, он я так понял там такая же штука как с питоном на фронтенде: во время выполнения всё это преобразуется в js в браузере потому интересно больше в blazor это WebAssembly часть, https://docs.microsoft.com/ru-ru/aspnet/core/blazor/?view=aspnetcore-5.0 я так понял тогда и работать быстрее будет.
Есть фронт под веб - Blazor, но на мой взгляд, пока сыроват под крупные проекты
Вся статья - бред, его так много, что даже не знаю с чего начать
Вот посоветуйте, пожалуйста - я инженер АСУТП, программирую промышленные контроллеры, Сименс в основном, пишу программы на SCL
Хотелось бы посмотреть в сторону обычного программирования.
Вот куда глядеть, как понять, может и не потяну вовсе? И чтобы не совсем абстрактно было.
Знаю что некоторые ПЛК на Си программируют, может с этого начать?
Микроконтроллеры программировать не просто, там единственное что если с них переходить то ООП надо понимание внедрять, в остальном вроде не должно быть сложно. Но и смотря какая ниша. В челом как было уже описано автором большинство языков похожи и требуется только понимание алгоритмов и паттернов. Но есть и исключекния, есть полуэзотерические языки (как по мне) типа лисп, но это сильно низконишевая тема. И работа с памятью если речь про си как раз или асм/с++/го/раст и т.д.
Короче говоря надо с нишей сперва определится и тогда будет понимание куда бечь ибо тут есть индивидуальные особенности по требованиям. В игрострое одно, в веб другое, а в бизнес приложениях третье. А возможно интересно чисто БД будет разрабатывать и писать там разные процедуры исполняемые и функции. ИТ сфера сейчас сильно разделилась на специализации (что имеет как положительные так и отрицательные моменты).
Arduino совсем примитивный. Мне нравится больше Esp32
ESP32 и так достаточно дешев (порядка 700-800 рублей), но при этом:
- Содержит большую кучу интересностей на плате (от кучи GPIO до Bluetooth, WiFi, и других радостей).
- Двухядерный.
- Поломать его... ну, программируя, вряд ли выйдет. Подав 220V туда, куда 5 просили - можно.
- Программируется теми же средствами, что и Arduino, при этом нет ограничений по использованию С++ и STL (<vector>
, <algorithm>
, <functional>
, и другие плюшки...). К С, таким образом, привязки нет, хоть и можно.
Как итог, за свои деньги эта штуковина на 3 порядка удобнее в разработке, чем любые ардуинки. Причем, на ней можно писать и как на ардуинках, и как в нормальных C++-проектах. Докинуть к этому качественную среду разработки вроде PlatformIO на базе VSCode - и на выходе просто прелесть.
Я пришёл в десктоп как раз из АСУТП. С той поправкой, что мне изначально был более интересен декстоп и я всегда что-то пытался на нём делать. Например, когда работал на заводе инженером АСУТП, на Qt писал приложеньки, которые по модбасу коннектились к контроллерам и делали опрос/управление.
В итоге плавно перешёл в десктоп разработку.
Java, Python и С # между собой очень похожи и довольно универсальны.
Java и С# между собой очень похожи. Python на них вообще не похож. Уже одно то, что он интерпретируемый и в нём динамическая типизация, не позволяет говорить о сильной похожести.
Тут речь как я понимаю про синтаксис а не про его работу, внутреннее устройство и т.д. большинство высокоуровневых разработчиков часто и не заморачивается как устроен и как работает тот или иной язык. От них требуют результата и они его создают.
То есть я в основном пишу на Java/С# и время от времени мелочи на Python. И не знаю как можно говорить что они «очень похожи».
На самом деле, они все равно все довольно похожи, просто это смотря с чем сравнивать, парадигма у них, в целом, схожая. Это все обычные ООП языки и паттерны с одного ЯП более менее прямо переносятся на другой с поправкой на типизацию.
А вот языки с другой парадигмой типа Haskell реально сильно по другому заставляют думать.
Это все обычные ООП языки и паттерны с одного ЯП более менее прямо переносятся на другой с поправкой на типизацию.
Мне очень интересно как вы «перенесёте» работу с потоками или ту же асинхронность.
То есть я соглашусь что они все ООП-языки. Но заявление «Java, Python и С # между собой очень похожи» на мой взгляд вводит в заблуждение тех кто с этими языками не знаком.
Не похожий язык это JavaScript, Prolog, Scala. А Java, C#, PHP, Python имеет очень много общего, и миграция между ними не составит большого труда
ECMAScript - расширение JavaScript? Ничего, что это стандарт языка?
Бэкэндерам - не сказать про Go (хотя ранее писать, что он растет)? И стОит подороже перечисленных
Мобильная разработка - молодое направление? iOS2 - 2008год, Android - примерно м тех же времен (вспоминать Symbian, WinMobile и прочие ныне покойные платформы не будем)
iOS - достаточно знать Swift? Только для инфоцыган на новых проектах
Swift и Objective-C - несовместимы? Это просто неверно, даже комментировать нечего - отлично совместимы в обе стороны
Kotlin и Swift для React Native вместо ObjC и Java? Большинство библиотек и кишочки самого React Native - это именно ObjC и Java
Разработчик серверных приложений? Описана смесь бэкэндера, DevOps и DBA, сам термин в природе почти не встречается
В таблице с языками - осталась только половина, остальные куда-то пропали
Писать про Data Science и упомянуть C++, но ни слова не сказать про Python? Серьезно?
У Go - очень ограниченный функционал???
Как много вопросов, как мало ответов
Совет начинающим разработчикам, читающим эту статью - НЕ ВЕРЬТЕ!
Мягко говоря, правды в статье не очень много...
Я пишу серьезный продукт на FreePascal (Lazarus) для Windows 10 и macOS. И вполне счастлив. Элегантный и простой язык, очень нравится.
Java, Python и С # между собой очень похожи и довольно универсальны
Вы серьёзно? C# и Java похожи на Python? И чем же это?
Но если я буду учить С++ для бэкэнда, то знания JavaScript для фронтэнда мне ничего не даст, потому что я никогда не буду использовать их вместе
Qt вышел из чата
Мне одному кажется, но в статье Go путают с Rust?
Мне одному кажется что в "Android-разработчик " нужно было добавить flutter?
Вообще язык выбирается под определённый тип решаемых задач
Определённую платформу
Требования надёжности отказа устойчивости
Это основной показатель Имхо
В институте учил C++, PHP, Java, Javascript. Карьера программиста не сложилась, но потом ознакомился с пайтоном и как завертелось. Причина банальная - люто ненавижу скобки (смешно, но что поделать). Для меня код на пайтоне с нормальным ООП, декомпозицией логики (не простыни в методах по 150 строк) вместе с отсутствием комментариев, а только чистыми докстрингами как предмет искусства - чисто и невероятно красиво. Жаль что большинство все-равно пишут спагетти-код, так как бизнесу нужно все на вчера, особенно на стартапах.
Стоило бы обратить внимание на язык Rust, он медленно набирает популярность, но довольно перспективен.
Мне кажется, сначала лучше изучить основы в области, куда хочется развиваться. Хочешь в вэб, разберись, как он устроен: адресация, протоколы, CORS в конце концов. Берешь язык, в котором есть хоть какая-то типизация, разберись в типах, а особенно во float. Сейчас многие знают какие-то фреймворки, а как это все работает не знают, – нет фундамента. Алгоритмы и паттерны тоже хорошо, но их и потом можно, когда реализацию сможешь написать.
а затем осваивать смежные области
Небольшая поправка, смежные области для бэка будет devOps и возможно DBA, но никак не фронт ....Лучше углубиться в свою область , к примеру в бэк ...чем скакать по разным сферам ...Выбирать язык нужно который хорошо дополнит ваш основной ... Хорошая связка java + golang + c++
Какие языки программирования учить?