Pull to refresh

Comments 146

UFO just landed and posted this here
UFO just landed and posted this here
Вот по менторству: я готов брать на 90% проектов студентов или новичков в пары к опытным программистам, учить их и планировать карьеру. Проблема вываливается, когда вчерашний новичок стал уверенным миддлом через какое-то непродолжительное время, внезапно подходит ко мне и говорит «Ну я пошел, до свиданья!». На вопрос, «А что не так? Маленькая зарплата? Неинтересный проект?», следует ответ «Все круто, но мне по жизни не хватает {Тайланда/Фриланса/Столицы/еще чего то}». Вот и спрашивается, для чего мне тратить год на человека, учить его, чтобы он отягощенный знаниями пошел куда глаза глядят, даже спасибо не сказав? Да еще и удивляться, «А что не так то?...».
Рынок решает все. Если есть возможность нанять специалиста, которого не нужно обучать, — работодатель так и сделает. Если таких специалистов нет — нанимает наиболее опытного и учит, осознавая риски. Собственно это и ответ на вопрос зачем нанимать: если нет другого выхода. Иначе это неконструктивно, бизнес должен минимизировать расходы, а не преследовать моральные цели.
Да, Вы правы. Холодный расчет и бизнес. Но как у человека, у меня лично осадочек остается…
а вы эмоции уберите и подойдите к вопросу с бизнес-стороны.

Зачем вы нанимаете студентов? Видимо, хотите сэкономить.

Что вы получаете взамен? Правильно, риски. В том числе, озвученные вами.
Это понятно, своей фразой я лишь хотел выразить сожаление сродни, наверное, преподавателю, который отпускает хороших студентов. Все замечания в стиле «бизнес есть бизнес» безусловно правильные.
Так в чем проблема? Сделайте человеку предложение, от которого он не сможет отказаться. Он вырос как специалист и цена его, соответственно тоже. Вы получили проверенного временем специалиста, знакомого со спецификой работы в вашей компании.

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

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

ps немного не туда ответил. хотел ответить предыдущему человеку)
А как вы хотели?! Чтобы новичок сидел на одном/первом месте до конца дней? Чтобы быстрее развиваться надо менять работу через 2 года. Я бы расчитывал именно на такой срок.
Новая работа — это всегда новые знания и опыт.
Для больших компаний ещё может сработать «новая команда у того же работодателя», если проекты достаточно разные.
Я прекрасно это понимаю и никогда не связывал человека цепями. Более того, я стараюсь делать ротации по проектам внутри компании, слушаю предложения поучится новой технологии и т.д. Уж не знаю, что еще надо сделать, все равно тянет «на сторону».
Почему Вы рассматриваете только один вектор? Хочешь развиваться — чаще меняй работу? Я с этим не согласен. Если устраивает зарплата, проекты с ротацией и перспективы, зачем уходить?

Мне лично видится только одна причина — юношеский максимализм. Кажется что «где то там» намного лучше, чем на текущем месте работы. По другому я это объяснить не могу.
> Хочешь развиваться — чаще меняй работу?
Не чаще, нет. А не засиживайся на одном месте в начале карьеры. Это позволит быстро расширить кругозор, стек технологий, практик программирования и т.п.

Не раз менял место работы, казалось бы, по не объяснимым причинам со стороны работодателя. И отнюдь это не максимализм. В одном случае, ты уже middle, а задачи все еще junior. В другом — менеджмент не нравился и вообще не нравилось то, чем занимался. В третьем — зарплата не устраивала. В четвертом — приходилось выкладываться, так что на собственные увлечения не оставалось времени.
Вообще, на любом месте работы я выделил для себя три составляющих: деньги, знания и время.
И в зависимости от того, что нужно в данный момент, то и является определяющим фактором. А не только зарплата.
Не чаще, нет. А не засиживайся на одном месте в начале карьеры. Это позволит быстро расширить кругозор, стек технологий, практик программирования и т.п.

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

Не раз менял место работы, казалось бы, по не объяснимым причинам со стороны работодателя. И отнюдь это не максимализм. В одном случае, ты уже middle, а задачи все еще junior. В другом — менеджмент не нравился и вообще не нравилось то, чем занимался. В третьем — зарплата не устраивала. В четвертом — приходилось выкладываться, так что на собственные увлечения не оставалось времени.

А Вы были честны с работодателем по причинам ухода? Мне просто ради спортивного интереса, у всех так — молча встал и ушел?..

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

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

Не всегда, проблема в том что работодатель склонен уговаривать остаться. А если ты абсолютно уверен, что в другая компания тебе больше подходит и нет 100% понятной причины вроде переезда в другую страну, часто проще уйти молча, иначе после озвучивания тебя будут долго и бессмысленно уговаривать (ну вот, если я уверен что в компании болото и лучше все равно не будет, смысл меня уговаривать?), либо «мстить» все две недели отработки за плохое мнение о компании/менеджменте и т.д. Это мало кому хочется…

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

Мне например, психологически легче сменить работу, чем пройти ротацию внутри компании. По крайней мере в том варианте, который есть на моем текущем месте.

А Вы были честны с работодателем по причинам ухода?

Человек сам может не осознавать почему он хочет уйти, и логика тут не причем. Могло накопиться некоторое психологическое напряжение, но сам он не осознает этого, поэтому называет какие-то «стандартные» причины или даже и их назвать не может.

Более того, я стараюсь делать ротации по проектам внутри компании

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

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

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

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

Инициатором может выступить как работник так и руководитель, но последнее слово у нас всегда за работником

Мне нравится такой подход :) Это очень разумно, мало ли сотрудник сам постесняется сказать, что ему поднадоело и хочется что-то новенького.
Опять же лично мне проще озвучить проблему когда о ней у меня спросили, а не самому проявить инициативу (но я стараюсь над этим работать).
UFO just landed and posted this here
Обычно зарплата становится неконкурентноспособной. Работодатель думает: вот же я его выучил, пусть теперь работает за те же копейки.

Ещё бывает, что не дают роста, нанимают ему руководителей со стороны и так далее (синдром называется «нет пророка в своём отечестве»).
{Тайланда/Фриланса/Столицы/еще чего то}
А не пробовали предлагать удаленную работу? Хотя бы на ограниченный срок 2-3 мес.
Всё правильно. Потеряв мотивацию, любой специалист уйдёт со временем. Не обязательно бывший новичок. Если нет возможности стимулировать деньгами/новыми должностями/проектами/ещё чем-нибудь, то человек уйдёт рано или поздно.
Известная проблема. В книге Брайана Трейси отличный ответ:
«Некоторые руководители не уверены, что им стоит обучать сотрудников: «А что если мы их научим, а они уйдут?». Это неправильный вопрос. Правильный вопрос: «А что если мы их не научим, а они останутся?».»
UFO just landed and posted this here
Согласен. Статья как будто про меня и от меня тоже. Спасибо Автору!
Мне, лично, эту статью было тяжело читать. Мысль и стиль скачет от абзаца к абзацу, структуры никакой нет. Вам бы следовало её вычитать перед выкладыванием пару раз, как мне кажется.
Присоединяюсь к автору комментария — пунктуация ломает глаза. Статья, быть может, и хорошая, но удовольствие от чтения снижается, когда какое-либо предложение приходится перечитывать, чтобы верно вникнуть в ее смысл.
Действительно, ошибок много, в плане пунктуации. На совсем уж грубые и явные мне указали в ЛС.
Приношу свою извинения.

А «канцелярит» может вполне идти от требований к количеству страниц тех же рефератов, курсовых, дипломов, где сухой остаток просто не дотягивает по объему.
Плохие это которых мама/папа заставляют идти в программисты, хорошие программисты сами такими становятся, часто начиная с самого детства по собственной инициативе.
UFO just landed and posted this here
Как правило собственная инициатива подразумевает увлеченность, энтузиазм, а такие программисты обычно хорошие, возможно вы просто слишком самокритичны.
Кроме этого выбор технического вуза тоже о чем-то говорит. Я вот тоже инженер «не программист», больше по части электроники и автоматизации, однако код писать начал еще до университета даже не имея компьютера дома.
UFO just landed and posted this here
UFO just landed and posted this here
>> да, во времена СССР ещё не было никаких «компьютеров», тогда были исключительно ЭВМ

