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

В нашей стране люди воспитаны так, что профессию надо выбрать раз и навсегда, причем уже к 18 годам. А что, если ошибся, либо надоело, либо дошел до стадии, когда карьерный рост по каким-то причинам невозможен? В юности смена рода деятельности воспринимается более-менее нормально, но когда тебе 30, а то и больше, тут уж не до маневров… Или это не так?

Короче, мне за 30, я состоявшийся профессионал, и я решил освоить фронтенд-разработку. Захотелось двух вещей:

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

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

С чего начать?

Главная проблема новичка-кодера. Технологий море, языков океан, терминов – безграничная вселенная. Фреймворки, библиотеки, методологии, метаязыки… Неясно вообще ничего, а знакомые программисты и вовсе советуют не лезть. А если очень хочется?

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

Как учиться?

В общем есть два пути:

Суровый самоучка – кидаетесь в пучину с головой. Все, что надо, есть на YouTube, а все платное можно даром скачать на торрентах. Если что непонятно, спрашиваем в чатиках и соцсеточках.

Подход кажется хорошим, но он требует невыносимого самоконтроля. Вы можете безвылазно смотреть YouTube в течение первой недели, а на второй «что-то пойдет не так», и вы просто бросите. Просто потому, что вдруг отдали приоритет чему-то другому. Сериалу, играм, девушке – неважно. К тому же, вы ничего не платили, а стало быть ничего не теряете – и легко сливаетесь.

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

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

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

Мне хотелось:

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

Где учиться?

Для желающего освоить новую профессию в интернете есть куча платных и бесплатных материалов. В моем случае начинающего веб-разработчика я обнаружил:

  • Неиссякаемый YouTube. Вроде бы все есть, но с чего начать, а тем более, куда продолжить, – непонятно. Знания не систематизированны. Блогеры любят фокусироваться на частностях, упуская общую картину. Однако YouTube хорош, когда нужно углубить какую-то тему.
  • Русскоязычные платные курсы «Нетология» , GeekBrains , HTML Academy и подобные. Дороговато, если не решил крепко-накрепко менять профессию и не уверен, что в будущем отобьешь затраты. К тому же бесплатные вебинары некоторых школ не блистали качеством, а среди преподавателей по другим специальностям я обнаружил коллег, чей профессионализм оставляет желать лучшего. Хм.
  • По ценам. Первый уровень месячного интенсива HTML + CSS в HTML Academy стоит 24 500 рублей. Профессия frontend-разработчик в «Нетологии» без скидки 54 900 рублей, правда, за 8-месячные курсы плюс обещают стажировку и трудоустройство. В GeekBrains берутся учить за 7855 руб/мес на протяжение семи месяцев, в комплекте стажировка на реальном проекте GeekBrains или Mail.Ru, а то и у партнеров вплоть до Сбербанка.

  • Курсы на Coursera , Udemy и похожих ресурсах. Посидев немного на этих площадках, понял, что там слишком много всего – с чего начать и куда двигаться дальше как-то не совсем понятно. По сути та же ситуация, что и с YouTube.
  • Туториалы на W3Schools , freeCodeCamp – нет видео, только тексты, а потому трудно воспринимаются.

И это лишь немногое из того, где можно поучиться.

Меня спасла реклама в Facebook. Предложили англоязычную школу Treehouse , и я повелся. Кликнул на бесплатный курс Introduction to HTML and CSS, прошел его.

Обучение было как раз таким, какое я искал: на видео профессиональный наставник с чувством, с толком, с расстановкой объяснял азы фронтенда. Иногда на экране появлялась доходчивая инфографика. В ходе разбора темы нужно было выполнять задания, а то и пройти целый челлендж, либо ответить на вопросы.В конце – контрольная работа. Есть «песочница», где писать код и ссылки на допматериалы – документации на Mozilla Developer Network и др.

Мне понравилось. Вот просто – понравилось. Обучение стоило всего 25 долларов в месяц, за которые я получал неограниченный доступ ко всем курсам школы. Я и вписался.

И что было дальше?

По мере прохождения курсов я работал над учебными проектами. Это были простенькие одностраничные сайтики. Как только происходил затык, и мне хотелось углубиться в тему, я направлялся на YouTube и в Telegram-чаты. Почувствовав силы, присоединился к тематическим сообществам на Facebook и время от времени отвечал на вопросы новичков.

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

Мне помогало абстрагироваться от суровой реальности среднестатистического российского кодера. Вдохновение и поддержку я находил в зарубежных фрилансерских тусовках Digital Nomads. Как правило, это заряженные ребята, которые точно знают, чего хотят от жизни, и многие из них – программисты самоучки. А многие из самоучек – написали книги о своем пути к новой профессии.

Почитывал книги «How I Learned to Code: Lessons From Teaching Myself Web Development and Becoming a Paid Programmer in Only 3 Months» , «No Degree Web Developer: How I broke into the tech industry with 3 months of self-taught programming» , «The Self-Taught Programmer: The Definitive Guide to Programming Professionally» и прочие книги о success-story. Все это продается на Amazon.

Первые деньги

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

