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

На одних только статьях журнала «Хакер» далеко не уедешь. Это я тебе точно говорю. Если хочешь стать настоящим специалистом в области IT, необходимо учиться и обязательно получить фундаментальные знания о предмете. К счастью, сегодня для этого возможностей больше, чем когда-либо. В Сети не только доступно множество учебников бесплатно, но и стремительно развиваются совершенно новые, прогрессивные способы обучения. И особенно это касается нашей – IT’шной - специальности.

Цель данного материала - показать, насколько просто сегодня можно обучаться самостоятельно. Быстро осваивать новые технологии и языки программирования. При этом делать это не в напряг и получать настоящее удовольствие от обучения. Я не претендую на полноту картины, и эта статья, само собой, не является сборником всех проектов, которые могут помочь тебе в самообразовании. Но я постарался собрать некоторые особенно интересные сервисы, которые были интересны лично мне. Уверен, они пригодятся и тебе.

Изучаем английский язык

Я серьезно рискую, начиная этот материал со слов «английский язык». У многих людей с ним сложности, и ирония в том, что чем серьезнее проблема, тем больше люди противятся его изучению, придумывая отговорки и оправдания. Как бы там ни было, могу тебе сказать с полной уверенностью: по-настоящему успешный IT-специалист если и может обойтись без английского языка, то упускает при этом многие интересные возможности. Большинство авторитетных конференций проходит на английском. В самых крупных сообществах специалистов принят английский язык. Известные ученые ведут блоги и пишут статьи на английском языке. На английском языке говорят в Силиконовой долине. И на нем же изъясняются программисты из Индии, которых стало так много, что спрятаться от них у тебя не получится при всем желании:). Короче говоря, изучение языка нужно добавить в свой личный список дел в качестве одного из приоритетных пунктов. Сказать по правде, абсолютное большинство ресурсов, о которых я буду говорить далее, требуют хотя бы минимального знания английского. Причина простая: на русском ничего подобного не делают (уверен, что только пока). Однако для первого проекта из нашего обзора иностранный как раз не нужен - напротив, он направлен на то, чтобы ты быстро прокачал свои знания «ИнЯз’а». И он сделан в России:).

LinguaLeo

Есть простое правило: чтобы лучше и увереннее подтягиваться на турнике, нужно больше и чаще подтягиваться на турнике. Просто интенсивнее заниматься. Так же и с английским: чтобы хорошо понимать на слух английскую речь, не вслушиваясь в каждое слово в попытке разобрать хоть что-то, нужно больше слушать этой самой речи. Можно начать с просмотра какого-нибудь сериала, подключив для уверенности оригинальные субтитры, но… по сравнению с тем, что представляет сервис LinguaLeo, - это прошлый век. В его базе уже собрано огромное количество сериалов, всевозможных фильмов, записей различных семинаров и выступлений (например, тематических минивыступлений с TED.com), лекций из западных университетов (в том числе по иностранному языку) и так далее. Все это разбито на категории по тематике, сложности и рейтингу у пользователей. Но главное заключается в том, как именно сервис позволяет этот контент потреблять. Рядом с видео выводится полная расшифровка речи, поэтому ты всегда можешь прочитать непонятный на слух фрагмент. Встречаешь неизвестное слово? Один клик, - и LinguaLeo тут же показывает перевод и заносит это слово в твой личный словарь, чтобы дальше с помощью самых разных упражнений ты мог запомнить его и начать использовать в нужном контексте. Никаких тебе больше ковыряний с субтитрами и словарей, – ты просто смотришь интересный для себя контент и быстро разбираешься с непонятными местами. Для себя я не вижу лучшего способа, во-первых, пополнять словарный запас, а во-вторых, привыкнуть к английской речи. Чтобы «отрабатывать» те слова, которые просто встречаются в интернете, я давно себе установил специальный аддон для браузера, реализующий интеграцию с сервисом.

Онлайн-универы

Найдется немало людей, которые захотят поспорить о том, необходимо ли ИТ-специалисту высшее образование. Правы те, кто говорит, что фундаментальные знания остро необходимы. Но можно согласиться и с теми, кто утверждает, что всему можно научиться самостоятельно, - было бы желание. Последнее стало еще проще после того как ведущие западные вузы с зашкаливающей стоимостью обучения начали не только выкладывать видео своих лекций (например, в iTunes), но и вообще формировать культуру преподавания университетских предметов онлайн. Хотел бы я сейчас отметить подобные инициативы со стороны российских вузов, но здесь сказать пока нечего.