С тех пор ничего не изменилось.
UFO just landed and posted this here
Точно! Особенно когда ты родился и живешь в горах до 18 лет, и электричество видел только во сне, ну и слышал по рассказам. Вот тогда и становятся программистами, верно!
Мне кажется, уже давным давно, известна истина, что на программиста в ВУЗах не учат. Дают базовые знания, где-то больше, где-то меньше. А дальше сам, по выбранной тематике. Не уместить весь объем знаний в программу обучения.
К тому же, как Вы сами заметили, студентам не интересно. Вы хотите, чтобы преподаватель бегал вокруг них и старался сделать всем весело? ВУЗ это не школа, у нас как-то это упускают из вида. Другой вопрос, что в 16 — 17 лет не все могут четко понять чего они хотят, чтобы осознано выбрать будущую специальность. В итоге на группу из 30 человек набирается человек 5, которым действительно интересна специальность. Для них и преподаватель читающий по книжке не проблема, сами разберутся и экзамен сдадут. И со знающим преподавателем найдут общий язык и он им сможет рассказать куда больше, чем остальной группе.
Я средний программист, но в том, что я чего-то не знаю, я не виню преподавателей, а только себя — вместо того чтобы читать книжку признанных экспертов в той или иной области, я пил пиво. Вместо детального изучения Linux, я играл в игрушки. Некоторые книги следовало бы прочитать после окончания института, а не спустя 6 лет (до окончания особо смысла не было, так как вряд ли бы понял о чем в них речь).
Так что плохие программисты, как и любые плохие специалисты, появляются из-за того, что профессию выбирали потому что «это модно», «за это платят деньги», «сюда проще поступить».
А сейчас при наличии огромного количества бесплатных онлайн курсов с прекрасно систематизированным материалом обучаться становится еще проще. Нашел интересный курс, почитал какие курсы рекомендуется пройти перед ним, какие знания необходимы и вперед. Все для обучения есть, осталось только этим начать пользоваться.
Подпишусь под каждым словом, прям с языка сняли.

У меня нет образования. Ни одна из проблем, описанных автором незнакома. Наверное, потому что в своё время я настолько увлекся программированием, что не спал ночами, делал вместо домашних заданий в школе какие-то сайты, скриптики, пытался освоить питон, даже игры пытался писать. И такое безудержное влечение сохранилось до сих пор, спустя 5+ лет коммерческой разработки.
Да в том-то и дело, что должны преподаватели бегать и делать интересно. Работа у них такая — учить подростков. Непростая и с кучей тонкостей, как и любая другая работа.
Мне кажется, что рыночная экономика в образовании очень сильно этому способствует. Я на третьем курсе впервые посмотрел лекцию на coursera, и был в шоке — оказывается, можно сделать и 2ч лекции интересными, если вставить пару голосовалок, нарисовать слайды (не, не перепечатать куски лекции на слайды, а прям вот иллюстрации сделать, примеры подобрать и пару шуток вставить). Да, а еще потом дать домашнее задание, причем, с одной стороны, интересное и не оторванное от реальной жизни, а с другой стороны — по теме. Добавить рейтинг, чтобы включить элемент соревнований и повысить мотивацию, и вот — студенты уже ломятся в двери лекционки.
Потому, что если бубнить у доски, то на лекцию никто не придет. Все пойдут на интересные лекции, а бубнящий будет бубнить для себя, и заплатят ему за такое самую базовую зарплату, а тем, кто рассказывает интересно, дадут прибавку солидную, потому что у них студентов много.
Но это сложно очень! Поэтому делаем 99% курсов обязательными, берем лекторов из теоретической науки, чтобы до прикладных задач ну точно не дошло, и потом гоняем лодырей-студентов, почему-то засыпающих и забивающих на лекции, по комиссиям и пересдачам, пока они наконец не зазубрят методичку наизусть. А еще в процессе будем считать посещаемость и засыпаемость, чтобы лектор не чувствовал себя одиноко.
P.S. Самой coursera бы не было, если бы все университеты мира до сих пор работали, как наши. Как заставить лектора потратить кучу времени и сил на бесплатный курс в интернете, да еще и домахи потом проверять от неучей всяких?
UFO just landed and posted this here
Серьезно, посмотрите какую-нибудь лекцию на Курсере) Я когда прошел пару курсов от Стэндфорда, ощущение было просто неба и земли — и тем более когда впервые попал на летнюю школу с живыми лекциями. Хотя, казалось бы, люди тоже могли надуться, сесть носом в угол и сказать «интересно рассказывать — не мое дело».
UFO just landed and posted this here
А, ну, с этим сложно спорить. Просто, наверное, люди разные. Мне нравятся лекции, и чем более доходчивые, тем лучше — я иногда даже читаю/слушаю туториалы по уже знакомым темам, просто чтобы понимание в голове устоялось. А уж на незнакомую я тем более с большим интересом послушаю того же Певзнера с его тривиальным поиском подстроки, чем открою учебник, в котором нужно потратить больше времени на въезжание.

Ну и люди далеко не всегда приходят в вуз, четко держа в голове все, чем они хотят дальше заниматься. Попался интересный преподаватель/предмет — и готово ответвление куда-нибудь.
На волне разочарований и недопонимания, мимо ушей прошел предмет ООП с основами С++. Стало не интересно и скучно.
Что-то там про графы, про классы, фабрики.
Простите, но универ тут не виноват.

Правильный университет — это, конечно, важно, но категорически недостаточно. У нас в далекой Сибири можно получить очень приличное IT образование, но это не может быть единственным фактором успеха. В универе никому нет дела, станешь ты хорошим специалистом или нет, это нужно в первую очередь для тебя самого. Плохо преподают ООП? Ну, то что говорят в какую сторону копать само по себе ценно. Берем учебник и разбираемся. Не рассказывают о Linux? Да его любая домохозяйка сегодня поставит в три клика.

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

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

P.S. Но для вас еще совершенно ничего не потеряно, составьте план, начните с основ, пишите проекты с использованием полученных знаний и будет вам счастье.
Сори, но буду говорить честно:

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

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

Так что указанные выше проблемы это лишь отмазки, главная проблема что нужно, увы, вкалывать, вкалывать и вкалывать, чтобы стать хорошим программистом…

P.S. Решение на самом деле, проще заведите трекер времени и каждый день выделяйте по 3-4 часа на изучение выбранного языка, его фреймворков, правил написание хорошего кода, английского.
Автор, а вы задавали себе вопрос, зачем Вам это программирование сдалось вообще?
Создается ощущение что вы попробовали очень много чего, но не задержались где-либо. Также в основном вы ориентировались на всякие сайты, где разброс зарплат, требований очень велик.
Есть гораздо более стабильный мир корпоративного java ПО. Проекты большие поэтому отвлекать на посторонние вещи (починить принтер/комп) вас не будут, только профессиональная деятельность. Один-два специалиста у которых можно учиться практически всегда найдется. Да и сами крупные системы построены по правильным принципам разработки ПО и понимать все патерны и особенности разработки/тестирования можно прямо не отрываясь от дела.Из-за инерционности бизнеса, шанс что все изученное окажется бесполезным из-за введения новой фичи Х очень мал.
JavaEE возможно это не самая интересная область, но стабильная и оплачиваемая.

P.S. Обучаться програмистам в вузе сейчас бесполезно. Слишком велико число тех кто не хочет/не может учиться. Плюс только поработав 1-3 года начинаешь понимать зачем нужно то что пытаются рассказывать в институте. Надо вводить гораздо больше практики для студентов, чтобы они сами сталкивались с проблемами, а не пытались заучить решение без понимания глубины проблемы.

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

Вот например, сравните:
Я средний программист, но в том, что я чего-то не знаю, я не виню преподавателей, а только себя


Автор видит проблемы низкого уровня, но не замечает метапроблем.

К метапроблемам относится например следующее: автор считает себя самым умным. Да-да, именно так. В институте сам решал, что ему учить, а что нет — было такое? Здесь есть как отрицательные стороны (незрелые личности начинают ныть, когда выбор оказался плохим, или спихивать ответственность на других), так и положительные (привычка брать на себя ответственность — она также растёт из самостоятельных выборов).

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

Ох как часто такое было, помню. И только потом понимаешь, насколько полезны все эти «ненужные» и «быстро устаревающие» знания. Даже не знаю, как эту ситуацию сделать лучше. Знания все эти нужны, обязательны, но они скучные до тех пор, пока они не оказываются полезны. Тут конечно вспоминаются родители, которые это все знают и реально заставляют, кормя обещаниями, что все это потом обязательно пригодится и никогда ничего лишним не будет по жизни.
Знания вообще не бывают лишними.
Любое знание только обогащает.
Это неправда. Мы учили наизусть тайминги оперативной памяти тех типов, которые вышли из употребления в 90е. А еще был такой замечательный предмет ТВП, по которому нужно было математически доказывать что цикл со вложенным условием действительно работает, доказательство занимало пару листов.
ТВП — это не аксиоматическая ли теория верификации программ, с тройками Хоара, Pre, Post, Cond, инвариантами цикла?
Теория вычислительных процессов называлось, и что-то такое было, да.
Понятно, что лень и воспитание всегда имеет место.

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

