Pull to refresh

Comments 62

У вас есть небольшая неточность в подсчете количества вакансий. Простой пример про Python.

__

Хотя вакансий на 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# фронтенд? или речь не про веб?

Бывает мобильная и десктопная разработка

а! точно, но это я как понял редко, XAMARIN или как его там забыл уже. В основном все на java, kotlin и swift отдельно пишут на сколько я видел так что да 90% скорее всего. Но правда есть десктоп приложения разные, формочки и всё такое

UFO just landed and posted this here

Кстати, совсем забыл про него.

Я бы с огромным интересом посмотрел на список фирм, которые используют Blazor в продакшене :)

То есть я бы сказал что на данный момент фронт на C# это преимущественно WPF/WinForms и немного Xamarin.
UFO just landed and posted this here
Почему? Неужели это надо скрывать? :)

Ну ему же надо потешить своего внутреннего эгоиста, чего ты

Хм... почитал про него, он я так понял там такая же штука как с питоном на фронтенде: во время выполнения всё это преобразуется в js в браузере потому интересно больше в blazor это WebAssembly часть, https://docs.microsoft.com/ru-ru/aspnet/core/blazor/?view=aspnetcore-5.0 я так понял тогда и работать быстрее будет.

Есть фронт под веб - Blazor, но на мой взгляд, пока сыроват под крупные проекты

Вся статья - бред, его так много, что даже не знаю с чего начать

UFO just landed and posted this here

Вот посоветуйте, пожалуйста - я инженер АСУТП, программирую промышленные контроллеры, Сименс в основном, пишу программы на SCL

Хотелось бы посмотреть в сторону обычного программирования.

Вот куда глядеть, как понять, может и не потяну вовсе? И чтобы не совсем абстрактно было.

Знаю что некоторые ПЛК на Си программируют, может с этого начать?

Микроконтроллеры программировать не просто, там единственное что если с них переходить то ООП надо понимание внедрять, в остальном вроде не должно быть сложно. Но и смотря какая ниша. В челом как было уже описано автором большинство языков похожи и требуется только понимание алгоритмов и паттернов. Но есть и исключекния, есть полуэзотерические языки (как по мне) типа лисп, но это сильно низконишевая тема. И работа с памятью если речь про си как раз или асм/с++/го/раст и т.д.

Короче говоря надо с нишей сперва определится и тогда будет понимание куда бечь ибо тут есть индивидуальные особенности по требованиям. В игрострое одно, в веб другое, а в бизнес приложениях третье. А возможно интересно чисто БД будет разрабатывать и писать там разные процедуры исполняемые и функции. ИТ сфера сейчас сильно разделилась на специализации (что имеет как положительные так и отрицательные моменты).

UFO just landed and posted this here

Arduino совсем примитивный. Мне нравится больше Esp32

UFO just landed and posted this here

ESP32 и так достаточно дешев (порядка 700-800 рублей), но при этом:
- Содержит большую кучу интересностей на плате (от кучи GPIO до Bluetooth, WiFi, и других радостей).
- Двухядерный.
- Поломать его... ну, программируя, вряд ли выйдет. Подав 220V туда, куда 5 просили - можно.
- Программируется теми же средствами, что и Arduino, при этом нет ограничений по использованию С++ и STL (<vector>, <algorithm>, <functional>, и другие плюшки...). К С, таким образом, привязки нет, хоть и можно.

Как итог, за свои деньги эта штуковина на 3 порядка удобнее в разработке, чем любые ардуинки. Причем, на ней можно писать и как на ардуинках, и как в нормальных C++-проектах. Докинуть к этому качественную среду разработки вроде PlatformIO на базе VSCode - и на выходе просто прелесть.

Начните делать задачки на питоне на codewars или hackerrank. Для начальных ступеней вашей квалификации достаточно. Когда(если) втянитесь, там уже определяйте сферу ваших дальнейших интересов, и соответствующий целовой язык+фрейворки.

Я пришёл в десктоп как раз из АСУТП. С той поправкой, что мне изначально был более интересен декстоп и я всегда что-то пытался на нём делать. Например, когда работал на заводе инженером АСУТП, на Qt писал приложеньки, которые по модбасу коннектились к контроллерам и делали опрос/управление.

В итоге плавно перешёл в десктоп разработку.

Java, Python и С # между собой очень похожи и довольно универсальны.

Java и С# между собой очень похожи. Python на них вообще не похож. Уже одно то, что он интерпретируемый и в нём динамическая типизация, не позволяет говорить о сильной похожести.

Тут речь как я понимаю про синтаксис а не про его работу, внутреннее устройство и т.д. большинство высокоуровневых разработчиков часто и не заморачивается как устроен и как работает тот или иной язык. От них требуют результата и они его создают.

