Views Comments Previous Next Search
Какой язык программирования
лучше учить? — Вопрос на Look At Me

ВопросКакой язык программирования
лучше учить?

Знания, которые принесут больше всего денег

Каждую неделю Look At Me ищет ответ на один неожиданный вопрос. Сегодня мы пытаемся узнать, есть ли языки программирования, знание которых приносит больше всего денег.

Внимание! Мнение людей, отвечающих на вопрос,
может не совпадать с мнением редакции. 

 

Какие языки программирования выгоднее учить?

Какой язык программирования
лучше учить?. Изображение № 2.

КАРТЕР ПЕЙДЖ

технический руководитель Google

«КОРОТКИЙ ОТВЕТ: УЧИТЕ C ИЛИ C++.

Возможно, вам никогда не придётся пользоваться им 
на работе, но вы многому научитесь, освоив его. Самые сложные задачи, с которыми сталкиваются лучшие программисты, так или иначе требуют знания C. 
Вот некоторые вещи, основанные на C:

ВИРТУАЛЬНАЯ МАШИНА JAVA

БОЛЬШАЯ ЧАСТЬ LINUX

PYTHON

ЯДРО MAC OS X

WINDOWS (С И C++)

ORACLE DATABASE

МАРШРУТИЗАТОРЫ CISCO

 

 

Всё, что лежит в основе компьютерных технологий, сложно устроено и сильно влияет на производительность, когда-то создали на C — с небольшим вкраплением ассемблера.

C улучшит ваши навыки в Java. Вы разберётесь, когда виртуальная машина использует стек, а когда — кучу, и что это значит. Вы будете интуитивно понимать, как происходит сборка мусора. Вы будете лучше понимать, как использовать примитивные типы данных и объекты.

C улучшит ваши навыки в Python. Его система классов во многом основывается на C++. Вы научитесь писать грамотный, хорошо организованный код, что позволит вам легче работать с ним в будущем. Вы научитесь осторожнее обращаться с глобальными переменными.

C улучшит ваши навыки в Objective-C. Вы научитесь управлять подсчётом ссылок и поймёте, какая часть кода должна «владеть» объектом. Вы сможете избегать утечек памяти.

Так что лучше — C или C++? Я отдаю предпочтение C++, потому что, хотя они очень близки, C++ поддерживает объектно-ориентированное программирование. Даже если вы будете работать только с функциональными языками, объектно-ориентированное программирование научит вас организовывать код таким образом, чтобы вы могли создавать и поддерживать крупные проекты.

Возможно, вы не будете зарабатывать так же много,
как специалисты по COBOL (Один из старейших языков программирования. — Прим. ред.), которые могут внезапно потребоваться. Но после C вы сможете выучить любой другой язык. Если в индустрии компьютерных технологий
и есть постоянство, то оно заключается в следующем: сегодняшняя новинка может через несколько лет оказаться старомодной. Научитесь навыкам, которые позволяют обретать новые навыки, и всё у вас будет хорошо».

Какой язык программирования
лучше учить?. Изображение № 3.

ШТЕФАН ЦУКЕРМАН

программист

«Если вы умеете правильно организовывать данные, совершенно не важно, каким языком вы владеете. Есть три тесно связанные вещи, которые вам нужно знать: 

  Основные структуры данных и алгоритмы (связные списки, хеш-таблицы, сбалансированные и другие деревья поиска, очереди и кучи);

  Моделирование данных, полученных из реального мира (понимание логики уже выстроенных моделей, умение работать со стандартными и сторонними библиотеками);

 Любой язык программирования, который вам удобен. Если вы хорошо знаете язык и можете показать это на деле, то сможете на этом много заработать. Напишите что-нибудь полезное или просто классное, и если вы не боитесь критики (порой — жёсткой), выложите код на тот же GitHub. Если
вы хорошо освоите какой-нибудь язык, то сможете выучить любой другой.

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

Если брать самый высокий уровень, то я бы посоветовал один из трёх следующих языков: Perl, Python, Ruby (и как вариант Lua). В них встроено много полезных структур данных: хеш-таблицы, динамические массивы и другие. Также они упрощают работу
с устройствами ввода-вывода и предлагают модули
и библиотеки, которые позволяют сразу перейти к решению проблемы, а не писать промежуточный код, который
и так должен быть включён в любой современный язык программирования;

Императивный/процедурный язык не слишком низкого уровня: C, Go, Fortran (мой выбор — C);

Императивный/объектно-ориентированный язык: C++, C#, Java, Ada (я бы предпочёл C#, потому что его создавали, учитывая ошибки Java);

Функциональный/мультипарадигмальный язык: Objective Caml, Clojure, Common LISP, Erlang, F#, Haskell,  Scala, Scheme. Я склоняюсь к OCaml и Scala, потому что
их синтаксис проще, чем у остальных, хотя это, конечно, субъективно.

Какой бы язык вы ни выбрали, выучите его по-настоящему хорошо и наберитесь опыта работы с ним. Уметь создавать реализацию класса в Java — это здорово, но если вы узнаете, как в Java работает сборка мусора (или в чём её недостатки), то станете более классным программистом. Хорошо знать, что в Perl можно использовать модули,
но совсем другое дело, если вы понимаете, когда они просто интерфейсы для кода на C: это означает, что интерпретатор не управляет памятью автоматически. И так далее».

ИСТОЧНИК

фотографии via ShutterstockAurelio Sánchez EscuderoLundgren Lindqvist

Рассказать друзьям
9 комментариевпожаловаться

Комментарии

Подписаться
Комментарии загружаются
чтобы можно было оставлять комментарии.