Организация зарубежных крупных вузов сделана так, что там преподают и одновременно работают реальные инженеры и ученые, которые кроме своих научных работ, иногда читают лекции. Вот такие люди создают связь между обучением и реальными задачами, могут на примере привести где и как можно использовать какие-то знания, чем и мотивируют изучать, и саму программу обновляют.
У нас я не могу назвать наверное ни одного высшего учебного заведения, где на кафедре реально развивают какие-то фундаментальные науки, или хотя бы инженерные работы. За исключением некоторых отдельных кружков робототехники и беспилотников. Но вот так, чтобы люди с громкими именами там хоть иногда читали лекции — точно нет.
Касательно последнего абзаца. Насколько я знаю, сейчас на кафедре КТ в ИТМО есть своя лаборатория, где занимаются относительно актуальными вещами: ctlab.ifmo.ru И иногда там проходят достаточно интересные лекции.
Мне недавно предлагали работу… в резюме было написано что то вроде
Знать любые современные фреймворки
Знать любые реляционные СУБД
Знать, как работает весь стек web-технологий
И там еще списочек примеров, и за это просили 100к.
hh.ru/vacancy/15788516

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

И «притча» в тему:

Вася и Петя одновременно начали писать один и тот же продукт.
Вася был «ориентирован на результат» и начал сразу писать говнокод не продумав толком архитектуру.
А Петя месяц разрабатывал архитектуру, месяц делал удобный интуитивный интерфейс, которому позавидывал бы Джони Айв, потом месяц писал тесты, потом два месяца писал сам код и получил идеальное стабильное приложение.
Но Вася выпустил уже через месяц первую версию программы, пусть и не идеальную, пусть с багами, но рабочую, и начал её продавать. Ещё через месяц выпустил вторую версию исправляющие баги первой и добавляющие новые баги. Ещё через месяц на доходы от продаж нанял двух толковых программеров, которые за два месяца перелопатили весь код, согласно пожеланиям пользователей допилили интерфейс и выпустили третью версию программы.
Итого, через пять месяцев у Васи было два работника, куча клиентов и сносно работающее приложение отвечающее желаниям клиентов.
У Пети было вылизанное никому не известное приложение, минус на банковском счёте и ни одного клиента.
В завершение этого выдуманного примера можно сказать, что через полгода Вася купил все наработки Пети, Петю взял в штат тестировщиком, а сам по пьяни разбился на своём новеньком Туареге


Так вообще интересная история, во многом узнал себя.
которые за два месяца перелопатили весь код
«Свежо предание, но верится с трудом.»

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

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

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

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

Потом понадобилось внести в систему понятие процентной ставки. Проблемы с откатом («мы рассчитывали, что клиент продержит у себя деньги X1 дней и насчитали ему Z процентов, а он продержал их только X2 дней, и ему надо вернуть перплаченные проценты...») росли и ширились…

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

Но к счастью для основателя, к этому моменту он уже продал компанию другим людям. А другие люди захотели добавить поддержку нового вида продукта, в котором накопление процентов происходило бы ежедневно. То есть случай, где за всё время жизни отдельного займа происходило всего 3-4 транзакции, перерос в случай, когда их было бы уже 200 и более… Я внутренним взором видел, как база плавится от нагрузки. Шли разговоры о том, что всё надо переписать нафиг с нуля, но при этом нельзя останавливать бизнес, и нельзы терять данные за пятилетнюю историю, записанные в старом формате.

Что было дальше, я не знаю — я уволился оттуда.

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

Но тут вопрос, что лучше: Хоть как-то или вообще никак?
Ну это же тот самый technical debt, о котором так долго твердили программисты.

Дело в том, что костыли есть по определению решение временное. Но, как говорят, «нет ничего более постоянного, чем временное решение».

Наговнокоженная система (вернее, её формат хранения транзакций базы) была построена на аксиомах, что 1) банк один; 2) процентов нет; 3) откат транзакций не требуется. Это отлично работало для того, что предлагалось клиентам в самом начале, но по мере предьявления новых требований к системе этот формат перестал им отвечать.

Но нас спросили «могёте сделать то-то и то-то, причём к завтраму?» — с намёком на "… а не то — партбилет трудовую книжку на стол". Какой был выбор, кроме как ответить "я могу абсолютно все — я же профессионал"?

Ну вот скажите, почему ребёнку, который вырастает, вместо трёхколёсного велосипедика покупают двухколёсный, потом мотоцикл, потом машину — вместо того, чтобы каждую пару лет надстраивать тот самый трёхколёсный — и в конце у «Мерседеса» в качестве водительского сиденья торчит та самая крошечная детская велосидушка?

Для меня уже при первых шатаниях костылей стало понятно, что надо менять и расширять модель. То есть нужно в худшем случае останавливать бизнес до появления версии 2.0, а в лучшем — паралелльно писать 2.0, запускать её в параллель с 1.0, и в один прекрасный день незаметно для клиентов переехать на новый код. Но кто даст нам останавливать бизнес, или «тратить деньги впустую» полгода, не давая очевидного сиюминутного выхлопа?
90% того, чтобы было написано для веба в ближайшие 5 лет станет никому ненужным хламом, просто нагромождением какой-то логической массы. Это обойдет стороной, может, только некоторые хорошо поддерживаемые системы.
Так что, ниже сказали точно, самое долговечное — это временное.
Если Вам проект нужен даже временно или если просто нравится программировать, делайте, программируйте этот проект. Какой-то собственный рост все равно будет в качестве отдачи, даже если Вы не очень качественно программируете. В конце концов взгляните на программирование как на творчество. И да, ваш код в основном интересен только вам. Хорошему программисту ваш код не нужен, а новичок будет также проходить все этапы как и вы, и ваш код совершенно не интересен не программистам.

Если углубиться, то с точки зрения качественного низкоуровневого программирования или с точки зрения «академического программирования» вообще, по примерной оценки 70% программ на высокоуровневых языках — это все такая же масса недоделок, работающих кое-как с нарушением элементарных стандартов.
Вот-вот. А потом приходится заниматься обратной контрабандой.

И «ветераны» будут востребованы, когда все эти костыли наконец-то рухнут (см. раздел «Жизненный цикл программистского таланта» в этой статье) — чтобы отвечать на вопросы вида «а нахуа здесь этот вызов, и почему без него всё падает нафиг».

Критикуешь — предлагай, поэтому предлагаю автору, в связи с его отчаянным положением пройти курс например по разработке конфигурации 1с. На ближайшие 10-15 лет работой точно будет обеспечен, в 8й версии можно делать интересные вещи.
Предлагай сам будучи программистом — интересные идеи для бизнеса, что ты можешь полезного сделать. Ну например робота-аналитика по клиентской базе, с какими-нибудь важными уведомлениями.
Не обязательно быть как те гуру DIY, или досконально разбираться в системах. Нет! Это не есть цель! Сначала найдите себе то место, где вам будет интересно работать. Любое! Дальше всё пойдет само собой, я вас уверяю!
Не могу понять, система образования виновата или сам раздолбай?
«2.2 Работодатель не готов платить»
Такое действительно часто имеет место, особенно на позиции «тыжадминов». Очень многие работодатели, взамен ушедшему сотруднику, хотят на туже зарплату взять такого же опытного. Видимо не понимая, что опытный ушел из-за недостатка зарплаты.
Программист — это инженер. Отличие от классического инженера в том, что в принципе можно обойтись без знания огромного количества сопутствующих дисциплин, типа сопромата, иными словами, легкий старт. Написал несколько строк — и Hello World! работет. А вот дальше… Наша отрасль более терпима к ошибкам. Если мост построить с ошибками, то он развалится, когда по нему поедут машины. Если с ошибками спроектировать даже относительно большую программную систему, то она кое-как, но будет выполнять свои функции, пусть требуя затратной поддержки, но таки работая. И ее можно исправить, в отличие от упавшего моста. А с другой стороны, кинуть бревно через овраг, прибить веревку-перила и обозвать это мостом много ума и образования не надо, хотя с кривыми руками и тут возможно все испортить.

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

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

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


Все бывает в этой жизни. Имел честь быть знакомым с директором регионального филиала крупнейшей телекоммуникационной компании, который начал карьеру с линейного монтера, т.е. он когда-то тянул и скручивал кабель, но у него была цель.
Плюсую. Был знаком с парнем, который бросил школу и пошёл работать на стройку мальчиком на побегушках, а к моменту нашего знакомства был прорабом и копил деньги на вышку на архитектора.
А у меня однажды делал ремонт плиточник, который имел вышку архитектора и работал некоторое время назад прорабом. Плитку положил кстати, отлично.
Я не говорю, что это невозможно. Карьера каменщик-инженер представляется нам очень сложной, а кодер-архитектор логичной, хотя и та и та по сути одно и то же — очень качественный и сложный скачок знаний и навыков от низкоуровневых к высокоуровневым. Очень немногие на это способны, даже те, кто блистают как спецы низшего уровня.
Ощущается, что у топикстартера не было никакой цели. Вот я просто тупо несколько лет подряд пилил qutIM и практически только его, за это время стал очень неплохо разбираться в Qt и C++, то есть преодолел барьер, отделяющий юниора от мидла.
Уже потом занялся изучением более базовых и основополагающих принципов, которые позволяют в общем-то менять языки программирования легко и быстро и также быстро изучать новые технологии.
Плюс не стоит гоняться за хайпом. Он конечно в вебе просто таки ужасно давит, но на самом деле всё это не более, чем пена и брызги, если забраться на глубину, то там всё гораздо спокойнее и не так суетно. Основные принципы современного программирования ещё в 70ых годах были сформулированы.
Очень много нытья. ИМХО сейчас отличная ситуация — вся индустрия сравнительно новая, развивается бешеными темпами и только от самого себя зависит сколько он успеет урвать. Я ушел с института с 1 курса, ещё 4 года эникеил, потом решил что пора стать «настоящим» программистом — за год вырос до успешного миддла и останавливаться не собираюсь.

