Как из гуманитария стать программистом (скучный способ)

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

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


Понимание всей этой отрасли у меня было на уровне тех "типичных" заказчиков из постов про IT. Поэтому после посещения местной веб-студии я понял, что я тупой мудак, который ничего не знает. В нете нашел habrahabr (В его лучшие времена), и загорелся идеей получить инвайт.


После 9 статей в песочницу (в основном переводы it статей с New York Times), я все же получил свой инвайт. Начал задавать вопросы под профильными статьями, спрашивал насчет сайтов. Ну и мне один мужик посоветовал выучить для начала html/css.


Я скачал с торента книгу по html/css и начал её читать в свободное от работы время, благо жена еще училась в универе и ей было особо не до меня. Через три месяца изучения книги я уже мог делать статичные странички с убогим дизайном.


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


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


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


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


У меня появилась идея сделать что-то грандиозное, и я стал разбираться в том, как это делать. Для начала выбрал себе html/css фрейм-ворк, который бы помогал мне делать адаптивные сайты (по случайности выбор пал на Foundation). И опять же скачал с нета книгу по javascript/jquery и начал её читать.

В ходе разработки сайта тажке скачал книги по SQL, POSTGRESQL и GIT, также запоролся с тем, что поставил себе Ubuntu для настройки сервера под хостинг. Также разбирался во всяких плагинах, библиотеках и прочих штуках.


Каждый день выглядел так:

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

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


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

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


P.s. Хочу отметить, что у меня в городе нет ни одной нормальной IT-компании, и все мое обучение было книги, документация и практика! Поэтому было бы желание.


Вы смотрите срез комментариев. Показать все
100
Автор поста оценил этот комментарий

Как вы стали веб-разработчиком я понял, честь и хвала. Но в какой момент вы стали программистом?

раскрыть ветку (94)
73
Автор поста оценил этот комментарий
Чет ржу. Не хватило у меня злости автора так подъебать.
19
Автор поста оценил этот комментарий

Неправильно!

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

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

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

раскрыть ветку (89)
14
Автор поста оценил этот комментарий

Можно и я немного в срач встряну?


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


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


Ещё имеется английский термин "software engineer", вот тут я не уверен, как это нынче правильно на русский переводится. Именно сюда, по моему мнению, и стоит стремиться. В западных ВУЗах на факультетах компьютерных наук "software engineering" - отдельная дисциплина, эдакая наука о процессах и правильной организации разработки, тут и умение риски взвешивать, и правильно менеджмент организовывать, и все процессы моделировать и формализировать, и эвалуацией заниматься. И, ещё раз - организовывать, организовывать, организовывать, мать его, правильно! От идеи "а давайте напишем вот это" и до шиппинга заказчику, через все этапы жизненного пути ПО. Это отнюдь не исключительно гуманитарная дисциплина, хочу заметить. Всё это постигается уже поверх знаний программиста/девелопера. В итоге получается, что инженеры проводят в написании кода всего лишь 20-30% всего времени, зато делают это эффективно и с пониманием, что и зачем они пишут.


Удачи вам в начинаниях и профессионального роста!

раскрыть ветку (6)
2
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий

Чуть более месяца сдавал предмет, который очень похож на Ваше описание. Называется "Технологии создания программных продуктов". Там описывались этапы разработки ПО, этапы разработки требований и архитектуры. Также описывались методологии (как классические, так и гибкие).
На практике было UML и системы контроля версий.
Вы об этом имели ввиду под "software engineering"?

раскрыть ветку (4)
Автор поста оценил этот комментарий

Судя по небольшой практической части, ваш курс можно было бы скорее назвать вводным в "программную инженерию". Полноценный курс software engineering содержит в себе детальный разбор всего вами вышеперечисленного и рассчитан, как правило, на один год обучения. Практическая часть куда более обширна и зачастую подразумевает выполнение целого проекта, как программной, так и "бумажной" части оного. Этот проект - один из двух больших проектов, необходимых для успешного получения степени бакалавра (второй, соответственно, - бакалаврский проект).


Ах да, небольшой дисклеймер: я рассматриваю это на примере немецких вузов.


Если есть большое желание - я могу привести в качестве примера оглавление лекций по курсу.

раскрыть ветку (3)
Автор поста оценил этот комментарий

ООо, буду благодарен, если можете привести)

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Заранее извиняюсь, если перевод получился не совсем гладким.


https://docs.google.com/document/d/1SXdaetBasysgP4ZHYJCMvpCa...


Это немецкий курс программного инжиниринга, который преподаёт проф. Райнер Кошке, председатель комитета TCSE / IEEE по реверс-инжинирингу.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Благодарю. Где перевод получился не совсем гладким, всё равно ясно о чем идет речь (по крайней мере для меня).

20
Автор поста оценил этот комментарий

Человек становится скрипачом в тот момент когда первый раз провел смычком по скрипке. ;-)

Программистом становятся по обретении образования, знаний и опыта. То что вы описываете, это "script kiddie".

раскрыть ветку (52)
12
Автор поста оценил этот комментарий

В какой момент становятся программистом? Как измеряется та критическая масса знаний, после которой уже нет обратного пути? Правда, интересно же!

ещё комментарии
1
Автор поста оценил этот комментарий
Я вот тоже не пойму, почему если человек делает за компом какие-то проекты, он сразу программист. Мне всегда казалось, что программист это вообще тот, кто составляет набор команд для исполнения какой-нибудь системой:(
раскрыть ветку (2)
2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

вполне вероятно что этот дипломник все таки эти пять лет упорно ботанил, и теперь у него пригорает от того что кто то получил его на халяву

ещё комментарии
1
Автор поста оценил этот комментарий

У меня телефон с 5 но этажа упал, чет не работает, починить, тыж программист.

ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку