Как быстро выучить программирование и попасть в IT-сферу?

СЕРГЕЙ АВЕРИН

специалист группы разработки продуктов Acronis

В вопросе «Как максимально быстро выучить программирование и попасть в IT-сферу», на самом деле, скрывается два вопроса. Вам нужно понять, что хочется: научиться программированию и работать в IT-сфере, или просто работать в IT-сфере.

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

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

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

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

разработка веб-сайтов, особенно создание самих веб-страниц; разработка разного рода несложных embedded-систем, программирование микроконтроллеров, промышленных контроллеров, SCADA-систем; разработка несложного софта, решающего бухгалтерские или учётные задачи: начиная от самодельной программы учета домашней библиотеки DVD-дисков до программирования 1С-бухгалтерии.

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

Если говорить про какой-то конкретный язык программирования, то это будут Javascript, PHP или Python. На изучение именно одного из них и стоит потратить свои силы.

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

Говоря о самообразовании, стоит отметить, что не «курсами едиными» формируются знания, но и специализированной литературой. Новичку бы я посоветовал читать только книги, непосредственно обучающие самому языку:

По PHP5 – «PHP5» — Д. Котеров, А.Костарев По Python — Dive into python — Mark Pilgrim (частично переведенная версия ru.diveintopython.net По Javascript рекомендую сайт — learn.javascript.ru По Haskell - learnyouahaskell.com По Go - golang-book.ru

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

Алгоритмы + структуры данных = программы. - Вирт Н. Structure and Interpretation of Computer Programs Textbook by Gerald Jay Sussman and Hal Abelson Язык C — Б. Керниган, Д. Ричи.

В заключение я хочу пожелать вам удачи и терпения на этом нелегком пути!