Учебные курсы от Стэнфорда

Университет Стэнфорда, расположенный в Калифорнии, известен по всему миру. Фактически это кузница кадров для технологических компаний Силиконовой долины, многие из которых расположены в Пало Альто - в том же городе, что и сам университет. Попасть в Стэнфорд - мечта для многих молодых людей, которые жаждут сделать карьеру в области ИТ. Чем больше читаешь про Стэнфорд, тем больше радуешься тому факту, что осенью университет запустил проект бесплатных онлайн-курсов. Изначально всем желающим предлагалось пройти три курса: «Машинное обучение» (ml-class.org), «Искусственный интеллект» (ai-class.com), «Введение в базы данных» (db-class.org). Каждый из курсов состоит из лекций, проверочных работ и финального экзамена. В случае успешного завершения обучения студент получает сертификат в виде PDF-файла, заверенного цифровой подписью преподавателя. Эксперимент оказался успешным, и в начале года Стэнфорд анонсировал сразу дюжину новых курсов, в том числе:

  • Информационная безопасность (security-class.org);
  • Проектирование и анализ алгоритмов (security-class.org);
  • Теория игр (cs101-class.org);
  • Информатика (cs101-class.org);
  • Криптография (cs101-class.org).

Помимо непосредственно ИТ’шных предметов, есть пара курсов по предпринимательству (в области высоких технологий). Я пока успел послушать курс по машинному обучению и получил огромное удовольствие. Курс построен таким образом, чтобы быть понятным практически каждому, хотя, безусловно, знания в области дискретной математики и математического анализа будут здесь очень полезны. Надо сказать, что видео любого из курсов сопровождается субтитрами на случай, если что-то сложно разобрать на слух. Как правило, язык очень простой, поэтому все понятно даже со средним уровнем английского.

MITx от Массачусетского технологического института

Ты наверняка слышал и о MIT - не менее известном западном вузе. Тот тоже пошел по стопам Стэнфорда и в начале года анонсировал разработку MITx - технологической платформы для онлайн-образования. И вот уже в феврале появилась информация о первом курсе, который будет проходить с помощью этой системы – «6.002x: Схемотехника и электроника». Обучение начнется весной и потребует примерно десять часов в неделю. Предмет непростой, поэтому допускаются только студенты, обладающие необходимыми знаниями по электричеству, магнетизму и дифференциальному исчислению. Среди трех преподавателей - профессор Джеральд Сассмен, который создал язык Scheme и является автором одного из самых лучших учебников по программированию - «Structure and Interpretation of Computer Programs». В скором будущем обещается появление и других предметов. Уверен, что подобное по зубам и российским учебным заведениям, которые просто обязаны не отставать.

Попробовать технологию!

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

JavaScript

Впрочем, курсы английского - хоть и нужный, но все-таки шаг в сторону. Главное, о чем я хочу сегодня рассказать - это сервисы, позволяющие изучить вполне конкретный язык программирования. Тут очень заметна закономерность: чем активнее язык развивается и набирает популярность, тем больше появляется инструментов для его изучения. Для примера я взял несколько особенно модных языков программирования: Python, Ruby (плюс Ruby on Rails) и, конечно же, JavaScript (HTML5). С последнего и начнем. Ни одно современное веб-приложение не обходится сегодня без ударной дозы кода на JS, на котором полностью реализовано взаимодействие с пользователем. Особенные гики умудряются имплементировать на JavaScript совершенно невозможные вещи: взять хотя бы проект виртуальной машины, на которой вполне себе успешно запускается Linux (bellard.org/jslinux). Но этот случай мы рассматривать не будем:).

Codecademy

Простой вопрос: какой самый проверенный способ выучить новый язык программирования? Взять умную книгу и начать ее читать. Этот подход никогда не устареет. Так было двадцать лет назад, так есть и сейчас. Однако сложно представить, что к 21 веку не придумали более прогрессивных методов обучения, тем более - обучения программированию. Codecademy - это стартап, позиционирующий себя как школу разработчика. За семьдесят два часа после открытия он собрал более двухсот тысяч (вдумайся в цифру!) начинающих программистов, предложив им пройти интерактивный курс JavaScript.

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

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

Выучить jQuery за тридцать дней

