Содержание

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

Введение 

«Новичку в сфере IT стоит знать одно простое правило программирования — это написание очень тонких инструкций для глупой, но послушной машины».

Среди массы различных языков программирования новичку в IT очень сложно выбрать направления для дальнейшего развития, потому что каждый язык занимает определенную ячейку. Наиболее популярные, языки в «современном программировании», это: Java, Python, Objective-C, PHP, C, C++, C#, JavaScript и Ruby. Форумы и специализированные сайты переполнены тематикой «Что выбрать?» и «Куда развиваться?». И мы нашли оптимальную схему выбора ветки развития юным программистам.

С чего начать изучение программирования?

Итак, с чего же стоит начать?  В первую очередь ответьте предельно честно самому себе на главный вопрос: «Почему Вы хотите начать изучать программирование?». Ответов много, а предпосылок еще больше, но если провести анализ, то мотивов стать разработчиками несколько.

  • Деньги
    Часто, наиболее распространенной причиной изучения программирования служит мнение о том, что программисты много зарабатывают. Да, это действительно так. Зарплаты хороших программистов могут заставить позавидовать даже некоторых менеджеров высшего звена. Но это достигается годами упорного труда, само мотивации и углубления в современные информационные технологии. Кроме того, дабы получать по-настоящему достойную зарплату, стоит сразу нацеливается на работу в хорошей крупной компании. Или же иметь идею на миллион и открывать свой start-up.
     
  • Перспективы
    Казалось бы, относительно недавно стоило появится первом персональному компьютеру – и нате Вам! – программисты стали одними из наиболее востребованных работниками современного рынка. Действительно, наш век – это век информационных технологий, быстроразвивающийся и динамический. Сейчас спрос на специалистов IT-сферы растет как никогда, и вряд ли стоит ждать на него спад. Все больше и больше современных компаний готовы предложить «теплое местечко». Сколько их – Google, Microsoft, EPAM прочие.
     
  • Динамичность
    Каждому человеку присуща толика любознательности. Но есть люди, у которых страсть изучать что-то новое просто в крови! Что же, в таком случае программирование – это именно то, что вам нужно. На данный момент существуют десятки различных направлений: мобильная разработка, настольные приложения, веб-программирование, игры, сколько их… А уж сколько для этих направлений было разработано технологий и программ – не счесть. Работая в сфере IT вы можете быть уверенным, что никогда не дадите себе заскучать!
    Итак, раз мы разобрались с нашими мотивами и разложили все по «полочкам», приступим же непосредственно к выбору первого языка программирования!

Какой язык программирования выбрать?

Теперь, самый важный вопрос: так какой же язык программирования стоит выбрать новичку в сфере IT? Прежде всего, все зависит от того, что именно вы желаете изучать.

Вот график наиболее востребованных направлений области информационных технологий:

Как мы можем видеть, список внушительный. Но что из этого вас прельщает больше всего? Давайте попробуем разобраться.

  • Я бы хотел разрабатывать сайты
    С этим направлением не все так просто. Есть Front-End разработка сайтов – это все, что вы видите на экране. Создание веб-страниц, программ для них, стилей и много чего прочего. В таком случае вам стоит обратить свое внимание на JavaScript и HTML & CSS. А есть Back-End – разработка непосредственно программ для серверов – тех алгоритмов, которые, собственно говоря, и будут управлять страницами, сайтом и прочим. Здесь все несколько сложнее, так как сразу же появляется хороший выбор из Python, Java, C#, и PHP. Каждый из этих языков обладает как серией достоинств, так и набором откровенных недостатков. В качестве этакого старта советуем рассмотреть Python.
     
  • Настольные приложения для домашних ПК
    Тут бесспорными лидерами выступают такие популярные языки, как Java и C#. С одной стороны, обучение Java несколько проще и быстрее, чем C#, с другой, набор возможностей, которыми может похвалится C#, на порядок выше.
     
  • Работа с базами данных
    Ну, тут все однозначно: следует начинать с SQL! Администрирование, работа с реляционными базами данными и прочее, что так необходимо в современно IT-мире. Здесь можно рассмотреть вступление в язык запросов.
     
  • Игры-игры-игры!
    Геймерами не стают, ими рождаются. Наслаждаетесь современными продуктами игровой индустрии и сами бы хотели привнести что-то в этой увлекательный виртуальный мир? Тогда, определенно, вам стоит обратить свое внимание на С++.     

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

            

Статистика поиска соискателей по языкам и платформам:

Какой самый простой язык программирования?

Если начинать изучать, что начинать с простого, не так ли? Итак, вот небольшой даждест «для чайников» с чего, собственно, стоит начать обучение.

  • JavaScript
    Один из наиболее легких языков программирования для веб-разработки. Динамическое наполнение web HTML страниц, целый комплекс технологий семейства React.JS, Node.JS и прочих, обилие библиотек и обучающих материалов + плюс, огромное комьюнити. Отличный старт для новичка в области IT! Вот вступление в видео-курс по JavaScript.
     
  • Python
    Очень легкий и приятный в освоении интерпретируемый язык универсального назначения. Обширное количество довольных пользователей, огромное количество вакансий на мировом рынке, поддержка большинством сред разработки и наличие специализированных сред разработки. Ознакомится с данным языком можно здесь.
     
  • PHP
    PHP – или Hypertext Preprocessor – достаточно мощный и, в то же время, легкий в освоении язык программирования для разработки серверной части веб-сайта. Имеет богатую историю и может похвалится хорошей базой различных библиотек. Ознакомится с ним вы можете здесь.

Самый сложный язык программирования

Быть может, вы уже имели определенный опыт, связанный с IT, и желаете попробовать себя в более «продвинутой» песочнице? Или вы не из тех, кто хочет изучать что-то простое, а сразу брать «быка за рога»? Что же, на этот случай мы можем предложить следующее:

  • Java
    Отменный компилируемый язык программирования для решения целого спектра задач – от написания настольных приложений до создания серверных программ для веб-сайтов. Имеет мощную аудиторию поклонников, богатую историю, корни которой простираются в самые 90-стые и множество библиотек для практически любой задачи. Начать изучение этого языка можно здесь.
     
  • С#
    Язык программирования от компании Microsoft универсального назначения. Java показалась простой? Тогда C# для вас! Имеет практически идентичный с Java синтаксис, но отличается расширенном набором функций и производимых операций. WPF для оконных приложений, ASP.NET для разработки сайтов и прочие высококачественные фреймворки для всех типов задач. Что может быть лучше, чем инструмент на все случаи жизни? Приступить к работе с этим языком можно здесь.
     
  • C++
    Легенда программирования. Универсальный язык программирования, возможности которого воистину не имеют ограничений. Низкоуровневая работа с памятью, разработка систем рендеринга для игр, отличная производительность и неисчерпаемый набор библиотек… С++ — это наиболее быстрый и оптимизированный язык программирования из всех существующих. Но его изучение потребует особенной усидчивости и трудолюбия. Сумеете ли вы с ним совладать?

Языки программирования, какой самый оплачиваемый?

Один из самых востребованных и высокооплачиваемых на рынке языков программирования — это Java. Очень популярен на всех платформах, ОС и устройствах, благодаря своей кроссплатформенности. Используется в Gmail, Minecraft, большинстве Android приложений и в корпоративных приложениях.

  • С — это «лингва франка» среди всех языков программирования. Один из самых старых и самых широко используемых языков в мире. Отлично подходит для системного и аппаратного программирования. Он используется в ОС и оборудовании.
     
  • С# был создан на платформе Microsoft, но совсем недавно вышел на open source. С# — это популярный выбор предприятий для разработки разнообразных web-сайтов и Windows приложений, используя .NET framework. С# используют для создания web сайтов при помощи web фреймворка от Microsoft – ASP.NET. Своим синтаксисом и функционалом похож на Java. Используется в корпоративных и Windows приложениях.
     
  • Objective-C является основным языком, используемый Apple для Mac OS X и iOS. Его стоит изучать, если Вы собираетесь разрабатывать только под OS X и iOS. Стоит задуматься над изучением Swift, как о следующем языке. Objective-C используется в большинстве iOS приложений и в части Mac OS X.
     
  • C++ — это более сложная версия языка программирования С, с существенно расширенным набором возможностей. Широко используется при разработке игр, промышленных и высокопроизводительных приложений. Изучать С++ — все равно что изучать, как производить, собирать и водить машину. Этот язык не рекомендуется для самостоятельного изучения и требует наличие ментора. Он широко используется в ОС, оборудовании и браузерах.

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

