Пользователи сайта Quora составили свои списки языков программирования, которые желательно знать каждому программисту.
Тед Ньювард, директор и ответственный за взаимодействие с разработчиками в компании Smartsheet
Мой список включает следующие языки:
- C++. Именно на этом языке написаны многие из ниже указанных платформ (JVM, CLR, Node и другие). Кроме того, с его помощью вам будет проще понять, как вручную выполнять оптимизацию памяти.
- C# или Java. Нет, вам не нужно знать сразу оба. Изучение одного из этих объектно-ориентированных языков очень похоже на изучение другого.
- HTML. Я не считаю его одним из языков программирования, но другие придерживаются именно этого мнения, поэтому…
- CSS. Крайне необходим для любых видов веб-разработки.
- JavaScript. Его более современный и приятный вариант, а не та дрянь, которой мы пользовались 20 лет назад. Заметьте: сам язык не сильно изменился с того времени и вплоть до нынешнего момента. Мы, а именно, программисты, которые его используют, вот кто действительно поменялся.
- SQL. Понадобится для работы с реляционными базами данных.
- Lisp. Да, Lisp. Или, если быть более точным, “одно из воплощений этого языка”. Подойдет Clojure, Lisp, Scheme, Nu или что-то наподобие того. Вы должны знать, что представляет собой гомоиконный язык, а также понимать, как при использовании правильных инструментов исчезают границы между кодом и данными.
- Smalltalk. Ага. В любой основе графического интерфейса, построенного на базе собственных аппаратных средств (Windows, macOS, OS/2, X/Windows, Android, iOS и прочие), используются те же самые базовые принципы, что были сформулированы и воплощены в Smalltalk еще в 60-ые годы.
- Ruby или Python. Вам необходимо знать хотя бы один динамический язык программирования. Сюда же подходит Javascript, но только если вы сначала изучите сам язык, безо всяких DOM-моделей, которые могут значительно исказить начальную картинку (React, Angular, VueJS – во всех них содержатся эти самые “DOM-модели”, о которых и ведется речь.) Кстати, как только вы разберетесь с Lisp, вам станет намного проще понимать JavaScript.
- AspectJ. Знакомство с аспектно-ориентированным программированием полностью изменит ваш взгляд на объекты, и это прекрасно.
- Haskell, ML, Ocaml или Miranda. Потратьте некоторое время на функциональные языки, в которых отсутствуют объекты.
- Bash, или zsh, или другой сценарий командной оболочки. Потому что далеко не каждая проблема или задача в программировании должна решаться с помощью полноценного приложения.
- F#, Scala, Clojure или любой другой объектный/функциональный гибридный язык программирования. Потому что как только вы разберетесь с азами и усвоите базовый набор, к которому относятся первые 11 языков программирования из этого списка, вы будете готовы к чему-то, что будет совсем непросто изучить.
- Swift и/или Kotlin. Оба относятся к разновидностям объектно-ориентированных языков и обладают некоторыми встроенными функциональными особенностями. Изучив их, вы будете готовы к работе над мобильными приложениями.
- x86 или ARM-ассемблер. Умение читать на языке ассемблера позволит вам отлаживать код без использования исходного кода.
И да, я действительно знаю все выше перечисленные языки. И я даже преподаю многие из них.
И нет, вам не нужно знать их все, чтобы стать достаточно компетентным программистом. Если вы хотите стать просто хорошим разработчиком, вам нужно знать один из основных языков (HTML/CSS/Javascript) + язык для бэкенд-программирования (чаще всего, это C#, Java, Python, Ruby или NodeJS-Javascript) + SQL, если вы используете систему управления реляционными базами данных (RDBMS). Этого будет вполне достаточно.
Однако изучение всех остальных языков – это именно то, что позволит вам перейти от «рядового» к «ведущему» программисту, а после достигнуть максимального уровня знаний и умений.
Нишан Панта, специалист по компьютерной инженерии, разработчик на языке Python
Я придерживаюсь так называемого языкового агностицизма, поэтому если бы кто-то под страхом смертной казни заставил меня составить подобный список, то он бы выглядел следующим образом:
1. Python. Так как он крайне удобен и прост для прототипирования, а также благодаря существованию огромного количества фреймворков с открытым исходным кодом. Кроме того, нелишним будет упомянуть широко развитое сообщество.
2. C. Потому что с его помощью можно четко понять, как все работает. Отлично подходит для выполнения несложных задач.
3. C++. Также для выполнения несложных задач. Подходит для использования объектно-ориентированных парадигм. Кроме того, может использоваться для ряда других задач.
4. Bash. На первый взгляд работа с ним может вызвать недоумение и даже некоторые трудности. Однако как только вы его освоите, любые процессы автоматизации вы будете проводить с его помощью.
5. Scala. Используется в качестве гибрида функционального и императивного языка программирования. С его помощью можно сотворить удивительные вещи.
6. Javascript. Самый мощный язык для веб-разработки. Лично мне нравится "чистый" JS (стоит учитывать, что веб-разработка – это точно не мое).
7. Java. Для выполнения задач в объектно-ориентированном программировании. И для использования Spring framework.
8. Haskell. Каждый программист должен знать парадигмы функционального программирования.
9. PHP. Если вам нужно выполнить что-то, связанное с веб-разработкой. На мой взгляд, этот язык точно не является символом удобства и простоты.
10. R. Для статистического анализа. Лично я даже не пробовал с ним работать, так как мне более чем неплохо с самим Python.
11. HTML. Как я уже говорил, обычно я не занимаюсь веб-разработкой. Однако иногда на работе от меня требуется показать то, что было выполнено в бэкенде. В таком случае знание HTML является необходимостью.
12. Markdown. Один из наиболее часто используемых языков разметки. Как правило, я его использую для каких-то пометок, написания файла README и многого другого.
13. VimL / vimscript. Раньше с помощью VimL я писал скрипты для создания пользовательских плагинов и конфигураций для vim. Это один из тех скриптовых языков, работать с которыми осмеливаются далеко не многие.
14. CSS. Использование CSS время от времени совсем не повредит вашему HTML.
15. Matlab/Octave. С его помощью я раньше выполнял сложные вычисления. Однако теперь я все это делаю на Python благодаря NumPy.
Эстебан Фаргас, занимаюсь разработкой приложений и принимаю участие в соревнованиях по программированию
- Java: Компания Oracle наверняка неплохо так приплатила вашему университету, чтобы вы изучали именно этот язык в качестве вводного в объектно-ориентированное программирование. Он также будет полезен, если вы хотите участвовать в соревнованиях по программированию.
- C/C++: В принципе, очень похож на указанный выше Java. Кстати, я эти два языка все же воспринимаю как один.
- C#: Неплохой язык, получившийся в результате смешения двух вышеуказанных языков.
- HTML: Является основой всей сети. Однако все же не идеален.
- CSS: Позволяет красиво выглядеть различным вещам в интернете. Также далеко не идеален.
- JavaScript: Позволяет выстраивать логические схемы для интернета.
- Python: Неплохо также иметь другой язык программирования и набор парадигм, чтобы написать бэкенд для приложения. Кроме того, на данный момент является общепринятым языком для технологий машинного обучения.
- Ruby: Еще один отличный язык для создания бэкенда. На его изучение не уйдет много времени.
- Golang: Собрал в себе все приятные функции, которые есть в различных языках группы C. Он прекрасен. С помощью его совмещенной модели можно выполнять крупномасштабные проекты.
- Scala: Также позволяет создавать действительно отличное профессиональное программное обеспечение. Знакомство с функциональной парадигмой может стать крайне интересным и щедрым на увлекательные задачи.
- Haskell: Изучение функциональной парадигмы на максимальном уровне.
- Lisp: То же самое, что и выше приведенный Haskell, только в еще более необычном варианте исходя из невообразимо причудливого синтаксиса.
- Bash: Это вообще язык или нет? Так или иначе, неплохо было бы им овладеть в качестве одного из удобных инструментов разработчика.
- SQL: Используется для работы с базами данных.
- PHP: Язык, который в прошлом столетии использовался для создания бэкенда.
Комментарии
Страницы
Почетный ветеран первой и третьей пунических войн... И нечетный - второй.
Сам удивляюсь. ()
Ага, герой Куликовской битвы. Все вранье...
Не трожь Поле Куликово. (С)
А ты не ври.
А зачем их знать? Ерунда какая то. Если в работе понадобится знать какой то, ранее неизвестный язык, его быстро можно изучить. Главное понимать принципы программирования. Так, например языки js, php, cpp очень похожи. И операторы почти одинаковые.
> Так, например языки js, php, cpp очень похожи. И операторы почти одинаковые.
Угу, LISP иди быстро изучи. Или Scala/Haskell
Тут всё дело в динамике. - Из двух претендентов выберут того, кто уже знает, а не того, кто может изучить. (С)
Какие претенденты? Я один на работе.
Антарктида?
Страницы