Неотделимой частью JavaScript постепенно стала библиотека jQuery, упрощающая работу с HTML-документом, обработку событий, создание анимации и реализацию AJAX. Фактически jQuery во многом изменил подход к программированию на JavaScript. Разобраться с библиотекой в принципе несложно. Но чтобы сделать это еще более безболезненно, портал Nettuts+, известный своими качественными обучающими статьями, разработал специальный курс. Курс разбит на тридцать уроков-скринкастов по пятнадцать минут каждый, что позволяет день за днем постепенно брать библиотеку на вооружение. Как ни крути, а пятнадцать минут можно найти всегда. Да и формат обучения очень приятный: лично для меня нет ничего более понятного, чем непосредственная демонстрация кодинга с комментариями по ходу дела. Для тех, кто только начинает изучать JS, есть и видеокурс этого же автора (bit.ly/AqK4s0).

Первый полет на jQuery

Если спросить, кто снимает скринкасты эталонного качества, то среди победителей совершенно точно будет онлайн-школа программирования c<>de school. Это очень профессиональный проект, предлагающий как платные, так и бесплатные курсы для специалистов различного уровня. Курс «jQuery Air: First Flight» долгое время был платным, но с недавнего времени открыт всем желающим. Он состоит из пяти уровней, каждый из которых включает в себя обучающий скринкаст и интерактивные упражнения по программированию, реализованные прямо в браузере. За прохождение заданий начисляются очки (например, 350 за решенную задачку). Если где-то возникла трудность, можно попросить подсказку, но в этом случае не избежать штрафных баллов. На первом уровне предлагается пройти азы JavaScript, на втором - селекторы, на третьем - CSS-атрибуты, на четвертом - манипулирование с HTML-элементами и DOM, на пятом - работа с событиями. Чтобы пройти курс, необходимо выполнить пятьдесят пять простых и не очень упражнений.

Ruby и Ruby on Rails

Если ты читал в прошлом номере интервью с Аленой Владимирской, которая по праву считается ведущим хедхантером Рунета, то уже знаешь, насколько востребованными сейчас являются программисты на Ruby on Rails. За грамотными специалистами, готовыми быстро поднимать растущие веб-проекты, гоняются все. И чем больше растет спрос, тем больше становятся зарплаты. Если у тебя есть опыт программирования, и ты хочешь переквалифицироваться на более востребованное направление, то Ruby в связке с Ruby on Rails - совершенно точно очень неплохой вариант. И выучить его сейчас можно довольно быстро. Впрочем, знание языка пригодится, даже если ты не собираешься работать профессиональным разработчиком. Ruby популярен и среди экспертов по информационной безопасности: к примеру, известный фреймворк для хакера Metasploit (и в том числе все его модули) написаны именно на Ruby.

rubymonk

Проект представляет собой интерактивную книгу, состоящую из пятидесяти упражнений, позволяющих быстро пройтись по основам Ruby. Тебе говорят: «Массив из элементов создается так – попробуй». И ты пробуешь. Далее объясняется что-то еще, - ты опять же сразу проверяешь это в действии. Как только знаний становится достаточно, тебе предлагаются более сложные упражнения. Совершенно улетно реализована проверка выполненных заданий (код решения, естественно, надо набирать прямо в браузере, а редактор даже поддерживает подсветку синтаксиса). Для каждого упражнения заданы контрольные точки, по которым проверяется правильность решения. Таким образом, в любой момент можно понять, что именно не нравится интерактивной системе, какой результат должен быть на выходе, и где в твоем решении спряталась ошибка.

try ruby

Если у тебя был мало-мальский опыт программирования, то эта интерактивная обучалка буквально за пятнадцать минут позволит тебе пройтись по базовым понятиям языка Ruby и понять, что к чему. Впрочем, даже если ты вообще никогда не имел дело с программированием, try ruby будет тебе по зубам. Правда, в этом случае обучение, вероятно, займет чуть больше времени. Всего нужно пройти восемь уроков и справиться с более чем пятьюдесятью заданиями. Проект стал еще лучше после того, как его взяла под свое крыло уже упомянутая выше школа c<>de school. Теперь это практически идеальный репетитор.

The Intro to Rails Screencast I Wish I Had

Как уже было отмечено, язык Ruby четко ассоциируется с популярнейшим фреймворком для построения веб-приложений Ruby On Rails. Последний помог взлететь не одному стартапу из Силиконовой долины, в том числе и Twitter’у. Джеффри Вэй - главный редактор сервиса tutsplus.com - записал убойный скринкаст с говорящим названием «Скринкаст для чайников в Rails, с которого я хотел бы начать сам». В 40-минутном ролике в самой доходчивой форме рассказывается, как использовать Rails. После этого слова «Models», «TDD», «ActiveRecord», «RSpec», «Capybara», «Partials» уже не будут пугать. Это не единственный скринкаст для начинающих: немало видеоуроков для программистов самого разного уровня можно найти на другом профильном проекте - railscasts.com.