itvdn.com

ɯǝʚɯо ņıqнqvиʚɐdu) / RUVDS.com corporate blog / Habr

Многие начинают путь к изучению программирования, открыв поздним вечером Google. Обычно ищут что-то вроде «Как выучить…». Но как тот, кто ищет подобное, решает, какой именно язык программирования выбрать?

Кто-то, начитавшись сайтов и блогов крупнейших компьютерных компаний, рассуждает так: «В Кремниевой долине что ни слово –  то Java. Думаю, это – то, что мне нужно». Бывает и так: «Haskell. Он ведь на пике популярности. Страшно подумать, что будет дальше. Определённо – Haskell». И даже так: «Этот суслик на логотипе Go – такая няшка. Хочу знать Go».

Некоторые, движимые стремлением научиться программировать, ищут вот что: «Какой язык программирования выучить первым?».

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

Кликабельно:

Если рассмотреть эту схему, окажется, например, что Ruby подходит тем, кто ребёнком любил лепить из пластилина.

Выбор первого языка программирования может стать увлекательным занятием, как полусерьёзные опросники, вроде: «Кто вы из героев Квентина Тарантино?».

Но, прежде чем вы уйдёте с головой в изучение Ruby, причём, только потому, что в детстве жить не могли без пластилина, позвольте обратить ваше внимание на то, что первый язык программирования – это очень и очень важно. Слишком многое от него зависит.

Для того, чтобы хотя бы в общих чертах разобраться с выбранным языком, понадобятся сотни часов практики. Поэтому симпатичные логотипы и хитроумные схемы не должны сбивать вас с толку.

Выбирая первый язык стоит трезво оценить следующие факторы:

  • Рынок труда.
  • Долгосрочные перспективы языка.
  • Сложность изучения языка.
  • Что именно вы сможете создать в процессе изучения, и, показав окружающим, поддержать мотивацию.

Новые языки программирования появляются несколько раз в год. О них пишут статьи в научные журналы, им посвящают комиксы, которые можно найти в Сети.
Когда дело касается выбора первого языка программирования, вам придётся столкнуться с целой лавиной вариантов. Для того, чтобы немного сузить поиск, вот анализ поисковых запросов в Google за последние 12 лет, касающихся изучения программирования.

Из анализа поисковых запросов можно выяснить, что у Java были взлёты и падения. А, например, рейтинг Python постепенно рос, он стал чуть ли не самым популярным языком программирования. Есть здесь и один язык, простой, но обладающий замечательными возможностями, график интереса к которому год от года медленно растёт, хотя и находится в самом низу. Это – JavaScript.

Прежде чем говорить об этих языках программирования, позвольте кое-что уточнить.

  • Я не берусь спорить о том, что некий язык объективно лучше любого другого.
  • Я согласен с тем, что разработчики, в конечном счёте, изучают больше одного языка.
  • Я за то, что в самом начале пути программисту следует хорошо изучить какой-то один язык. И, как вы скорее всего догадались, прочтя хитро замаскированную подсказку в заголовке, я полагаю, что этим первым языком должен быть JavaScript.

Начнём наш разговор о первом языке с рассмотрения того, как сегодня учат программировать.

Основы информационных технологий и обучение программированию



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

Наверняка вы знакомы с этим высказыванием Эрика Рэймонда: «Образование в сфере компьютерных технологий точно так же не сделает из вас отличного программиста, как изучение кистей и красок не сделает вас прекрасным художником».

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

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

И те, кто принимают решения о том, чему учить на курсах по программированию, обычно придерживаются всяческих официальных источников, регулярно публикующих отчёты с рейтингами языков. Среди таких отчётов, например, TIOBE Index. А вот — таблица лидеров по версии IEEE.


Такие вот «таблицы лидеров» выглядят практически точно так же, как десять лет назад. Однако, всё меняется, даже в академических кругах.

Так, в 2014-м году Python обошёл Java, став самым популярным языком программирования в ведущих курсах по информационным технологиям в США.


И я уверен, что ещё одно изменение обязательно произойдёт, да что там говорить – это уже происходит.

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

Вот результат опроса, который проводился на Stack Overflow в 2016-м году. В нём участвовало 49397 разработчиков. Более половины из них используют JavaScript.

Без JavaScript невозможна разработка веб-интерфейсов, а в последнее время, благодаря Node.js, растёт актуальность JavaScript в серверном коде. Этот язык стремительно распространяется и в другие области, такие, как разработка игр и интернет вещей.

Среди программистских вакансий JavaScript упоминается чаще, чем другие языки, если не брать в расчёт Java. Вот данные с крупнейшего агрегатора вакансий Indeed.com.

Неслучайно и то, что мы, на freecodecamp.com, собрали сообщество разработчиков, занятых проектами на JavaScript с открытым исходным кодом. За прошедшие два года более 5000 человек воспользовались Free Code Camp для того, чтобы найти свою первую работу в роли программиста.

Я, кстати, не ратую за JavaScript только потому, что обучаю на нём программировать. Всё, как раз, наоборот. Я обучаю этому языку именно потому что знание JavaScript – это верная дорога к первой работе программиста.

Но подходит ли JavaScript именно вам? Стоит ли ему становиться вашим первым языком программирования? Рассмотрим подробнее те факторы выбора языка, о которых я говорил выше.

Фактор №1: рынок труда


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

Как я уже говорил, в объявлениях о вакансиях чаще всего упоминается Java. На втором же месте стоит JavaScript.

Но в случае с JavaScript надо учесть одну важную вещь. Хотя язык существует уже два десятка лет, лишь сравнительно недавно он превратился в серьёзный инструмент, с помощью которого гиганты вроде Netflix, Walmart и PayPal создают полноценные приложения.

В результате множество компаний нанимают JavaScript-разработчиков, но разработчиков этих не так уж и много.

Вот данные с Indeed.com, здесь показано соотношение вакансий и соискателей.


Итак, что мы видим. На одно место Java-разработчика приходится 2.7 программиста. В сфере вакансий, где требуется знание PHP, а также в среде iOS-разработки, складывается похожая ситуация.

Если же взглянуть на данные по JavaScript, то окажется, что на одну вакансию приходится всего 0.6 программиста. Для JavaScript-разработчиков это, определённо, рынок продавца.

Фактор №2: долгосрочные перспективы


JavaScript-проекты на GitHub получают, в среднем, в два раза больше pull-запросов, чем проекты на Java, Python или Ruby. И, кроме этого, JavaScript растёт быстрее, чем любой другой популярный язык.

Вот соответствующие данные GitHub Octoverse:

На экосистему JavaScript, кроме того, благотворно влияют серьёзные инвестиции, как финансовые, так и выражающиеся в человеческом капитале талантливых инженеров, от таких компаний, как Google, Microsoft, Facebook и Netflix.

Например, вклад в язык программирования с открытым исходным кодом TypeScript (расширенная версия JavaScript со статической типизацией) внесли более 100 разработчиков. Многие из них – сотрудники Microsoft и Google, которые получают зарплату за эту работу.

Подобную форму совместной работы компаний в среде Java найти сложнее. Например, Oracle, которая фактически владеет Java, поглотив Sun Microsystems, часто судится с компаниями, которые пытаются работать над этим языком.

Фактор №3: сложность изучения языка


Вот карикатура о сложности языков программирования от XKCD.

Большинство программистов согласится с тем, что высокоуровневые скриптовые языки сравнительно легки в изучении. JavaScript подпадает под эту категорию, вместе с Python и Ruby.

И даже, хотя в учебных заведениях языками, с которых начинают учить программировать, всё ещё являются такие, как Java и C++, разобраться в них значительно сложнее.

Фактор №4: проекты, которые можно создать, используя полученные знания


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

Повсеместное распространение JavaScript привело к такому знаменитому высказыванию Джефа Этвуда, сооснователя Stack Overflow: «Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript».

С течением времени это высказывание, которое ещё называют «Законом Этвуда», не утрачивает актуальности.

В среде других языков можно наблюдать несколько иные тенденции. Например, однажды обещали, что Java будет работать буквально везде. Помните Java-апплеты? В начале этого года Oracle официально от них отказалась.

Python страдает от похожих проблем. Вот что по этому поводу написал Джеймс Хэг в статье о том, что пришла пора отказаться от Python, как от основного языка, используемого при обучении программированию. Ученик спрашивает: «Как мне дать эту вот игру, которую я написал, друзьям? Или, это будет даже лучше, можно ли как-нибудь записать её на мой телефон, чтобы я мог показать её всем в школе, а им не пришлось бы её устанавливать?». Учителю же, если речь идёт о Python, остаётся лишь хмыкнуть. В двух словах тут и не ответишь.