Ну синтаксис у питона тоже заметно отличается. Одни отступы чего стоят.

То есть я в основном пишу на Java/С# и время от времени мелочи на Python. И не знаю как можно говорить что они «очень похожи».

На самом деле, они все равно все довольно похожи, просто это смотря с чем сравнивать, парадигма у них, в целом, схожая. Это все обычные ООП языки и паттерны с одного ЯП более менее прямо переносятся на другой с поправкой на типизацию.

А вот языки с другой парадигмой типа Haskell реально сильно по другому заставляют думать.

Это все обычные ООП языки и паттерны с одного ЯП более менее прямо переносятся на другой с поправкой на типизацию.

Мне очень интересно как вы «перенесёте» работу с потоками или ту же асинхронность.

То есть я соглашусь что они все ООП-языки. Но заявление «Java, Python и С # между собой очень похожи» на мой взгляд вводит в заблуждение тех кто с этими языками не знаком.
UFO just landed and posted this here
Это знание не расскажет вам ровным счетом ничего полезного о многопоточности в java. Потому что она как раз часть языка и его рантайма, а от ОС как раз абстрагируется. Ну, пытается, во всяком случае.
UFO just landed and posted this here
Вообще-то у меня написано И рантайма, а не или. Потому что многопоточность в java обширна, и развивалась много лет. И какие-то части — часть языка, а какие-то (как правило более новые) только библиотеки и рантайма.
UFO just landed and posted this here
У Таненбаума теория. Понимать ее конечно хорошо, но я тут про практическое использование. И точно так же — знание того как оно в ОС, вам мало что даст для того, чтобы практически применять async где-то в браузере. Слишком оно далеко друг от друга, и много слоев абстракций между ними.
UFO just landed and posted this here
Только к упомянутым вами средствам ОС типа сокетов или форков они никакого отношения не имеют. Ну т.е. да, где-то многое пересекается, и сильно. Где-то совсем нет. Изучить что-то такое, чтобы потом везде было понятно и легко… выглядит сомнительно. Хотя конечно, каждый новый язык дается легче, без сомнения.

Не похожий язык это JavaScript, Prolog, Scala. А Java, C#, PHP, Python имеет очень много общего, и миграция между ними не составит большого труда

UFO just landed and posted this here

Хорошо, попробуйте выучить ЯП из другой парадигмы, например Lisp, Haskell, Ocaml, ну или Idris.

UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here

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. И вполне счастлив. Элегантный и простой язык, очень нравится.

Товарищ пишет на FreePascal под три системы одновременно, Lazarus это очень хорошее решение для desktop.

Java, Python и С # между собой очень похожи и довольно универсальны

Вы серьёзно? C# и Java похожи на Python? И чем же это?

Но если я буду учить С++ для бэкэнда, то знания JavaScript для фронтэнда мне ничего не даст, потому что я никогда не буду использовать их вместе

Qt вышел из чата

Мне одному кажется, но в статье Go путают с Rust?

Мне одному кажется что в "Android-разработчик " нужно было добавить flutter?

Вообще язык выбирается под определённый тип решаемых задач

Определённую платформу

Требования надёжности отказа устойчивости

Это основной показатель Имхо

В институте учил C++, PHP, Java, Javascript. Карьера программиста не сложилась, но потом ознакомился с пайтоном и как завертелось. Причина банальная - люто ненавижу скобки (смешно, но что поделать). Для меня код на пайтоне с нормальным ООП, декомпозицией логики (не простыни в методах по 150 строк) вместе с отсутствием комментариев, а только чистыми докстрингами как предмет искусства - чисто и невероятно красиво. Жаль что большинство все-равно пишут спагетти-код, так как бизнесу нужно все на вчера, особенно на стартапах.

Ну ООП в Python сложно назвать "нормальным". Тот же PHP предлагает больше ООП, не говоря про Java.

Стоило бы обратить внимание на язык Rust, он медленно набирает популярность, но довольно перспективен.

Вряд ли его можно считать языком для начинающих

Мне кажется, сначала лучше изучить основы в области, куда хочется развиваться. Хочешь в вэб, разберись, как он устроен: адресация, протоколы, CORS в конце концов. Берешь язык, в котором есть хоть какая-то типизация, разберись в типах, а особенно во float. Сейчас многие знают какие-то фреймворки, а как это все работает не знают, – нет фундамента. Алгоритмы и паттерны тоже хорошо, но их и потом можно, когда реализацию сможешь написать.

а затем осваивать смежные области

Небольшая поправка, смежные области для бэка будет devOps и возможно DBA, но никак не фронт ....Лучше углубиться в свою область , к примеру в бэк ...чем скакать по разным сферам ...Выбирать язык нужно который хорошо дополнит ваш основной ... Хорошая связка java + golang + c++

Sign up to leave a comment.

Articles