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

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

Начало

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

Мне рассказывали, что у программистов хорошая зарплата, они знают математику и программируют в основном на C++ или Java. Деньги мне нужны были, и не верил я в денежность своей специальности. Я решил найти курсы, чтоб меня научили. Денег у меня не было, по этому летом я месяц работал курьером, и, сложив вместе с заработанным свои сбережения, пошел на курсы. Преподавала там тетя лет сорока. Она работала в какой-то гос. конторе и они клепали бухгалтерские программы на Delphi. Разработка велась в стиле накидывания контролов на форму. Этому я на курсах и научился. А еще я себе купил книгу по Delphi, и взял у двоюродного брата большую и толстую книгу по SQL, которую сам же ему на день рождения и подарил. Почитав книги, понял, что только так можно научиться, далее практически все свои деньги тратил на книги.

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

Дальше я много читал, писал всякие мелкие штучки, отвечал и спрашивал на форумах. Мне стало не хватать русского интернета и книг. Я пошел на курсы инглиша.

Следующей программой стала программа для пчеловодов (считайте мой первый стартап, я и автор идеи договорились 50 на 50 поделить будущую прибыль). Я ее писал долго, больше года. За это время я перелопатил огромное множество знаний (рефакторинг, паттерны и многое другое). Писал я ее на Delphi 7, база данных MS Access. Приобрел кучу опыта, ведь практически с нуля знаний получилось сделать релиз. Потом я прекратил работу над программой, оказалось, что это приложение всего лишь маленькая часть того, что хочет сделать автор, и монетизацию планирует делать после того как я напишу остальное. А деньги мне были нужны, поэтому я начал искать способы заработать.

В период написания программы случилось несколько интересных случаев. Я ходил на собеседование в компанию Celenia (у них в требованиях был С++), чтоб подготовиться, я за день прочитал Страуструпа и у меня лопнул мозг. Меня не взяли, так как я был юным студентом. Но был у них на двух собеседованиях.

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

Альфатим — возле м. Золотых Ворот была контора, которая делала веб-приложение на ASP.NET для американской недвижимости. Не буду расписывать детали того, как я туда попал. Скажу лишь, что до этого у меня опыта с ASP.NET было 3 дня (я прочитал книгу), в C# я был более расшаренным (уже прочитал Рихтера, Троелсена), ну и обладал знаниями рефакторинга. Знал, что есть юнит-тесты, паттерны, хр. Чтоб попасть туда, мне пришлось без подготовки заполнить анкету, которая была взята с брейнбенчевских тестов асп.нет (позже сдавая на брейнбенч тесты я узнал там вопросы). Я ответил, и меня взяли. HTML, CSS, JavaScript я не знал… Разработка велась так — были проджект-менеджер, разработчик бизнес слоя, программист гуи, ну и я тоже делал гую. В коде бизнес слоя я увидел сплошной копипаст. Начал срочно рассказывать про паттерны, дублирование, смог затеять рефакторинг, еще рассказал ребятам про Решарпер. Резво начал, короче.

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

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

Своя фирма

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