Если же говорить о JavaScript, то вот живые ответы на вышеупомянутый вопрос. Это – приложения, которые написали члены сообщества Free Code Camp в CodePen, пользуясь браузером.

Вот игра «Simon», созданная в стиле 1970-х.


Вот – реализация математической игры Джона Конвея «Жизнь».

Вот – страница поиска для Wikipedia, стилизованная под «Звёздные войны».

А вот – игра-«рогалик» с традиционным подземельем.

Первый язык: пройтись по верхам, или копнуть поглубже?


Сначала как следует изучите один язык. Затем принимайтесь за следующий.

Если вы будете прыгать от одного языка к другому, нигде толком не задерживаясь, далеко вам не уйти. Для того, чтобы продвинуться заметно дальше «Hello World», нужно как следует изучить ваш первый язык. После этого со вторым и последующим языками будет разобраться гораздо проще.

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

  • Изучение C – это отличный способ разобраться с тем, как, на самом деле, работают компьютеры, в частности, в плане управления памятью. C особенно хорош в высокопроизводительных вычислениях.
  • C++ отлично подходит для разработки игр.
  • Python нет равных в научных и статистических расчётах.
  • Java пригодится тем, кто видит себя программистом в крупной компании.

Но сначала, повторюсь, стоит изучить JavaScript.

Так, а теперь хочу сделать невозможное. Собираюсь попытаться представить себе возражения некоторых читателей, критику JavaScript и моих идей, которая может появиться в комментариях, и на эту критику ответить.

Возражение №1. JavaScript – язык медленный


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

JavaScript (речь идёт о Node.js) на порядки быстрее, чем Python, Ruby и PHP. Его быстродействие приближается к C++, Java и Go. Вот результаты одного весьма серьёзного теста производительности для различных языков программирования.

Возражение №2. В JavaScript нет статической типизации


Как Python и Ruby, JavaScript – это язык с динамической типизацией. И это, с одной стороны, удобно, а с другой – способно завести разработчика в лабиринт ошибок. Вот, например, здесь мне хочется, чтобы переменная exampleArray была массивом. Я записываю в массив значения, проверяю его длину, то есть – количество содержащихся в массиве элементов. Выглядит это так:
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2

Затем я случайно записываю в переменную строку, при этом, что ещё хуже, благодаря особенностям строкового типа данных в JavaScript, я вполне могу получить длину того, что считаю массивом, обратившись к свойству length:
exampleArray = "text"
-> "text"
exampleArray.length
-> 4

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

Если же вам, в первом языке программирования, совершенно необходима статическая типизация, я всё равно рекомендую начать с JavaScript. После этого вы сможете быстро освоить TypeScript. Вот что говорит на эту тему Алекс Эверлоф: «Для того, чтобы освоить TypeScript, нужно время, но, если вы уже знаете JavaScript, всё будет гораздо быстрее и проще».

Возражение №3. Я очень хочу создавать мобильные приложения, поэтому JavaScript не для меня


Даже если так, я всё равно советую сначала изучить JavaScript. И, кстати, он вполне подходит для разработки мобильных приложений, причём, как их клиентской, так и серверной частей. А именно:
  1. В экосистеме JavaScript имеются несколько инструментов для разработки полноценных мобильных приложений. Например, это Angular Cordova и React Native.
  2. Для того, чтобы ваше мобильное приложение делало что-нибудь по-настоящему интересное, вероятно, ему понадобится серверная часть, построенная на некоей подходящей платформе, вроде Node.js + Express.js.

Кроме того, стоит отметить, что золотой век мобильных приложений уходит.

Для начала, хотя мобильными приложениями пользуются буквально все, по данным опроса Stack Overflow, в котором приняли участие 49525 программистов, практически половина из них занята в сфере веб-разработки. И лишь немногим более восьми процентов занимаются мобильными приложениями.

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

Безусловно, программами они пользуются. В основном это Facebook, Google Maps и некоторые другие. Их не так уж и много. В результате основной спрос на разработчиков мобильных приложений сконцентрирован в нескольких крупных компаниях.

Сложно предвидеть перспективы развития рабочих мест для мобильных программистов. При этом многие задачи, касающиеся разработки, поддержки и распространения приложений для смартфонов и планшетов легче всего решаются с помощью JavaScript. В результате компании, вроде Facebook и Google, обеспечивают мощную поддержку лучшим JavaScript-инструментам для мобильной разработки.
По состоянию на 2016-й год, практически вся работа программистов сосредоточена на веб-проектах. Всё так или иначе связано с этой огромной платформой, со «Всемирной паутиной». И грядущее поколение бытовых приборов, с которыми можно будет разговаривать, и автомобили, которые будут сами забирать детей из школы – всё это тоже будет частью веба.

Из вышесказанного следует простой вывод: учите JavaScript.

Возражение №4: Разве JavaScript это не игрушечный язык, который был создан за десять дней?


Когда слышу подобное, сразу на ум приходит этот твит. А вообще, у JavaScript, конечно, необычная история. Это провоцирует. Наверняка вам доводилось читать и слышать, как кто-то отпускает шутки об этом языке.

Кстати, некоторым невероятно нравится критиковать C++. Но, как и JavaScript, C++ преуспел несмотря ни на что. Теперь он, точно так же, практически повсюду.

JavaScript – это ни разу не игрушка.

Удачной учёбы!


В итоге хочу сказать вот что. Если кто-нибудь станет вас доставать только потому, что вы изучаете JavaScript, а не «хит сезона», просто вспомните знаменитые слова Бьёрна Страуструпа, человека, который создал C++: «Существует лишь два вида языков программирования: те, которые постоянно ругают, и те, которыми никто не пользуется».

Удачи в изучении вашего первого языка программирования!

habr.com

Самый простой язык программирования для начинающих

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

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

Простой язык программирования должен отвечать неким базовым требованиям, таким как:

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

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

Но многие специалисты убеждены в том, что для познания языка программирования не следует сразу переходить к его визуальной реализации. Проще говоря, если хотите изучать Паскаль, то изучайте именно его, а не Delphi, изучайте Си вместо VC++ with MFC/QT и так далее.

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

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

Более того, во многих случаях старые языки программирования для обучения приспособлены гораздо лучше, так как позволяют пользователю самостоятельно разрабатывать недостающий библиотечный функционал, между тем как объектно-ориентированные (ООП) языки с богатым набором функций лишь охлаждают творческие идеи начинающих программистов — попробуй-ка заставить их заново изобретать вывод звука через звуковую карту, форматы упаковки данных или новые СУБД.

В итоге, остается посоветовать новичкам изучать программирование с версий для DOS такие как Pascal и лишь потом купить Delphi, чтобы перейти в комфортные визуальные среды.

Эта статья, которой Владимир Кожаев начал серию с советами новичкам. Обязательной частью в ней будут две статьи, но если весь материал охватить не удастся, он обещал добавить ещё.

Откуда дровишки?

Ах, вы думали? Вы, значит, иногда думаете? Вы мыслитель. Как ваша фамилия, мыслитель?
Спиноза? Жан Жак Руссо? Марк Аврелий?
© Золотой телёнок

Я в отрасли с 2005, и за это время перед глазами у меня прошло много историй и судеб. Но это не главное, дело в том, что большинство юных (и не очень) неофитов, которым я помогал успешно работают, некоторые уже на второй-третьей работе. Но и это не главное. Очень ценно, что у меня есть примеры тех, у кого не получилось. Ценно потому, что иногда знать, что делать гораздо менее важно, чем знать чего и как не делать. Как и все обобщения, нижесказанное справедливо лишь для условий Украины и в меньшей степени для стран бывшего СНГ. Об условиях работы в США я знаю мало, поэтому желающие эмигрировать поищите другой источник информации (например, замечательный подкаст «Америчка» Якова Файна, либо «SiliconValleyVoice» Михаила Портнова).

Социально-психологический портрет свитчера

Роман — ведь это зеркало, с которым идешь по большой дороге.
То оно отражает вам лазурь небосвода, то грязные лужи и ухабы.
© Стендаль. Красное и Чёрное

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