Rails for Zombies

После того (и только после того!) как у тебя будут необходимые знания Rails и некоторый опыт в создании веб-приложений, обязательно нужно пройти бесплатный курс «Рельсы для зомби» от все той же школы c<>de school. Записанные на неизменно высоком уровне уроки, приправленные здоровой дозой юмора, сопровождаются упражнениями, составленными из ситуаций, с которыми каждый день встречаются программисты на «рельсах». Если этого курса тебе окажется мало, то у авторов есть продолжение «Rails for Zombies 2», но его можно пройти уже только за денежку.

Python

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

Более того, Python часто встраивают во многие серьезные приложения в качестве скриптового языка, чтобы иметь богатые возможности для создания сценариев.

Попробуй Python!

Лучший способ быстрого старта - попробовать онлайн-обучалку Python. По интерактивности сервис сильно проигрывает аналогичным проектам для JS и Ruby, но, тем не менее, позволяет пройти базовый курс обучения прямо в браузере. На компьютер не надо даже устанавливать интерпретатор. Это очень удобно: любой приведенный пример можно тут же попробовать в действии. Однако на этом интерактивность заканчивается: Try Python никак не проверяет твой код, не следит за правильностью действий и не предлагает задачки для проверки знаний. Весь курс состоит из семи частей (пять по Python и две по IronPython). Забавно, что сам сервис написан на Silverlight’е.

Онлайн-репетитор Python

Забавный сервис был разработан в рамках курса по программированию в известной американской кузнице программистов Массачусетского технологического института. Его идея заключается в том, чтобы визуализировать выполнения сценариев, написанных на Python, позволяя пошагово выполнять их (вперед-назад) и на каждом шаге просматривать значения разных структур данных (переменных, объектов в куче, фреймов стэка). Это может быть произвольный код, набранный прямо в браузере, или один из нескольких заранее заготовленных сниппетов, взятых из учебной программы Python в MIT. Забавно, что здесь есть несколько задачек, которые предлагают соискателям на должность программистов. С решениями. Сервис можно было бы назвать онлайн-отладчиком, однако для выполнения сложных сценариев использовать его уже нельзя из-за отсутствия возможности подключения модулей, выполнения I/O-операций и так далее.

Уроки Python от Google

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

Покажи эту статью друзьям.

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

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

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

Специалист по информационной безопасности

Твой пароль от электронной почты состоит из 25 символов математической последовательности? Он умеет хранить секреты? Кажется, твои кумиры - прародитель первого компьютера Тьюринг и инженер кибербезопасности Эллиот Алдерсон из сериала «Mr. Robot» («Мистер Робот»)…

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

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

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

Программист в системе автоматического проектирования

На специалиста с таким длинным названием стоит учиться, если ты с детства любил собирать кубики, металлический конструктор, не боялся масштабных наборов Lego Technic. Учительница по математике говорила, что стереометрия - твой конёк.

Пространственное воображение позволяет тебе видеть в привычных конструкциях возможности к улучшению, 3d-принтер - заветная мечта на день рождения? При поступлении тебе прямая дорога на «Интеграцию и программирование в САПР» (система автоматического проектирования).

Аналитик корпоративных информационных систем

На школьном Дне учителя именно тебя выбрали на роль директора. Ты знаешь способности своих одноклассников и можешь организовать подготовку к любому мероприятию. Порядок и последовательность действий - твой главный девиз в жизни. Именно для таких аналитиков - «Корпоративные информационные системы» .

Специалист по большим и открытым данным

Google disk, Yandex disk, Mail-облако, One drive, Dropbox - везде есть аккаунты и почти нет места. Вот бы придумать бездонное хранилище, как сумочка Гермионы?! Навести в ней порядок и настроить быстрый поиск нужных вещей? А потом математически обосновать новое открытие и получить премию по спасению информационного пространства. Как тебе такой вариант? Всё в твоих руках, было бы желание и место в рядах студентов на специальности «Большие и открытые данные» .

Инженер-киберфизик

Всё вокруг становится smart. Еще режиссёр Роберт Земекис в фильме «Назад в будущее-2» предсказал появление беспилотников, скейтбордов, умных домов. Чтобы не допустить восстания машин, будущему нужны грамотные инженеры-киберфизики, выпускники направления «Управление в технических системах» .

Не буду придираться к трактовке терминов «актив» и «пассив», в конце концов, мы не в бухгалтерии. Черкну лишь несколько строк в подтверждение (а, скорее, и в подкрепление) позиции её автора.

UPD: Как стать успешным айтишником

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

Кредит

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

Есть и ещё немаловажный момент, который каждый уважаемый читатель отнесет к той категории, которая соответствует его личным убеждениям:

Семья

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

Ну и несколько советов лично от меня, но придуманные, скорее всего не мной. Просто подтвержденные годами и моим личным опытом.

Тайм-менеджмент

  1. Определитесь, для чего вам нужна та или иная социальная сеть. Если для времяпровождения - удаляйте аккаунт. Сэкономите от 300 часов в год (почти 2 месяца плодотворной работы при 8-часовом рабочем дне). Ну, или попытайтесь отвести для своего фейсбука два часа в воскресенье вечером. Ничего не потеряете.
  2. Проверяйте электронную почту не чаще, чем раз в час. Экономьте на этом еще 50 часов в год.
  3. Помните, на курение вы тратите 2 часа в день, употребляя по 1 сигарете в час. 700 часов в год. Сам я курить не бросил, но стал это делать реже и только в те моменты, когда это меня не отвлекает от работы: за рулем, например.
  4. Ограничьте телефонные разговоры до минимума. Научитесь формулировать лаконичные фразы для разговора. Освободите еще 150 часов в год.

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

Расходы

Основной совет: Подходя к кассе в гипермаркете обязательно вспомните о том, что в вашей тележке не менее 30% абсолютно ненужного содержимого (если вы без списка), и еще 15% пропадет в холодильнике и будет выброшено. Более половины покупателей покупают ненужный продукт просто потому, что они голодны (вы же тоже после работы заскакиваете в магазин), а заботливые маркетологи распыляют из ароматических установок запахи копченой рыбки, колбаски и прочих вкусняшек. Выкладывайте половину, умножайте на средний чек и количество таких тележек в год.

Резюме

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

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

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

Что нужно знать «чайнику»

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

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

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

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

После развала СССР все отечественные ВУЗы долгое время даже и не пытались перекроить свою систему обучения под потребности современного рынка. Не являлись исключением из этого правила и технические ВУЗы.

Программирования как отдельной отрасли и специализации не существовало как таковой. Его основы преподавались лишь как привязка к другим инженерным дисциплинам. И даже те крохи знаний, которые давались студентам в этой области, не соответствовали современным стандартам и утратили свою актуальность еще 20-30 лет назад.

В странах бывшего СССР основным языком программирования, преподаваемым в технических ВУЗах, был Бейсик.

Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:


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

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

В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.

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

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

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

Чаще всего выбор падает на язык программирования C (си) . Именно с него большинство новичков во всем мире начинают свое обучение. На основе C было создана основная часть программных языков, и во многом они наследуют его структуру и синтаксис.

Изучая C, вы постигаете основы не одного языка программирования, а сразу нескольких.


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

  • Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
  • Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
  • Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
  • Доступ к памяти машины с помощью указателей;
  • Минимальное количество поддерживаемых ключевых слов;
  • Поддержка области действия имен;
  • Поддержка пользовательских типов данных (объединения и структуры ).

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

Программы (компиляторы) для программирования

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

Компилятор – специальная программа, переводящая программный код в форму, понятную для компьютера.

Вот несколько специализированных компиляторов с поддержкой языка C:

  • Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:


  • Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:


  • Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:


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

Да и в интернете можно найти очень много информации. Например, на нашем сайте специализированной литературе по IT тематике посвящен целый .

Тенденции на рынке программирования

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

  • Веб-программирование – здесь понадобятся знания PHP , CSS и HTML ;
  • Разработка приложений под мобильную операционную систему Android – данная платформа построена на основе Java . Поэтому потребуется знание основ этого языка;
  • C# (си sharp) – дальний потомок C . На основе C# построена веб-технология ASP.net от Microsoft .


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

Профессия программиста сегодня является одной из самых востребованных, перспективных и высокооплачиваемых. Оплата труда колеблется от 1000$ до 5000$, в зависимости от компании. Вы мечтаете попробовать себя в ИТ, но не знаете с чего начать? Что же нужно для того, чтобы стать айтишником?

1. Получайте кайф

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

2. Начните с самообучения

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

Ресурсы:

На этом сайте язык программирования изучают 25 миллионов людей. Ресурс постоянно обновляется и подстраивается под вас.

Code.org

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

