Статья Крэйга « Лучший язык программирования для изучения в 2015 году» имела огромный успех, и в этой статье он предлагает свежий взгляд на ландшафт программирования в 2016 году.
Если вы заинтересованы в изучении нового языка программирования, почему бы не взглянуть на Elm, язык для создания веб-приложений, который компилируется в JavaScript, с нашим видеоуроком Почему Elm?
Это начало нового года, поэтому естественно начать думать о своей будущей жизни и выборе профессии. Я анализирую статистику «лучших языков» в течение нескольких лет, и мы наблюдаем рост и падение систем отчетности. GitHut — один из моих любимых — не обновлялся с 2014 года. Есть еще несколько, поэтому давайте посмотрим на самые последние данные.
Индекс TIOBE, январь 2016 г.
В последнем отчете TIOBE оценивается популярность языков программирования с использованием числа квалифицированных инженеров и рейтинга в поисковых системах. Результаты:
- Джава
- С
- C ++
- C #
- питон
- PHP
- VisualBasic.NET
- JavaScript
- Язык ассемблера
- Рубин
- Perl
- Delphi
- Visual Basic
- стриж
- MATLAB
- паскаль
- Groovy
- Objective-C
- р
- PL / SQL
TIOBE заявляет, что их диаграмма не является показателем пригодности или количества написанных строк. Некоторые языки растут, потому что они все еще используются и относительно старше, чем другие. Есть несколько сюрпризов: VisualBasic все еще популярен? Он редко используется профессиональными разработчиками, но может случиться так, что многие люди используют его для простых специальных приложений. Тем не менее, я не знаю никого, кто использовал язык ассемблера много-много лет?
Отчет студентов-хакеров DevPost, январь 2016
Отчет DevPost анализирует работу 13 281 студента, участвовавшего в почти 10 000 проектов в течение 2014-2015 учебного года. Результаты показывают используемые технологии, хотя они смешаны с языками программирования:
- HTML / CSS
- JavaScript
- питон
- Джава
- C / C ++
- PHP
- Objective-C
- C #
- стриж
- JSON
- Рубин
- XML
- Ajax
- Ракушка
- обработка
- Lua
- CoffeeScript
- Идти
- MATLAB
- 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, потому что он может преподавать плохие практики, но написание нескольких строк ужасного кода научит вас больше, чем написание ничего.
Могу ли я стать отличным кодером?
Да — вовремя Лучшие программисты проходят несколько этапов в своем программировании:
- Фаза «Я ничего не знаю»
Все новое, нет ничего легкого. - Этап «Это начинает иметь смысл»
Вы написали несколько программ и делаете меньше ошибок. - Этап «Я непобедим»
Ваша уверенность соответствует вашей компетенции. Никакая проблема не кажется слишком сложной. - Этап «Я ничего не знаю», часть II
Внезапное осознание того, что развитие бесконечно сложнее, и вы начинаете сомневаться в своих собственных способностях. - Фаза «Я немного знаю, и это нормально»
У вас есть приличные навыки кодирования, но вы понимаете свои ограничения и можете найти решение большинства проблем (даже если это означает, что вам нужно нанять другого разработчика)
По моему опыту, главное различие между хорошими разработчиками и великими разработчиками — любопытство . Великий разработчик никогда не собирается склеивать заранее написанные компоненты. Они хотят понять, как все работает. Выполнение задачи в кратчайшие сроки имеет меньшее значение.
Рассмотрите возможность написания своих собственных библиотек, прежде чем использовать чужую работу. Например, напишите свои собственные функции манипулирования DOM JavaScript или объекты подключения к базе данных PHP. Использование jQuery или ORM позволит вам производить что-то быстрее, но понимание базовой технологии бесценно. Повторное использование кода становится все более важным, но не бойтесь углубляться в процессе обучения.
Наконец, никогда не бойтесь выбирать неправильный язык … нет неправильных . Есть те, которые не подходят лучше всего для конкретного проекта, но вы обнаружите это только методом проб и ошибок. Выберите интересный проект, выберите любой язык и начинайте.
Удачи!
Будьте в курсе событий с нашим курсом « Функциональное программирование на JavaScript» .