Откуда берутся плохие программисты? Из тех кто не смог, очевидно.
Судя по всему, пора создавать соцсеть для плохих программистов.

Сделайте этот проект хорошо, и удача вам улыбнется.
После этого автору она будет не нужна, потому что он станет хорошим программистом? :)
> Договорившись с родителями, летние каникулы прошли…

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

Дело, как ты можешь догадаться, в тебе самом:

1. Нужна реальная заинтересованность. Помню когда учил ассемблер и болел болезнью «написать свою ОС», спал в сутки примерно 3 часа в режиме 5-6 дней работы, 1 — коматоза, который нельзя назвать отдыхом, т. к. всё равно думал о задаче. И те 3-4 часа сна даже им не казались — даже во сне обдумывал какие-то идеи, задумки, алгоритмы. Это было круто, интересно, ничего больше не хотелось делать, какое уж там пиво и девки… месяцами не вылазил из дома, что-то там разбирал, кодил, дизассемблировал, изучал как запакованы ресурсы в играх. Это было ИНТЕРЕСНО, точнее даже ДИКО ИНТЕРЕСНО. Сейчас уже не так… Иногда хочется снова ничего не делать кроме тех самых идей, не думать о бытовых проблемах. Иногда расчехляю древнюю тёплую ламповую игрушку, дизассемблер, и сижу ковыряюсь запоем, но потом реальность выдёргивает, к сожалению. Ничего с этим не поделать.

Мораль: если нет интереса, то, может быть, это не твоё?

2. Не нужно идеализировать. Идеалов не бывает.

До сих пор сам этим страдаю, как и большинство программистов в силу своей «булевой» логики: «либо всё (1), либо ничего (0)». А ведь, что «всё», что «ничего», ни к чему хорошему не приводит, нужно балансировать между этими понятиями.

Опять же, в силу своего интереса к ковырянию в софте дизассемблером, открыл для себя удивительную вещь: 99% всех успешных продуктов написаны на говнокоде. На жутком говнокоде! Как вам: одна из довольно успешных онлайн игр начала тысячелетия написана полностью на глобальных переменных! Вот просто, чёрт возьми, 95 мегабайт глобальных переменных! Какие к чёрту шаблоны? Какой GOF? Всё же удобно и доступно отовсюду!
Сначала это шокирует, но потом жутко мотивирует, когда ты понимаешь, что пишешь в 10 раз «более правильно», чем мировые «гиганты».
Про хайп в медиа уже сказали выше. Это всё глянец, понты и писькомерки. Толковых вещей там от силы процентов 10 наберётся. СМИ всегда будет желтить, что бы ни происходило, нечего на это смотреть и пытаться равняться.

Мораль: говнокод в 99% случаев будет лучшим решением. Идеала нет.

3. Всякие универы, работодатели и прочее, это лишь отмазки.

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

Мораль: выход есть всегда, нет ничего невозможного.

4. Цель

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

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

5. Отдых

Нет, не затусить в клубе. Не забухать. Не лежать на диване.
Вроде как, марксовскому Капиталу приписывается цитата: Отдых — это просто смена деятельности.

Достаточно отвлекаться от программирования. Опять же, по себе знаю, что когда, даже в в поездке на другой конец земного шара, думаешь о том, какой же шаблон проектирования выбрать для очередной задачи своего проекта, то не получится ни отдыха, ни проекта. Нужно уметь как-то абстрагироваться от работы, другим занятием. Поэтому считаю дурацкой ванильную фразу вроде: «Найди себе работу по душе, и тебе ни дня не придётся работать». Тогда как отдыхать то??? Всегда должна быть работа для заработка, и довольно отличное от неё дело в качестве хобби. Тогда, переключаясь с одного на другое, не будет никакой усталости.
Да универ и не должен учить, он не в состоянии это сделать.
Простите, а для чего он тогда вообще нужен?
В первую очередь, чтобы научится учится. Это сложно да, но все остальное после этого ерунда. Как ни странно, всякая высшая математика, которая никогда не пригодится 99.9% программистов, хорошо учит разбираться в самой забубенной научной жути, это умение очень пригодится чтобы, например, осилить полную спецификацию языка программирования или «прочитать» дико запутанный код.
Я очень извиняюсь, но по-моему, это какое-то самое ужасное заблуждение насчет образования, которое есть буквально у всех) «Наше заведение нужно для того, чтобы заставляя вас учить бессмысленную и никому не нужную хрень, привить вам навыки изучения нужной вам хрени, которую вы будете сами учить уже потом». Оооокей, предлагаю усовершенствование алгоритма — а давайте первоначальная хрень как раз и будет нужной и полезной тоже, и мы добьемся цели в два раза быстрее.

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

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

Скажем, так наше высшее образование несовершенно, но определенные плюсы у него все-таки есть.
Разумеется, математика полезна, но какой смысл программисту плотно забивать голову всякими кольцами и интегралами, если это делается в отрыве от практики? Сначала ты два года просто изучаешь матан одновременно с программированием, но безо всякой связи, а потом чудесным образом должен догадаться, в чём эта связь заключается. Но если нет связи, то кажется, что это не нужно — вот и пропадает мотивация, а без мотивации знания в голову не залезут, и толку от «учиться получать знания» — ноль. Так можно не знания получить, а зазубрить материал и благополучно его забыть. И да, больше всего будет именно матана, а не алгебры, логики и дискретки, из которых программирование и выросло, вообще-то. Лямбда-исчисление? Нет, зачем, лучше порешай дифуры.

В комментах многие выгораживают преподавателей ВУЗов — дескать, это не их задача прививать интерес. Но это их профессия — педагогика, вообще-то. Или профессиональные педагоги не в курсе, что интерес к предмету — залог его глубокого понимания? Ну, тогда я тоже могу сказать, что продумывать архитектуру и писать красивый код я не обязан: мол, зачем мне стараться, если говнокод на глобальных переменных уже написан и работает? Такой же дубовый подход.

Мне лично из ВУЗовской программы в профессии не пригодилось практически ничего. Кое-какие полезные вещи там были, но они утонули в том диком объёме знаний, который больше пригодился бы физику, нежели разработчику ПО. И теперь области математики, имеющие отношение к программированию, я изучаю самостоятельно — и всё гораздо понятнее, когда уже умеешь программировать, и видишь связь этих областей с практикой. Ну, а небольшая книга Эдварда Френкеля «Любовь и математика» дала мне больший заряд мотивации изучать математику, чем все годы учёбы.
Мне лично из ВУЗовской программы в профессии не пригодилось практически ничего.

Это вам так кажется. Мо жно говорит о плохой ВУЗовской программе, однако удивительно, но программисты из СНГ на Западе вполне конкурентноспособны. Как ни странно, но знаю многих кто к 30-35 годам успел пять лет отучится в ВУЗе и перехать в новую страну и несмотря на проблемы с языком и другим менталитетом, устроиться на высокие должности ничуть не хуже чем местные программисты(архитекторами, синеорами, тим лидами, проджект менеджерами).

Вопрос — почему именно программисты из СНГ так легко устраиваются на высокие должности в крупнейшие IT фирмы по всему миру? Почему не мексиканцы, италянцы, испанцы, сербы или поляки?

А ведь по логике, если Западная модель лучше для обучения хорошего программиста, то как раз русскоязычные программисты должны быть менее конкуретноспособными на Западном рынке труда. Или все-таки тут не все так очевидно как вам кажется?
почему именно программисты из СНГ так легко устраиваются на высокие должности в крупнейшие IT фирмы по всему миру
Неоднократно повторялось: на Западе учат, как делать. В Союзе/России учат, как учиться, как делать.
А можно пример хрени какой-нибудь. А ваш посыл таки очень напоминает логику студента, который нихрена не знает, но уверен, что все это хрень и пустая трата времени. Понимание, что это далеко не так, приходит, когда эта хрень тебе таки помогает быстро расти. Ты видишь проблему, у тебя уже есть понимание базовых вещей, тебе не нужно начинать с нуля.

А преподаватели дают основы и фундаментальные вещи, потому что знают прекрасно другое — эти знания универсальны, они не устареют, на них основано все остальное. А модные штучки вон пожалуйста на дополнительных курсах проходите. В конечном итоге, хороший программист это не ходячий учебник очередного фреймворка, который завтра закроют.
Ну, это же не мой ответ? Это сторонники противоположной точки зрения прямо так и говорят: «мы не учим вас полезным знаниям, это не наша задача, мы просто учим вас учиться». Что в переводе означает, что они учат бесполезным знаниям, и сами это признают.

