Всем привет! Расскажу о своём опыте становления программистом.
Входные данные
Идея стать программистом родилась у меня год назад. Решение, можно сказать, было спонтанное. На тот мне было 26 лет, работал по специальности инженером-строителем. В работе не было никакой перспективы. Как я ни старался, прогресс по службе отсутствовал. В итоге решил сменить род деятельности. Начитавшись историй про то, как 30-летние становятся программистами, понял что у меня тоже получится. Начальные знания у меня отсутствовали полностью. Даже информатики не было в школе. Поискав курсы, остановился на HTML-академии и Хекслете.
Обучение. Первый этап
Изучив интернет, понял, что минимальные знания для разработчика должны включать вёрстку и JavaScript. Заниматься начал одновременно и на Хекслете, и на Академии. Хватило меня на неделю. Окончательно решив, что инженером работать не буду, написал заявление на увольнение. Теперь у меня появилось время для обучения.
За 4 месяца прошёл два интенсива у Академии по вёрстке и профессию «Фронтенд-программист» на Хекслете. Что мне понравилось в Хекслете, так это то, что здесь очень много практики и сложных задач. На Хекслете обучение проходило в следующем формате: теория, тест и задача. С теорией и тестом все понятно, а вот над задачами нужно было подумать. Иногда уходило по полдня на решение одной задачи, при этом решение буквально в 5 строчек.
У большинства блоков есть дополнительные упражнения, которые ещё сложнее обычных упражнений к теории. Я рекомендую прорешать все упражнения, так как похожие задачи будут встречаться на собеседовании. Занимался я по 10 часов в день 6 дней в неделю.
Проблем в обучении не было, пока не столкнулся с первым проектом. Два дня ушло только на настройку окружения. Всем, кто не программировал ранее, рекомендую — обязательно проходите проекты. Ведь именно этим вам придётся заниматься на работе, только задачи будут гораздо масштабнее.
С моей точки зрения, у Хекслета есть большой плюс: вся теория и упражнения всегда доступны в полном объеме. Каждый может заниматься, сколько может. Минус я нашёл для себя только один: всего материала недостаточно для устройства на работу, но достаточно, чтобы доучиться самостоятельно. Важно понимать, что Хекслет дает крепкую базу, на которой в дальнейшем можно строить свое дальнейшее обучение.
Теперь про HTML Академию. Для фронтенд-разработчика знание вёрстки обязательно. Верстка — это просто, но важно верстать быстро. Именно этому и учит Академия. На интенсиве выдаётся большой макет и срок в 2 месяца. Объем работы большой. У меня ушло примерно месяц на 1 проект (по 40 часов в неделю). Также есть наставник, который проверяет всю вёрстку и выдает замечания. В целом могу рекомендовать, но только тем, кто совсем далек от разработки, каким и был я на тот момент. К марту я думал, что теперь быстро найду работу. Как же я ошибался.
Первый поиск работы
Работу искал на hh.ru. Резюме рассылал в промышленных масштабах, по 300 штук в день. После рассылки резюме появились первые приглашения на тестовое задание. Ответов было примерно штук 15. Выполнить удалось только четыре штуки, остальные я просто не знал. Задачи напоминают мини-проекты на Хекслете. На каждое задание уходило от 4 до 6 часов. Но мне даже не ответили.
Всё, чего удалось добиться — это «вы нам не подходите» без объяснения причин. Я задумался над причинами и начал поиск в интернете. Вывод был прост. Разработчик без опыта никому не нужен. Сейчас, оглядываясь назад, понимаю, что по зарплате на тот момент я мог претендовать максимум на 20000 рублей в месяц. Чтобы на меня обратили внимание, нужно показать реально работающие проекты и приложить их к резюме. Так начался следующий этап.
Обучение. Второй этап
Следующие два месяца я провёл, создавая три небольших проекта, в которых задействованы все полученные ранее знания. Первым был интернет-магазин инструмента на Node.js. Первые несколько дней я понятия не имел, что делать. Стал догадываться, почему меня не взяли на работу. Самостоятельно работать был не в состоянии. После просмотра в интернете нескольких примеров понял, что всё довольно просто. Все знания у меня уже были, просто я не знал, как их применить. В итоге за 2 месяца я написал интернет-магазин на Node.js и MongoDB, а также игру «Угадай мелодию» и аналог Airbnb на React. Теперь, уверенный в своих силах, я снова начал искать работу.
Читайте также
Как я делал третий проект по профессии «Фронтенд JavaScript» и стал PHP программистом: история успеха Сергея Матвеева
Второй поиск работы
У меня было, что показать будущему работодателю. Набив руку, я решил все предложенные тестовые задания. И не получил ни одного предложения. Люди, проводившие собеседование, думали, что у меня есть опыт, но когда после ответа на большинство вопросов по теории и выполнения тестовых заданий они узнавали, что опыта у меня нет, собеседование заканчивалось. Я был в полном отчаянии.
Оглядываясь назад, думаю, что приглашений не было из-за карантина. Неделю я не знал, что делать. Но решение всё таки нашлось. Из 1000 отправленных резюме мне ответили только 15. Из этих 15 отказали все из-за отсутствия опыта, резюме они не читали. Одно из собеседований похоже на анекдот. Сначала были две тестовые задачи. Похоже на дополнительные упражнения на Хекслете, но гораздо хуже.
С трудом решил, отправил, через час собеседование по телефону. Ответил на вопросы по теории, потом нужно решить ещё одну задачу за 15 минут. Немного не успел, но на словах как решать объяснил. Под конец вопрос — какой у меня опыт и на что претендую. Услышав ответ, проверяющий сказал, что они ищут уровня middle и отказал. На тот момент я сделал вывод, что моих проектов было недостаточно, чтобы произвести на них впечатление. Так я начал свой последний учебных проект.
Обучение. Третий этап
Поискав в интернете готовые макеты, я наткнулся на макет сайта знакомств, аналог Tinder. Идея мне понравилась, и я начал трудиться над реализацией. Чего только там не было: и работа с картами, и мессенджер, и SQL-запросы на 15 строк, и много другое. Всё, что нужно для настоящего проекта. На реализацию ушло полтора месяца.
Третий поиск работы
Третий поиск работы был самым коротким. На третий день меня пригласили на собеседование. Требовался разработчик на Vue, который я не знал. Сначала общались по телефону, потом в офисе. Завершающим этапом было небольшое тестовое задание на Vue. Один день ушел на освоение Vue и 2 часа на решение. В понедельник я вышел на работу с такой же зарплатой, какая у меня была до этого.
Выводы
Если хотите стать программистом, вы им станете. Трудно ли это, каждый решает сам. Я считаю, что это было не очень сложно. Чтобы стать инженером, нужно сдать ЕГЭ и 5 лет напряженно учиться в университете. После выхода из университета я понятия не имел, как работать. На обучение программированию у меня ушло 9 месяцев, и я с первого дня знаю, что нужно делать. Разница, на мой взгляд, очевидна.
Советы по поиску работы
Обязательно нужно хорошее резюме, из которого кадровику будет понятно, что вы из себя представляете. Обязательно прикладывайте ваши проекты, чем больше, тем лучше. Именно благодаря своему последнему проекту я нашел работу. Не отчаивайтесь, если нет предложений. Большинство вакансий неактуальны. Работодатель, которому нужны сотрудники, сам вам позвонит на ваш отклик. Перед тем, как начать искать работу, спросите себя, а сможете ли вы в теории написать аналог любого популярного сайта, хотя бы основную функциональность. Если да, то работу рано или поздно вы найдете.
Каждый раз, с трудом преодолевая жизненные преграды, хочется взять и перекроить этот мир под себя. К сожалению, мы не рождены творцами этой вселенной. Тем, кто хочет удовлетворить свои амбиции создателя, остается лишь виртуальный мир.
Хотя для творения здесь понадобится не столько волшебство и знание рун, сколько знание основ программирования. Поэтому для всех начинающих творцов виртуальной реальности мы поведаем о том, как научиться программировать.
- Что нужно знать «чайнику»
- Особенности обучения программированию на постсоветском пространстве
- С какого языка начать изучать программирование
- Программы (компиляторы) для программирования
- Тенденции на рынке программирования
Что нужно знать «чайнику»
Как бы ни хотелось этого признавать, но в реальности программирование является не таким уж волшебным делом. Создание кода порой можно сравнить с хождением босыми ногами по морскому дну, устланному острыми каменными обломками.
Чтобы стать программистом, нужно быть не только умным, но еще терпеливым и настырным. Обучение программированию всегда сопровождается головой болью, красными от недосыпания глазами и отрешенным взглядом. Именно по нему можно легко узнать программиста.
Многие начинающие обучение считают написание кода чуть ли не самой романтической профессией. Особенно увеличилось количество желающих познать программирование после просмотра фильма « Матрица ». Именно главный герой этой картины Нео подтолкнул многих к становлению на путь постижения программных наук:
Особенности обучения программированию на постсоветском пространстве
После развала СССР все отечественные ВУЗы долгое время даже и не пытались перекроить свою систему обучения под потребности современного рынка. Не являлись исключением из этого правила и технические ВУЗы.
Программирования как отдельной отрасли и специализации не существовало как таковой. Его основы преподавались лишь как привязка к другим инженерным дисциплинам. И даже те крохи знаний, которые давались студентам в этой области, не соответствовали современным стандартам и утратили свою актуальность еще 20-30 лет назад.
Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:
А это в профессии программиста является наиболее важным аспектом. Поэтому большинство из сегодняшних гуру российской IT-индустрии начинали свое обучение программированию с нуля самостоятельно.
В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.
С какого языка начать изучать программирование
Постижение программных наук характеризуется не только тяжелым обучением, но и его началом. Новичку порой трудно не только начать самостоятельное обучение, но и определиться с координатами отправной точки процесса. Поэтому мы постараемся помочь вам обойти все эти трудности:
Чаще всего выбор падает на язык программирования C ( си) . Именно с него большинство новичков во всем мире начинают свое обучение. На основе C было создана основная часть программных языков, и во многом они наследуют его структуру и синтаксис.
- Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
- Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
- Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
- Доступ к памяти машины с помощью указателей;
- Минимальное количество поддерживаемых ключевых слов;
- Поддержка области действия имен;
- Поддержка пользовательских типов данных ( объединения и структуры ).
Проще говоря, C – это то, с чего следует начинать новичку перед тем, как научиться программированию на других языках.
Программы (компиляторы) для программирования
Для обучения программированию недостаточно одного лишь желания и наличия компьютера с выходом в интернет. Для написания программ на C вам потребуется специализированное программное обеспечение – компилятор.
Вот несколько специализированных компиляторов с поддержкой языка C:
- Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:
- Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:
- Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:
Да и в интернете можно найти очень много информации.
Тенденции на рынке программирования
После освоения основ программирования у многих сразу появится вопрос, куда двигаться дальше. Уже на этом этапе обучения следует задумываться о выборе основной специализации в области программирования. Вот те, которые больше всего востребованы на современном рынке:
Каждый раз, с трудом преодолевая жизненные преграды, хочется взять и перекроить этот мир под себя. К сожалению, мы не рождены творцами этой вселенной. Тем, кто хочет удовлетворить свои амбиции создателя, остается лишь виртуальный мир.
Хотя для творения здесь понадобится не столько волшебство и знание рун, сколько знание основ программирования. Поэтому для всех начинающих творцов виртуальной реальности мы поведаем о том, как научиться программировать.
- Что нужно знать «чайнику»
- Особенности обучения программированию на постсоветском пространстве
- С какого языка начать изучать программирование
- Программы (компиляторы) для программирования
- Тенденции на рынке программирования
Что нужно знать «чайнику»
Как бы ни хотелось этого признавать, но в реальности программирование является не таким уж волшебным делом. Создание кода порой можно сравнить с хождением босыми ногами по морскому дну, устланному острыми каменными обломками.
Чтобы стать программистом, нужно быть не только умным, но еще терпеливым и настырным. Обучение программированию всегда сопровождается головой болью, красными от недосыпания глазами и отрешенным взглядом. Именно по нему можно легко узнать программиста.
Многие начинающие обучение считают написание кода чуть ли не самой романтической профессией. Особенно увеличилось количество желающих познать программирование после просмотра фильма « Матрица ». Именно главный герой этой картины Нео подтолкнул многих к становлению на путь постижения программных наук:
Особенности обучения программированию на постсоветском пространстве
После развала СССР все отечественные ВУЗы долгое время даже и не пытались перекроить свою систему обучения под потребности современного рынка. Не являлись исключением из этого правила и технические ВУЗы.
Программирования как отдельной отрасли и специализации не существовало как таковой. Его основы преподавались лишь как привязка к другим инженерным дисциплинам. И даже те крохи знаний, которые давались студентам в этой области, не соответствовали современным стандартам и утратили свою актуальность еще 20-30 лет назад.
Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:
А это в профессии программиста является наиболее важным аспектом. Поэтому большинство из сегодняшних гуру российской IT-индустрии начинали свое обучение программированию с нуля самостоятельно.
В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.
С какого языка начать изучать программирование
Постижение программных наук характеризуется не только тяжелым обучением, но и его началом. Новичку порой трудно не только начать самостоятельное обучение, но и определиться с координатами отправной точки процесса. Поэтому мы постараемся помочь вам обойти все эти трудности:
Чаще всего выбор падает на язык программирования C ( си) . Именно с него большинство новичков во всем мире начинают свое обучение. На основе C было создана основная часть программных языков, и во многом они наследуют его структуру и синтаксис.
- Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
- Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
- Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
- Доступ к памяти машины с помощью указателей;
- Минимальное количество поддерживаемых ключевых слов;
- Поддержка области действия имен;
- Поддержка пользовательских типов данных ( объединения и структуры ).
Проще говоря, C – это то, с чего следует начинать новичку перед тем, как научиться программированию на других языках.
Программы (компиляторы) для программирования
Для обучения программированию недостаточно одного лишь желания и наличия компьютера с выходом в интернет. Для написания программ на C вам потребуется специализированное программное обеспечение – компилятор.
Вот несколько специализированных компиляторов с поддержкой языка C:
- Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:
- Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:
- Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:
Да и в интернете можно найти очень много информации.
Тенденции на рынке программирования
После освоения основ программирования у многих сразу появится вопрос, куда двигаться дальше. Уже на этом этапе обучения следует задумываться о выборе основной специализации в области программирования. Вот те, которые больше всего востребованы на современном рынке:
- Мотивируйте себя
- Выберете направление
- А можно еще проще?
- Что учить веб-разработчику на все «двадцатые»?
- «Джанго» — это танцы?
- Скидка 50% на курсы
Мотивируйте себя
Возможно, вы не замечали, но на наших глазах родилась новая экономика, в основе которой — умение программировать системы, разрабатывать сервисы и приложения, обрабатывать большие данные, создавать ботов и других искусственных помощников.
Если не хотите оказаться на обочине жизни, занимаясь ручным трудом и рассчитывая на пенсию от государства, меняться нужно уже сегодня. Неважно, начинаете вы учить программирование после школы или собираетесь кардинально сменить сферу деятельности в зрелом возрасте.
Спросите себя — какую цель вы преследуете. Заработать? Сделать карьеру? Воплотить свою идею в жизнь? Поставьте достижимую цель, именно она будет вашим главным стимулом и маяком на пути.
Выберете направление
Но стоит новичку попытаться выбрать что-то конкретное, очень быстро приходит понимание, что даже в этом случае требуется много дополнительных сопутствующих знаний и навыков, и желание изучать кодинг сразу отпадет. Так, для Data Science нужно знать высшую математику и статистику. Для разработки видеоигр пригодятся прикладная физика, знание графических техник и навыки геймдизайна.
Особо популярна сегодня разработка мобильных приложений — на HeadHunter можно найти больше 4000 вакансий «разработчик под Android», но средняя зарплата примерно на 33 % ниже, чем у специалиста в области Data Science — 80 000 рублей против 120 000.
И хотя порог входа тут пониже, спектр требуемых навыков даже шире. Надо и визуальные элементы отрисовать, и уметь использовать весь функционал смартфона — от камеры до GPS, да еще и отладить платежи через интернет. В любом случае какое-то время все равно нужно потратить на изучение «железа» и того, как с ним работать.
А можно еще проще?
- фронтенд — всё, что браузер выводит на экран: контент, дизайн элементов, набор цветов и анимаций, реакции на действия пользователя. Нередко это направление выбирают те, кому нравится дизайн;
- бэкенд — всё, что работает на стороне сервера: функции сайта, обработка запросов пользователей и работа с базами данных. Направление, как правило, выбирают те, кому дизайн и графика не близки.
Освоив одну часть, со временем можно выучить и вторую, и это тот случай, когда 2+2 = 5. Специалист со знанием обеих областей (фулстек-разработчик) востребован и зарабатывает больше, а главное — может решать задачи повышенной сложности.
Другое явное преимущество веб-разработки — оно востребовано всегда. Скажем, захотел сайт-каталог расшириться и добавить онлайн-торговлю — вот и вакансия для бэкенд-разработчика на фриланс-бирже. Или надумала фирма обновить свой дизайн — начинаются поиски фронтенд-разработчика. Регулярно нужно делать и новые сайты, что будет по силам со знаниями фулстек-разработчика.
Кто-то может возразить, мол, веб-технологии динамично развиваются, ежегодно появляются «технологии завтрашнего дня», быстро замещающие актуальные. И не получится ли так, что учишься год-два, а когда выходишь на рынок, это направление устарело и надо учиться заново?
На самом деле нет, поначалу вам не стоит переживать о технологиях завтрашнего дня. Для примера, в 2012 году рынок отказался от Adobe Flash. И что вы думаете? В 2020 всё ещё находятся сайты или проекты, которые с неё не слезли, всё ещё нужны люди, которые знают Flash и способны помочь перейти на что-то более современное. Однако сейчас начинать учить Flash уже бессмысленно.
Что учить веб-разработчику на все «двадцатые»?
«Джанго» — это танцы?
Если вы начинаете с нуля или не имеете профильного образования, то все изложенное выше покажется абракадаброй. Какое еще такое «джанго», чем язык «высокого» уровня отличается от «низкого», как создавать простенькие программы и как информация циркулирует от фронтенд к бэкенд и обратно.
Если на все эти вопросы у вас нет ответа (даже приблизительного), вам нужен курс, немалая часть которого посвящена азам вычислительной науки, объяснению типов данных, алгоритмов и обучению синтаксису языка программирования. Пройти такой можно, например, в SkillFactory. Первые 4 месяца вебинаров как раз и посвящены основам. Затем вы сможете перейти к написанию простеньких программ.
В дальнейшем за 9 месяцев вы узнаете, как использовать Python/Django, базы данных и СУБД, javascript и верстку, как поднять веб-сервер и развернуть на домене созданный сайт. Это как раз то, что нужно для фронтенд и бэкенд уровня.
Последний этап курса — поиск и устранение ошибок в написанном коде, автоматическое тестирование приложения с помощью фреймворков, проектирование интерфейсов, передача навыков по решению проблем, возникающих перед фулстек-разработчиком в самом начале выполнения заказа.
Помимо лекций компетентных специалистов на курсе «fullstack-разработчик на Python» вы сможете выполнять домашние задания, решать задачи разного уровня сложности, а также вам будут доступны тренажеры для программирования. В конце курса предстоит пройти тестовое собеседование, что поможет при дальнейшем трудоустройстве.
***
Сделайте первый шаг в сторону сытой жизни программиста уже сегодня — возможно, вам понравится копаться в коде. А если нет, никогда не поздно остаться просто геймером. Да, сперва не будет получаться, будет сложно. Но потом перед вами откроются очень широкие перспективы и возможности, а HR-менеджеры крупных компаний начнут охотиться за вашей головой. В хорошем смысле, конечно.
Скидка 50% на курсы
Специально для тех, кто не боится трудностей и хочет иметь нужную профессию, мы дарим промокод GAME. Он дает скидку 50% на все курсы онлайн-школы SkillFactory до 30.09. Внимание: не суммируется со скидкой на сайте SF.
Программисты, их работа и важность в современном мире и обществе.
Чем больше развивается мир, тем более технологичным он становится. Сейчас уже сложно представить себе организацию без программистов, да и компанию друзей без хотя бы одного программиста. Действительно, в мире все больше людей стремятся получить знания о компьютерном мире. Возможностей стать программистом несколько: пойти учиться в ВУЗ, обучиться самостоятельно или взять уроки у хорошо и опытного программиста. Как быть вам, решайте самостоятельно, но поймите, что в цене не абы какие программисты, а лучшие специалисты информационного мира в своем роде. Работу хорошего программиста умные руководители организаций готовы оплачивать хорошо, чтобы не возникало никаких проблем с техническими вопросами компьютерных сетей.
Сейчас о том, как стать программистом с нуля, интересует каждого третьего. Многих интересуют подробности того, чем именно занимается программист на работе, в чем она заключается. Многие знают об этом только по иностранным фильмам, где программист без перерыва смотрит в экран компьютера, стучит пальцами по клавишам и спасает всю организацию от порчи или похищения важной информации, а порой сам занимается кражей такой информации во благо мира.
В реальности же, таких историй у среднестатистического программиста нет, возможно, в особых спецслужбах такое и случается, но об этом никому не известно наверняка. На деле же программист занимается работой с проектами, образами и программированием программ, объектов, заказов, а так же к его компетенции относится создание особого кода программ и пр. Если говорить грубо, то программист должен создавать новое ПО для ПК.
Как стать программистом с нуля.
Итак, чтобы стать программистом с нуля, необходимо начать обучение. Как вы помните, обучаться можно в ВУЗе, на практике и самостоятельно путем проб и ошибок. Понятно, как дело обстоит с практикой: вам необходимо «приклеиться» к опытному программисту и, наблюдая за его работой и используя его знания начать обучение свое собственное. Это будет нелегко, т.к. программиста во время работы отвлекать не следует, потому со своим «гуру» заранее обсудите, как будут проходить практические занятия.
iframe width=»800″ height=»360″ src=»https://www.youtube.com/embed/mMWwHbuBat4?feature=oembed»>
Между оставшимися методами обучения программистов можно долго спорить. Одни утверждают, что самому научиться всему легче, другие же уверяют, что проще всего стать программистом при обучении в ВУЗе. Ясно, что самостоятельное обучение будет основываться на собственном опыте, догадках, специальной литературе и иногда видеокурсов. В ВУЗе будет проще за счет того, что не придется искать нужную информацию, ее вам донесут преподаватели. Но процесс обучения будет затянут надолго, это понятно.
Так как программисты необходимы не только в технической области, но и в научной, то выделяют программистов техников и инженеров. Если вы хотите поступать в ВУЗ, то конечно вам никто не предложит подготовку по «программистики», необходимо поступать по направлениям:
- Математическое обеспечение и администрирование информационных систем,
- Информатика и вычислительная техника,
- Управление информационных технологий,
- Программная инженерия,
- Прикладная математика и информатика.
Скорее всего, направление для движения вы поняли. Но если у вас нет ни времени, ни желания обучаться в ВУЗе 5 лет, то попробуйте выучиться на программиста сами. Потребуется усидчивость, терпение и память, а необходимая компьютерная техника есть сейчас у каждого второго.
Разработчик программного обеспечения «Инфосистемы Джет»
- Начинающим
- Вдохновение
- Колонки
- Разработка ПО
- Технологии
Антон Егоров, разработчик программного обеспечения компании «Инфосистемы Джет», рассказал, как научиться программировать без помощи преподавателей и специальных курсов.
Предыстория
Я не учился на программиста, хотя всегда хотел им стать. Сначала вообще поступил на специальность, связанную с компьютерным «железом», но оказалось, что это не очень интересно, поэтому перевелся на оптоэлектронику.
Учеба была связана с обработкой изображений: это совсем не программирование, но все-таки ближе к тому, чего мне хотелось. Такая околокомпьютерная специальность.
В уме я всегда держал, что буду работать программистом. Так в итоге и получилось.
Объявление о работе я нашел в ВК
Работу Java-программиста я начал активно искать на пятом курсе, но сначала решил пройти стажировку в какой-нибудь компании. Объявление о стажировке я увидел в паблике МАИ в ВК. Про «Инфосистемы Джет» я, честно говоря, слышал впервые. Нашел информацию о компании в интернете, мне все показалось интересным, и я оставил заявку на их сайте.
Как оказалось, претендентов было много – сотни полторы желающих. Отбирали довольно долго. Сначала пригласили на общее собрание, потом мы прошли теоретический тест и выполнили несколько практических заданий.
Затем для тех, кто справился успешно, устроили еще одно собеседование. Только после этого мы все попали в группу обучения, а потом я получил приглашение работать Java-разработчиком. Но это, как говорится, совсем другая история, и рассказать я хочу не об этом.
Я прочитал всего одну книгу по программированию
Можно сказать, что я самоучка.
Я уверен, что программирование – это такая область, в которой можно разобраться самостоятельно без длинных теоретических лекций в университете.
До того как я начал серьезно учиться программировать на Java, я прочитал всего одну книжку о программировании. Это был курс «С++ за 21 день».
Не скажу, что она мне не понравилась или все показалось слишком сложным и ненужным, но я остановился все-таки на Java. Кстати, сейчас на работе мне приходится программировать не только на Java, но и в «плюсах», так что бесполезных знаний не бывает.
Почему я выбрал Java?
- На мой взгляд, Java – едва ли не единственный язык программирования, от начала изучения которого до получения конечного продукта проходит не так много времени. Возможно, я такой человек, которому хочется поскорее «пощупать» результат. Чистая теория меня не очень привлекает.
- Передо мной стояла определенная цель. Я понимал, что работу программиста мне получить будет крайне сложно, необходимо на будущем собеседовании показать хоть что-то и сказать: «Опыта работы нет, диплом тоже – не совсем то, что нужно, но зато есть вот это – посмотрите». Но, к счастью, я получил работу через стажировку.
- Сейчас есть огромное количество разнообразных руководств для разработки приложений для ОС Android. Так что здесь у меня буквально все сходилось: и материалов для обучения достаточно, и существовала возможность сравнительно быстрого получения легко осязаемого результата.
Одним словом, после короткого курса C++ я взялся за какое-то руководство по Java для начинающих. Не помню, как оно называлось, помню только, что я бросил его читать, не добравшись и до середины. Мне хотелось поскорее «прогать».
Потом я видел очень много руководств для начинающих и могу сказать точно: принципиальной разницы между ними нет. Они примерно одинаковые. Чтобы что-то найти, нужно просто забить в Google запрос «book for java starter» – и в путь.
Много ответов на свои вопросы я нашел в этом телеграм-канале.
В сети мало русскоязычных источников по программированию. Смиритесь с этим
Да, и еще одна важная вещь. Нужно смириться с тем, что в русскоязычном сегменте сети довольно мало книг и ресурсов по программированию, если сравнивать с количеством англоязычных источников.
Конечно, в программировании без знания английского на хорошем уровне – просто никуда. Так что тем, кто знаком с английским на уровне Google.Переводчика, я могу посоветовать только одно: сначала прокачайте свой английский. Все остальное – потом.
Конечно, не все так грустно: на русском языке есть «Инструменты для разработчика Google». Но начинать в любом случае нужно не с этого.
Я знаю, что существуют разнообразные онлайн-курсы по программированию – платные и бесплатные, – но так вышло, что у меня получилось обойтись без них. Что еще раз говорит в пользу моего изначального аргумента, что программировать можно научиться без чьей-либо помощи.
С чего я начал «прогать»
Немного разобравшись в Java для Android, я начал понемногу с типовых примеров приложений – от простых к более сложным. К тому времени я уже знал, какое именно приложение хочу в итоге создать.
Мне помог друг, который предложил написать образовательное приложение для школьников. Думал и вынашивал идею долго. Просмотрел список существующих и убедился, что подобных приложений немного, после чего и взялся за разработку.
Наверно, самым сложным для меня было найти хорошую тему для полноценного проекта. Не знаю, недостаток это или нет, но я так устроен, что, если тема хорошая, если идея нравится и я ею загораюсь – у меня нет проблем с мотивацией. Нет проблем с мотивацией – совсем нет непреодолимых сложностей.
Какие ресурсы могут помочь новичку
- Stackoverflow.com.
Там можно с вероятностью до 90% получить исчерпывающий ответ на вопрос, с которым ты сталкиваешься в разработке.
- Репозитарий с исходниками Github.com.
Он очень помог учиться на чужих примерах.
- YouTube
Там есть много скринкастов, которые очень быстро позволяют разобраться в какой-то конкретной технологии.
Свое первое приложение я разработал за месяц
Короче говоря, приложение я сделал буквально за месяц. Самыми полезными источниками знаний стали Developer.android.com и все тот же Stackoverflow.com. Самое интересное, что рутинный процесс выкладывания приложения в Google Play занял целых два месяца. Хотя, может быть, все продолжалось так долго, потому что после разработки мой запал немного подостыл. А немного позже я разработал веб-версию приложения, прочитав книгу Beginning Java EE 7.
Мне не хотелось бы заканчивать свой рассказ какой-то банальной фразой про то, что «все в наших руках» и «нужно только захотеть». Конечно же не все, и я понимаю, что все-таки получил работу программиста благодаря некоторой доле везения: а что было бы, если я не наткнулся на этот пост в ВК?
Вдобавок я не хочу ни в коем случае умалять значение университетского образования и говорить: «Зачем все это нужно? Вот, посмотрите, все получилось и так». Нужно. Университет на самом деле дает очень много и, может, самое главное – воспитывает привычку учиться.
И все же: программировать можно научиться самому. Теперь я это точно знаю.
Материалы по теме:
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Карьера программиста
Работа программиста будет интересна тем, кто серьёзно увлекается компьютерами, с раннего детства интересуется, каким образом разрабатываются и функционируют различные программы.
Для успеха программисту необходимо творческое мышление и нестандартный подход к поиску решений поставленных задач. Более того, важно мыслить системно, учитывать многие факторы, которые способны повлиять на функционирование и производительность приложения или программы.
Функции программиста
— Участие в разработке ПО с использованием современных технологий.
— Детальная проработка логики программирования и внесения изменений в код.
— Проверка соответствия продукта его назначению.
— Регулярная оценка производительности разрабатываемых программ и инструментов для принятия корректирующих действий и увеличения их производительности.
— Разработка, кодирование и отладка приложений.
— Анализ ПО, кода, требований, определение метрики кода ПО и т.п.
— Взаимодействие с бизнес-аналитиками, тестировщиками и другими членами команды.
Необходимые компетенции
Для построения успешной карьеры в сфере IT важно уже на начальном этапе объективно оценить свои способности. Проверьте себя с помощью экспресс-теста, определяющего предрасположенность к программированию.
Модель компетенций младшего программиста
Пороговые компетенции
— Работа в команде
Подробнее о моделях компетенций читайте в статье Александры Атрощенко «Кто такие компетенции, и зачем их оценивать?».
Карьерный рост
Карьера программиста может развиваться как по горизонтальной модели, так и по вертикальной. При обладании умениями и навыками, а также с получением необходимого опыта, специалист претендует на одну из данных позиций.
Должность | Опыт работы |
Средняя з/п |
Задачи |
Junior Developer | до года | от 500 USD | Выполнение простых задач под руководством более опытных коллег, непрерывное самостоятельное обучение. |
Middle Developer | 1-3 года | от 900 USD | Самостоятельное выполнение задач средней сложности, разработка различных технических решений. |
Senior Developer | 3-5 лет | от 1600 USD | Решение сложных задач, умение подготавливать инфраструктуру проекта, обучение Junior- и Middle-разработчиков. |
Lead Developer/Tech Lead | более 5 лет | от 2000 USD | Инспектирование кода, контролирование технической составляющей проекта. |
Software/Solution Architect | от 8 лет | от 4000 USD | Ведение проекта целиком, нахождение оптимальных способов решения задач, которые соответствуют потребностям заказчика и возможностям команды. |
Team Lead | 5-6 лет | от 2500 USD | Постановка задач и руководство командой разработчиков. |
Project Manager | более 6 лет | от 3000 USD | Коммуникация с клиентом и несение ответственности за проект в целом, расстановка приоритетов и контролирование бюджета. |
Трудоустройство
IT-Academy помогает слушателям, нацеленным на результат, закрепиться в индустрии. По статистике, 81% выпускников находят работу в IT после прохождения «Программы трудоустройства», 49% – сразу после окончания курсов.
Наш специалист по развитию карьеры Мария Крагельская:
— консультирует выпускников по вопросам грамотного составления резюме на русском и английском языке;
— проводит регулярный мониторинг рынка труда;
— подбирает наиболее подходящие вакансии;
— оформляет характеристики и рекомендательные письма;
— проводит семинар по эффективному трудоустройству «Пришел – увидел – получил работу».