Жил-был человек, работал на далёкой от ай-ти работе, возможно добился успеха, но вот случился кризис 2008-го года, жить стало тяжелей. Потом произошёл майдан 2013-го, аннексия Крыма, война на Донбассе, доллар рванул вверх и жить стало совсем тяжело. И вдруг наш герой вспоминает, что в институте (школе/детском саду) он неплохо программировал на Паскале (получил пять на экзамене/успешно ответил на вопрос/умел включать компьютер). «Эврика, пойду я в ай-ти, там много платят и работа интересная».

Если студент-программист не имеет опыта и стоит задача всего лишь (!) его получить, свитчеру до этого семь вёрст и всё лесом: нужно определить, чем заниматься, и получить знания. Дело, сразу скажу, нелёгкое, поэтому людей справедливо одолевают сомнения: получится ли у меня, стоит ли овчинка выделки, а может ну его нафиг? С этого и начнём.

Получится ли у меня?

Судьба — очень удобное слово для тех, кто никогда не принимает решений!
© Джоди Фостер

Когда-то давно, когда программист с опытом зарабатывал меньше секретарши из постсоветского НИИ, программирование было уделом задротов в растянутых свитерах. Тренд «войти в ай-ти» соответственно отсутствовал. Но мало-помалу в страну пришёл аутсорсинг. Заработки у основателей ай-ти контор были запредельными: низкие украинские зарплаты сочетались с бросовым, но всё же внешним рейтом. К примеру, в 2004-м году программисту за час работы платили 2 доллара, а продавали этот час за 15. Поэтому в программисты стали брать всех, кто в состоянии написать программу «привет мир», в тестеры — умеющих включить компьютер. Более чем шестикратная разница внутреннего и внешнего рейтов покрывала любые издержки. Продолжалось это благословенное время примерно до 2008-го года. Желающих войти в ай-ти из других специальностей было мало, потому что заработок программиста хоть и вырос, до установщика кондиционеров, увы, не дотягивал.

В 2008 грянул кризис, увольняли всех, в том числе программистов, но меньше других и брали на другую работу. Кто-то (как автор) после сокращения устроился практически сразу. Кто-то через месяц-два, но и в кризис работники клавиатуры были сыты и даже довольно упитаны. Плюс ко всему курс подрос и наконец-то программисты стали зарабатывать серьёзно побольше даже самых грудастых девочек из автосалонов. Соответственно поток желающих и как следствие требования к ним тоже стали расти, и рост этот продолжается до сегодняшнего дня. Причём, если в 2008-м году для успешного трудоустройства надо было иметь теоретические знания, сейчас от начинающего требуют наличия какого-никакого опыта. То есть, чтобы попасть на работу программисту надо иметь опыт написания реальных программ, хотя бы небольших и некоммерческих. Тестеру — подтвержденный опыт тестирования приложений.

Так что видим: требования возросли на порядок. Что из этого следует: учиться, учиться и ещё раз учиться! Каждый день, по три-четыре часа, минимум год. После этого нужно нарабатывать опыт, бесплатно писать программы. Так что от начала обучения до трудоустройства пройдёт в лучшем случае два года. Есть у вас возможность и мотивация два года после работы упорно трудиться (фактически, по полдня)? Если есть, хорошо, но у меня для вас сюрприз: никто не гарантирует, что на первой работе вы продержитесь больше недели! Джуниор, тем более стажёр, — самые уязвимые позиции.

Ещё одна важная штука — английский. Заказчики в Украине сплошь иностранные, внутренний рынок мёртв. Как вы думаете, будут они учить русский/украинский ради талантливого, но пока мало чего умеющего стажёра? У кого английский есть, тому, конечно, легче. У кого нет — учимся. А как вы хотели?

Отсюда следует настораживающий вывод:

Для устройства на первую работу нужно быть готовым к годам упорного труда и финансовой нестабильности в первое время.

Хорошо взвесьте, можете ли вы себе это позволить?

Чтобы не сойти с ума, учёба должна стать вашим хобби.

Поверьте, заниматься каждый день тем, от чего тебя тошнит, — дорога в дурку, а там уж конечно никаких денег не заработаешь. С другой стороны, финансовую мотивацию никто не отменял, и если она у вас преобладает, в этом нет ничего криминального. Хороший приём — записать ваши цели на листке бумаги, повесить перед глазами и читать каждый день. Ещё лучший — сходить к психологу, он быстро вставит мозги относительно мотивации. Кому такой надо, пишите в личку.

Шлём демотиваторов подальше

Найдутся некоторые, что скажут: «фи, он пошёл программировать не по зову сердца, а потому что есть захотел» Или: «стар уже — куда тебе учиться?» Или: «это не для твоих мозгов» — смело посылайте их. В отдельно запущенных случаях непрошеных советчиков можно даже побить. Почему? Так подбитый глаз успокаивается куда быстрее пустого желудка! Ещё потому, что советчики эти не хотят на самом деле вам помочь — лишь почесать о вас чувство собственной важности, попутно толкнув в лужу. Не иметь денег, отказывать в необходимом не только себе, но и близким, прозябать будучи способным на большее — это пошло, мерзко и противно.

Честно зарабатывать для себя и семьи вполне хорошо и правильно.

С чего начать, или выбор пути

У меня растут года,
будет и семнадцать.
Где работать мне тогда,
чем заниматься?
© Маяковский

Ну вот, с мотивацией разобрались: что делаем дальше?

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

И вот ещё один совет: не ломитесь в ручные тестеры!

При этом становиться программистом вовсе не обязательно.

Некоторым достаточно просто сменить отрасль, опираясь на предыдущие навыки. Например, вместо бухгалтера в фирме по производству колбасы стать таким же в программерской конторе. Если умеете работать с людьми (официанты, бортпроводники, хостессы) — прямая дорога в офис-менеджеры. Были начальником — идите в менеджеры, психологом — в рекрутеры и эйчары. Но что делать, если вы таки да хотите стать программистом? Становиться, что же ещё! Но что изучать, вот вопрос? Ответ на него в следующем пункте.

Что и как учить, чтобы стать программистом

Детей надо учить тому, что пригодится им, когда они вырастут
© Аристипп

Что же изучать, чтобы быстрее получить долгожданную работу: Java, C#, а может С++? Да, эти языки, конечно, востребованы и хорошо оплачиваются, но есть две проблемы.

Проблема первая: любой язык существует не сам по себе, но вместе с инструментальными средствами: компиляторами или интерпретаторами, которых может быть несколько, библиотеками и каркасами (по-английски framework) и типичными подходами, применяемыми в рамках предметной области. Так вот, дело в том, что для указанных языков любая из возможных специализаций (возможно, кроме android) предполагает высокий порог вхождения. Другими словами, учиться вам придется особенно долго. Именно поэтому для переквалифицирующихся я рекомендую специализации с низким временем входа: это прежде всего программирование фронтенда с помощью языка JavaScript и родственных, потом разработка сайтов на языке PHP или Python, далее разработка мобильных приложений под Android или iOS. А вот в разработку энтерпрайз приложений на платформе JavaEE или .NET, тем более в системное программирование, бигдату или анализ данных свитчерам лучше не лезть. Слишком долго придётся учиться.

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

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

Отсюда ещё один совет: технике программирования нужно обучаться — задачки решать.

Как же учиться

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

Следующим шагом будет изучение шаблонов проектирования. После этого переходим к освоению систем контроля версий и баз данных, например MySQL. И наконец переходим к освоению желаемой специализации. Но и это ещё не всё: по окончанию обучения необходимо создать несколько работающих проектов и выложить их на github и обязательно куда-нибудь на стор или сервер, чтобы люди могли лицезреть не только код, но и результаты вашего труда.

Только после этого можно начинать поиск работы.

Список литературы для специализации программиста на Java под Android

  • Для первоначального знакомства с языком я рекомендую книгу Якова Файна «Программирование на Java для детей, родителей, дедушек и бабушек».
  • После того, как книга прочитана, можно переходить к книге Брюса Эккеля «Философия Java». Только не берите русскоязычный вариант в мягкой обложке — он сокращённый, там упражнений нет.
  • Найдите либо более новое издание, либо английское под названием «Thinking in java». Задачки по программированию тупо гуглим по вопросу «алгоритмические задачи для собеседований».

Далее, берём две книги:

  • Либо книга дядюшки Якова «Java Programming 24-Hour Trainer» либо книга Эккеля «Thinking in java enterprise».
  • Для освоения шаблонов проектирования берём книгу Эккеля же «Thinking java in patterns».