Но пф, спасибо отечественному образованию, хрени я вам накидаю сколько угодно. Моя специальность была про безопасность информации, и люди на ней:
— не знали, что такое SQL-иньекции
— в принципе не имели никакого курса про базы данных
— не знали, как хранить пароль и не знали, что такое соль
— не знали, зачем нужен https и как работают сертификаты
— ни разу не взламывали ни один шифр
— не знали, как поднять VPN
— был курс «программирования», но не было ничего про алгоритмы и структуры данных — вообще. Программирование было почему-то на C# — факультет решил, что это более модный язык, чем C++, который был раньше. Ничего сложнее базового ООП там не было.

Зато они знали:
— кучу законодательства на тему того, как защищать персональные данные и какие сертификаты на оборудование для этого нужны
— кучу бюрократического формализма на тему того, как сформулировать модель угроз и модель безопасности. Ничего не имею против формализма, но серьезно, может, сначала SQL-инъекции?
— дискретную и вычислительную математику. Я люблю математику и мне было очень на ней интересно, но может, сначала SQL-инъекции?
— как писать документы с грифом секретности. (см. пункт 1)
— как составлять (на бумаге) политики безопасности
— как работают отечественные железные устройства безопасности вроде глушилок и локаторов закладок, которые 99% из студентов никогда в жизни не увидит
— как писать должностные инструкции, чтобы безопасность не нарушалась

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

А теперь серьезно скажите мне, что знание о том, как хранить пароли в базе — это «модные штучки», которые «можно самому погуглить», и преподаватель совершенно не обязан об этом рассказывать)
был курс «программирования», но не было ничего про алгоритмы и структуры данных — вообще.

Потому что это проходят в рамках отдельного предмета, который, о ужас, называется «Структуры и алгоритмы обработки данных».
Видимо у нас были разные преподаватели. Меня учили всему понемногу, в итоге никакой конкретики. Знаете, с таким подходом хабр сделал бы меня более образованным, чем универ. Во-первых, потому что даже на хабре материал более глубокий (не всегда, но чаще), а, во-вторых, потому что я могу из всего многообразия выбрать то что мне действительно интересно и что я могу применить сейчас, а не когда-то там в сферическом будущем. Когда понадобится, вот тогда и поговорим. А пока я с нетерпением ожидаю применения заученных дат по истории и умение выставлять коэффициенты в химических уравнениях.
3 семестра матана — необходимы?
система прерываний DOS — не устареет?
Функциональное программирование в режиме «бубню себе под нос, плевать, что никто не слушает» и отвратительный уровень лаб на Lisp'е — универсальны и могут чем-то помочь? Да это вообще преступление ИМХО — функциональное программирование имеет свою нишу, а тут вместо понимания парадигмы объясняют всякие нюансы программирования на лиспе — хеды, тейлы… ппц!
Нет, я не скажу ничего против выч.мата (который я преимущественно продолбал, но он и не пригодился… да и желания такого — заниматься всей этой алгоритмо-ёмкой математикой нет), дискретной математики и многих других дисциплин… НО они и шли всего семестр и для общего развития — действительно полезны.
Это как в работе на дядю и на себя:

Когда работаешь на дядю, есть мотивация какая-то сферическая в вакууме, что, мол, «надо, а то тра-ля-ля будет, дядя поругает». И задачи получаются часто в срок, пусть и через жопу.
Когда работаешь на себя, да ещё и в домашней обстановке, ужасно тяжко себя замотивировать сегодня закончить задачу, а не завтра. Ибо никто не пнёт под зад, не пригрозит штрафом, и т. д.

Так и с универом. Можно учиться дома самому, только когда интересно и «прёт». Но это «прёт» может внезапно пропадать на неопределённый срок, и здравствуй, прокрастинация.
А универ держит эту планку мотивации, пусть даже, опять же, сферическую вакуумную, но она есть, даже если не ходить весь год на лекции, а потом за неделю взять и выучить всё к экзамену. И в итоге сделать всё через жопу, но сделать! — Параллель из первого пункта про работу на дядю.

А в плане знаний в сфере ИТ, университет никогда не сможет так широко охватить все предметы на современной практике, с новейшими открытиями. К тому же, у нас почти нет преподавателей, которые имеют практический опыт в своей области. Помню своего препода-профессора по базам данных, который читал лекции по своей засаленной тетради 70-х годов, считался лучшим преподом универа. А когда нужно было спроектировать довольно простую базу студентов, предметов, расписаний для универа, так тут его прыть закончилась — сидел пыхтел как самовар над простейшими схемами, а в итоге делегировал задачу своему лаборанту.

Я не отрицаю, что кому-то реально могло повезти, и их научили в университете. Но здесь опять же: либо универ дал мотивацию учить, и людям реально стало интересно, они учили сами того не замечая по своей воле, а в итоге решили, что это универ их научил.
Либо, как было у меня: ни на одном предмете я ничего нового не узнал, ибо знал это ещё до универа, изучив сам. Здесь я замотивировал себя сам каким-то образом и наивно полагал, что универ даст просто несоизмеримые знания с тем, что я уже знал. Оказалось всё иначе, я обиделся на него, и впал в дикий депресняк, как и автор сабжа, мол всё пропало, для чего я это всё делал и т. п. Со временем оказалось, что так везде, и я не одинок. После этого всё стало на свои места.
Ещё, автор писал про английский. Типа его ж надо ещё и учить.
Проблемы белых людей… а точнее, обычная лень.
Его ж, опять таки, нужно учить на практике, как и всё остальное. Универ, с его «Good morning, teacher!» никогда не научит реальному языку.

Тут проще всего: хочется посмотреть туповатый фильм про американских подростков? Без проблем, он как нельзя кстати подходит для изучения английского, там как раз используются самые ходовые разговорные фразы, главное различать их приличность :D.

Хочется поиграть в новую игрушку? Качаешь с пайретбея английскую версию. И смысла меньше потеряешь, по причине отсутствия ошибок в переводе, и фраз запомнишь. Словарный запас отлично учится на всяких РПГшках. Не хочешь пиратить? Честный пользователь стима? Окей, почти в каждой игре в стиме можно выбрать язык установки, и в 90 играх из 100 присутствует английский.

Для разговорного придётся окунуться в среду. Все эти скайпы это, конечно, хорошо, но скайп легко прокрастинируется простой кнопочкой Close (Exit). Типа сегодня что-то я не в духе, забыл пассивный залог повторить, в презент континос что-то путаюсь, ну его, в следующий раз!

Самый простой действующий способ, не из балды, а из жизни:
Покупаются билеты в какой-нибудь Лиссабон из Москвы. (можно, конечно, и подальше, куда-нибудь в Куала-Лумпур, но в Азии научат очень плохому английскому)
Берутся деньги с расчётом только на еду + небольшой буфер.
Задача: добраться любыми средствами до дома, не клянча при этом деньги на обратный билет.

Гарантирую, что добравшись до дома за пару недель, въехав в Россию, вы поначалу будете обращаться к людям на беглом английском, а на вас будут с подозрением коситься! Организм с подобной ситуации настолько сильно начинает адаптироваться, что даже усилий не придётся прилагать, чтобы запомнить нужный язык, фразы, конструкции, слова. Заодно, хороший способ проверить себя на выживаемость.
UFO just landed and posted this here
Ну это отлично, завидую! =)

Только я не говорил, что я ощущаю работу бесполезной и бестолковой. Видимо, у вас всё же домашний проект и работа довольно сильно различаются и не пересекаются, если не устаёте. Либо я просто не был пока на работе, где можно было бы применять интересные вещи и современные технологии — постоянно из говна мамонта заставляют лепить фигурки. Именно поэтому стараюсь уйти во фриланс, пока что. А машинное обучение, уже само по себе не может быть неинтересным, ИМХО.
Хочу задать вопрос про образования Вам.
Почему за границей учат, и дают огромный опыт в работе.
У нас же учить не должны, и большинство программистов сделав пару никому не нужных самоделок раздули о себе самомнение?
В чем плюсы этого по Вашему?
А я разве о плюсах говорил?

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

У нас тоже была пара таких преподавателей, которые пошли для души поучить молодняк…
У него была своя немалая компания, которая приносила на порядки больше, чем зарплата препода, но почему-то он пошёл «подработать». Классный был мужик, соображающий, интересный, ненапряжный, правда, из принципа не ставил тем, кто не знает предмет. И сколько он проработал, как думаете? Ровно полгода. Пришёл как-то на свою последнюю пару, и сказал, что его «попросили», т. к., во-первых, он не хочет ставить тройки раздолбаям, которых даже ни разу в живую не видел. Во-вторых, его обвинили, в якобы переманивании студентов в какое-то другое учебное заведение, типа он нам пудрил мозги, что тут плохо и надо туда.
А дело в другом: он просто сказал открыто на паре, что хороших разбирающихся студентов возьмёт к себе в стажёры на полставки. Руководство эти слухи решило развить по своему сценарию…
И вообще, сколько себя помню, всех толковых преподов, которых видел, «убирало» руководство, к сожалению. Они просто неудобны системе, мешают отлаженной работе. Никаких плюсов в этом я не вижу.

