Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
marklouren
8 лет назад

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

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

Так как я работаю в digital маркетинге и часто запускаю разные онлайн проекты - то есть список технологий, с которыми сталкиваюсь регулярно: css, html, javascript, php, SQL… но одно дело просто знать что они существуют. Другое - начинать в них разбираться и работать. 

Пойдем по порядку, как я изучал:

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

Основные факторы, которые выделил при выборе языка:

Мотивация, зачем оно мне надо?

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

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

Популярность языка и его перспективы, что выбираем?
Чем более популярен язык, тем больше под него решений и как следствие он может решать больше разноплановых задач. Кроме того популярность влияет на скорость развития языка, обновления библиотек под него.  В данный момент существует много рейтингов, например рейтинг на GitHub или индекс TIOBE, также есть рейтинг RedMonk.  Из-за разных методологий подсчета в каждом из них есть свои лидеры. В целом, можно выбрать следующую группу:

  • JavaScript
  • Java
  • Python
  • PHP
  • Ruby
  • C++
  • C
  • JavaScript – самый популярный язык для разработки клиентской части web-applications. Обязателен для frontend разработчиков (наряду с HTML5 и CSS3). Один из самых обсуждаемых языков благодаря его растущей популярности в области server-side программирования (node.js). Основное его преимущество: как только вы начнете учиться JS вы сможете увидеть реальные результаты в виде игрушек в браузере, лучшей работы сайта и т.д. что будет мотивировать изучать язык дальше. О преимуществах JavaScript как первого языка для обучения, хорошо описано в этой статье.
  • Java – один из самых трудных языков программирования для начинающих, обучение занимает от года.  Однако изучив его, вы сможете писать приложения практически для любой платформы и устройства. Как бонус –Java разработчики являются самыми высокооплачиваемыми специалистами на рынке ИТ.  Подробнее о языке и где получить знания по нему можете узнать из этого материала.
  • Python  - Код легко читается, у него понятная структура. Стандартного инструментария достаточно для начала обучения. Один из самых рекомендуемых языков для начинающих. Недостаток, как для меня – чтобы начать запускать веб приложения – необходимы знания смежных технологий. Аналогично игры или приложения под смартфоны – для них практически нет нормальных библиотек из-за чего, этот язык трудно использовать для таких целей.  По этому поводу хорошо написал Джеймс Хэг в статье о том, что пришла пора отказаться от Python, как от основного языка, используемого при обучении программированию.
  • Ruby - Как и Python, код легко читается. Структура также идентична Python. В сравнении с остальными языками, выбор стандартных библиотек скуднее — нужно потратить время на поиски. Однако из-за удобства – он хорошо подходит для разработки собственных проектов. В основном, известен благодаря очень популярному фреймворку Ruby on Rails
  • PHP - Хороший язык для создания веб-приложений для работы с данными.  Очень популярен в Ru сегменте – практически все сайты в вебе у нас написаны с помощью PHP. Однако он имеет ряд критиков, в частности из-за проблем с безопасностью и низкой производительностью в сравнении с другими языками. В последней версии по заявлению разработчиков, эти проблемы были устранены.  Для новичка  есть такие бонусы в его изучении: большое количество обучающих материалов, развитое сообщество, множество библиотек и frameworks, низкий уровень входа и возможность быстро найти работу.
  • C – В сравнении с Python, JS и Ruby  - это довольно сложный язык, но достаточен популярен в применении - начиная от написания операционных систем до разнообразных прошивок для микроконтроллеров. Из особенностей, это высокие возможности работы с памятью компьютера, низкий и широкий круг применения языка.
  • C++  - как и C сложный для начинающего, однако он также повсеместно используется в программировании. Самая его популярная область применения – это разработка игр, также на нем пишутся сложные прикладные программы.

По каждому из этих языков точатся дебаты по потенциалу развития его в будущем.  Так например, Python становится основным языком для изучения в технологических университетах США и между тем, есть ряд сфер где на нем проблематично работать. В целом можно сказать, так как эти языки лидеры, то не стоит опасаться их исчезновения в обозримом будущем. 

Причины: большое количество созданной на этих языках инфраструктуры, наличие библиотек,  развитие сообщества.


Попытка номер 1

В общем прочитав большое количество литературы, форумов и возможностей я выбрал Python. По логике PHP распространение и некоторые мои сайты написаны на нем, но как-то отпугнуло большое количество негативных отзывов.  Хотя по рейтингу востребованности языков среди работодателей, он лидирует.
В общем даже сейчас Python мне нравится – он действительно сравнительно легок в изучении и мощен, но после трех месяцев изучения я нисколько не продвинулся к своей цели. Да, я уже умел писать парсеры, обрабатывать тексты и даже создавать примитивные игры (Спасибо Coursera за курс Interactive Programming). Но к цели меня это не приблизило.  

Я начал разбираться с Django Framework, в надежде ускорить процесс практического использования языка, но внезапно передо мной встал простой факт: чтобы запустить сайт, знание Python мало. Необходимо знать, как работает сервер, как передаются запросы в браузере, необходимо хорошо знать документацию по работе самого framework, плюс Must have: знания CSS, HTML, JavaScript – не стоит говорить, что у меня всего этого не было.   

Нехватка знаний приводила к тому, что при создании сайта и появлении ошибки я совершенно не понимал откуда она взялась и куда идти - в настройки сервера, в код, в анализ запросов и т.д..Я мог два дня лазить по stack overflow получать советы, реализовывать и получать ничего…После нескольких недель такой работы я отчаялся и забил – решил программирование не для меня. Считаю, что при выборе первого языка допустил две ошибки:

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

Попытка номер 2

Однако в последующей работе, не раз сталкивался с задачами – когда именно программирование могло мне помочь. Поэтому через год перерыва я начал свой путь заново. Только с другого языка – теперь я выбрал Java Script.
Моя аргументация:

  • Зная СSS и HTML – могу уже создавать полноценные сайты с простой логикой работы, что для меня как раз важно;
  • Язык один из самых популярных, а значит – востребованных, плюс большое количество библиотек, frameworks, обучающих материалов. Возможности изучения ограничиваются только желанием, даже на Голос можно спокойно изучать этот язык по урокам @rassen;
  • Результат обучения виден сразу, загрузил на хостинг и можно хвастать;
  • Java Script работает в браузере, то есть программы на нем – могут работать на любом устройстве, где есть браузер (планшеты и мобильные включены);
  • Хорошо развивается серверное применение Node JS, что также плюс;
  • Как маркетолог работаю со многими программами, которые использует JS, полезно знать – что конкретно ты устанавливаешь к себе на сайт, и как это работает.

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

459
24.977 GOLOS
На Golos с January 2017
Комментарии (6)
Сортировать по:
Сначала старые