Чтобы освоить MySQL и git можно воспользоваться просто официальной документацией. После этого можно уже приступать к изучению собственно Android, например, по книге «Android Разработка приложений для чайников» Донн Фелкер. После этого я рекомендую написать две-три игры, выложить их на стор. Дальше можно искать работу.

Ментор, как найти и не надоесть

Часто у новичка возникают вопросы, которые он сам разрешить не в состоянии. Хорошо бы спросить у кого-то, кто понимает, но где его взять? Обращайтесь к тем, кто пишет статьи, ведёт блоги (p.s. к автору обращаться НЕ надо, я уже и так помогаю нескольким, а время не резиновое). Почему к ним? Просто, если человек даёт советы по собственной инициативе, скорее всего, он согласится помочь, когда его просят. Кроме того, ментор должен обладать навыками учителя, в какой-то степени гуру, не все даже супер-пупер-дупер синьоры их имеют.

Задавать вопросы нужно в таком порядке:

  1. В начале пытаемся найти решение сами.
  2. Если не получается, идём гуглить.
  3. Если и после этого не получается, задаём вопрос на Stackowerflow или на другом форуме, но лучше на нескольких сразу. Задав вопрос, читаем его, возможно, прочитав, поймёте, как решить проблему.
  4. И только, если пункты 1-3 не дали эффекта, обращаемся к ментору.

При этом надо помнить: вам ничем не обязаны за исключением случаев, когда за помощь вы платите. То есть, если вам не ответили или ответили недостаточно подробно, или ментор не знает ответа, максимум, что вы можете сделать — очень вежливо спросить, мол, не нашлось ли у тебя случайно времени на мой вопрос? Это вовсе не от того, что ментор считает себя пупом земли. Он такой же человек, как и вы, с семьёй, хобби, своими проблемами. И, увы, собственные задачи ему куда важней, чем назойливый падаван, который в очередной раз невнимательно прочёл мануал

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

Что ещё надо? Если ты спрашиваешь ментора, и он даёт совет, воспользуйся им! Если не пользуешься, не ной, что ничего не выходит. У меня есть знакомая, которая приблизительно раз в месяц спрашивает: «что же мне делать?». Я ей рассказываю, подробно, она приходит через месяц, не выполнив из моих рекомендаций ровно ничего! Цикл повторяется вновь. Стоит ли говорить, что результаты её печальны?

Курсы, могут ли они помочь

Это, смотря, чего вы от них ждёте. Если введения в специальность, однозначно — да. Хорошие курсы вам в этом помогут. Но, подчёркиваю, хорошие. Как же их найти? Давайте подумаем: сколько программист способный вести курсы получает в час? Правильно, от 20-ти долларов, скорее выше. Положим, в группе 10 человек. Два раза в неделю лекции + практические задания, на проверку которых тоже тратится время. То есть в неделю преподаватель должен потратить на ваше обучение минимум 15 часов, скорее 20-ть (к лекциям ведь готовиться надо) 20*20=400 баксов — минимальная зарплата лектора. Добавляем к ней ещё хотя бы 200 (аренда помещения, расходные материалы, прибыль конторы). В месяце четыре недели с хвостиком. То есть стоимость месяца хороших курсов для группы из 10-ти человек должна стоить 600*4+ хвостик(200)=2600 долларов. Делим на 10 и получаем 260 долларов на одного человека в месяц. По нынешнему курсу в тридцать баксов это будет 7800 гривен. Понятно?

Могут ли хорошие курсы быть дешевле? Да, если проверка домашних заданий автоматизирована (как на курсере) и слушателей много — тогда получится взять объёмом. Или, если основная цель курсов не заработок денег, а пиар. Я могу порекомендовать курсы Якова Файна или те, что проводятся владельцами сайта javascript.ru.

Но зарубите себе на носу: ни одни курсы не дадут вам всех знаний. Ещё одна замануха — обещание стопроцентного трудоустройства.

Даже бесплатные курсы крупных ай-ти компаний после серьёзного отсева не обещают трудоустройства всех. Это и понятно, курсы идут в течении продолжительного времени. С другой стороны, в учебном центре не оракулы, предсказать, сколько стажёров понадобится конторе через полгода, не могут. Откуда же тогда рабочее место для вас возьмёт обучающая организация? У неё ведь и вовсе нет собственной разработки. Вопрос риторический!

Как устроиться на первую работу и что там делать

Самая тяжелая работа — её отсутствие!
© Рубен Багаутдинов

Ну вот, начальные сведения из программирования получены. И вы окрылённый начинаете слать резюме. Вы думаете гуглы с майкрософтами будут за вас драться кистенями? Посмотрите на ситуацию с точки зрения работодателя: приходит какой-то неизвестный тип, образование у него юридическое, самому 27 лет, английский средненький. Говорит, что что-то знает, честно-честно, но увы — доказательств этому нет. Возьмёте вы его на работу?

Что же можно сделать? Правильно, предъявить доказательства, что вы что-то можете! А как это сделать? Создать работающий проект достойный внимания, а лучше два-три, и выложить его в свободный доступ. Пусть люди увидят товар лицом. Думаете, после этого вас р-р-раз и взяли? Нет, не взяли, но без реализованных проектов шансов вообще никаких. Дело в том, что работодателю может что-то и не понравится, вы ведь начинающий ещё. Как же быть? Правильно, надо очень вежливо просить указать недостатки, благодарить за уделённое время и оные недостатки устранять. Потом идти к следующему работодателю и так до получения желаемой должности. Ну и конечно параллельно подчитывать теорию, чтоб от зубов отлетало. Однако проект в продакшене всё равно самое важное — он ваш проводник в мир больших денег.

Я знавал ребят, которые учили шаблоны параллельного программирования, аспектно-ориентированное, динамическое, и кто знает, что ещё, при этом недоумевали: «почему же меня на работу не берут?». Да потому, что показать нечего! Можно долго рассуждать о качестве кода, но какой в этом толк, если реальной работы ты не делал никогда?

Преимущества свитчера

Окончивший вуз по специальности «программное обеспечение» или «системный анализ» в течении полного рабочего дня пять лет изучал то, что вы осваивали в течении года по вечерам, урывками. Изучал под руководством опытных наставников, делал лабораторные работы, проходил практику. Конечно, теорию он знает лучше! Можно конечно сказать, мол, знаем мы эти постсоветские вузы, но уверяю вас: студент КПИ или университета Шевченко, который хочет получить знания, таки да, имеет эту возможность. Но есть преимущества и у вас. Дело в том, что выпускник вуза «молодой ишшо», часто-густо (но не у всех) в голове у него ветер. Это не потому что он плохой, просто жизненный опыт приходит с возрастом.

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

Не умеете, ну… как же вы дожили до своего возраста?

К примеру там, где выпускник назовёт приятные уху менеджера сроки, вы, как взрослый человек, вежливо, но твёрдо скажете: сделать эту работу быстрее нельзя, никак нельзя. Пусть лучше начальник испытает несколько неприятных минут сейчас, но узнает о проблеме заранее, чем будет пребывать в ложной уверенности, что всё хорошо до самого дедлайна.

Что делать, если оффер получен

Стоит ли говорить, что сумма зарплаты на первом месте работы — не самое главное? Да, она должна обеспечивать хотя бы минимальные потребности, ну там снимать койко-место, одеваться в секонде и кушать не одни только макароны, но не вздумайте торговаться! Джуниоров на рынке очень много, есть и с профильным образованием. И я писал выше, что у них преимущества есть. Поэтому, получили оффер — радостно киваем и выходим на работу. На ней, между прочим, ещё продержаться надо. Для джуниора-стажера увольнение не редкость, даже если для своего уровня он идеален. Просто толку от такого человека сравнительно мало, делает он самую простую работу. Закончилась такая или просто заказчик решил сократить штат: «спасибо, дорогой друг, мы будем о тебе вспоминать». Что же делать? Как я и говорил, готовиться к финансовой нестабильности и не унывать — быстренько искать другую работу. Ещё хороший способ: брать на текущей работе отпуск и идти на стажировку/испытательный срок. И только если он успешно пройден, увольняться со старой. Это сложно, согласен, но на ваших руках, возможно, семья, другие близкие люди — рисковать их будущим вы не можете.

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

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

Бывает так, что в работе вы сталкиваетесь с затруднениями. Допустимо ли спрашивать? Конечно, да! Но вести себя нужно точно так же, как с ментором: в начале сам, потом гуглить, потом на форум и только потом задавать вопросы.

