15 языков, которые нужно знать каждому программисту

Пользователи сайта Quora составили свои списки языков программирования, которые желательно знать каждому программисту. 

 

Тед Ньювард, директор и ответственный за взаимодействие с разработчиками в  компании Smartsheet

Мой список включает следующие языки:

  1. C++. Именно на этом языке написаны многие из ниже указанных платформ (JVM, CLR, Node и другие). Кроме того, с его помощью вам будет проще понять, как вручную выполнять оптимизацию памяти.
  2. C# или Java. Нет, вам не нужно знать сразу оба. Изучение одного из этих объектно-ориентированных языков очень похоже на изучение другого.  
  3. HTML. Я не считаю его одним из языков программирования, но другие придерживаются именно этого мнения, поэтому…
  4. CSS. Крайне необходим для любых видов веб-разработки.
  5. JavaScript. Его более современный и приятный вариант, а не та дрянь, которой мы пользовались 20 лет назад. Заметьте: сам язык не сильно изменился с того времени и вплоть до нынешнего момента. Мы, а именно, программисты, которые его используют, вот кто действительно поменялся.
  6. SQL. Понадобится для работы с реляционными базами данных.
  7. Lisp. Да, Lisp. Или, если быть более точным, “одно из воплощений этого языка”. Подойдет Clojure, Lisp, Scheme, Nu или что-то наподобие того. Вы должны знать, что представляет собой гомоиконный язык, а также понимать, как при использовании правильных инструментов исчезают границы между кодом и данными.
  8. Smalltalk. Ага. В любой основе графического интерфейса, построенного на базе собственных аппаратных средств (Windows, macOS, OS/2, X/Windows, Android, iOS и прочие), используются те же самые базовые принципы, что были сформулированы и воплощены в Smalltalk еще в 60-ые годы.
  9. Ruby или Python. Вам необходимо знать хотя бы один динамический язык программирования. Сюда же подходит Javascript, но только если вы сначала изучите сам язык, безо всяких  DOM-моделей, которые могут значительно исказить начальную картинку (React, Angular, VueJS – во всех них содержатся эти самые “DOM-модели”, о которых и ведется речь.) Кстати, как только вы разберетесь с Lisp, вам станет намного проще понимать JavaScript.
  10. AspectJ. Знакомство с аспектно-ориентированным программированием полностью изменит ваш взгляд на объекты, и это прекрасно.
  11. Haskell, ML, Ocaml или Miranda. Потратьте некоторое время на функциональные языки, в которых отсутствуют объекты.
  12. Bash, или zsh, или другой сценарий командной оболочки. Потому что далеко не каждая проблема или задача в программировании должна решаться с помощью полноценного приложения.
  13. F#, Scala, Clojure или любой другой объектный/функциональный гибридный язык программирования. Потому что как только вы разберетесь с азами и усвоите базовый набор, к которому относятся первые 11 языков программирования из этого списка, вы будете готовы к чему-то, что будет совсем непросто изучить.
  14. Swift и/или Kotlin. Оба относятся к разновидностям объектно-ориентированных языков и обладают некоторыми встроенными функциональными особенностями. Изучив их, вы будете готовы к работе над мобильными приложениями.
  15. 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.

 

Эстебан Фаргас, занимаюсь разработкой приложений и принимаю участие в соревнованиях по программированию

  1. Java: Компания Oracle наверняка неплохо так приплатила вашему университету, чтобы вы изучали именно этот язык в качестве вводного в объектно-ориентированное программирование. Он также будет полезен, если вы хотите участвовать в соревнованиях по программированию.
  2. C/C++: В принципе, очень похож на указанный выше Java. Кстати, я эти два языка все же воспринимаю как один.
  3. C#: Неплохой язык, получившийся в результате смешения двух вышеуказанных языков.
  4. HTML: Является основой всей сети. Однако все же не идеален.
  5. CSS: Позволяет красиво выглядеть различным вещам в интернете. Также далеко не идеален.
  6. JavaScript: Позволяет выстраивать логические схемы для интернета.
  7. Python: Неплохо также иметь другой язык программирования и набор парадигм, чтобы написать бэкенд для приложения. Кроме того, на данный момент является общепринятым языком для технологий машинного обучения.
  8. Ruby: Еще один отличный язык для создания бэкенда. На его изучение не уйдет много времени.
  9. Golang: Собрал в себе все приятные функции, которые есть в различных языках группы C. Он прекрасен. С помощью его совмещенной модели можно выполнять крупномасштабные проекты.
  10. Scala: Также позволяет создавать действительно отличное профессиональное программное обеспечение. Знакомство с функциональной парадигмой может стать крайне интересным и щедрым на увлекательные задачи.
  11. Haskell: Изучение функциональной парадигмы на максимальном уровне.
  12. Lisp: То же самое, что и выше приведенный Haskell, только в еще более необычном варианте исходя из невообразимо причудливого синтаксиса.
  13. Bash: Это вообще язык или нет? Так или иначе, неплохо было бы им овладеть в качестве одного из удобных инструментов разработчика.
  14. SQL: Используется для работы с базами данных.
  15. PHP: Язык, который в прошлом столетии использовался для создания бэкенда.
Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 1
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Знать язык и работать на нем - две большие разницы, как говорят в Одессе.

А чего только 15? Надо 50.

Аватар пользователя Piton

Logicby twitter.com logicby пишет:

JavaScript. Остальные ненужны. (С)

Повсеместное насаждение JavaScript - худшее, что случилось с Интернетом за последние 10 лет. Примерно 83% JavaScript-скриптов на сайтах написаны с единственной целью - оправдать существование JavaScript-программистов, их пишущих. Больше они не нужны ни для чего. (Ц)

JavaScript must die! (Ц)

Piton пишет:

Logicby twitter.com logicby пишет:

JavaScript. Остальные ненужны. (С)

Повсеместное насаждение JavaScript - худшее, что случилось с Интернетом за последние 10 лет. Примерно 83% JavaScript-скриптов на сайтах написаны с единственной целью - оправдать существование JavaScript-программистов, их пишущих. Больше они не нужны ни для чего. (Ц)

JavaScript must die! (Ц)

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

Подробнее см.: https://www.nkj.ru/archive/articles/1324/ (Наука и жизнь, МЛЕКОПИТАЮЩИЕ ЕЛИ ДИНОЗАВРОВ)
Аватар пользователя Piton

Судя по всему, достаточно большая часть чат-бота "Логик"(tm) написана на JavaScript, что дополнительно подтверждает его бесполезность. (Ц)

Аватар пользователя mike

Logicby twitter.com logicby пишет:

JavaScript. Остальные ненужны. (С)

Нет, нужны. Русский и особенно Логику.

А программистам -- инглиш. :)

mike пишет:

Logicby twitter.com logicby пишет:

JavaScript. Остальные ненужны. (С)

Нет, нужны. Русский и особенно Логику.

А программистам -- инглиш. :)


Мне тоже то(!) слово резало глаз. sad

JavaScript. Остальные ненужные. (С)

Piton пишет:

Судя по всему, достаточно большая часть чат-бота "Логик"(tm) написана на JavaScript, что дополнительно подтверждает его бесполезность. (Ц)


Я писал на большем числе языков чем вы знаете вообще! (С) - Диплом, к примеру, был записан в восьмеричных кодах - ибо интерпретатор ассемблера выкинули - слишком много занимал места. Компьютер был, кстати, ... французский. Но это было давно.

Аватар пользователя Petro42

Да,  хумно этот Жаба Скрипт. 

-1

Страницы