Помню, когда сам поступал, в средине нулевых был дикий хайп на эту специальность. Каждый продавец в магазине, каждая кассирша знала, что «надо идти в компьютерщики», «там платят хорошо!!!», «дочку/сына отдам туда!». Вот и результат: в моём городе кладовщик получает больше, чем программист С++.
Просто, нас с западом не нужно сравнивать. У нас разное видение работы. У них этому жизнь принято посвятить. У нас же важен мгновенный крупный заработок. Нет понятия, почему-то, что нужно идти к успеху не год, и не пять. Это касается что работников, что работодателей.
Мораль: говнокод в 99% случаев будет лучшим решением. Идеала нет.

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

Вы вторую часть цитаты опустили, самую интересную: «Предлагая — делай».
Никто не сможет воплотить вашу идею лучше, чем вы сам. Это относительно интернет-ресурса, отвечающего на вопрос: что нужно знать и уметь, чтобы стать программистом, и каким образом этому можно научиться.
Займётесь?

Относительно менторства есть большие сомнения. Время — самый ценный и единственный невосполнимый ресурс. Время хороших специалистов стоит дорого. Зачем начинающему специалисту опытный наставник понятно. Зачем опытному специалисту вникать в чужую идею и тратить на неё своё время?
Вопрос даже не в этом. Несколько лет «работал» таким наставником у групп студентов (оплачивала компания где работал), так вот это далеко не самый легкий для самих студентов путь — мотивировать себя ходить на занятия в свободное время, делать не всегда интересные задачи, да ещё тратить в несколько раз больше времени на «домашнюю работу» сложно, а без реальной мотивации эффект будет таким же как от посещений занятий в универе «посетили, сдали, забыли». Это только кажется что наставник под пивко тебя научит тайным знаниям, на самом деле можно дать пару советов, можно сделать code review, но невозможно просто вложить знания, все равно 99% работы придется делать самому.
Хотите расскажу как на мой взгляд может выглядеть идеальный курс? Правда, в нём работы преподавателя не один процент, а намного больше, во всяком случае в самом начале.
— нужны чёткие обозримые конкретные конечные результаты: через десять часов ты научишься делать то-то и то-то, через двадцать ещё и вот это, через пятьдесят вот такие невероятные вещи, через сто часов (или через двести) сможешь пройти собеседование в компанию вот такого уровня.
— нужна практика. Практики должно быть не меньше, чем теории. Лучше — больше. В идеале — немного теории, и практика её подтверждающая, объясняющая, закрепляющая. Затем опять немного теории и практика. Тогда на каждом шаге ты будешь видеть что у тебя получается, а что нет, что ты понял, а с чем ещё нужно разбираться.
— весь материал разбить на небольшие порции. Так учиться легче и проще. В конце блока материала — какое-нибудь задание посложнее, и посерьёзней. Пройдя его можно переходить к следующему блоку. Не прошёл, возвращайся и разбирайся где что недоучил.
— по возможности связывать практику с жизнью. Чтобы в результате выполнения заданий получилось что-то реально работающее.
— прогрессбар, разумеется, тоже нужен. Чтобы отслеживать свои результаты и сравнивать их с результатами других.
— и форум, конечно же. Как без него.
— если ко всему этому добавить ещё и автоматическую проверку заданий, то как раз и выйдем на 99% работы студента и 1% работы преподавателя: помочь и подсказать в тех ситуациях, когда с решением вообще никто справиться не может (более простые вопросы сами студенты прекрасно решат и обсудят на форуме).
Вот такая мечта. Как она вам? Насколько это вообще реально осуществить?
Вы только что описали, как работает Coursera.
Да. Недаром в Coursera в своё время миллионы вложили, как в один из самых перспективных проектов. Но можно и лучше. На мой вкус Coursera затянута, шаги слишком мелкие, теория очень элементарная. Например, на то, чтобы решить задачу FizzBuzz там выделено 15 занятий. Зачем так много-то?
В Выразительном JavaScript всё более динамично и увлекательно. И сложно :) Сейчас на Современный учебник JavaScript перешла. Там вроде бы как оптимальное соотношение сложности и доступности. Но практики хотелось бы больше. Так что идеала не существует. А может он у каждого свой.
Или MITшные курсы. Если опустить некоторые мелочи.
Где-то в этом месте нужно в любом случае искать место для большого куска теории, скучного, который практикой особо не закрепишь. Этим универ и занимается. А иначе пожалуйста, корсера и в манки кодеры. Такой идеальной модели обучение не существует и всякие модные нынче онлайн курсы ее не решают. Я не вижу, чтобы из такой программы получился программист, который понимает, что он делает. Он знает как собрать пару блоков в пазл, который он заучил когда-то. Это не дело.

Хотя и тупо кодить без мозгов тоже кому-то надо. Так что пусть вкладываются, а полноценное обучение трогать не надо со своим эффективным менеджментом.
Такое впечатление, что автор кроме узкого мира PHP с зоопарком CMS и фреймворков больше ни на чем не писал. Попробуй Python, Ruby, NodeJS. Возможно PHP с его подходом к работе это не тот инструмент что Вам нужен, и в этом основная проблема.
Ох, I can relate. Про образование — это правда очень плохо. Люди, которые подхватили свое увлечение условно с раннего возраста и достаточно им зажглись, судя по комментам, не очень видят тут проблемы вообще — самостоятельность, интернет, StackOverflow и т.д. Это все прекрасно в той ситуации, когда ты в принципе знаешь, что этот увлекательный мир программирования вообще существует, что там интересно и тебе есть чем (потенциально) заняться. А если нет?

Я курса до третьего совершенно не умел ни на чем писать, и даже не интересовался, а математика мне была скучна и индифферентна, пока кто-то не предложил мне разложить на множители 256-битное число. И поехало: википедия -> теория чисел -> длинная арифметика -> а как вообще эта фигня работает? -> а можно мне какой-нибудь язык получше чем Pascal, где длинное число не помещается в строку?.. и в результате ты все равно уже на несколько лет отстал от людей, которые поняли, что им нравится программирование еще в школе.
Показать, что все это интересно и увлекательно, что можно делать прекрасные вещи строчками кода и символами — вот это хотелось бы увидеть от образования, а все остальное, честное слово, заменяют учебники.

Из остальных проблем топикстартера, по-моему, самая суровая — это незнание английского. Это действительно плохо, потому что StackOverflow автоматически решает все проблемы по «где найти нужную информацию», плюс много всяких обзорных туториаловых постов, которые даются легче книжек и позволяют сразу бежать в бой, размахивая новым фреймворком/методом/скиллом. Но опять-таки, знал бы, где споткнешься…

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

А на нет и суда нет. Пойдет человек в экономисты или юристы, ну или, если закончил IT вуз, в саппорт, продажники IT программ и т.п… Тоже неплохая работа и хорошие деньги. Каждый свое хобби находит сам.
Вот я и говорю, что это грустная история. А может быть, если бы кто-нибудь рассказал человек про программирование/физику/рисование, он бы нашел в этом увлечение если не всей жизни, то энной ее части? А вы вместо этого его за деньгами отправляете.

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

В данный момент пытаюсь отучиться от правила «если делать, то все должно быть идеально, иначе вообще не делать»

К идеалу нужно стремиться, но чтобы сделать «идеально», нужно сначала N раз сделать «плохо», M раз «нормально» и K раз «хорошо».

… те ребята, с первой работы, как раз-таки заканчивали центровузы

Обучаться програмистам в вузе сейчас бесполезно. Слишком велико число тех кто не хочет/не может учиться.

ИМХО учат учителя в школе, а в универе преподают преподаватели)))
Я учился в НГТУ (Новосибирск), входит в топ 20 вузов России. Думаете там хорошо учат? Нет, там хорошо спрашивают на экзамене. А кто и как тебя учил, там никого не волнует. ВУЗ может быть виноват только в том, что плохо с вас спрашивал.

… мимо ушей прошел предмет ООП с основами С++. Стало не интересно и скучно

А у меня, например, препод по ассемблеру, на один из моих вопросов ответил,- «а оно вам надо?»

Вот вам другой пример,- я получил автомат по функциональному и логическому программированию (Prolog, Lisp) за в срок сданные лабы, контрольные и дополнительное задание, в итоге ни Prolog, ни Lisp я «ни в зуб ногой»,- получил и забыл. То же самое с дискретной математикой, электротехникой и много чем еще.

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