Сколько же нужно проработать на первой работе? Если с работодателем нет других договорённостей, то хотя бы полгода, но лучше год. Всё это время усиленно учиться: осваивать шаблоны, паттерны, фреймворки, метрики. И после этого уже посматривать по сторонам и пробовать говорить об увеличении зарплаты. Человек, проработавший год, превращается нет, не в миддла, но в уверенного джуниора — его уже хантят эйчары, он доказал, что может!

При этом, договорённости надо выполнять. Договорился, что проработаешь минимум два года — сделай это. Условились закончить проект? Заканчивай! Карма, она ведь такая: какой мерой вы отмеряете, такой и вам будут мерить.

Однако, выполнение договорённостей не стоит смешивать с чувством вины. Поясню это на примере. Вот проработали вы год, повысили свой уровень, и вот вам предлагают другую работу. Стоит ли терзаться, мол как же так, меня учили, а я такая сволочь ухожу? Если вы выполнили всё, о чём договорились, нет, не стоит. Вот почему: сотрудника принимают не от большой доброты, а в чаянии прибылей. Если вы проработали год, значит доход от вас превысил расход, иначе уже давно бы уволили. А значит всё в порядке. Я сам переживал, мол как же так, проект без меня окажется в сложной ситуации. Всё же уволился, и ничего не случилось, так что не стоит переоценивать собственную важность.

Если в ай-ти компанию не берут или альтернативное место работы

Бывает такое. Что же, сидеть и ждать у моря погоды? Вовсе нет — обратитесь в государственную организацию, лучше всего в НИИ. Денег у госконторы обычно немного, но задачи по программированию возникают и часто довольно сложные. К примеру, моей первой работой была Николаевская астрономическая обсерватория (НИИ НАО). Чем только я там не занимался: обработка результатов астрономических наблюдений, математическая статистика, веб-разработка, базы данных. Сейчас много говорят о бигдата, так вот задачи с этой самой бигдатой у меня были ещё в далёком 2005-м году. Кто не верит, может вспомнить старую присказку «много как звёзд на небе» или словосочетание «астрономические числа». Правда приходилось и ящики таскать, но это не так уж страшно.

Есть одно «но», которое одновременно и плюс, и минус. В НИИ, объектом исследования которых не является программирование, сидят практики — им важно, чтобы программы работали без принципиальных ошибок и создавались с приемлемой скоростью. Поэтому на следовании передовым практикам, использовании юниттестов, правильной декомпозиции, наличии комментариев и так далее акцентировать внимание никто не будет. Вы должны позаботиться об этом сами, если не ради работы, то хотя бы в целях самообучения. Учитель, тыкающий носом в косяки, — это, конечно, удобно, но если бы на чистоту кода обращали внимание, новичка скорее всего на работу не взяли.

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

Вам за 40, или борьба с дискриминацией

Постсоветское общество, к сожалению, очень косное и приверженное предрассудкам. К примеру, считается, что подчинённый обязательно должен быть младше начальника, дескать по-другому руководителя не будут уважать. Тем более, стажёр не может быть сорокалетним солидным дядькой. Ещё бытует мнение, что по достижении зрелости работать на рядовой должности вообще стыдно, вне зависимости от оплаты. Существуют и другие стереотипы. Ну там программист обязательно должен быть трудоголиком, живущим только работой, красивая женщина обязательно глупа (а значит не может выполнять обязанностей сложнее приготовления кофе). В итоге это выливается в раздражающую фразу: «технические навыки у вас хороши, но, к сожалению, вы не впишетесь в коллектив». Поскольку рецепта вечной молодости нет, нужно что-то делать.

  • Во-первых, можно поискать работу с западным руководством. Как правило, в Европе и США подход к гендерным и возрастным различиям проще: если человек обладает знаниями и может работать по состоянию здоровья, он подходит. Вообще на западе, насколько мне известно, другие традиции происходящие с одной стороны из-за законодательной борьбы с дискриминацией (попробуй только отказать из-за возраста, национальности или пола — штрафы будут «освежающей» величины), с другой — ориентации преимущественно на зарабатывание денег. Напротив, в некоторых отечественных конторах девизом до сих пор является: «мы не пашем, не сеем, не строим, мы гордимся общественным строем» и всякий, кто не разделяет политических, социальных или иных убеждений — враг, брать на работу его не стоит.
  • Во-вторых, спасением для возрастных или по ряду причин не могущих работать в офисе остаётся фриланс. Я писал, что это сложно и подходит не каждому, но у свитчера есть ряд вышеуказанных преимуществ. Во всяком случае, если не пробовать, не получится точно! Заказчику фрилансера вообще всё равно, как выглядит человек на другом конце, важно, чтобы работа была выполнена в срок и с приемлемым качеством. Так что, если не берут совсем никуда, об этом виде заработка можно подумать.

История об инвалиде-колясочнике

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

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

На моей памяти обратился к одному из известных в мире программирования личностей с просьбой помочь в учёбе.Мотивацией его было даже не личное выживание — он хотел помочь дочерям.

Мужик пошёл на удалённые курсы и через несколько месяцев получил первую работу: писать XML-ки и создавать Xpath-ы. Сейчас он успешно работает удалённо, получает программистскую зарплату в долларах. Саша, если ты прочтёшь это, передаю тебе большой привет и шлю лучи добра, ты — молодец!

Вспомните об этом человеке, когда будете оправдывать своё ничегонеделание, дескать вам тяжело. А парализованному с кучей физических и психологических проблем легко было? Да, ему помогли, но если бы он не работал, никто бы ему не платил просто так. Так что если получилось у него, не вижу причин, чтобы не получилось у вас.

Успехов вам в освоении!

fortress-design.com

Самый простой и легкий язык программирования

Какой язык программирования самый простой и легкий? В этой статье мы попытаемся разобраться, можно ли выделить какой-то определенный язык программирования.

Программирование в наше время стало одним из самых перспективных занятий для молодых людей. Это совершенно понятно, ведь окружающий нас мир становится все более компьютеризированным и разумным: автоматика, роботы компьютеры, всевозможные сервисы самообслуживания, интернет технологии, начало работы над искусственным интеллектом, смартфоны – все это работает и существует только благодаря заложенным в железо программам. Онлайн банкинг, развлекательные сервисы, образовательные программы и прочие вещи, которыми сейчас пользуются совершенно все, пишутся простыми людьми – программистами. Именно поэтому все это сейчас очень востребовательно, высокооплачиваемо и очень престижно.

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

Наиболее простые языки программирования для начинающих

Можно по-разному подходить к классификации языков программирования и уровня их простоты. Если опираться на типичные таблицы рейтингов языков, их вотребовательности и тому подобных параметров, то получится типичный набор из С, С++, Java, Python и других им подобных. Но мы подойдет к вопросу с другой стороны. Рассмотрим языки не по полезности и универсальности, а именно по простоте их изучения. И так, лидерами здесь определенно можно назвать следующие языки.

Basic

Уже довольно устарелый язык, но он все еще активно преподается во многих университетах. Объясняется это просто – данный язык простой в изучении, отлично воспринимается даже людьми, далекими от любого программирования. Разработан он в далеком 1964 году, но и сейчас все еще остается на слуху у многих. Этот язык изначально разрабатывался именно для образовательных целей – студенты не программисты могли разрабатывать на нем элементарные прикладные программы, которые проводили арифметические операции, работали с элементарными логическими задачками. Язык считается высокоуровневым, имеет вполне посильный набор команд.

HTML

HTML, возможно самый простой язык программирования для верстки вебсайтов. С его помощью можно легко создавать шаблоны для интернет ресурсов, оснащать их дополнительными блоками, таблицами, создавать качественное СЕО ядро будущего сайта, что важно для его раскрутки в Сети. Большинство сайтов в интернет написаны именно на HTML. Разработан язык в конце 80-х годов британским ученым Тимом Бернерсом-Ли в известнейшем научном центре Церн. Написанный на грамотном HTML языке сайт одинаково хорошо отображатеся в разных браузерах, на смартфонах и других гаджетах, отлично взаимодействует с произведениями других языков: скриптами, веб-приложениями и прочим. Учится очень быстро и легко.

CSS

Формальный язык программирования, который также часто рекомендуют как ответ на вопрос, какой язык программирования самый легкий. Сам по себе он имеет не столь большую цену, но в связке с упомянутым выше HTML способен творить чудеса. Благодаря CSS выполняется оформление внешнего вида веб-страниц в интернете. Созданная благодаря ему таблица стилей легко применяется к любым сайтам, XML документам. Все красиво оформленные кнопки, анимация, переходы и тому подобные элементы обычно выполняются именно благодаря этому языку. Его освоение, как правило, происходит в связке с HTML и только в таком соединении считается целесообразным.

