Из плиточника в программисты

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

Из плиточника в программисты Образование, IT, Войтивайти, Учеба, Программист, Упрямство, Зарплата, Совет, Длиннопост

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


Для начала небольшое отступление. Как-то раз за чаем с семьёй родственников (молодожёны), слушая их жалобы на низкую зарплату, спросил, почему бы им не пройти какие-нибудь курсы и не пойти в IT? Ведь на мой взгляд, работа в IT сейчас чуть ли не единственный способ честно зарабатывать сравнительно неплохие, по местным меркам, деньги. Они послушали и пошли. Через 3 месяца поделились своим разочарованием: "Не, это не для нас, это нужно обладать определённым складом ума, мы только зря деньги выкинули". И вроде бы меня ни в чём не обвиняли, но было неприятно.


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


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


И вот теперь к вопросу у том, почему далеко не всем дано стать программистами. Ну, или хорошими программистами.


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


Во-вторых, на всё время обучения (цикл из трёх курсов по три месяца, завершил 2) он отказался от всех заказов, от любой работы (а был довольно востребованным плиточником, и в хорошие времена зарабатывал по 2-3k$ в месяц, что меня несказанно изумляло). Он сосредоточился только на учёбе.


А в-третьих, он действительно умный человек. Даже это его решение стать программистом в 40 лет возникло вовсе не по причине денег. Да, в то время уже наметилась тенденция по снижению стоимости труда всяких строителей, но до этого, как я уже упоминал, он мог зарабатывать побольше некоторых программистов (закроем глаза, что он работал по 10-12 часов в день и без выходных).


И началась его учёба.


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


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


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


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


Вот такая вот успешная история входа в IT. Но -- с большими оговорками. Готовы ли вы минимум на полгода отказаться от всего, сосредоточившись только на учёбе? Способны ли вы впитывать в себя новые знания, учитывая, что учение не ограничится подготовительным курсами, что учиться придётся постоянно?


P.S. Через пару лет из разговоров на кухне:


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

-- А теперь что думаешь?

-- А теперь я не думаю, теперь я это знаю!

Вы смотрите срез комментариев. Показать все
12
DELETED
Автор поста оценил этот комментарий
Определённый склад ума для программирования действительно требуется, чтобы представлять алгоритмы в голове. Написать код легко, для этого нужно знать среду разработки и методы языка, а это может запомнить рано или поздно любой человек. А вот придумать, как это должно работать, не забыть крайние случаи и исключения, чтобы всё работало без ошибок, вот это и есть настоящая работа программиста.
раскрыть ветку (40)
7
Автор поста оценил этот комментарий

Да. Я раньше наивно думал, что всем быть программистом так же легко, как и мне. Просто они ленятся. :)


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

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

"Не дано" в 80% случаев означает "Я ленивая жопа". В 20% случаев означает "Я востребованный специалист в своей сфере и меня все устраивает".


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

раскрыть ветку (36)
1
DELETED
Автор поста оценил этот комментарий
Может и любой способен, но получать удовольствие от процесса могут не все) я не завидую, тем, кто через силу это делает, а не потому что нравится
Автор поста оценил этот комментарий

Не дано - это иногда означает - не хочу упарываться, мне и админом неплохо.

Особенно если что-то из себя представляешь.

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

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

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

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

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

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

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

Я без протекции

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

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

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

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

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

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

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

Ну не знаю... Я вот на порядок более ленив, чем моя жена. Но я почему-то программист, а она -- нет. :)

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

Лень может проявляться в конкретных случаях. Например, кому-то не лень таскать на холоде тяжести по 12 часов в день, а посидеть за компом и подумать - лень :-)

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

Да, это хорошо перекликается с последним абзацем поста. ;)

1
Автор поста оценил этот комментарий
Т.е. абсолютно любой человек спокойно может в матан?
раскрыть ветку (23)
3
Автор поста оценил этот комментарий

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


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


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

раскрыть ветку (8)
2
Автор поста оценил этот комментарий
И это будет работать стабильней и быстрее, чем простыня, написанная одним человеком, будь он трижды спецом по матану.

*Смотрит на современный софт

*Смотрит на софт, из времён когда его писали одним человеком

Да не, хуйня какая-то.

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

А можно пример софта, на который вы смотрели? ;) Что-то подозреваю, что вы сравниваете несравнимое. Некоторые современные продукты одним человеком написать крайне проблематично.

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

Любая хуйнянейм переехавшая на электрон с нативного гуи как первое что приходит в голову.

Некоторые современные продукты одним человеком написать крайне проблематично.

Я прекрасно это понимаю. Но все же.

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

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

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

Простой пример. Факториал числа. Его можно написать самому - при помощи рекурсии. Получится примерно 10 строк кода. Но знаешь что будет если ты это напишешь на готовом проекте? Тебя похвалят за то что ты понимаешь математику? Нет. Придет тимлид и даст тебе по башке. Потому что в языке есть готовая конструкция из 7 букв - gmp_fact().


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

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

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


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


Так что, если ты в курсе - молодец. Если не в курсе - ничего страшного, просто позови того кто в курсе, или используй готовый код.

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

Ваще любой. Вопрос желания и уровня начальной подготовки.

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

Что вы имеете в виду "может в матан"?

раскрыть ветку (12)
1
Автор поста оценил этот комментарий
Матанализ.
Без матана тру прогером не стать.
раскрыть ветку (11)
3
Автор поста оценил этот комментарий

Матан пригодится примерно в 5-10% задач по конкретным направлениям и это значит, что подавляющему большинству программистов он ни разу не встретится и нафиг не уперся.

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

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


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

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

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

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

А можно чуть подробнее на эту тему?
У меня нет вышки, "матанализ" - только слышал название
Программист.
Сначала для себя (автоматизация процессов), потом фриланс, далее прогер (бд), сейчас тимлид.
Прогером стал как минимум потому, что ленивый до жути )
В чем я не "тру"?

раскрыть ветку (6)
1
Автор поста оценил этот комментарий
Ну вот я электроникой занимаюсь.
Периодически возникает необходимость цифровой обработки сигналов.
Для обработки данных с mems-гироскопа необходимо использовать фильтр Калмана. Но если ты даже понятия не имеешь о матрицах и т.п., то даже готовую библиотеку применить не факт, что получится.
Или, например, цифровые регуляторы типа ПИД - есть утилиты подбора коэффициентов, но нужна мат. модель управляемого объекта - опять без матана и тау (хотя бы поверхностного) вряд ли что получится.
раскрыть ветку (5)
2
Автор поста оценил этот комментарий

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


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


Точно так же и у вас, уверен -- базовые знания в этой бизнес-области можно вполне себе приобрести за месяц тренинга, не так ли?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Не так. Берётся экономист/трейдер, который говорит как надо, а ты реализуешь.
Ну и экономика вроде как тоже на матане/мат.статистике
2
Автор поста оценил этот комментарий

Не соглашусь с общим выводом.
Все это имеет больше отношения к электронике, чем к программированию. И, да, там уже нужны углубленные математические знания.
Но это лишь небольшой сектор IT.
В написании обычного софта, создании/поддержке БД, веб-приложения требуется знание математики на уровне неполного среднего образования.
Возможно, "тру-прогеры" - это те, кто пишет сразу в виде машинного кода и на глаз обрабатывают сигналы. Тогда спорить не буду, Ок

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

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

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

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

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

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

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

ноучиться программить - не имеет смысла. невозможно научиться чему-то, что нужно просто делать. програмь.

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

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