7.03.2016

Как я учился программировать. Нужны ли курсы? (Часть 1)

Давно хотелось рассказать про свой опыт посещения IT курсов. И вот наконец! Сразу скажу, что основное внимание буду уделять онлайн курсам в группе. Освещать буду 3 курса, один по Ruby on Rails и еще два по JavaScript, а конкретно NodeJS и AngularJS.

Заголовок говорит: "Как я научился программировать..." , это очень широкая тема и одних курсов тут мало. Поэтому давайте договоримся о том, что в этот раз я буду уделять 90% внимания именно курсам в процессе обучения, а в оставшиеся 10% я тезисно расскажу, что еще такого я делал чтоб научиться программировать.

Итак, давайте начнем с начала. Любой курс по программированию предполагает определенный уровень знаний в предметной области. И мне как человеку с гуманитарным образованием пришлось получать эти знания на своей первой работе. Работал я интерент-маркетологом, много времени уделял контекстной рекламе и сайтам компании вообще. С 2012 по конец 2014, приходилось делать типовые сайты на WordPress и OpenCart, а так же верстать страницы под рекламные кампании. Именно в то время я всерьез заинтересовался программированием, а в 2013 году начал изучать javascript.

И вот наконец 27 ноября 2014 года начались мои первые курсы по Ruby On Rails.

Итак, на этапе выбора у меня возник целый ряд вопросов. Например, какой язык выбрать? К какому организатору курсов пойти? А хватит ли мне знаний? А смогу ли я? А деньги возвращаете? и другие...

В конце концов благодаря тому, что мне всегда нравилась Япония, плюс время начала этих курсов мне подошло больше чем на других я выбрал Ruby и RubyOnRails от организатора компании Sloboda Studio.

Да, это не самые весомые и обдуманные причины! Но, это единственные которые я мог четко осознать на момент выбора. Уже окончив курсы и начав работать я начал узнавать как много всего в мире программирования было сделано под впечатлением от Ruby On Rails. Оказалось, что Ruby On Rails, это такой эталон MVC архитектуры и вообще сборник хороших практик. В мире JavaSript он повлиял на CoffeeScript, Sails - аналог Rails, Jade (теперь Pug) шаблонизатор и т.д. Может быть вы знаете еще примеры :)
Ах да! Интересно, что с такими нововведениями в JavaScript как генераторы, итераторы и ключевое слово yield впервые я познакомился в Ruby. То что для JavaScript новый стандарт от середины 2015 года для Ruby уже вчерашний день :)

А теперь коротко о плюсах и минусах курса

Ruby On Rails

Минусы:
  1. Много маркетинга. Курсы больше направленны на получение прибыли.
    У компании было три курса, по ruby, python и javascript у каждого свой лендин-пэйдж с графиком популярности языков программирования, а самое интересное у каждого лендинга был свой сфабрикованный рейтинг.
  2. Отсутствие видео записей занятий для минимального пакета.
    На выбор предоставлялось три пакета: мини, стандарт и премиум со стажировкой. Я купил минимальный пакет и остался доволен.
  3. Слабо подается теория.
    В описание к курсу говорится, что по окончанию будет освоено достаточно много технологий, а хорошая подготовка не обязательна. При этом теории уделяется очень мало времени, поэтому трудиться приходилось много. Справедливости ради отчему, что соотношение теории и практики в курсе было заявлено до начала, и соответствовало действительности.
  4. Слабый преподаватель.
    От части это можно объяснить возрастом 22 года. Объяснение нового материала происходило быстро ориентируясь на план, а не на понимание учеников и было обильно сдобрено сленгом, который усугублял сложность восприятия материала.
  5. Слайды к лекциям на английском.
    Сложно комментировать этот пункт. Просто риторический вопрос остался у меня в голове. Зачем?
Плюсы:
  1. Много практики.
    Это главный плюс данных курсов так как позволяет максимально почувствовать реальную рабочую обстановку только на курсах. Конечно если не отлынивать.
  2. Система рейтинга.
    Данный пункт логично продолжает первый потому, что мотивирует для активной работы.
  3. Работа в команде.
    На второй месяц всех студентов разбивают на группы по 3 человека, кто-то назначается главным и несет ответственность за организацию работы группы. Мне посчастливилось быть своего рода тим-лидом команды благодаря своим баллам. Работа над проектом происходит на github репозитории и это пожалуй самое интересное. Работать первый раз в git, под linux при том, что и то и другое в новинку очень интересно! А главное полезно для профессионального роста.
Итог:
Перед началом курсов нужно подготовить базу по работе с файлами, базами данных (SQL) и лучше знать ООП. Либо компенсировать все это безбожным трудом! :)
Мои личные впечатления остались положительными, так как успешно была проделана большая работа. Для того, чтоб вы понимали, до курсов я даже файл читать не умел, не говоря уже про работу с базой данных, github и linux, а за две недели до конца сдачи проекта понятия не имел как его закончить. На секунду, от меня зависели еще два человека и не сдать проект, это значит проучиться в пустую. Но мы сдали!!


По Ruby у меня все! Если вы еще не устали давайте перейдем к JavaScript и начнем с NodeJS

продолжение следует ...