В случае с фронтендом это проще простого:

  1. Если вы хорошо учитесь, то у вас по ходу дела будут появляться готовые учебные проекты.
  2. В интернете есть базы готовых макетов. Загружаете – и верстаете. Чтобы не ковыряться слишком долго, поставьте себе цель: сверстать 5 макетов в неделю. Ну или хотя бы парочку.
  3. Наверняка у вас есть друзья, которым нужна сайт. Возьмите и сделайте им подарок.
  4. Если таковых друзей нет, то предложите свои услуги в каком-нибудь профессиональном сообществе. Бесплатно.

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

  • Программирование ,
  • Разработка веб-сайтов
  • Всем привет! Меня зовут Андрей, я работаю в отделе разработки продуктов Veeam Software.

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

    Сегодня я хочу рассказать свою историю.

    Итак, начну с момента, когда мне исполнился 21 год, я уволился из рядов доблестной российской армии и оказался на серых и холодных улицах Санкт-Петербурга. Осень, отсутствие жилья и денег активировали все клетки головного мозга для ответа на вопрос: «Что делать?».

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

    Охранник книжного склада (я же в культурной столице) - это та самая профессия, которая могла обеспечить все эти пункты. Через череду невероятных событий, совпадений и неудач я устраиваюсь на работу в офис одной очень известной в городе розничной сети по продаже книг, где находился и склад хранения.

    Я стал там жить и работать: душ, компьютер секретаря, целый склад книг и три стула для сна. Так пролетели 5-6 месяцев. Я уже хорошо освоил на тот момент Visual Basic for Application и T-SQL и начал писать различные макросы автоматизации работы с Excel для секретаря. Я познакомился с ребятами из IT отдела, они мне выделили изолированную «песочницу» на виртуальной машине, куда я поставил Visual Studio и начал изучать уже более взрослые языки: C++ и C#. Не забывал я и о художественной литературе: за это время я успел существенно расширить свой кругозор в этой области. Благодаря этому, девушки из отдела персонала предложили мне устроиться продавцом-консультантом. Я согласился и стал работать днем продавцом на пл. Восстания, а ночью - охранником офиса. В таком режиме я проработал еще полгода, у меня появилась возможность снять жилье. В то же время, управляющая магазином предложила мне стать старшим продавцом. Я уволился из охранников и стал работать ночью в магазине. Должность ночного старшего продавца предполагает очень много рутинной работы по заполнению всяких файлов, отчетов, составления графиков рабочего времени.

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


    С коллегой на работе в том самом книжном магазине (я слева).

    В магазине были некоторые отделы, где я откровенно не знал ассортимент и не мог найти нужную покупателю книгу. Поисковый терминал честно говорил, что книга есть в магазине, но на каком стеллаже и полке - было неизвестно. Я взялся за решение этой проблемы. В моем распоряжении были несколько древних, уже списанных ТСД (терминал сбора данных) и компьютер, который я стал использовать как сервер. Так я начал писать свое первое клиент-серверное приложение. Уже через месяц я смог продемонстрировать работу программы на одном из отделов магазина, чем вызвал интерес у руководства. Мне предложили продолжить развивать свое приложение уже по-взрослому: составить план проекта с целями, сроками и бюджетом. Так я стал руководителем проекта «Адресное хранение». За все это время я набил миллион шишек и изобрел множество велосипедов, но это был бесценный опыт и я смог запустить свой проект в крупных магазинах сети.

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

    Начал искать новую работу. Был на многих собеседованиях, где-то не нравился я, где-то не нравилось мне, но однажды на HH.ru наткнулся на вакансию в компании Veeam: требованиям я соответствовал. Я начал читать о компании, чем занимается и т.п. И понял, что совершенно не понимаю, о чем идет речь. Фраза «резервное копирование виртуальных машин и мониторинг виртуальных сред» повергла меня в шок. Но я отлично помнил выражение: «Программист - это человек, который решает совершенно непонятным вам способом проблемы, о существовании которых вы даже не подозревали». Значит, пора стать настоящим программистом. Я решил, во что бы то ни стало, работать в Veeam. В последствии выяснилось, что компания Veeam предоставляет решения, без которых просто не мыслима работа крупных компаний, гос. учреждений, банков и т.п.

    Меня пригласили на интервью. От огромного желания получить работу, я заикался и делал глупые ошибки, но в меня поверили и взяли в команду UI. Видимо, меня спасли те самые «горящие глаза», о которых было написано в требованиях к вакансии.

    Первые две недели работы я сидел с широко открытыми глазами: такого огромного и непонятного количества кода я не видел никогда. Своих коллег я воспринимал магами: они говорили и делали непонятные слова и вещи.


    Это я в процессе работы.

    «Сейчас я тебе все объясню», - сказал мне мой Team Lead, его рассказ был очень интересным и совершенно непонятным. Постепенно, день за днем, слова моих коллег стали приобретать смысл, я уже заканчивал свой первый «визард». На первых порах весь свой код я писал, используя широко известную практику «копипаста», Ctrl+C - Ctrl+V – 1я стадия программиста . Затем - «прозрение»: начинаешь использовать везде, где нужно, а чаще, где совершенно ненужно - «Software design patterns» - это очень опасная 2я стадия программиста: наступает, так называемый «паттерн головного мозга». Если остаться на второй стадии, то твой код будет понятен только тебе и только на момент написания, а коллегами ты будешь проклят. Как раз из второй стадии выдернула меня моя команда, вот тут я понял по-настоящему, что значит командная разработка. «Так писать не нужно» - это не аргумент, поэтому через шутки и примеры мне буквально на пальцах объяснили, где правильно, а где нет использовать сложные конструкции и шаблоны. Итак, через «грабли», «велосипеды» и помощь коллег наступает 3-я стадия: «код нужно писать так, чтобы он был понятен более одного дня не только автору, но и людям, которые работают с тобой».

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

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

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

    В ноябре прошлого года мы выпускали очередную версию программы. Для меня это стало важным моментом, во многом определившим дальнейшую мою судьбу. Все начиналось так:
    - Андрюх, прикрути в трей иконку для Endpoint (наш новый продукт для ноутбуков и настольных ПК).
    - А, ОК, сегодня сделаю.
    Закончилось полноценным Modern UI приложением с анимацией, графиком, автоматическим обновлением, уведомлениями и многим другим, через несколько месяцев.

    Пришлось, конечно, попотеть, но все получилось. Меня отметили, и вот, я уже Senior Developer. И теперь уже ко мне на собеседования приходят разработчики, и теперь я сам ищу среди них те самые «горящие глаза», которые несколько лет назад увидели во мне самом.

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

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

    Только зарегистрированные пользователи могут участвовать в опросе.

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

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

    Разумеется, речь в статье пойдёт исключительно о моём личном опыте, который позволял мне проходить собеседования даже в такие топовые компании, как Luxoft.

    Как я стал программистом

    С компьютером я впервые познакомился в 6 лет. В 13 лет у меня уже был свой персональный веб-сайт. В школе учился плохо, в универе тоже. На втором курсе мой друг нашёл работу Java-программистом и настоятельно рекомендовал мне сделать то же самое. Идея заинтриговала. Нужен был план.

    Первый шаг - резюме

    Первая и основная проблема, с которой сталкиваются новички, - резюме. Без адекватного, вас не будут приглашать на собеседования. Но как быть тем, у кого совсем нет опыта работы? Для того чтобы «не с пустыми руками» идти к HR, мы с моим другом вписали мне в резюме целый год опыта работы над его проектом, над которым мы якобы вместе трудились.

    Зарплатная политика

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

    Позор и стыд

    Первые собеседования были провальными. Надо мной буквально смеялись. На первом же техническом собеседовании, где мне дали пару задачек на бумаге, меня раскусили в два счёта. Кто-то даже по-отечески посоветовал книгу Thinking in Java.

    Первая работа

    В конце концов меня пригласили на собеседование в филиал одной датской компании, где я ответил на фундаментальные вопросы и приятно удивил всех своим английским. Меня взяли на должность Junior Java developer с одним условием - первые три месяца я буду проходить курс SCJP (Sun Certified Java Programmer), который восполнил бы мои пробелы и выковал бы из меня более подготовленного специалиста. Что может быть лучше, чем оплачиваемая стажировка без нужды работать (выдавать свою некомпетентность)? В этой компании я проработал полгода, чтобы через несколько месяцев пойти на повышение в компанию покрупнее.

    На основе своего горького, но всё же бесценного опыта я приведу список рекомендаций, которые помогут товарищам-авантюристам относительно быстро найти работу программистом.

    1. Резюме. Оно должно быть правильно отформатированным и написанным исключительно на английском. Если не хватает опыта, то его можно (и нужно) придумать, но следует подготовиться отвечать за каждое написанное в резюме слово. Например, если у вас там написано JMS (Java Message Service), то вам как минимум следует пройти хоть одну обучалку и поиграться с JMS, поделать какие-нибудь примеры, пускай это и будет банальное «Hello, world!». Теперь вам будет удобнее пускать пыль в глаза, вы ведь и правда «работали с JMS».
    2. Выучите азбуку программирования. Если вы ещё можете позволить себе «плавать» на глубоких уровнях каких-нибудь комплексных технологий вроде Struts и Spring, то неправильные ответы на элементарные вопросы вам никогда не простят. Если вас ночью разбудить, то вы должны уметь рассказать про ООП, наследование, инкапсуляцию, полиморфизм и другие базовые концепции, а также суметь объяснить это всё на примерах.
    3. Практика. Научиться можно, только лишь программируя. Это больно и неприятно (если вы не программист), но другого пути нет. Единственный способ перестать бояться задачек на собеседованиях - порешать их дома самостоятельно.
    4. Читайте книги и проходите туториалы по Java только на английском . Абсолютно все термины программирования проще понимать на языке оригинала, то есть на английском. Читать техническую литературу по Java на русском - себя не уважать. Почему? Потому что, чтобы понимать что-нибудь в духе «…модуль таблицы во многих смыслах представляет собой промежуточный вариант, компромиссный по отношению к сценарию транзакции и модели предметной области» , нужно быть поистине гением, которым вы вряд ли являетесь.
    5. Выучите, наконец, английский! В первую очередь это касается разговорного английского. Сложно сосчитать то огромное количество толковых программистов, которых на моей памяти забраковали по одной единственной причине - неудовлетворительный уровень разговорного английского. Нет, если вы, конечно, собираетесь работать программистом где-нибудь в «Киевстаре» или в другой отечественной компании, то ваш уровень языка не будет играть важной роли. Но если вы хотите попасть на работу в международную компанию, то сам бог велел . Уровень вашего английского будет конвертироваться в дополнительные сотни долларов прибавки к вашей зарплате.
    6. Знайте рынок. Походите по вакансиям, почитайте требования, поспрашивайте друзей-программистов, сколько они получают. Используйте сервисы , которые позволят составить вам более полную картину о рынке IT. Вы были бы удивлены, узнав о том, насколько велико количество талантливых программистов, которые получают в два раза меньше, чем могли бы, только лишь по причине своей лени и нежелания держать нос по ветру.
    7. Торгуйтесь. Нет ничего предосудительного в том, чтобы торговаться за . Вашим аргументом в споре может быть как хороший английский, так и предложение о работе в другой компании. Последний аргумент особенно хорошо работает: «Да, но мне в Luxoft предлагают на 300 долларов больше, почему я должен соглашаться на ваши условия? Может, мы могли бы найти компромиссный вариант?». В своё время мне пару раз удалось выторговать дополнительную сотню долларов к своей зарплате, и через год эта сотня долларов дала мне дополнительные 1 800 долларов дохода на ровном месте. Вы должны понимать, что даже для небольших зарубежных IT-компаний лишняя сотня баксов как капля в море.
    8. Найдите себе ментора. Хорошо, если у вас будет более опытный товарищ, который сможет помочь советом и ответить даже на самые глупые вопросы. Благодаря его опыту и моральной поддержке вы будете продвигаться в программировании быстрее, чем в одиночку. Если нет ментора, то неплохо бы сходить на какие-нибудь курсы по программированию, которые не только дадут вам более полную картинку того, чем занимается программист, но и позволят познакомиться с более опытными людьми. Кто знает, может быть, кто-нибудь из них захочет стать вашим ментором.
    9. Начните свой проект. Даже если он будет образцом самых худших практик кодинга и вы его никогда не закончите, по крайней мере у вас будет то дело, ради которого вам захочется разбираться в программировании и изучать новые технологии. Кроме того, у вас появится дополнительная тема для задушевных бесед на .
    10. Ищите работу летом. Во-первых, когда все в отпусках, в компаниях более остро ощущается нехватка кадров и повышается вероятность того, что вас позовут на собеседование. Во-вторых, поскольку ваши конкуренты-соискатели тоже на отдыхе, у вас опять-таки повышаются шансы быть замеченным HR.
    11. Никогда не сдавайтесь. Даже если вам кажется, что вы заваливаете собеседование, важно проявить стойкость и продолжить попытки решить задачу, какой бы сложной она ни казалась. Кто знает, может быть так, что вас именно в этот момент проверяют на усердие в работе!
    12. Избегайте заданий на компьютере. Нет способа быстрее раскусить непрофессионала, чем сразу же бросить его в пекло программирования. Ваша задача - постараться перевести все беседы на высокий уровень, где обсуждаются общие подходы и концепции, но никак не конкретная реализация в решении той или иной задачи. Если вам дали бумагу и ручку и попросили записать решение, то попросите возможность нарисовать его схематически. Таким образом, удалившись от синтаксиса конкретного языка, вы не только убережёте себя от каких-нибудь режущих глаз ошибок, но и покажете, что способны мыслить абстрактно, не вдаваясь так уж сильно в детали.
    13. Начинайте говорить первым. Избегайте ситуаций, когда в воздухе виснет , во время которой в мозгу у интервьюера может созреть очередной коварный вопрос. Как только происходит какая-либо заминка, следует начать рассказывать что-нибудь из того, что вы хорошо знаете. Постарайтесь навязать интервьюеру свою игру.
    14. Старайтесь говорить правду. Если вы никогда не писали PL/SQL процедуры, то лучше об этом сказать прямо. Возможно, в этом для вас будет минус, однако вы убережёте себя от нужды выкручиваться, отвечая на вопрос, в котором ничего не смыслите. Опытный интервьюер за версту почувствует ваши пробелы в знаниях.
    15. Бойтесь маленьких компаний. В небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее вас раскусят. Ваша цель - большая и неповоротливая корпорация, где вы сможете выиграть для себя немного времени.
    16. Соблюдайте дресс-код. Если вы придёте на собеседование на должность программиста в шикарном костюме, то это вызовет больше подозрения, чем если вы явитесь в шортах или потёртом свитере. Не лишним будет также нацепить очки, мол, «эдакий я книжный червь».

    Конечно, кто-то знающий может отметить, что приведённый выше рецепт - это скорее способ стать кодером, чем программистом, и он где-то будет прав. Однако дело всё в том, что вы никогда не найдёте вакансию с заголовком «Требуется плохой кодер». Всем нужны программисты. Желательно senior. У которых более пяти лет опыта работы на корпоративных проектах и которые одинаково хорошо владеют сразу несколькими языками программирования, при этом досконально разбираются в СУБД, умеют писать bash-скрипты, хранимые процедуры, знают в совершенстве Linux, TCP/IP, обладают лидерскими качествами, стрессоустойчивостью, коммуникабельностью и ещё массой навыков, «без которых никак».

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

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

    Этими вопросами задаётся, наверное, каждый, кто думает о карьере программиста. Основываясь на собственном опыте, я сделал всё возможное, чтобы ответить на большую часть этих вопросов, написав . Но моё мнение касательно самообразования и способов обучения – это лишь мнение одного человека (хотя я, безусловно, не сомневаюсь в его правильности:)).

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

    Программисты

    Максим Кремнев, Software Developer,

    Сколько лет в веб-деве?

    Возможность зарабатывать деньги, делая то что тебе нравится

    Самообразование

    18-19-20 лет. Работал в это время системным администратором, паралелльно увлекался всякими интересными вещами вроде gentoo, bash, python, django (первое что вспомнил). Как-то на одном локальном джоб борде наткнулся на вакансию руби программиста от , решил, стоит попробовать и может им питонисты тоже нужны. Но оказалось не нужны, а вот рубисты, даже джуниоры (я тогда этого слова не знал), да, нужны. Ну а что... предложили деньги, причем больше чем я получал системным администратором и решил совмещать офлайн и онлайн работу.

    С How To или Get started

    golang, python, chef, различные db

    Павел Хрулёв, Ruby on Rails разработчик, фрилансер на odesk, elance.

    Сколько лет в веб-деве?
    Почему выбрал программирование и веб-разработку?

    Сложный вопрос. Программирование – потому что есть к этому страсть, это интересно для меня. Веб-разработку – просто как-то так сложилось. Я начал свою карьеру, когда веб-разработка начала становиться популярной, появился большой спрос на веб-разработчиков. Спрос родил предложение в виде меня:)

    Какими путями учился этому мастерству?

    Самообразование

    Расскажи подробнее о начале своего пути: как, когда, что?

    Когда начал увлекаться программированием - написал небольшую игру. Возникла необходимость сделать для неё сайт. Так я сделал первый сайт на html. Потом меня попросили сделать сайт за деньги другие люди, а впоследствии я устроился на работу веб-разработчиком. Было это где-то в конце 2007, начале 2008.

    Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

    Первые деньги - месяца через 4 после того, как сделал первый сайт на html для своих нужд. Заказ получил просто – о моих талантах рассказали, и заказчик сам меня нашёл.

    С чего стоит начинать новичку?

    Со страсти и жажды новых знаний и умений. Изучать что-то, разрабатывать что-то для себя, для удовольствия, используя полученные знания.

    Чего тебе не хватало в начале твоего пути?

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

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

    • Для изучения и улучшения английского - книги "English for Russians" и сайт
    • О новых технологиях, тенденциях и т.д можно узнать с
    • Решения проблем -
    • Практические навыки кодинга по современным технологиям и в веселом формате можно получить на
    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Сейчас изучаю Cordova и Rhodes framework, т.е. мобильную разработку, совмещенную с веб-технологиями.

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

    О каких-то подходах, практиках разработки узнаю из блогов разработчиков, на которых я подписывался. Как правило, это какие-то не последние люди в популярных open-source проектах.

    И постоянно работаю над улучшением грамматики английского, увеличением словарного запаса, избавлением от акцента. Помогает в этом, как я уже писал, книги "English for Russians", сайт и практика общения с заказчиками.

    Варвара, Ruby и node.js разработчик,

    Сколько лет в веб-деве?

    С вебом как таковым не очень близко знакома, вообще – лет 6.

    Почему выбрала программирование и веб-разработку?

    Училась в профильном ВУЗе, получалось и было интересно.

    Какими путями училась этому мастерству?

    Университет, самообразование

    Расскажи подробнее о начале своего пути: как, когда, что?

    Сразу после института попала в контору, которая выиграла тендер на проект по информатизации Санкт-Петербурга – кабинки госуслуг. Проработала там года полтора, на flex интерфейсы к этим кабинкам писала, поиск по БД адресов и все такое.

    Спустя какое время после начала изучения получила первые деньги за веб-разработку? Как получила первый заказ?

    Я не фрилансила никогда, все время в офисе.

    С чего стоит начинать новичку?

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

    Чего тебе не хватало в начале твоего пути?

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

    Надо что-то узнать – гуглю. В первую очередь, конечно, доки читать.

    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Даниил, программист,

    Сколько лет в веб-деве?
    Почему выбрал программирование и веб-разработку?

    Программирование - так уж вышло, с 7 лет за компом, начиная еще со спектрума. Круто быть волшебником и архитектором одновременно:)

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

    Какими путями учился этому мастерству?

    Университет, самообразование

    Расскажи подробнее о начале своего пути: как, когда, что?

    7 лет ZX Spectrum на день рождения, BASIC. Подростком - FIDONET, Си, немного паскаля. Юность – Linux, Python. Молодость – веб-девелопмент, Python, JS, Pylons, Zope, чуть-чуть Django. Ближайшие годы – Python, JavaScript, AS3, C#, Haxe, node.js, Flash, Unity3D.

    Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

    Около 20 лет просто выложил резюме и начал работать, в офисе, веб-разработчиком на Python.

    С чего стоит начинать новичку?

    С постигания прицнипа – "пиши как можно меньше кода, но не меньше чем необходимо”

    Чего тебе не хватало в начале твоего пути?

    Общения с гиками.

    Даже не знаю. В своё время прочитал довольно много интересных книг так или иначе связанных с программированием, но советовать в общем случае не возьмусь.

    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Компиляторы, OCaml.

    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Из интересных моментов – практически не читаю цельных книжек по технологиям. Ибо:

    1. устаревшие знания
    2. однобокий взгляд
    3. сомнительная компетенция автора
    4. много букв

    Вместо этого, когда сталкиваюсь с какой-то технологией, первым делом ищу офсайт, какой-нибудь getting started guide, доки по апи, примеры. Если идет туго, то в гугл по конкретным вопросам (чаще всего попадаю на stackoverflow), если совсем туго – то в тематическое сообщество, чтобы задать вопрос (это крайняя мера, т.к. очень напрягает дожидаться пока тебе ответят).

    Конкретно сейчас эксперементирую с common node (обертка вокруг node.js, которая реализует соглашения CommonJS и работает через fibers) и mongodb. Ну и по работе приходится изучать рельсы.

    Роман Колеснев, Fullstack Rails developer;

    Сколько лет в веб-деве?
    Почему выбрал программирование и веб-разработку?

    Написал программу, отдебажил, тесты наваял, все прошло и потом встаешь во весь рост и тычешь в нее пальцем со словами "теперь я твой бог!”.

    Какими путями учился этому мастерству?

    Самообразование

    Расскажи подробнее о начале своего пути: как, когда, что?

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

    Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

    Освоение веба было прерывистым и непостоянным, но после того, как сконцентрировался на rails прошло полгода до получения зарплаты в 30к со свободным графиком и совмещением с учебой на 3-м курсе МФТИ. До концентрации на rails был довольно большой опыт в программировании, базовое понимание JS, CSS, HTML и немного PHP (на PHP в сумме писал 40-50 человекочасов где-то, не больше)

    С чего стоит начинать новичку?
    Чего тебе не хватало в начале твоего пути?
    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Scala, Play framework, Unity 3D, в скором будущем Swift

    Сергей Резванов, ruby-разработчик,

    Сколько лет в веб-деве?
    Почему выбрал программирование и веб-разработку?

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

    Какими путями учился этому мастерству?

    Самообразование

    Расскажи подробнее о начале своего пути: как, когда, что?

    Путь программиста начался у меня, когда я устроился oracle-разработчиком в компанию CompassPlus в моем городе (с вебом эта работа не была связана), где оставил 5 лет моей жизни и профессиональной деятельности.

    В последний год работы я заинтересовался веб-разработкой и сопуствующими технологиями. Все это сыграло злую шутку – уже невыносимо было работать в ComplassPlus, где технологический стэк был родом из 90-ых. Тогда я решил найти параллельно удаленную команду, с которой смогу развивать свои скиллы как веб-разработчик. Так попал в Secoint, тверская компания, разрабатывающая интернет-магазины на Spee. Какое-то время я работал на двух работах – днем в CompassPlus, сидя в офисе, а вечером удаленно в Secoint.

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

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

    Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

    После пары месяцев изучения. Обратился в компанию веб-разрботчиков на ruby и предложил свои услуги удаленно. C той стороны пришел ответ "Да".

    С чего стоит начинать новичку?

    Хорошенько подумать, нужно ли тебе это все. Если да, то писать код, читать чужой и снова писать код.

    Чего тебе не хватало в начале твоего пути?

    Общения с такими же как я... К сожалению, я до сих пор не знаю ниодного ruby/rails разработчика из моего города. Все профессионалы, которых я знаю, виртуальные, я не встречался с ними лично.

    Мой любимый книжный магазин – PragProg. Я частенько покупаю там книги связанные с веб-разработкой (чаще электронные версии). Чего-то конкретного нет, все интересно.

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

    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Последние месяцы я работаю над очень крупным проектом мобильной аналитики - . И могу сказать только одно: данные правят миром, а за теми, кто умеет эти данные собирать и анализировать – будущее. Поэтому data science это наше все…

    Константин, тех. лид в одном из стартапов Санкт-Петербурга

    Сколько лет в веб-деве?
    Почему выбрал программирование и веб-разработку?

    Всегда увлекали компьютеры и интернет.

    Какими путями учился этому мастерству?

    Университет, самообразование, работа с ментором

    Расскажи подробнее о начале своего пути: как, когда, что?

    Начал с самообучения и программирования на Delphi, Pascal, C++. Потом увлекся Unix системами и программированием на Perl. Из него постепенно перешел в вэб-разработку и остановился на Ruby (ну и JavaScript, разумеется). Пробовал Python (Django), но душа к нему не легла.

    Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

    Первый полноценный заказ получил на фрилансе. Делал небольший сайтик на Perl. Сложно сказать, сколько времени я на том момент я потратил на обучение. Пожалуй, это было самое начало "пути”.

    С чего стоит начинать новичку?

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

    Чего тебе не хватало в начале твоего пути?

    Грамотного наставника, который бы рассказывал мне как и чего надо делать. Ну и как не надо делать тоже:)

    Чем больше читаешь – тем лучше. Мне лично очень понравилась "Design Patterns in Ruby" (для рубистов) и "Искусство алгоритмизации" (простым языком показаны несложные, но популярные алгоритмы).

    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Везде по чуть-чуть. Планирую серьезней заняться Clojure и побаловаться со Swift:)

    Корнеев Евгений, тимлид, SmartSpace

    Сколько лет в веб-деве?
    Почему выбрал программирование и веб-разработку?

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

    Какими путями учился этому мастерству?

    Самообразование.

    Расскажи подробнее о начале своего пути: как, когда, что?

    Я увлекся программированием еще лет в 12, причем тогда у меня даже компьютера не было. Лет в 14 я уже вовсю кодил простые программы под винду на C++ и Delphi, лет в 16 – компьютерные игры:)

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

    Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

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

    С чего стоит начинать новичку?

    Во-первых, с изучения английского:) Во-вторых, с каких-то базовых вещей – HTML, CSS. Можно попробовать зайти с другой стороны и сначала просто научиться программировать – выучить паскаль, бэйсик или что-нибудь еще. Хорошего программиста отличает умение мыслить алгоритмами. Это путь долгий, но качественный.

    Чего тебе не хватало в начале твоего пути?

    Наверное, наставника.

    Cамое крутое, что я видел про веб-разработку: . Из общеразвивающих – "Совершенный код” Макконнелла.

    Как сейчас проходит твоё самообразование, какие новые направления изучаешь?

    Сейчас пробую разное: от разработки под ios до игровых движков. Если про веб: постоянно смотрю и, по мере надобности, изучаю новые веяния и технологии, но ничего конкретного.

    В целом стараюсь не зацикливаться на вебе, но и щупать новые сферы.

    Антон Черепанов, web-разработчик в , ментор сайт

    Сколько лет в веб-деве?
    Почему выбрал программирование и веб-разработку?

    Исторически сложилось, играл в wow, а потом захотел свой сервер ну и естественно сайт.

    Какими путями учился этому мастерству?

    Самообразование, работа с ментором.

    Расскажи подробнее о начале своего пути: как, когда, что?

    По молодости, очень любил играть в WoW, потом мне стало скучно и я подумал, а что если создать свой сервер? Тут то и закрутилось всё, сначало просто скачивал сайтики и ставил, потом начал из одного в другой html копировать, потом css.

    Далее, я познакомился с mangos и trinity - это open source движки wow, написанные на C++. Было очень тяжко в них копаться, не понимая особо что и как, но компилировать и накатывать патчи, я научился определённо:) Далее, я узнал что за это можно получать деньги и продолжил обучаться, но только веб разработке, потому что это показалось более приятным для души, нежели возиться с C++.

    Потом поступил в колледж по профессии "Программное обеспечение вычислительной техники и автоматизированных систем”, он дал хорошую базу в алгоритмизации и базах. Год на php и затем прекрасный мир ruby.

    Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

    Не скоро, долго не знал что за это можно получать деньги вообще, может спустя года два)

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


    Хотел было начать историю с времён старших классов, когда среди прочих предметов появилась "Информатика", но тут вдруг вспомнил, что всё это началось гораздо раньше. По идее, этот рассказ даже можно отнести к очередной главе "Детей перестройки". :) Итак, конец 80х, мне 7-8 лет....

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

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

    В нём всегда была очередная порция захватывающей фантастики и рассказ о полёте Лунолёта "Кон-Тики", сопровождающийся программами для калькулятора БЗ-34.

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

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



    На школьных переменах только тем и занимались, что обсуждали очередные нюансы прохождения F1 или Карате:

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

    А где-то в 93м, у одного товарища со двора дома вообще появился настоящий комп. Папа был начальником в одном НИИ и благополучно "выписал" домой себе 286й с цветным монитором:



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

    В 94м в школе появилась информатика, которая стала одним из моих любимых предметов. Компьютерный класс был оборудован древними УКНЦ:

    Правда, все они были терминально подключены к учительскому и загрузка ОС производилась по сети, что занимало по времени около часа. Поэтому нам сделали сдвоенный урок - 45 минут мы сидели и лицезрели надпись на дисплее "Загрузка из сети...",

    а второй урок писали на Basic или рубились в аналог игры "LoadRunner" - "LAND":

    или "Вертолёты":

    или "Рыбалка":

    Иногда еще рисовали в каком-то графическом редакторе.

    Язык BASIC мне не очень нравился его непонятными "DIM", поэтому когда нам рассказали про PASCAL, я твёрдо решил, что хочу на нём писать программы:)

    У одного товарища выменял на вкладыши книгу "Программирование на HiSoft Pascal для ZX-Spectrum" не помню какого автора, но похоже, что это был перевод этой:

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

    Мой товарищ тоже увлекался программированием - он учился в 59й школе Ульяновска и с компьютерами у них было получше - стояли 286е с цветными экранами и у каждого был свой дисковод (но тоже не было жесткого диска). Мы часто разговаривали на тему компьютеров, программирования и алгоритмов. А потом и я стал ходить в кружок информатики в этой школе. Вёл его замечательный человек, учитель информатики Анатолий Юдин:

    В его кружок ходило так много народу, что не всем хватало место и за компьютерами сидело по 2-3 человека. Именно его уроки окончательно утвердили во мне желание связать свою жизнь и карьеру с компьютерами и программами.

    Чтобы стать программистом, необходимо было сильно поднажать на математику, с коей я дружил всегда на твёрдую "четвёрку". Уровень математических знаний, который давался в моей школе, был довольно низок, поэтому нужно было либо переводится в другую школу, либо заниматься дополнительно. С переводом в физмат-класс 40й школы Ульяновска ничего не вышло - завалил все 3 попытки сдать экзамен:) Зато сильно помогли 4 года обучения в заочной физмат школе при МФТИ. Кому знакома эта аббревиатура - ЗФТШ при МФТИ? :) Кто несколько лет ходил на почту с толстыми конвертами и с замиранием сердца распечатывал полученные? :) Кто взрывал мозг учителей физики и математики нерешаемыми заданиями? :) Одним словом, респект и уважуха МФТИ! Скольким ребятам они помогли поступить в лучшие ВУЗы страны.

    В нашем городе "на программиста" учили тогда только два вуза: УлГТУ и филиал МГУ - УлГУ. В УлГТУ ("Политех") на нужный факультет ФИСТ было просто нереально мне набрать необходимые баллы (80-100) - тогда там уже ввели тестирование. Поэтому параллельно с УлГТУ были поданы документы в УлГУ на механико-математический факультет. Собственно, он и был наиболее желаемой моей целью - там уже учились некоторые мои старшие товарищи и собирались идти младшие. На тестировании в политехе я набрал около 60 баллов и проходил только на машфак:) Естественно, он тут же был отброшен. Последний мост - экзамены мех-мата. Математика письменно, устно и сочинение. Первый экзамен - самый трудный. За год до этого я не пропускал ни одной улгушной олимпиады, где особо не выделялся успехами. Провалил и предварительный платный экзамен. И вот Бог дал мне последний шанс, которым я воспользовался и еле-еле набрал необходимые минимальные баллы:) Тогда я уже и не думал, что могу не стать программистом - все чёрные мысли были об армии:) В общем, мехмат распахнул предо мной свои двери. И понеслось....

    Следующими людьми, которые должны были впихнуть в меня любовь к программированию, стали преподаватели С.А.Шиняев, Шамиль Талгатович Ишмухаметов и Б.Ф. Мельников:) А очередным учебником - "Основы Турбо-Паскаля" Фаронова:

    Компьютерный класс был оборудован 386-ми, с жёсткими дисками и дисководами 3,5"":



    Началась эра дискет. Сколько их покупалось на скромную стипендию - ужас. Они быстро портились, так как компилировали свои программки мы только с них.

    Лабораторные работы, задания... Я даже не успевал всё делать, сложность нарастала. Прерывания DOS, игра "Шахматы", 3D-объекты, собственные файловые системы и оболочки - это мехмат, детка... К концу 2го курса я понял, что много упустил и часть работ просто не смог сделать самостоятельно - что-то пришлось заказывать за деньги старшим ребятам:) Думаю, не я один так поступал. Когда "горит" зачёт, то мораль и совесть отходит на последний план:)

    У меня по прежнему дома не было компа, поэтому я "пробил" разрешение ходить к маме на работу и часами сидел там за первыми Pentium I 75 Мгц, производства Siemens-Nixdorf,


    решая задания в математическом пакете Maple:


    Кстати, там же, на маминой работе, я впервые познакомился с Windows"95:) Но она мне показалась какой-то громоздкой и неуютной, по сравнению с любимым Volkov Commander:

    И вот, пасмурным октябрём 1998 года, мама на скопленные деньги купила мне компьютер!

    Это был Сименсовский десктоп с процессором i486 DX2 33 Мгц, ОЗУ 8 Мб, SVGA-картой и HDD WD 500 Мб! И самое главное - монитор 15"" со встроенным защитным экраном (но с небольшим заводским браком на трубке)!

    Там была уже установлена ОС Windows 95, но по умолчанию грузился любимый и знакомый DOS 7.0. Набрав команду "win.com" можно было загрузить винду, поиграться с ней и выйти:)

    Основное своё время я проводил в DOS, просматривая разные картинки в утилите "sea.exe", которая работала в графическом режиме. У меня до сих пор сохранились эти картинки в разрешении 200 на 300, 480 на 640, 50 на 100... Какими большими они тогда казались:) Тогда были очень популярны изображения художника Бориса Валеджо - кто их помнит? :)

    Еще я слушал трекерную музыку формата "mod" или "xm". В универе по дискетам ходил трек "Металлики" - Unforgiven.mod. А кто помнит "FastTracker"? :)

    Кстати, довольно известный ныне CJ Omen (мой универский друг Лёха Будылёв) начинал своё творчество с неё и я был первым слушателем его композиций:)

    Еще я осваивал мощный пакетный язык DOS:

    немного ASM:

    и даже написал пару bat-вирусов, которые успешно апробировал на универских компах... :)

    Собрал огромную коллекцию вирусов для DOS и Windows (около 800 штук) и базу их описаний. Изучение вирусов стало любимым моим занятием. Апогеем его стало написание подобие антивируса (скорее, детектора) к одному очень злому вирусу Deflorator, заразившему многие универские компы. Кстати, написан и внедрен он был тоже студентом моего ВУЗа:)

    В 99-00 массовую популярность приобрела музыка в формате mp3. Именно её прослушивание и стало главной причиной моего "переезда" из DOS в Windows. Но мой процессор в 33 Мгц "не тянул" её и приходилось в настройках winamp сильно урезать качество воспроизведения. Это стало причиной первого моего апгрейда:


    Кто не заметил разницы - этот "камень" был уже в 2 раза шустрее моего прежнего:) MP3 шли на ура! Однако встала потребность установки кулера - прежний был на столько слаб, что мог работать и без него.

    Довелось поработать и *nix - довольно долго "жил" в установленной на отдельном разделе HDD FreeBSD 4.0:

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

    После 3 курса, на летних каникулах, с тем же товарищем, с кем с детства мечтали стать программистами, решили освоить новый для нас язык - C++. Самоучитель Г. Шилдта стал следующим моим учебником:

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


    Этот язык мне очень понравился своей краткостью синтаксиса и новыми возможностями, которых не было в Pascal (можно объявлять переменные, где хочешь:)).

    К концу лета я освоил его на столько, что совсем забросил Pascal и все лабы и курсовые делал уже на C++. Как и разные утилиты для своих нужд. К тому времени мой WD 500 Мб стал сыпаться и я написал утилиту, которая каждый раз при завершении работы сохраняла на дискету FAT-таблицу, которая постоянно слетала. Еще я писал антивирусы, грабилки ресурсов из игр, текстовые парсеры и т.д. :) Верхом творчества был дипломный проект по распознаванию графических образов, который я реализовал на Borland Builder C++:


    и Microsoft Visual C++:

    К слову сказать, чуть раньше по учебному процессу мне довелось познакомиться и с другой средой разработки Borland - Delphi:

    Знакомство это предопределило мою дальнейшую судьбу - я до сих пор пишу свои программы на Delphi и просто без ума от этой мощной среды, которая до сих пор не заставила ощутить какую-то ущербность в разработке desktop-продуктов.

    Delphi для Linux - Kylix. К сожалению, умерший продукт. Сколько строчек кода было написано в нём...

    Конечно, сейчас уже совсем другие времена и наши дети "стартуют" далеко не с MK-51 или ZX-Spectrum.

    Интересно, какие программисты выйдут из них? Куда вообще пойдёт это ремесло?

    Одно только знаю - пока человечество в развитии движется вперёд, программист нужен будет везде и всегда.

    С Днём Программиста! :)



    Документы