Статьи

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

Статья Крэйга « Лучший язык программирования для изучения в 2015 году» имела огромный успех, и в этой статье он предлагает свежий взгляд на ландшафт программирования в 2016 году.

Если вы заинтересованы в изучении нового языка программирования, почему бы не взглянуть на Elm, язык для создания веб-приложений, который компилируется в JavaScript, с нашим видеоуроком Почему Elm?


Это начало нового года, поэтому естественно начать думать о своей будущей жизни и выборе профессии. Я анализирую статистику «лучших языков» в течение нескольких лет, и мы наблюдаем рост и падение систем отчетности. GitHut — один из моих любимых — не обновлялся с 2014 года. Есть еще несколько, поэтому давайте посмотрим на самые последние данные.

Индекс TIOBE, январь 2016 г.

В последнем отчете TIOBE оценивается популярность языков программирования с использованием числа квалифицированных инженеров и рейтинга в поисковых системах. Результаты:

  1. Джава
  2. С
  3. C ++
  4. C #
  5. питон
  6. PHP
  7. VisualBasic.NET
  8. JavaScript
  9. Язык ассемблера
  10. Рубин
  11. Perl
  12. Delphi
  13. Visual Basic
  14. стриж
  15. MATLAB
  16. паскаль
  17. Groovy
  18. Objective-C
  19. р
  20. PL / SQL

TIOBE заявляет, что их диаграмма не является показателем пригодности или количества написанных строк. Некоторые языки растут, потому что они все еще используются и относительно старше, чем другие. Есть несколько сюрпризов: VisualBasic все еще популярен? Он редко используется профессиональными разработчиками, но может случиться так, что многие люди используют его для простых специальных приложений. Тем не менее, я не знаю никого, кто использовал язык ассемблера много-много лет?

Отчет студентов-хакеров DevPost, январь 2016

Отчет DevPost анализирует работу 13 281 студента, участвовавшего в почти 10 000 проектов в течение 2014-2015 учебного года. Результаты показывают используемые технологии, хотя они смешаны с языками программирования:

  1. HTML / CSS
  2. JavaScript
  3. питон
  4. Джава
  5. C / C ++
  6. PHP
  7. Objective-C
  8. C #
  9. стриж
  10. JSON
  11. Рубин
  12. XML
  13. Ajax
  14. Ракушка
  15. обработка
  16. Lua
  17. CoffeeScript
  18. Идти
  19. MATLAB
  20. OpenGL

Результаты в основном показывают, над чем студенты работают в свободное время. В проектах, как правило, преобладают нативные приложения, встроенные микроконтроллеры и носимые устройства, которые могут быть довольно нишевыми технологиями в мире бизнеса. Кроме того, это языки, которые студенты хотели использовать. Будь они жизнеспособны или приятны — это другое дело!

Учитесь программировать сегодня!

Я собираюсь заявить это ясно. Опять таки:

никогда не выбирайте язык из результатов опроса

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

Забудьте о выборе языка и начните что-то кодировать. Неважно, что вы выбираете. Изучите основные понятия, и большинство других языков станут просто альтернативным синтаксисом.

… но не ждите, чтобы стать опытным сразу

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

Вы когда-нибудь видели книги или курсы под названием «Изучите авиационную технику за 21 день» или «Строительство моста для идиотов» ? Конечно, нет, но хорошие разработчики потратят столько же времени на изучение своего ремесла. Основное отличие состоит в том, что разработка имеет более низкий барьер для входа, и вы с меньшей вероятностью навредите кому-либо с дрянным кодом … если только ваше программное обеспечение не используется для проектирования самолетов или мостов!

Кодирование сложно. Вы сможете создавать несколько простых программ в течение нескольких дней, но вам понадобятся многолетние знания, чтобы уверенно справляться с большими приложениями. Большинство профессиональных работ требуют нескольких лет солидного опыта. Даже тогда вы всегда учитесь. Мы все оглядываемся назад на тщательно разработанные программы, разработанные шесть месяцев назад, и думаем «кто написал эту чушь?»

Можете ли вы стать разработчиком?

Абсолютно — но относительно мало людей . Если бы работа была легкой, спрос разработчиков никогда не превысил бы предложение. Однако я не верю, что разработчики рождаются с врожденными навыками кодирования. Любой может научиться программировать. Точно так же, как любой может научиться играть на гитаре или говорить по-японски … если они готовы приложить усилия.

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

С чего мне начать?

SitePoint — это, прежде всего, ресурс для веб-разработки, но сеть — это враждебная среда для начинающих. Даже если вы сконцентрируетесь на разработке на стороне клиента, вы не доберетесь далеко без некоторых знаний о браузерах, HTML и CSS (они не являются языками программирования и значительно более причудливы!). Здесь приведены подробные введения в HTML и CSS из нашего Premium. Коллекция контента.

Разработка собственной ОС на чем-то вроде Java или C # не намного проще. Может быть меньше зависимостей, но многие новички находятся в замешательстве от IDE и инструментов, необходимых для начала работы. Длительный этап компиляции, который переводит ваш код в то, что компьютер может понять, не способствует обучению.

Интерпретируемый язык, такой как Python, Ruby (у нас есть отличное введение ) или JavaScript (в Node.js) ( то же самое ), может быть лучшим вариантом, но некоторые из них не используются командной строкой. Также сложно создать что-нибудь графически интересное, чтобы удержать ваше волнение.

Современные среды разработки сложны, а начальная кривая обучения крутая. Я показываю свой возраст, но считаю, что мне повезло, что я научился программировать на ZX Spectrum в Sinclair BASIC . Выбор был ограничен — как и память и возможности — но это позволило мне понять основы (BASIC и кодирования), не увязая в стеке связанных технологий.

Мы никогда не вернемся к более простым 8-битным дням, но есть ряд сред BASIC, которые могут помочь вам познакомиться с понятиями структуры кода, переменных, циклов и ветвлений, например, Basic для Qt , SmallBasic , Basic256 или древняя QBasic . Разработчики Snobbier ругают BASIC, потому что он может преподавать плохие практики, но написание нескольких строк ужасного кода научит вас больше, чем написание ничего.

Могу ли я стать отличным кодером?

Да — вовремя Лучшие программисты проходят несколько этапов в своем программировании:

  1. Фаза «Я ничего не знаю»
    Все новое, нет ничего легкого.
  2. Этап «Это начинает иметь смысл»
    Вы написали несколько программ и делаете меньше ошибок.
  3. Этап «Я непобедим»
    Ваша уверенность соответствует вашей компетенции. Никакая проблема не кажется слишком сложной.
  4. Этап «Я ничего не знаю», часть II
    Внезапное осознание того, что развитие бесконечно сложнее, и вы начинаете сомневаться в своих собственных способностях.
  5. Фаза «Я немного знаю, и это нормально»
    У вас есть приличные навыки кодирования, но вы понимаете свои ограничения и можете найти решение большинства проблем (даже если это означает, что вам нужно нанять другого разработчика)

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

Рассмотрите возможность написания своих собственных библиотек, прежде чем использовать чужую работу. Например, напишите свои собственные функции манипулирования DOM JavaScript или объекты подключения к базе данных PHP. Использование jQuery или ORM позволит вам производить что-то быстрее, но понимание базовой технологии бесценно. Повторное использование кода становится все более важным, но не бойтесь углубляться в процессе обучения.

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

Удачи!

Будьте в курсе событий с нашим курсом « Функциональное программирование на JavaScript» .