Дальше в сотрудничестве с одной киевской фирмой (от них менеджмент, от нас разработка) мы начали делать проект масштаба СНГ и Прибалтики для одной очень крупной фирмы, которая делает фототехнику и сопутствующее. Проект на ASP.NET(C#) и SQL Server. Архитектуру и в основном все проектные решения принимались мною. Капитально вырос на этом проекте. Писали год, потом полностью отдали в руки той же киевской фирмы (проект вечный).

Потом был и есть MyHeritage. Большой стартап на PHP. У них более 20 миллионов зарегистрированных пользователей. Самая настоящая СМО. Мы для них делаем аутсорсинг. В основном приложения для социальных сетей и всякие сервисы интеграции. О том, как надо работать и следить за качеством я во многом узнал у этих израильских ребят.

Нынешнее

К нынешнему моменту, фирма уже в третьем офисе (двухэтажный дом в живописном месте возле Ленинградской площади).

Сейчас мы наконец-то вышли на украинский рынок, и делаем украинский стартап, проект пишем на Django, делаем его в стиле постоянной интеграции (можно сказать используем Agile методики).

Есть у нас также и свои проекты (стартапы), на которые вечно не хватает времени. А дописать и развить их очень хочется.

Предлагаю свои услуги в обучении

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

Условия такие:

  1. Для тех кто хочет учиться удаленно. Я даю задание, в котором прорабатываются аспекты из списка данного ниже. Человек его выполняет, и я его сразу беру на работу. Также я готов бесплатно смотреть код, отвечать на вопросы где плохо и где надо лучше, давать ссылки на инфу. Кстати, список книг я составил.
  2. Обучение за деньги в режиме курсов. Два раза в неделю по часу мы встречаемся у меня в офисе и прорабатываем вопросы из списка представленного ниже (кроме 0 пункта). Занятие будет стоить 100 гривен. Я планирую набрать группу из 2-4 человек. Как только обучаемый выполняет тестовое задание и я вижу, что он готов работать. Я начинаю ему платить деньги за работу.

О своих знаниях и достижениях

Каждый пункт я знаю до какого-то уровня (обычно он выше того, который я встречаю у многих разработчиков). Пока в джаваскрипте есть Джон Резиг (правильно перевел?), в рефакторинге Мартин Фаулер, в сишарпе Джефри Рихтер, я себя не могу называть экспертом в этих областях.

Но, мне есть чем похвастаться:

  • в 23 года я являюсь совладельцем и техническим директором фирмы штатом в 12 человек, которая делала и делает масштабные, интересные проекты;
  • весь процесс разработки строился практически с нуля, в этом деле я сыграл ключевую роль;
  • у меня хороший опыт работы с большим спектром технологий;
  • я сам учился с нуля и хорошо понимаю как до человека донести знания.

Требования к обучаемым

  1. Английский язык. Человек просто обязан уметь искать информацию и читать технические книги и статьи на английском.
  2. Абсолютная беспонтовость. Там где начинаются понты, заканчивается обучение.
  3. Абсолютное желание научится.
  4. Наличие быстрого интернета дома.
  5. Обучать я буду людей только живущих в Киеве.

Программа обучения

  1. HTML, CSS. Разработчик должен без проблем уметь верстать, быть в курсе большого числа аспектов (семантическая верстка, спрайты, кроссбраузерность, фаербаг итд).
    1.1. Понимание основ типографики, юзабилити, дизайна (ководства для начала хватит).
  2. JavaScript. Синтаксис языка, понимание DOM модели, понимание того для чего и как работают джс фреймворки (к примеру прототайпджс, джквери). Способность писать многофункциональные клиентские приложения, виджеты.
  3. Вебсервер. Понимание того, как он работает. Умение поднять сайт на вебсервере.
  4. Рефакторинг. Надо знать как выглядит плохой код, чтоб писать хороший.
  5. Серверный язык, фреймворк. На выбор PHP/ASP.NET(C#)/Django(Python). Лучше всего знаю и больше всего опыта с ASP.NET(C#), в остальном могу дать твердую базу (основные принципы разработки одинаковы). Человек должен знать огромное количество разных аспектов (исключения, принцип одиночной ответственности, не доверять входным данным, комментарии в коде, структурирование кода итд итд).
    5.1. Паттерны проектирования. Знать надо. Во многих веб-фреймворках зачастую реализованы какие-то паттерны. Важно уметь распознавать их. Уметь рефакторить код и получать на выходе готовый паттерн.
  6. Постоянная интеграция. Что такое юнит-тесты, сложности написания, мокинг, интеграционные(компонентные) тесты. Контроль версий. Сервер интеграции. Билд, коммит, тесты и деплой за один клик.
  7. Регулярные выражения. Вещь абсолютно необходимая для уверенного обращения с текстом.
  8. Базы данных. SQL, проектирование.

Контакты

Пишите мне на мыло kigorw@naikonsoft.com и не забудьте рассказать о себе (знания, стремления, пожелания к обучению).

Если есть знакомые, которые хотят обучаться, смело советуйте меня.



Оставь комментарий