PHP

Скриптовый язык программирования, с помощью которого активно ведется огромная доля современной веб-разработки. Благодаря PHP можно относительно легко создавать так любимые публикой динамичные вебсайты, оснащенные выдвигающимися вкладками, автоматизацией важных процессов, легкой обработкой трафика и различных файлов, и многими другими функциями. С помощью данного языка можно даже создавать пользовательские интерфейсы, хотя для этой цели он обычно фактически не применяется. Учится язык относительно просто, хотя, конечно, придется постараться. Но результат обучения будет очень хорошим – даже зная PHP на вполне среднем уровне, можно претендовать на работу администратора сайтов, серверов, писать функциональные шаблоны сайтов.

JavaScript

JavaScript – это самый легкий язык программирования для начинающих, которые хотят оперативно научиться писать собственные скрипты. Этот язык имеет относительно простой синтаксис, но в то же время способен выполнять довольно сложные функции. Скрипты такого плана очень популярны в использовании на сайтах, так как выполняются они на компьютер пользователей, а не на сервере. За счет этого ни работают быстро, увеличивают работу веб-приложений и не нагружают сервера. В Сети множество самоучителей, по которым можно без сверх усилий освоить этот язык.

Почему именно эти языки?

Как уже упоминалось выше, создать перечень самых простых языков программирования не так просто, ведь критериев простоты может быть очень много. Эти языки выбраны в список потому, что они реально просты в усвоении (простой синтаксис, не слишком большое количество наиболее используемых команд, визуально код понятный и простой). Но что еще более важно – они не только просты, но и актуальны, благодаря чему от освоения языка можно плавно перейти к практику на реальных задачах и зарабатывать на этом деньги (разве что Basic для этого уже вряд ли сгодится).

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

bunkerbook.ru

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

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

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

Выбор направления деятельности

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

  • Веб-разработка. Сюда относится создание сайтов, шаблонов, настройка работы серверов и написание веб-приложений, разработка скриптов, онлайн плееров и тому подобных вещей. Сюда же можно отнести работу с сервисами электронных денег, банкингов, возможно даже создания удаленных операционных систем;
  • Мобильные приложения. Очень актуальная сейчас область программирования, с которой лучше начинать новичку, желающему писать программы на смартфоны, планшеты и прочие гаджеты. Здесь существует огромные перспективы – большинство людей постепенно отходит даже от ПК и ноутбуков, предпочитая провести время с любимым смартфонов в руках. Можно создавать мобильные приложения как для заказчиков, так и реализовывать свои собственные идеи. Конечно, сейчас в этой сфере очень много крутых программистов, поэтому легких денег может и не получиться;
  • Машины для обслуживания клиентов. Человеко-машинные интерфейсы. Человечество во всем мире становится все более компьютеризованным: везде ставятся чековые автоматы, есть возможность самообслуживания в терминалах, можно оплачивать покупки с помощью своего смартфона. Все эти фишки разрабатываются теми же программистами и эта сфера определенно будет развиваться в будущем еще более бурно, чем сейчас;
  • Написание ПО для компьютеров. Все еще выгодное занятие, способное приносить программисту прибыль. Компьютер уже прочно стал основной вычислительной техникой на любых предприятиях, в институтах, в бизнесе. Разрабатывая программы для бизнеса, образования, торговли можно иметь немалый успех.

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

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

Веб-разработка

HTML. Отличный базовый язык программирования, с помощью которого разрабатываются интернет страницы. Он прост в изучении и способен дать новичку понимание того, как устроена страница в Сети, какие ее главные компоненты, какие функциональные возможности здесь реализовываются. Но стоит отметить, что самого HTML слишком мало для успешной деятельности в Интернет, так как с его помощью можно в основном только создавать внешний облик страницы, но не ее функционал. HTML – это отличный язык программирования для новичков, которые хотят начать писать сайты и разобраться в основах.

CSS. Изучается в связке с HTML и нужен для красивого визуального оформления интернет страниц. С его помощью можно делать анимацию, переходы, красивые таблицы и списки, форматировать желаемые элементы. Учиться также не сложно.

PHP. Мощный язык программирования для веб-разработки, который дает своему обладателю очень большие возможности. Знание PHP – это основное требование при устройстве на работу системным администратором, разработчиком веб-приложений и в других случаях. Язык учится более сложно, нежели предыдущие, но он намного функциональнее. С помощью PHP можно разрабатывать полноценные динамичные сайты.

Мобильная разработка

Сейчас есть две прогрессивные мобильные ОС: Android и iOS. При желании писать на первую операционку нужно изучать Java, на вторую — Objective-C.

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

Objective-C – это творение Apple, с помощью которого пишутся программы на их смартфоны и компьютеры. В основе данного языка лежит всем известный С, большинство написанных на нем программ полностью совместимы с Objective-C.

ПО для ПК и других компьютеризированных устройств

Для этих задач отлично подходят:

  • С. Старый язык, но очень распространенный. На нем пишутся драйвера, операционные системы, он может быть задействован для решения огромного множества задач. Большинство программ на ПК создано на базе этого языка;
  • С++. Современный язык программирования, который используется для решения всех классических задач для программиста: написания ПО, разработка игр, драйверов и тому подобных вещей. Понемногу устаревает, но все еще повсеместно применяется.

В качестве заключения нужно сказать, что определить, какой именно язык программирования лучше всего подходит для новичка невозможно без учета потребностей этого человека. Выбирать язык нужно в первую очередь из той сферы программирования, куда стремится будущий разработчик. Только глядя на это можно сделать вывод о том, какой язык программирования учить первым. Для веб лучше всего учить PHP, для мобильной разработки – Java, для создания ПО – С, С++ или может быть Python.

Также отдельно нужно упомянуть о таком простом и уже старом языке, как Паскаль. Многие студенты не понимают, зачем им преподается это, по их мнению, «старье», на котором уже никто не пишет. Ответ прост – данный язык не сложен в обучении, но способен дать понимание о том, что такое программирование, как здесь все устроено, испытать свои силы на самых элементарных задачах. Поэтому неплохо было бы начать свое погружение в мир IT и с этого языка, хотя есть и другие достойные для этого кандидаты.

bunkerbook.ru

Какие языки программирования лучше изучать начинающим специалистам

Какой язык программирования лучше изучать первым? Каждый новичок начинает с этого вопроса свой путь в IT. Понимаем, ориентироваться среди двухсот языков непросто. С какого же лучше начинать, если мировые рейтинги популярности меняются каждый год? Поможем вам разобраться с этим непростым вопросом.

История языков программирования

Когда языков программирования не существовало, первые программисты писали команды для работы машин цифрами. Им приходилось запоминать таблицу машинных кодов, а не несколько базовых алгоритмов и принципов работы языка, как сейчас. Чуть позже появились компиляторы, упростившие программистам жизнь. Компиляторы – программы, переводившие слова программистов в машинный код. Первым языком программирования стал Assembler. Программа, написанная с его помощью, запускалась и работала медленнее машинного кода, но писать код было гораздо проще. Так началось активное развитие языков программирования.

Топ языков программирования

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

Предлагаем вам список языков программирования, которые были самыми востребованными в 2018 году:

  • JavaScript
  • Java
  • C
  • C++
  • Python
  • C#
  • PHP
  • Go
  • Visual Basic .Net

Что начать изучать, чтоб не прогадать?

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

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

Также хотим предостеречь и тех, кто считает, что программирование может освоить каждый, а увлекающиеся люди – сказка. Обычно те, кто идет в IT-сферу за деньгами мотивированы на саморазвитие меньше тех, кто этим горит. Если вы из тех, кто собирается в IT за высоким достатком и только, то вам придется учиться и научиться разбираться, возможно, больше, чем тем, у кого горят глаза.

При выборе языка программирования для начинающих, мы советуем вам опираться на следующие критерии:

  • Что вам хочется делать?

Достаточно простой вопрос, с помощью которого можно понять, какой язык программирования нужен вам. Если вы хотите создавать сайты, верстать странички и видеть то, что делаете, то вам нужно начать с FrontEnd разработки. Поможет вам в этом JavaScript. Если же вы поклонники продукции Apple и Стива Джобса, хотите программировать для iOS – выбирайте Swift. Есть языки, которые заточены под определенные функции, как язык R под анализ данных.

  • Какая у вас цель обучения?