Udacity

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

Codeavengers

Здесь вы сможете интересно обучаться HTML5, CSS3 и JavaScript.

Coursera

Это платформа созданная профессорами Стэндфордского университета с бесплатными курсами. Вы сможете найти множество курсов по обучению ИТ.

Udemy

На сайте можно пройти такие курсы, как iOS8 and Swift App Programming Crash Course, Kids Coding - Introduction to HTML, CSS and JavaScript и Advanced Java Programming.

Microsoft Virtual Academy

Здесь вас обучат разработке приложений для HTML5, Windows и Windows Phone, Microsoft Office 365, SQL Server, Azure и System Center.

Приложения:

Learn Programming: Coding Tutorial

Для тех, кто мечтает научиться создавать крутые сайты. Вы узнаете больше об Python, Django, HTML и CSS.

L2Code HTML

Приложение пошагово рассказывает о том, как создать веб-страницу с использованием HTML.

Книги:

Бьерн Страуструп – Язык программирования C++

Руководство, написанное создателем языка, которое содержит описание всех средств С++. Книга дает описание языка, его ключевых понятий и основных приемов программирования.

Герберт Шилдт – Искусство программирования на С++

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

Д. Э. Кнут: Искусство Программирования

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

Стив Макконнелл – Совершенный код

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

3. Практикуйтесь не дожидаясь, пока изучите все существующие ресурсы

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

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

Ищите проекты open source. У вас есть возможность найти в проекте ошибки и предложить методы их решения. Найти такие проекты вы сможете на сервисах хостинга кода.

Самый сложный способ – собственные проекты. Хакатоны или работа в коворкинге.

Любой опыт пригодится вам для написания резюме.

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

Александр, расскажите о себе.

Музыкальный этап в моей жизни начался в 8 лет, первые концерты в 10, а в 17 лет мы уже играли квартетом на дипломатических приемах у Президента и в мэрии. Но где-то на втором курсе консерватории я стал замечать, что в классической музыкальной сфере не многим удается соответствовать понятию «средний класс», несмотря на то, что люди более чем профессионалы в своей сфере. Потом началась революция и стало понятно, что искусство в нашей стране силами самих музыкантов не поднять. Максимум - поиграть редким ценителям классики. Я стал искать альтернативные сферы деятельности - сначала мы проводили мастер-классы по музыке и живописи для детей. Дело пошло неплохо, но с ростом курса доллара это стало все больше благотворительностью, но не работой.

Как тебе пришла идея поменять роль деятельности и пойти в ИТ?

У меня были знакомые, которые давно и успешно работали в этой сфере не имея профильного образования. Друг скрипач – разработчик PHP в Австрии, и подруга – главный QA автоматизатор, которая делает отличную карьеру, хотя ее образование с IT никак не связано.

Это интеллектуальная работа, где грамотно вложенные усилия наверняка отобьются как в карьерном росте так и в росте вознаграждения. А также это возможность поработать за границей и при желании остаться там с семьей.

Ты искал варианты того, как можно стать айтишником? Если да, какие варианты были и по какому пути пошел ты?

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

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

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

Расскажи о поиске работы.

Курсы продолжались месяц и практически сразу по окончанию я был в состоянии проходить собеседование на trainee/junior позиции. Я был готов к переезду в любой город в Украине и потому выбор вакансий получился значительно больший, чем у большинства конкурентов.

После 5-го собеседования я получила дв оффера в Запорожье и в Харьков в геймдев компанию. Я выбрал второй вариант, т. к. в компании большой qa-отдел и есть у кого учиться.

Чем ты занимаешься сейчас? Доволен ли ты и не жалеешь ли, что выбрал сферу ИТ?

Совершенно не жалею о смене специальности и работе в своей компании. Часто говорят, что нетехнари идут в айти из-за денег. Отчасти это так. Но об этом можно говорить, когда ты бросаешь работу за 2к $ и идешь валять дурака за 5к $, меняешь Форд на Мерс. Но когда твое любимое дело при всех вложениях сил и интеллекта может принести не более 500$ в месяц, задумываешься о реальной цене своих способностей и усилий. Кроме того, айти – это интересно и если ты соответствуешь - почему нет?

Для действительно ощутимых успехов в этой сфере требуется отдать очень много времени, сил и готовности вкалывать. Сама специальность предъявляет естественные для человека требования - развиваться. Нужно много менять и учиться постоянно, даже когда тебе 30 или 40. И это правильно.

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

4. Действуйте

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

Главное фото взято с сайта