В заключение желаю вам удачи и советую:
  1. Не распыляйтесь на все сразу — всего вы не выучите
  2. Устройтесь в крутую компанию, занимающуюся софтом, с agile/scrum/xp/kanban, с код ревью, с git/mercurial и т.д., и поработайте там 4-5 лет стиснув зубы
  3. Делайте «Хорошо»


З.Ы
Я ни кого не хотел обидеть, и мое мнение может не совпадать с вашим.
Как-то всё было испробовано наскокам. В школе Pascal, потом Photoshop, HTML, CSS, внезапно админство и замена картриджей, SQL, PHP.
Причём в какой-то хаотичной последовательности.
Возможно стоит начать с чистого листа и остановить свой выбор на основных языках, скажем C++, Java, .NET?
Плюс их в том, что технологии не бегут совсем уж бешеными темпами, есть база которой хватит в 80% случаев.
Специалистов также полно, почти все вопросы будут иметь чёткие ответы без воды на том же StackOverflow.
Статья годная, автор молодец, что смог хоть как-то собрать в кучу то, что многим болит.

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

Зеленый специалист, без опыта работы, в чужом городе — не самый лучший вариант, но других нету. Немного подучил HTML с CSS + чуть-чуть JS и пошел на курсы при одной ИТ-фирме. Закончил курсы, взяли на работу. Вот сейчас сижу и учусь учиться и даже умудряюсь как-то работать. =) Столько нового всего, куча нюансов, появились в жизни еще node.js, работа с git, npm и bower-компонентами, багтрекером. Жаль, что работодатель выжимает все соки и развиваться приходится за рамками рабочего времени, которое не всегда заканчивается в 18:00.

Но знаете что, ребят? Мне нравится. Нравится писать код, учиться — как делать надо и как лучше не надо. И это затягивает — ты можешь сидеть и писать-писать-писать, с перерывами на чай/кофе/покушать. Жаль, что реальная жизнь часто не такая пушистая, как того бы хотелось. Где-то получилось не так, как хотел. Планировал после работки Хабр почитать, покодить, а тут сроки-дедлайны и ты пришел домой, давно после заката, покушал и просто вырубился.

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

Хорошего вам дня, утра или вечера.

p.s. Если вы ментор и ищите себе ученика — обязательно напишите, не проходите мимо.
*машет руками, стараясь привлечь внимание*

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


Золотые слова.
Как говаривал Дэвид Юм, познание лишь расширяет границу нашего незнания. После полугода работы начинающим PHP-программистом я был уверен, что надо ещё выучить как разворачивать Апатч, подучить CSS и собственно всё. Веб-разработка будет у меня в кармане. Но конечно чем больше я узнавал про конкретные технологии, тем больше встречал новых, о которых раньше даже не слышал. Сейчас я субъективно «не знаю» больше чем 10 лет назад. Просто теперь я знаю о существовании большего количества технологий, о которых тогда не знал и даже не мог подумать в принципе. Это нормально, и не думаю что программирование в этом сильно специфично как специальность.

По поводу знаний и «великих гуру» у которых можно поучиться. Я встречал коллег, которые будучи опытнее меня в каких-то технологиях и в целом уступали мне в некоторых частностях. И это тоже нормально, хотя возможно и более специфично для профессии. К примеру, я когда-то давно впихнул в себя толстую книжку по Перлу. И хотя на нём почти ничего не писал, знания о работе с регулярными выражениями получил выше средних. Так что в результате ко мне обращались коллеги самого разного уровня, когда им было надо что-то отпарсить. Это конечно не даёт мне знаний о BigData-технологиях или современных JS-фреймворках. Просто у каждого свой уникальный набор опыта. Это хорошо. И не советую искать себе позицию подмастерья. Лучше поищите места в команде, где лично ваш опыт будет полезен коллегам не менее чем их опыт будет полезен вам.

И под конец байка. Ходил я как-то на собеседование в очень толстую контору (уровня самых толстых в рунете). Основной код проекта был на PHP, и естественно на собеседовании мы начали обсуждать этот язык. Забавнейшим образом спор зашёл о том, как работает isset по сравнению с empty. И вот их техдир на пару с главным программистом начинают c пеной у рта доказывать мне, что isset не принимает больше одного аргумента. А я знаю что принимает, буквально пару дней назад использовал в коде. В общем после пары заходов и попыток надоумить их почитать мануал я махнул рукой и смирился с тем, что у них другой isset. На работу меня туда конечно не взяли. Но с тех пор я твёрдо уверен, что даже очень крутые дяди не знают всего-всего. Всё знать не возможно и не нужно к этому стремиться. Нужно либо учиться работать в команде и быть полезным не менее чем другие будут полезны тебе, либо тихонечко пилить fun-проект или тюнить проект с открытым кодом на любимой технологии. Но второй вариант чаще подходит как хобби, а не как профессия.
Встряну еще раз с юбилейным 100-м комментом. Публиковалась некоторое время тому назад на хабре история, habrahabr.ru/company/veeam/blog/267187, как парень из бомжа сеньором девелопером стал.

И ведь не ныл он о том, что в ВУЗе учили плохо, и что начальник игрой в линейку мотивацию подрывал.
А просто поставил себе цель и шел, шел, шел к ней.
И на этом пути пахал, пахал, пахал.

В этом ответ на все вопросы. Было бы здоровье так учиться и работать, было бы желание — все остальное — приложится и образуется.
Отсутствие у преподавателя объективного ответа «зачем?»
Это бич не только высшего образования. У многих детей в школе проблемы с математикой не потому что у них способностей нет, а потому, что они не понимают, где знания могут пригодиться.
Элементарный пример — производные интегралы. На уроках математики нам их преподносили как факт. Мы учились их вычислять, строить графики и т.д. Но лишь в курсе физики через год им нашлось реально применение, и они обрели совсем иной смысл, и понять их на примере физики намного проще.
1) Автор недооценивает себя. Если вся история правда, то автор очень опытный человек.

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

P.S. Касательно PHP: не раскрыта тема священной коровы — ООП-секты =)

Поверьте, эта правда, и не только у автора…
Этот пост поймет только человек который всегда стремится достичь большего, не останавливаясь на достигнутом и родился в маленьком богом забытом городке.
Автор описал все очень красиво и без обмана, показал правду жизни такого программиста как я сказал выше.
Человеку родившемуся в столице не понять написанного…
Автору выражаю свое уважение! У меня почти все так, только с образованием совсем по другому (Я сам учился изначально) И в столице я остался.
Я давно понял что меньше работы — больше зарплаты. И это важно, так как ты не живешь с мамой и папой, и квартиру или дом тебе никто не подарит.
Я давно понял что меньше работы — больше зарплаты.

Так, меньше работы — больше зарплаты => больше времени на свои проекты во фрилансе => ещё больше зарплаты + опыт.

P.S. Обычно, в начале развития IT карьеры можно выбрать между высокой зарплатой, но без роста полезного опыта или относительно низкой зарплатой, но с перспективой роста как профессионала. Скажем, джуниор Java разработчик может зарабатывать меньше того кто просто ставит 1С пользователем без всякой настройки. Но тот кто ставит 1С программы и через 10 лет будет получать столько же, а Java синеор может просить значительно более высокую зарплату чем джуниор (не говоря уже о возможности переехать в другую страну и получать в десятки раз больше). Что в общем-то и видно на примере автора, принцип «меньше работы — больше зарплаты» на самом деле «поедание» сейчас своей зарплаты лет через 10, т.е. «больше зарплаты сегодня — меньше завтра»
UFO just landed and posted this here
Английский надо знать не потому что доки на нем, а потому что англоязычный интернет самый большой. К примеру русскоязычный сегмент — Россия и СНГ. А взять англоязычный — это не только Великобритания и Америка, но еще и многие другие страны, включая Россию, и страны СНГ. Да-да, вы не ослышались: многие программисты ищут и пишут ответы на том же английском Stackoverflow, при этом национальность не имеет значения — это могут быть и Китайцы, и Русские, и Итальянцы, и вообще кто угодно.

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

Братан, все написано правильно, но есть одна вещь, которая перекроет все написанное выше.
Вообще все. Не надо заниматься самокопанием, расписывать теории почему все плохо и т.д.
Почему так говорю? Потому что у меня жизнь складывалась еще веселее: с 8-го класса проводил вечера с паяльником, между тренировками бегал в библиотеку читать журнал «Радио». Но после школы вышел эпичный облом — не поступил туда куда хотел в итоге закончил институт с записью в дипломе «менеджер». Я с первого курса понимал что мне это не надо, но мне повезло, нашел себе занятие в виде работы эникеем и с 17 лет ползал под столами. В то время ночами переставлял 98-ю винду которую сам же криво поставил неделей раньше. Мне были непонятны даже азы — не понимал что такое маска подсети, как обжать витую пару и т.д. Сейчас смотрю во вчерашний день и с трудом понимаю как это все вывозил. Но как-то вывез. На пятом курсе я уже админил сетку с контроллером домена, шлюзом в интернет и т.д. Через год админил сетку на небольшом заводе в 150+хостов.