Вы пришли в IT, чтобы зарабатывать большие деньги? Или вы хотите стать вторым Марком Цукербергом, Линусом Торвальдсом или Тимом Бернерсом-Ли? Первое говорит о том, что вам понадобится изучить широкий спектр языков, нет разницы с какого начинать. А второе – то же самое, только усерднее и глубже в несколько раз.

  • Какой язык программирования самый востребованный на рынке?

Можно, конечно, начать изучать Ruby. А потом очень долго искать на рынке вашей страны вакансию Ruby junior-developer. А можно обратить внимание на самые востребованные языки и выбрать что-то из них, чтобы потом не столкнуться с проблемами трудоустройства и саморазвития.

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

Team Lead ISsoft Павел отметил, что в самом начале важно делать больше, чем делают другие. «Нужно читать книги, постоянно думать, когда кодишь и разбираться в том, что делает каждая строка кода. Конечно, в нашем ремесле никуда без непрерывного профессионального самосовершенствования», – подчеркнул Павел.

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

Спорный вопрос. Смотря, что понимать под словом «лучший». Тут можно оценивать по скорости и простоте написания или скорости выполнения кода. Если оценивать по первому критерию, то под него попадают языки парадигмы ООП (объектно-ориентированного программирования): С++, Java, Python. Конечно, это не означает, что эти языки лучшие. Поэтому оставим поиски ответа на этот вопрос вам.

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

issoft.by

обзор языков программирования для начинающих — Промо на vc.ru

Выбор языка во многом зависит от того, что предполагается сделать с его помощью. Самые популярные сейчас применения языков — веб-разработка, мобильная и игровая разработка. Веб-разработка, в свою очередь, делится на фронтенд (то, с чем напрямую взаимодействует пользователь) и бэкенд (незаметная пользователю, но необходимая «техническая» часть).

Фронтенд

HTML и CSS — лицо сайта

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

Однако сайты не обходятся без HTML, поэтому его базовое знание необходимо каждому, кто планирует заниматься веб-разработкой. И владение CSS может быть вполне ценным навыком: задача «правильно расположить элементы» не всегда оказывается тривиальной.

JavaScript — чтобы научить сайт понимать вас

Язык JavaScript отвечает за интерактивность и динамически меняющуюся информацию на страницах сайта. Например, когда вы вводите в форму сайта номер телефона в неверном формате или забываете о значке @ при вводе электронного адреса, JavaScript позволяет сайту моментально об этом узнать и подсветить поле красным. А вот счётчик просмотров этой страницы, меняющийся в реальном времени: на HTML-сайте можно было бы показать только статическое число.

JavaScript стал главным языком фронтенда и сейчас переживает настоящий пик популярности: интерес к нему растёт, а в JavaScript-мире постоянно появляются новые инструменты. Нюанс в том, что для разработчика постоянное появление чего-то нового — не всегда плюс: приходится часто переучиваться, и новое не всегда работает стабильно, вызывая неприятные сюрпризы. Однако никто не запрещает использовать стабильные и популярные инструменты.

Помимо этого, существует платформа Node.js, которая позволила использовать JavaScript и в бэкенде. В отличие от фронтенда, там он не является лидером и конкурирует с целым рядом других языков.

Веб-разработка: бэкенд

Java — надёжный, как дедушкин сюртук

Хотя название порой путают с JavaScript, Java — не просто другой язык, а почти противоположность JavaScript: это более консервативный выбор, проверенный годами. Его предпочитают использовать в бэкенде тех проектов, для которых надежность куда важнее веяний моды, — например, банковских систем. В рейтинге популярности языков TIOBE Java занимает первую строчку, а это значит, что в мире есть миллионы рабочих мест Java-разработчиков.

Молодые разработчики зачастую считают Java скучной и устаревшей, а её сторонники отвечают, например, такой GIF о том, что никакой Node.js не сравнится с ней по мощи:

pic.twitter.com/O8COQGR8bD

— Phil Webb (@phillip_webb) July 29, 2016

Python — прогрессивный и популярный

Если сравнивать Python с Java, то он будет выигрывать в объёме кода, но проигрывать в скорости выполнения. Для большого высоконагруженного проекта, где важна производительность, Python будет не лучшим выбором. Язык отлично подойдёт для стартапа: например, чтобы показать инвестору прототип до того, как закончатся все инвестиционные деньги.

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

PHP — популярный и относительно несложный

Популярность PHP бесспорна: его используют Facebook, «ВКонтакте», «Википедия» и, к слову, vc.ru. На нём также основана система WordPress, под управлением которой работает около четверти всех сайтов.

PHP лёгок в освоении, однако у него спорная репутация, и две эти вещи связаны. Из-за простоты языка в индустрии появилось много новичков с непреодолимым желанием профессионально заниматься PHP-разработкой, не вникая в детали. Так появилось много плохого PHP-кода. Именно из-за этого одни люди критикуют PHP, а другие возражают, что в умелых руках он показывает себя только с лучшей стороны.

В списке вариантов есть и несколько менее популярные альтернативы — от Ruby до набирающего обороты Go.

В программе GeekBrains «Веб-разработчик» собраны вместе и фронтенд в виде HTML с CSS и JavaScript, и бэкенд, представленный PHP. А по Java и Python есть отдельные курсы.

Мобильная разработка

Android: Java — для приложений и ботов

Если в веб-разработке можно выбрать любой понравившийся язык, то в случае с Android-приложениями всё намного однозначнее: их пишут на Java. Теоретически альтернативой могут выступать Java-совместимые языки или связка JavaScript и HTML — но ни то, ни другое пока не стало массово популярным, поэтому в вакансиях Android-разработчиков обычно указывается требование знать один конкретный язык.

Android-разработка на Java заметно отличается от разработки бэкенда на том же языке, и при попытке перейти от одного к другому придётся многому учиться. Однако возможность сменить область деятельности без того, чтобы начинать всё с нуля, оказывается ещё одним аргументом в пользу Java.

iOS: Swift и Objective-C — только для Apple

Долгие годы единственным языком разработки iOS-приложений был Objective-C. В 2014 году Apple представила Swift как «усовершенствованный Objective-C», и сейчас писать для iOS можно на обоих языках. Пока что Swift ещё довольно молод, но его перспективы выглядят радужными: вероятно, в ближайшие годы он станет основным языком iOS-разработки. Впрочем, многие считают, что сперва стоит изучить Objective-C.

Недостаток Swift в том, что он ограничивается разработкой для iOS и macOS: в других областях он сейчас не применяется. Достоинство языка в том, что он был создан с расчётом на новичков, так что в качестве первого языка может оказаться проще многих других. Недавно Apple выпустила для iPad детское приложение Swift Playgrounds, призванное обучать языку буквально с пелёнок.

Программа «Mobile-разработчик» на GeekBrains включает в себя сразу и Java для Android, и Objective-C со Swift для iOS. Если есть желание изучать Android или iOS по отдельности, то курсы обеспечат и это.

Разработка игр

Разработка игр с их требованиями к производительности и необходимостью взаимодействовать с «железом» — довольно непростая сфера. Игры писали даже на C и C++.

Со временем появились популярные движки, к примеру Unity: при создании игры он возьмёт на себя самые тяжелые задачи. Разработчику в это время можно будет сосредоточиться на решении более доступных проблем. Отпала необходимость писать на языке C, который появился ещё в 1970-е годы — вместо этого подойдёт более высокоуровневый C#, который некоторые называют «ответом Microsoft на Java», или уже упоминавшийся JavaScript.

C# используют и для многих других задач: от приложений для Windows до того же бэкенда и разработки мобильных приложений. Поэтому если изначально язык необходим для создания игр, то при смене направления полученные знания точно не пропадут.

На GeekBrains есть курсы по разработке игр на Unity и C# и даже целый комплекс курсов по профессии «Разработчик C#».

Разумеется, список языков не ограничивается упомянутыми: кто-то предпочитает молодой Kotlin, созданный в Петербурге, а кто-то с 1980-х привык к Smalltalk. И круг задач тоже не ограничивается перечисленными: есть и «низкоуровневые», такие как написание драйверов.

Однако всё то, что не вошло в список, обычно либо узкое и нишевое (Smalltalk-вакансии в дефиците), либо плохо подходит начинающим (низкий уровень требует серьёзной подготовки). Поэтому в первую очередь стоит обратить внимание на перечисленные языки, а потом нетрудно будет разобраться и с остальным.

vc.ru