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!

Комментарии

Страницы

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

Почетный ветеран первой и третьей пунических войн... И нечетный - второй.

Эдуард пишет:

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

Почетный ветеран первой и третьей пунических войн... И нечетный - второй.


Сам удивляюсь. ()

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

Ага, герой Куликовской битвы. Все вранье... 

-1

Petro42 пишет:

Ага, герой Куликовской битвы. Все вранье... 


Не трожь Поле Куликово. (С)

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

Logicby twitter.com logicby пишет:

Petro42 пишет:

Ага, герой Куликовской битвы. Все вранье... 


Не трожь Поле Куликово. (С)

А ты не ври. 

-1

А зачем их знать? Ерунда какая то. Если в работе понадобится знать какой то, ранее неизвестный язык, его быстро можно изучить. Главное понимать принципы программирования. Так, например языки js, php, cpp очень похожи. И операторы почти одинаковые. laugh

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

> Так, например языки js, php, cpp очень похожи. И операторы почти одинаковые.

Угу, LISP иди быстро изучи. Или Scala/Haskell 

Беляш Дмирий пишет:

А зачем их знать? Ерунда какая то. Если в работе понадобится знать какой то, ранее неизвестный язык, его быстро можно изучить. Главное понимать принципы программирования. Так, например языки js, php, cpp очень похожи. И операторы почти одинаковые. laugh


Тут всё дело в динамике. -  Из двух претендентов выберут того, кто уже знает, а не того, кто может изучить. (С)

Logicby twitter.com logicby пишет:

Беляш Дмирий пишет:

А зачем их знать? Ерунда какая то. Если в работе понадобится знать какой то, ранее неизвестный язык, его быстро можно изучить. Главное понимать принципы программирования. Так, например языки js, php, cpp очень похожи. И операторы почти одинаковые. laugh


Тут всё дело в динамике. -  Из двух претендентов выберут того, кто уже знает, а не того, кто может изучить. (С)


Какие претенденты? Я один на работе.

Беляш Дмирий пишет:

Logicby twitter.com logicby пишет:


Тут всё дело в динамике. -  Из двух претендентов выберут того, кто уже знает, а не того, кто может изучить. (С)


Какие претенденты? Я один на работе.


Антарктида?

Страницы