Я не ставлю целью хвастаться своими успехами, просто на том старте и выбранном пути по которому пошел шансы у меня были не велики. Я был всегда одержим. Был одержим тогда когда по ночам 98-ю винду переставлял. Был одержим когда настраивал первый (и в торой и третий и даже наверно десятый) линуксовый сервак, был одержим когда увидел управляемые комутаторы cisco, когда перловым скриптом завесил модем выдергивая из вконтакта свои переписки в виде файлов электронной почты xD и т.д. и т.п. И одержимость эта была обусловлена всего лишь одной вещью — мечта.

Бро, я скажу прямо — у тебя не было мечты или мечта была далека от того чем занимался. У меня был в жизни один эпизод, очень сильно напоминающий повествование. Я пришел в контору занимающуюся 1С с целью стать 1С программистом, до этого окончив 8-ми месячные курсы бухгалтеров чтобы разбираться в бухучете. Меня от туда на третий день выгнали. Мотивация была такая: 1С == деньги. То что это вообще не моя тема и далеко от мечты — решил «стерпится — слюбится». В конце концов знакомые ребята работают и неплохо зарабатывают. Но нет, мне очень быстро жизнь дала понять что это того не стоит и дала пинка ногой работодателя.

По этому мой тебе добрый совет, который однажды услышал сам — «иди за своей мечтой!».
Я за ней шел окольными путями и бессонными ночами и в итоге пришел и скажу — оно того стоило, только будь честен с самим собой, не надо смотреть на социальные паттерны, у меня в роду технарей нет вообще, с детства воспитывали быть гуманитарием, но моя мечта была стать технарем, хорошим-плохим — НЕ ВАЖНО, вот и все. По этому если человек в глубине души хочет стать аквариумистом, а его родители настаивают чтобы он был портным — он либо сломается, предаст мечту и будет тосковать по тому что не сбылось, либо будет сначала голодным и одержимым, а потом счастливым.

Выбирай бро, но будь честен с самим собой! 30+ лет это не приговор, это только начало!
Удачи и всех благ )

P.S. спасибо всем кто дочитал)
«Учить нужно то, что пригодиться в жизни»
Иронично.
Самообразование — это самый лучший вариант образования для программистов, хотя, стоит признать, что не для всех.
Очень часто кажется, что десятилетия опыта — это о чём то говорит.

Что чем больше человек знает, это лучше.

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

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

Почему-то все в пример приводят людей действительно увлеченных или одаренных. К сожалению я не получаю оргазм когда пишу код. Бывает что я ставлю себе задачи и мне интересно докопаться до их сути. Мне было интересно написать код преобразующий EAN в работающий штрих-код. Но не более того. Поэтому программирование не моя страсть, а скорей осознанный выбор с долей упертости.
Что же действительно интересно? Мир IT технологий, его возможности, изобретения, и так получилось что основа этого — программирование, электротехника.
Так ли мне нужно программирование? Да, моя упертость подогревается как минимум тем, что программирование это один из видов деятельности, который дает шанс реализовать себя (свои идеи) без стартового капитала. Сделать что то полезное и нужное, для кучи людей, независимо от их географического месторасположения. Ощутить себя причастным к миру где фантастика со страниц книг выходит в реальность.
Что-то у меня получается, что-то нет, но тем нем менее с момента своего выбора я до сих пор придерживаюсь данного направления. Этого хватает что бы устроиться на работу или найти небольшую халтурку, в общем на хлеб хватает, но хочется чего-то большего.
Вот и выходит, что страсти нет, но есть желание её развить, и конкретно к программированию.

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

Ну а по поводу всех этих онлайн курсов… Они полезны, если есть хорошая база. Помогут изучить синтаксис, основные функции, работу с той же IDE и сопутствующими программами Только что дальше с этим делать?
Вот вам пример:
Нужно написать игру в крестики-нолики. Я знаю как передать данные на сервер и получить, что бы можно было делать ходы. Но тут встает вопрос как проверять ситуацию на игровом поле? Конечно же не зная как, я полезу в интернет искать решение, где найду код программиста после онлайн-курсов. Там будет сравнение массивов со всеми комбинациями в игре путем перебора. Вставлю все это в своей проект и все — продукт готов. Почему? Потому что у меня нет базы, нет знаний построение алгоритмов, а продукт сдавать надо завтра.
Просто надеяться что я додумаюсь преобразовать массив в строку, задать пару правил через регулярные выражения и искать вхождение сомнительно, хотя не отрицаю что это приходит с опытом. Но а дальше что? Дальше нужно думать что кроме мультплеера есть сингл, и нужно уже учить компьютер просчитывать ходы. А потом будут шахматы, и тут простым поиском вхождений не обойдешься. Вспомнить все те математические дисциплины, которые до этого никогда не пригождались нереально. Ну а если ты их вообще не проходил, а выучил С++ на онлайн-курсах? Вот поэтому и нужны учебные заведения, которые не только закладывают ту самую базу, но ещё связывают ее с реальными задачами — Покер с тер.вером.

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

Публикация так же несет некий скрытый и эгоистичный смысл. Это попытка вызвать заинтересованность пользователь хабра к предлагаемым решениям, при осуществлении которых мне самому было бы легче ориентироваться в этой среде. Найти действительно годную и полезную литературу как по базе, так и по выбранному направлению. И разумеется найти ментора, который поможет набрать опыт и знания в процессе реализации конкретной идеи. Ментору же получить возможность поработать над заинтересовавшим его проектом, судя по комментариям и статьям на хабре, некоторые готовы ни спать, ни есть, дай лишь бы поучаствовать и покодить, и денег не надо, это как хобби. Другие помощь новичкам расценивают как «работу над ошибками» или способ не утратить свои знания. Кто-то увидит возможность поиска или формирования команды, в качестве тим-лида из еще не набивших себе цену людей. Но и коммерческая основа вполне может присутствовать, в виде процента вознаграждения от завершенного проекта — инвестиции в виде своих знаний для получения прибыли. Один раз помог человеку довести идею до логического завершения и получаешь все оставшееся время 10% от прибыли.

Отдельно хотел выразить свое недоумение по поводу совета «менять работу раз в 2 года». Может и дельный совет, он способствует профессиональному росту. Карьерному — нет. И уж точно совет не работает в городах, где на всех 5 веб-студий, 2 конторы разрабатывающие ПО, и 3 занимающиеся 1С, Когда ты молод и зелен переезжать можно с места на место хоть каждый день, а когда у тебя жена и ипотека — непозволительная роскошь.
1. много говорите
2. не слышите других людей
3. не можете — значит не сильно надо
вывод: тупо читайте умные книжки, потом может это будет осмысленно — то о чем все говорят
1. не верь (себе и своим «хотелкам» в первую очередь)
2. не бойся (много работы — не «ссы» а делай)
3. не проси (мир вам ничего не должен)
Удачи.
UFO just landed and posted this here
Удаленно работать тоже нет возможности? Уж лучше, чем аникеем или на заводе базы данных аксесса на делфи программировать.
UFO just landed and posted this here
Попробуйте открытые курсы того же MIT.
UFO just landed and posted this here
Но как же фриланс? Тот же Odesk aka Upwork. Там при должном усердии можно найти что угодно. Знать новомодные фреймворки нужно далеко не для каждой вакансии. А учитывая доход в зелёной валюте даже очень нерегулярный заработок должен оказаться повыгоднее гос.службы в её классическом виде. Так что если долго мучиться, оно должно взлететь.
Что касается удалёнки — это довольно напряжное дело. По личным ощущениям, действительно, хотят фуллстек гуру со знанием всего и желательно подешевле. То же самое с отечественным фрилансом: очень часто хотят что-то невменяемое за смешное вознаграждение.
UFO just landed and posted this here
Ну вот почему я нахожу и миллионы других людей находят? Почему я не брал там ни одного заказа, который принес бы мне меньше 1000$, имея самую первую ставку(совершенно без опыта на одеске и, соответственно отзывов и ворк хистори) 15$\час? Ну вот почему Вы написали уже тонну текста и нашли 1000 оправданий вместо того, чтобы взять и сделать что-то чтобы устранить проблемы, улучшить свои знания, практиковать скилл привлечения клиентов и т.д?

Я просто оставлю это здесь, потому что я хочу зайти сюда через год и убедится, что у вас ничего не получилось. Сидите в дерьме и жалейте\оправдывайте свою лень и себя дальше, удачи.
UFO just landed and posted this here
См пункт 3. не проси (мир вам ничего не должен)

Вы хотите:
1) стабильную работу,
2) при выполнении которой могли бы учиться,
3) поднимать свой профессиональный уровень с базового и изучать актуальные технологии

фриланс не тот — сектор
ит — сфера услуг, т.е. рабочие места есть только в развитых экономиках
мораль такая — нужно выбрать что-то одно решить чем готов жертвовать
UFO just landed and posted this here
Sign up to leave a comment.

Articles