В данной статье подробно рассказывается, как начать карьеру программиста. Здесь будет много букв. И, возможно, вы разочаруетесь, насколько это долгий процесс. Но это 100% метод.
1 Введение
1.1 Зачем вам это надо
Будь писцом! Освободит она [эта должность] тебя от податей, защитит она тебя от работ всяких. Удалит она тебя от мотыги и… и не будешь ты носить корзину. Она отделит тебя от гребли и весла, удалит она тебя от хлопот. Не будешь ты под владыками многими и под начальниками многочисленными.
[...]
Сделайся писцом! Гладки его члены, и станут твои руки мягкими. Когда ты выходишь, ты разодет, тебя возвеличивают, тебя вопрошают придворные. Когда ищут умелого, — находят тебя. Ничего не знающие ищут ученого. Он [же] возвышается вплоть до получения им [звания] сера, восхваляемый за свое прекрасное поведение.
Папирус Апастаси II, Древний Египет
Времена проходят, а ничего не меняется. Главная причина в том, что программисты очень нужны на рынке труда. Востребованность является первопричиной всех остальных факторов. Хорошие условия труда, высокие зарплаты, лояльное начальство. Все это смотрится очень и очень привлекательно. Фактически профессия программиста единственный социальный лифт в наше время. Вам не нужны богатые родители, обширные связи со всякими «нужными людьми», престижное высшее образование и прочие атрибуты успешных людей в наше время. Всё, что вам нужно, это умение создавать компьютерные программы или web-сайты. Вы можете начать программировать, живя в самой далёкой и непрестижной провинции. И добиться фантастических успехов в жизни.
Ориентировочно, в самом плохом случае, ваша карьера может выглядеть так. Сначала полгода-год самостоятельной учёбы. Т.е. учёбы без широкой посторонней помощи. Максимум что вы сможете, что-то спросить на тематических форумах. Вам обязательно помогут. Но на 99% это будет чтение больших толстых книжек и выполнение упражнений оттуда, 3-4 часа каждый день. Потом вы сможете получать деньги за свои знания. И найти такую работу будет реально. Проработав так год, за самую обычную зарплату 300-400$. Вы получите опыт, открывающий перед вами все двери в жизни. Сможете получать от 1000$ удалённо и\или уехать туда, где вам больше нравится. Даже в другую страну. И жить там ничуть не хуже, чем местные. Я не поддерживаю дурацкий лозунг «свалить из ...», но если вам очень охота сменить ПМЖ. Эта профессия самый короткий и лёгкий путь.
После того, как вы закончите свою стажировку, вы никогда не будете жить хуже. Это будет очень сложно. Даже чисто психологически профессия расслабляет. Вы не будете бояться кризисов, войн, стихийных бедствий и дурного начальства. Потому что в любой момент сможете переехать куда угодно и сменить работу на другую. Вам всегда хватит денег на «булку с маслом» и даже досрочное погашение ипотеки.
1.2 Кто может стать программистом?
Теперь немного дёгтя. Программистом может стать любой, кто может работать головой. По сути работа головой так же тяжела, как тяжёлый физический труд. Мозг при нагрузке потребляет много питательных веществ, энергии. Его надо заставлять работать усилием воли. Любителей работать головой можно встретить не чаще, чем людей которым нравятся физические нагрузки. Все мы знаем, сколько людей могут добровольно делать зарядку по утрам и ходить регулярно, годами в тренажёрный зал. Примерно столько же хотят добровольно нагружать свой мозг работой. Понадобятся воля и терпение. Если вы готовы решать сложные задачи, «неразрешимые» проблемы более года, вы сможете стать программистом.
Конечно, в данной части я должен был перечислить какое образование у вас должно быть. Какие курсы, дипломы и компетенции надо иметь. Но всё это вторично. Потому что дипломы, компетенции и курсы дело наживное. Если нет готовности грызть гранит науки, вам не светит ничего. А в противном случае сможете набрать все необходимые знания за полгода.
Вполне логично, чем лучше знаете компьютер, тем легче будет ваш путь. Вы должны владеть компьютером, как опытный пользователь. Т.е. знать, что такое файловая система, по части как там хранить свои файлы, как открывать их разными программами, как устанавливать программы и пользоваться любыми из них, если это не требует каких-то специальных знаний о том, что эти программы делают. Думаю, за полгода можно научиться пользоваться компьютером в достаточной степени. Даже если до этого, вы не видели его никогда.
Большинство желающих стать программистами, любители компьютерных игр, которым родители отключили инет для того, чтобы вернуть в реальность. Вернувшись в реальность, где надо кормить себя, а не виртуального персонажа. Устраиваются системными администраторами, самого низшего звена. Идут работать в техподдержку, потому что компьютер, единственное чем они могут пользоваться хорошо. У таких людей уже есть нужный багаж знаний.
Если же вы испытываете трудности при общении с компьютером, мой вам совет, научитесь сначала пользоваться им уверенно. Хотя бы потому, что проблемы, с которыми будете сталкиваться, изучая программирование, требуют того же подхода и навыков, что и при решении проблем простого пользователя. Поэтому неопытным пользователям надо стать опытными. Есть огромное количество бесплатной литературы, интерактивных курсов, видеоуроков и опытных пользователей вокруг, которые помогут вам. По крайней мере, задачи при изучении программирования на порядок сложнее задач простого пользователя. Хорошее владение компьютером — обязанность любого программиста!
Остальные знания, типа иностранных языков и даже математики, можно считать малозначительными на начальном этапе.
Конечно останутся люди, которые спросят: «Погодите!!! A что если я тупой (старый, инвалид и т.п.)??? Какой у меня должен быть IQ???»
На самом деле, нет 100% способа определить ваши способности к программированию по каким-то формальным признакам. Если верить одному популярному учёному — нейрофизиологу, мозг человека очень изменчив. Если вес, рост, размеры основных органом человека варьируются, условно +\-50% у основной массы взрослых людей, то размеры долей головного мозга варьируются в десятки раз. Поэтому понять, какая деятельность подойдёт вам больше всего, очень сложно. Для этого, надо сделать новый тип и без того безумно дорогого медицинского прибора. Потом нанять редких и дорогих специалистов, которые разберут показания прибора. И при этом не факт, что за ваши деньги, они просто не наделают ошибок. Как это бывает во всех сложных и дорогих проектах, на начальном этапе.
Конечно, все думают, всё можно свести к чему-то подобному вступительному экзамену в ВУЗ, где главным предметом будет математика. А вот и нет! Спешу всех расстроить. Математика снаружи похожа на программирование, но это только на первый взгляд. Помнится, 10 лет назад читал отрывок из книги, где автор опытный программист говорил, что программирование больше похоже на лингвистику. Да-да! По его мнению, профессиональные лингвисты могут быть лучшими программистами, чем профессиональные математики! Не могу согласиться на 100%. Но рациональное зерно в этом есть.
Давайте рассмотрим пример. Надо вам составить инструкцию ребёнку, чтобы он купил продукты в магазине. Типа: «Идёшь в магазин, ищешь тростниковый сахар, если его нет, покупаешь обычный. Потом покупаешь хлеб, буханку белого и чёрного. Если не будет чёрного, купи серого… » Вы удивитесь, но такого рода инструкции это чистое программирование. Причём, их вы можете написать на иностранных языках. А можете, используя синтаксис языка программирования так же, как иностранного. И другой программист сможет понять написанное.
Для тех, кто не верит, давайте рассмотрим простую логику, реализованную в сотнях программ. «Запросить количество строк, выделенных в таблице. Если количество больше нуля, сделать кнопку 'Применить' активной. Иначе пассивной… » Вы так же можете записать данный алгоритм на естественном родном или иностранном языке или на языке программирования.
Вы так же удивитесь, но перевод алгоритмов с естественного языка на язык программирования это самая обычная работа. Когда программисту дают задание реализовать чёткую логику, придуманную другими. И наоборот, перевод запрограммированной логики на естественный язык тоже нужен. Когда этим «другим» надо описать, как точно работает программа. Да, всё верно, С++, PHP и другие языки программирования можно воспринимать, как особенные иностранные. Математика тоже бывает нужна, но, как правило, при выполнении каких-то узкоспециальных задач, с которыми вы, возможно, ни разу не столкнётесь. Начинать можно и без математической подготовки.
Программирование — это отдельная отрасль науки. Она связана с математикой некоторым образом. Но её так же можно связать и с лингвистикой. Наверняка отдельные технологии программирования связаны с чем-то ещё. Поэтому нельзя так просто сказать, получится у вас или нет.
1.3 Три этапа на пути к профессии
Теперь, когда вы достаточно утомлены всякой околопрограммистской чепухой и немного удивительными фактами, настало время перейти непосредственно к учёбе. Ваше профессиональное становление должно происходить в три этапа:
1) Пробный период. Вы должны попробовать данный вид деятельности.
Дело в том, что освоение профессии — полгода или даже год учёбы. И вам надо, как можно раньше понять, сможете или нет. Стоит ли вам инвестировать своё время и даже деньги. Или ждёт разочарование.
В этот период необходимо освоить 2-3 технологии настоящего программирования. Но они не должны требовать много времени на освоение. Если справитесь, есть смысл тратить обещанные полгода-год на следующий этап.
2) Самостоятельная учёба.
Если прошли предыдущий этап, можно инвестировать своё время в овладение профессией.
3) Стажировка.
Ваша первая работа и первые деньги.
2 Пробный период
2.1 Что делать?!
На самом деле есть только один способ узнать сможете вы или нет. «Чтобы начать программировать, надо начать программировать. А чтобы начать программировать, надо начать программировать!»
Многие считают программирование сложным занятием, надо много чего знать для работы программистом. И это правда. Если бы это было просто, им не платили бы такие большие зарплаты. Но с другой стороны, есть много книг в свободном доступе. Причём большинство из них качественные. Профессионалы из больших компаний склонны писать огромные книги или статьи, где описывают свой бесценный опыт другим. Странные люди конечно. Вместо получения огромных денег за работу занимаются книгописательством, за которое платят меньше, а то и совсем ничего. Эти «странности» будут рассмотрены позднее. А сейчас надо чётко усвоить, секретов в данной профессии очень немного. Большинство вопросов решаются поиском в интернете. Поэтому несмотря на сложность, программирование одна из самых доступных профессий.
Во время пробного периода вам надо определиться с технологиями, на которых вы будете начинать. Они не должны быть слишком сложными и долгими в освоении. Но, с другой стороны, должны быть востребованны рынком, чтобы даже те пару недель или месяц, потраченные на них, не пропали даром.
Лично моё мнение, это должны быть:
2.1.1 HTML
Очень простой язык программирования. Если быть точнее, это даже не язык программирования, к которым все привыкли. Процедурный и объектно-ориентированный, типа С++, PHP, Ruby и т.п. На нем невозможно написать, «что делать в магазине». Это язык разметки, который вы встретите в любой web-страничке. Инструкции этого языка выглядят примерно так: «Вот у этого параграфа должен быть наклонный шрифт», «Здесь отобразить картинку picture.png», «Размер шрифта данного куска текста 12 точек. Цвет красный».
Это очень полезный язык для начинающих. Даже если вы не собираетесь в web-разработку, эти знания вам пригодятся. Ориентировочное время освоения, 2-5 дней. При этом, необязательно запоминать обширные справочные данные. Достаточно научиться пользоваться этими самыми справочниками. Среди программистов, HTML не считается чем-то серьёзным и сложным. А вот незнание основ HTML, то в чём вы можете признаться только самым близким людям. Работодатели и коллеги будут вас воспринимать, как умственно-отсталого.
По мере изучения HTML вы будете постоянно сталкиваться с отсылками к технологии CSS. Изучение не обязательно на данном этапе. Но если увлечётесь СSS, эти знания не будут лишними.
2.1.2 JavaScript
Это уже «настоящий» язык программирования. Его изучение тесно связано с HTML. Вот тут вас ждут первые настоящие сложности. Хотя по языку огромное множество учебников, видеоуроков и всевозможных сайтов, где все разжёвано до самых мелких подробностей. Это будет реальным испытанием.
Наверняка кому-то не терпится начать изучать С, Python и даже Haskell. Но даже если вы собрались стать системным программистом. Скорее всего, рано или поздно столкнётесь с HTML и JS.
Одна из причин выбора JS как первого языка программирования, его применимость в разных областях. Начиная с логики web-страничек на стороне клиента. Кончая JS-подобным языком QML, куда нас тянут за уши разработчики фреймворка Qt.
Если начинающий программист не знает простых вещей, нет большой разницы на чём начинать. Предложенные технологии не требуют больших и тяжёлых сред разработки, исполнения. По ним — много учебников и справочников на русском. Не нужно путаться с адресной арифметикой и подобной спецификой. Ваша задача, научиться делать базовые логические конструкции типа циклов, ветвлений и т.п.
Любой учебник содержит упражнения. И на начальном этапе вы должны делать эти упражнения. Чем больше, тем лучше!
Однако, есть две небольшие категории людей, которым можно заменить JS на что-то другое:
1) Те, кто имеет хороших наставников по другим технологиям программирования.
К примеру, брат\сват, работающий системным программистом С. И он готов вам помогать. В этом случае С может быть предпочтительней. Но насколько знаю, около 30% программистов, WEB-программисты. Так что с большой вероятностью JS будет правильным выбором.
2) Люди, которым какой-то другой язык нужен, прямо сейчас для работы. Системным администраторам, как правило, SQL и bash.
В случае SQL я бы не стал обольщаться. Это тоже «ненастоящий» язык. Сложность между HTML и JS. Его скорее всего, придётся учить в любом случае всем. Но со временем я бы советовал, всё равно попробовать что-то типа JS, поддерживающее процедурное и ООП парадигмы. Плюс в изучении SQL всё-таки есть. Если вы его не осилите, смысла продолжать нет.
А вот с bash всё по другому. Слышал, JS позволяет заменять bash через модуль в node.js. Так что, если надо написать скрипты с нуля, JS будет поинтереснее. Если исправлять написанное до вас, тогда другого выбора нет. Так же, как и с SQL, JS останется у вас на очереди.
2.2 Учебные пособия
Очень важный вопрос, какие учебные пособия использовать. Здесь перечислены варианты в порядке, которoм должны их проходить.
- Видеоуроки. Их стало очень много на любые темы. Youtube обязательно выдаст плейлисты по любым популярным технологиям. Даже на русском. Там всё наглядно, и начинать ваять свои первые «Hello, world!» надо именно с них. Недостаток только один. Они могут не покрывать всех глубин изучаемого языка. Но вам хватит проблем и без этого.
- Мультимедийные учебники. Скорее всего, это коллекции видеоуроков плюс ещё чего-то. Очень часто продаются за деньги.
- Книги. Самые тяжёлые для восприятия. Они как раз покрывают больше тонкостей различных технологий. Оставьте на потом. Когда исчерпаете возможности предыдущих вариантов.
Но только пожалуйста, здесь и далее. Не надо покупать никакие курсы и платить за чудо-учебники. Все «чудеса» уже давно лежат, максимум на торрентах. По моему мнению, запрещённый в России rutrracker, содержит самое лучшее собрание мультимедийных учебников и книг.
2.3 Решение технических проблем
Проявив силу воли и терпения, вы героически начали изучение предмета. И перед вами стали вставать всевозможные технические проблемы. Вы можете всё делать по инструкции. Но ваши примеры могут не работать. Хотя бы потому, что инструкции могут быть написаны для предыдущих версий программных инструментов. Самый сложный шаг может быть с первым запуском исходного кода, который вы просто переписали из учебного пособия.
Самые распространённые ошибки связаны с тем, что начинающие склонны торопиться и считать какие-то вещи не обязательными. Вы, как и любой нормальный человек, думаете в книгах о программировании есть второстепенные моменты. Вам наверняка хочется побыстрее получить результат, в виде должности стажёра. А уж там то, в окружении компетентных коллег, всё поймёте и основательно изучите. Поэтому «какой-то учебник» по JavaScript, который даже не будет вашим основным языком. Может восприниматься как марафонская дистанция, которую надо преодолеть побыстрее. На самом деле, любой учебник по программированию надо воспринимать как поле, которое надо вспахать. Все, кто пропускают мелочи, заканчивают тем, что сталкиваются с неразрешимыми проблемами. И вместо компании компетентных коллег, их ждёт полное одиночество в изучении материала заново.
Например, вы плохо запомнили какой-то второстепенный термин? А через пару дней интерпретатор кода или компилятор, выдаст вам многословный вывод об ошибке. В котором будут десятки терминов, как тех, которые встречались ранее в учебнике, как и не встречавшиеся. И ошибка, которую вы распознаете, может оказаться ключевой. После её исправления волшебным образом исчезнут все остальные. Большинство причин бросания учёбы на начальном этапе связаны как раз таки с разбиранием ошибок, выдаваемых интерпретатором или компилятором.
Вам кажется, подробное описание использования кавычек с арифметическими операциями — какой-то сумасшедший бред, которым вы не будете никогда пользоваться? Вы может быть и нет. А вот автор считает это простым. Поэтому далее в учебнике, сложение символов с кавычками и без, будет встречаться повсюду. Но даже, если вы решите, что лучше взять учебник по другому языку программирования, на который вы возлагаете большие надежды. Он тоже будет мучать вас строками типа '5' + 3. Причём, с теми же «дурацкими» многословными объяснениями.
Неразрешимые проблемы, это часть жизни любого программиста. И как бы вы прилежно всё не делали, никуда от них не денетесь. Лично я, даже не смотря на 5 лет стажа, также смотрю в книги о чём-то малопонятном и сложном. И также иногда думаю: «Ваще ерунда какая-то. Как же я буду это решать?!» И абсолютно так же, как и у вас. У меня многое зависит от решения проблем, кажущихся совсем тупиковыми.
Если вы имеете проблемы, с которыми можно обратиться на форум или тематическую группу соцсети, то с моими проблемами, это бесполезно.
На самом деле, есть особый алгоритм для их решения:
1) Надо очень хорошо подумать над причинами. Анализ сообщений компилятора, среды выполнения или интерпретатора(JavaScript), связанные с ошибкой. Вы должны очень хорошо понимать, что вам пишет компьютер о проблеме. Если не понимаете, ищите в интернете по тексту или коду ошибки. Очень часто объяснения находятся, но на английском. Даже после перевода мало что можно понять. Но надо очень сильно стараться. На самом деле это не просто ситуация, где вы решаете конкретную проблему. Это ситуация, где вы получаете новый опыт. Не менее важный, чем знания из учебника. Наряду с этим, проводится анализ потенциально проблемного кода. Если вы переписали или скопировали код откуда то, надо досконально в нём разобраться.
Если за полтора-два часа вы, казалось бы, всё исследовали и поняли. Но так не нашли решение. Значит надо оставить проблему до завтра. Даже если есть ещё идеи.
2) Займитесь чем нибудь другим, что не зависит от вашей проблемы и получается. Можно даже продолжить изучать ваше текущее учебное пособие. Вы удивитесь, но со временем придут идеи, как решить вопрос. Если они не совсем ясные. Бросаться сразу на решение, не рекомендуется. Лучше записать и оставить на завтра.
3) На следующий или любой другой день. Пробуем все новые идеи, для решения проблемы. Повторяем первый этап.
4) Если всё по прежнему плохо, готовим вопрос наставнику или на форум. Вам надо чётко понять, что вы хотели сделать. И что представляет из себя ваш код. Просьбы разобраться за вас в коде, который вы даже не удосужились хорошо изучить, говорят о полном неуважении.
Как правило, этого вполне достаточно для решения любых проблем.
2.4 Работа с наставниками
Небольшой свод правил по работе с различными опытными специалистами, наставниками, менторами и т.п.
- Прежде чем спрашивать, надо попытаться найти решение самому.
- Спрашивать старайтесь только то, что не описано в книгах, документации и интернете. В противном случае, вас пошлют туда.
- Если вас куда-то послали, туда надо сходить. Иначе наставник пойдёт туда сам и найдёт решение. Это очень испортит его мнение о вас.
- Что бы наставник не стоял у вашего стола часами и не смотрел за каждым вашим шагом, надо группировать вопросы. Задавать их «оптом», множество накопившихся за один раз. А не по мере возникновения.
- Вопросы лучше задавать тогда, когда ваше движение вперед заблокировано. Если есть ещё чего делать кроме, делайте. Оно тоже может породить вопросы. Которые лучше задавать вместе.
3 Самостоятельная учёба
Вставай на твоё место! Книги уже лежат перед твоими товарищами. Возьми своё платье и позаботься о своих сандалиях. Читай прилежно книгу. Не проводи дня праздно, иначе горе твоему телу! Пиши твоей рукой, читай твоим ртом, спрашивай совета того, кто знает больше тебя.После освоения основ JavaScript. Вы уже хорошо представляете себе, что такое писать код программ.
Не проводи дни праздно, иначе побьют тебя, ибо ухо мальчика на его спине, и он слушает, когда его бьют.
Не будь человеком без разума, не имеющим воспитания! И ночью тебя учат, и днём тебя воспитывают, но ты не слушаешь никаких наставлений и делаешь то, что задумал. И львов обучают, и лошадей укрощают, — и только ты! Не знают подобного тебе во всей стране. Заметь это себе!
Мне говорят, что ты забрасываешь ученье, ты предаёшься удовольствиям, ты бродишь из улицы в улицу, где пахнет пивом. А пиво совращает людей, оно расстраивает твою душу. Ты похож на молельню без её бога, на дом без хлеба. Тебя учат петь под флейту. Ты сидишь перед девушкой и ты умащён благовонием. Твой венок из цветов висит на твоей шее.
Я свяжу твои ноги, если ты будешь бродить по улицам, и ты будешь избит гиппопотамовой плетью!
Наставления писцу. Древний Египет
И вы готовы потратить полгода-год на овладение профессией. И что немаловажно, для вас это дело времени.
3.1 Что изучать?
Всех людей, стремящихся овладеть какой либо профессией, можно поделить на две категории: любителей и профессионалов.
Любители, люди которым нравится данное занятие. И они готовы делать его даже бесплатно. Жертвуя временем, которое можно потратить на развлечения, отдых и пр. Раз уж вы попробовали, то отлично понимаете, нравится вам программирование или нет. У любителей есть одно очень хорошее качество. Их не надо мотивировать. Они будут много, добросовестно работать и с удовольствием получать новые знания. Потом, они с таким же удовольствием будут делиться этими знаниями с коллегами и друзьями. Но самые любители из любителей пишут статьи и даже целые книги о своём опыте.
Профессионалы же готовы заниматься этим только за деньги. Либо за перспективу их получения. Профессионалов надо мотивировать. И они практически всегда останавливаются в своём развитии, как только получают хорошую работу. Даже повышение з.п. в два раза может быть недостаточной причиной для них, продолжить учёбу. На повышение квалификации годны, как правило, только любители.
Конечно, чистые профессионалы и любители, встречаются редко. Кому-то нравится работа на половину или на четверть. Кто-то, перепробовав разные технологии, находит для себя занятие по душе.
Допустим, работал себе разработчик за деньги. Довелось ему как-то съездить к заказчику, уточнить требования с непосредственными пользователями. И понял разработчик. Наезжать к бухгалтершам, гораздо интереснее, чем писать код. В результате разработчик будет ездить за всю команду. Даже в нерабочее время. Постепенно переквалифицируется в системного аналитика или менеджера проектов.
Но в основном, пробуют разные технологии. Какие-то из них увлекают, а какие-то нет. Даже одна и та же технология может сначала увлечь, а через год надоесть.
Для любого человека очень важно понимать, какая деятельность нравится больше. Потому что от этого сильно зависит жизненный комфорт. Распространено ошибочное мнение, что работа только для зарабатывания денег. Хотя это огромная и самая лучшая часть жизни. На работе можно заниматься творчеством, общаться и ещё много чего. Если вы ходите на нелюбимую работу ради денег, придётся это как-то компенсировать развлечениями, отдыхом. В результате, денег на компенсацию может даже не хватить.
Самые высокооплачиваемые специалисты — это любители с опытом. Они же получают наибольшее удовольствие от работы и жизни. Поэтому на данном этапе надо определиться, что нравится больше всего.
Технология (язык программирования, который будете изучать) обязана быть коммерчески востребованной. Из ТОП 10 популярных языков. Иначе, не сможете получать деньги за свой труд. Это значит, программистом вам не стать. Придётся отдельно зарабатывать деньги, отдельно программировать. Что, естественно, невозможно.
У вас впереди ещё стажировка. И на стажировку берут охотно только по дефицитным специальностям. Особенно удалённо. Поэтому думайте\решайте, чему хотите посвятить свою жизнь. Что будете изучать на данном этапе. Можно продолжить и JavaScript. Можно попробовать, что-нибудь другое. Никто не мешает передумать на середине пути. Вы уже испытали себя и есть определённое поле для экспериментов.
Единственное исключение я бы сделал для С++. Это сложный язык. Он, наверное, требует в два раза больше времени на освоение. Чем просто С или JS. При этом зарплата будет больше максимум на 20%. С++ это язык любителей С++.
Если вам не по нраву JS, и вы чувствуете в себе описанного выше «профессионала», наверное, лучшим выбором будет Java. Как-то раз я не смог даже запустить программу, написанную на этом языке(jar архив). Но, с другой стороны, разработчики Java в связке с Oracle(PL\SQL) из больших корпораций, возможно, самые высокооплачиваемые разработчики в IT. При том, что это технологии средней сложности. (Предполагаю, в мире Java платят уже только за умение запускать jar файлы.)
Ещё есть замечательный язык Python. Он будет очень полезен всевозможным математикам, статистикам, т.к. открывает им дверь в мир Data Science. С другой стороны, это язык web-разработки для всех остальных.
Учёба на данном этапе нацелена на повышение своей квалификации до максимума. Фактически, вы будете повышать рыночную цену своего труда. Будте уверены, всё, что потеряете из-за программирования на данном этапе, вернётся многократно.
Самостоятельная учёба имеет преимущество перед стажировкой. Можно получать более фундаментальные знания. На самом деле, большинство программистов профессионалы. Они выучили немного. Попали на работу. И эксплуатируют свои немногие знания. Большинство того, что они читают, небольшие статейки на тему, как состряпать чего-то быстро. Либо заткнуть какую-либо проблему. Им очень не хватает фундаментальных знаний. Вы удивитесь, но не всё можно
«нагуглить». Что-то надо знать и уметь изначально. Хотя бы потому, что придётся разбираться с тем, что вы «нагуглили». Код, который вы найдёте, может написать очень хороший специалист. При недостатке фундаментальных знаний вы просто не разберётесь в нём.
Вы должны выбрать для себя большую, фундаментальную книгу по какому-либо языку программирования. И изучить её до конца. Вместе со всеми учебными заданиями.
Выполнение учебных задач на данном этапе, тяжёлое, тоскливое занятие! Вам будет скучно, неинтересно, захочется всё бросить. Большинство так и делают. Мотивируйте себя, придумывайте интересные задачи, продолжайте учиться. И вы не будете этим самым большинством.
Кроме основного языка программирования типа С, Java, JS и т.п., необходимо изучить следующее:
Английский язык
Как известно, программисты такой народ, который умеет читать по английски, но не умеет говорить. Это тот язык, на котором вы будете искать решение своих проблем, общаться с заказчиками. Разговорный английский сильно расширяет круг поиска работы. Это очень хорошо сказывается на зарплате. Хотя, надо признать, времени на него можно потратить столько же, сколько и на язык программирования.
Технический английский, изучить проще. Просто переводите материалы нужные вам, в различных переводчиках. Запоминайте незнакомые слова.
SQL
В большинстве случаев эта технология вам понадобится рано или поздно. Необязательно изучать надстройки типа PL\SQL(кроме изучения Java). Но освоить создание таблиц, джойны и юнионы очень желательно. Самым полезным, пожалуй, будет изучение на примере PostgreSQL.
У SQL есть ещё один аспект. Этот язык, возможно, самое сложное, что спрашивают при приёме на работу тестировщиком. Поэтому если выучите только его, есть шанс попасть на работу очень близкую к программированию. На такой работе будет немного легче изучать само программирование. И вас очень легко переведут из тестировщиков в разработчики. Как только покажете, что способны писать хороший код.
Освоить «слепой» десятипальцевый метод печати на клавиатуре
Печатать предстоит очень много. Поэтому освойте обязательно. В сети достаточно бесплатных онлайн-тренажёров. Можете попробовать освоить его перед первым, «испытательным» этапом. Если у вас не хватит терпения на даже на это, двигаться дальше нет никакого смысла.
Системы контроля версий
Конечно же это будет Git. Обязательно изучите основы и попробуйте в деле, на своих учебных проектах. Но в последнюю очередь. Поначалу будет сложновато понять, что это такое, какие преимущества даёт.
Эти предметы хороши тем, что позволяют не терять темпа учёбы. Даже когда застряли с изучением основного языка. У вас наверняка будут описанные «неразрешимые» проблемы. Переключайтесь сюда и потихоньку ищите решение.
3.2 Общепринятые способы получения знаний
ВУЗ
Могу очень много поведать про высшее образование. Но это не имеет никакого практического значения. Если коротко. Лучше быть стажёром через год самостоятельной учёбы, чем через четыре года посещения ВУЗа. Те, кто начнёт заниматься по моим рекомендациям сейчас, через 4 года будут проводить технические тесты при приёме на работу тех, кто сейчас поступает в ВУЗы.
Платные курсы подготовки программистов
Тут всё очень непросто. Спрос рождает предложение. Но это предложение зачастую очень плохого качества. Вы можете попробовать какие-либо из них. Но, пожалуйста, не возлагайте никаких надежд. Постарайтесь пройти первые уроки бесплатно. И бегите оттуда, если ничего не понимаете на занятиях. Никакие бренды, под которыми делают эти курсы, не добавят вам понимания предмета. «Гарантия трудоустройства» там, как правило, обман.
Курсы и школы, проводимые большими компаниями для своих будущих сотрудников
Самый известный случай, пожалуй, «Школа анализа данных» Яндекса.
Тут вас будут учить реально дорогие специалисты. И они будут делать это для своих внутренних нужд. Как правило, такие курсы имеют какие-то требования к кандидатам. Яндекс требовал математическую подготовку. EPAM требовал знание основ программирования. Просто так туда не попасть. Но если есть возможность посещать эти курсы, стремиться туда стоит однозначно! Даже если вы пробудете в «рабстве» у этих компаний за какие-то 400-500$ в месяц целый год. Большой плюс таких курсов. Там не требуют никакого образования.
3.3 Стратегия обучения
Большинство учащихся рассчитывает выучить программирование, просто учась. Типа сел за учебник незнающим предмет, а закончил его учить и стал всё понимать. Весь процесс начинающим представляется линейным. Двигаясь от главы к главе, проходя учебные задания, человек набирается знаний. Других моделей люди не представляют. Потому что никогда не делали сложных и долгих проектов. А на самом деле всё не так просто. Любой программист знает, в ходе выполнения проекта неизбежно открываются новые детали, которые мешают или наоборот помогают в его реализации. Как правило, чем больше проект, тем меньше он походит на то, что задумывалось вначале.
Простой пример. Вы заказали себе костюм в ателье. Оговорили все детали. Через неделю звонит мастер с известием, оговоренная форма швов очень плохо смотрится на костюме, надо менять. Потом выясняется, надо менять часть материала. Нужного нет. Вы меняете и меняете. В конце концов получаете примерно 2/3 от того, что задумали изначально. В случае с разработкой программного обеспечения. В проекте делового костюма может получится купальник. Причем за цену костюма. Если думаете это невероятно, cпросите потом толковых менеджеров проектов. А пока вам надо усвоить одно, в проекте вашей учёбы будет много неожиданного. И вы должны уметь работать с этими неожиданностями.
Если не углубляться в дебри управления проектами, вы должны развиваться в IT не линейно, как описано вначале. А «по спирали». Выглядит это примерно так. Если вы не знаете компьютер хорошо. Не надо загадывать, что через год будете программистом С++ или PHP. Сначала изучаете компьютер. Вам открываются новые возможности и препятствия. Например, стали больше понимать что хотите делать в итоге, сайты или десктопные приложения. Потом, на этапе пробного периода, попробуете программировать для web (html, js). Вы узнаете о программировании ещё больше. После пробного периода, можно уже загадывать своё основное направление. Какой язык будете изучать. Кто то в самом начале пути может не подозревал о системном программировании. Что есть отдельное направление, где разработчики пишут невидимые обычному пользователю программы. И возможно для вас это будет интереснее чем то, о чём мечтали вначале.
В процессе обучения совершенно точно будут чтение учебников и решение задач оттуда. Но вот сама последовательность и порядок прохождения учебных пособий должны подчиняться «спиральному» циклу. Чтобы каждый этап давал хорошую основу для следующего.
Вы должны быть менеджером самому себе и планировать достижимые цели, этапы. Прямо сейчас много молодых людей мечтают, как они будут создателям топового web-сайта или операционной системы. А кто-то мечтает написать калькулятор и получть с его помощью должность стажёра. Вы, надеюсь, догадываетесь, кто через год будет успешным программистом. Очень важно, чтобы ваши проекты и задумки имели своё успешное воплощение. Лучше синица в руках, чем журавль в небе.
Кроме этого, «менеджерские» качества очень пригодятся тем, кто считает себя «тупым». В IT очень легко быть умным и очень тяжко наоборот. Умный может запросто взять учебник, прочесть и тут же сделать что-то полезное. Тупые возьмут тот же учебник прочитают и ничего не поймут. Таким надо разбивать учебный материал на части и больше тренироваться (писать код) на основе этих частей. Можно разбить материал на такие части, чтобы дошло до кого угодно. Для тех, кто умеет планировать свой учебный процесс и решать «неразрешимые проблемы»(2.3) нет непреодолимых препятствий. Вы осилите абсолютно всё, вне зависимости от интеллекта. Пусть это займёт значительно больше времени. Но вам гораздо важнее иметь целостные и протестированные знания\опыт, чем скорость их приобретения.
Конечно вам будет очень сложно понять и, самое главное, применить на практике, такую модель. Но тех, у кого получится, ждёт приятный бонус в виде перспективы стать «менеджером проектов». Если сейчас вам просто хочется получать зарплату программиста, то зарплату менеджера проектов вам захочется настолько, что не сможете спать. Минус тут только один. Всё же для начала надо стать хорошим программистом.
3.4 Когда искать работу
Очень сложно сказать, когда надо искать свою первую работу по данной специальности. Фактически, вы можете начать поиски работы сразу после первого этапа. Подозреваю, многие так и сделают. Если вам до 23 — 25-ти лет и вы живёте там, где хорошо развита отрасль разработки ПО, у вас это получится. Может вы не станете хорошим специалистом. Но на жизнь заработаете точно.
С другой стороны. Есть люди живущие там, где разработкой ПО не занимается никто. И есть люди которым далеко за 25. Такие должны дольше учиться. Чтобы из низкоквалифицированных превратиться в высококвалифицированных. Ради получения в свои ряды высококвалифицированных программистов работодатель готов на многое. Вам могут предложить помощь в релокации. Или даже удалённую работу. Возраст за 30 или 40 лет, не будет иметь большого значения. Главное, показать свой высокий наработанный уровень.
Начать искать работу, как можно раньше, имеет смысл, если вы уже работаете на работе с высокой загрузкой. Там, где не почитаешь книжки по программированию. В этом случае вам без разницы, после какой работы вечером изучать предмет. Нынешней или после работы стажёром.
У раннего поиска есть большой минус. После собеседования работодатель будет иметь о вас какое-то мнение. Которое не захочется менять со временем, если вы когда-то показали низкий уровень знаний. Через полгода, когда будете знать гораздо больше, ваше резюме, возможно, даже не будут рассматривать. Потому что мнение о вас останется прежним. Остаётся только надеяться, что про первое собеседование со временем забудут. Но это минимум полгода. Может так быть, что работодатель ведёт базу данных кандидатов. Чтобы не собеседовать их дважды. В этом случае всё будет очень печально.
3.5 «Что мне нужно знать, чтобы взяли Junior-ом?»
Новички очень часто задают этот вопрос. Тут нет однозначного ответа. На этот вопрос может ответить только конкретный работодатель в конкретный момент времени. Ответить за весь рынок труда во все времена невозможно. Ваш шанс попасть на работу «Junior-ом» или, как я выражаюсь, «стажёром», меняются во времени в зависимости от нескольких процессов и факторов.
Процесс вашей самоподготовки делает вас более привлекательным для работодателей. В это время появляются подходящие вам вакансии. Тесно связанные с изучаемым вами языком программирования. Вы шлёте своё резюме туда. И работодатель выбирает, наиболее подходящего из откликнувшихся кандидатов. Квалификация кандидатов ограничена сверху зарплатой вакансии. Возможно, вы будете лучшим за эту зарплату. А может и нет. Итак, со временем вы учитесь и дорожаете. И в какой то момент по-любому будете этим самым лучшим из всех откликнувшихся.
Ещё есть фактор возраста кандидата. Который немного снижает вашу привлекательность. Чем больше возраст, тем больше снижение. Есть фактор наличия хорошего портфолио, который повышает. Опыт, рекомендации и многое другое.
Вы можете много стоить, как программист C++, но очень немного, как программист PHP.
Самое «халявное», фактор вашей известности работодателям. Когда вы известны большему количеству работодателей. Больше шансов, что вас куда-то возьмут.
«Терпенье и труд всё перетрут!» Непрерывное самообразование — ваша гарантия получения работы!
4 Первая работа стажёром
4.1 Как искать первую работу?
4.1.1 Портфолио
Для начала написать портфолио. Это должна быть небольшая программа или скрипт для сайта, которая делает работу, похожую на полезную. Назначение должно быть понятно вашему потенциальному работодателю. Например, адресная книга. Если вы сделаете калькулятор для расчёта траекторий полёта спутников Земли, будет конечно круто. Но ваш будущий работодатель навряд ли в теме. Поэтому не сможет оценить результат. Желательно, чтобы программа как-то хранила настройки и данные пользователя. Должен быть какой-то небольшой и целостный кусок кода. Если вы, допустим, пришлёте свой патч к какому-то свободному проекту, работодателю, возможно, будет лень вникать в исходный код всего проекта. И оценивать, что вы там поменяли в этом контексте. Хорошо, если приложение будет пользоваться SQL базой данных, там где это имеет смысл.
И самое важное, конечно. Как оно будет написано. Это должен быть хорошо форматированный и структурированный код. Будте готовы, работодатель возьмёт строку из этого кода и забьёт в поисковик.
Чтобы код в портфолио был хорош, ему надо дать «отлежаться» недельку. Т.е. написать и оставить на неделю. Потом провести ревизию всего кода. После исправления ошибок заливаете в какую-нибудь временную шару и создаёте тему на форуме с просьбой посмотреть исходный код более опытных программистов. C обязательным указанием, что это ваше портфолио.
После исправления ошибок, на которые вам укажут. Возможно, это будет даже глобальная переделка вашего творчества. Заливаете код на один из хостингов исходного кода. Тему, где вам рассказывали про ваши ошибки, удаляете. Будущему работодателю об ошибках знать не обязательно.
В конечном итоге, очень важно понимать каждую строчку, которую написали. Скорее всего, вас будут таскать по нему и задавать всякие каверзные вопросы.
Поверьте, создание портфолио и code review(проверка кода) более опытными коллегами добавит +30% к вашему опыту. Так же позволяет адекватно оценить, вашу текущую квалификацию. Ваш код, конечно, не будет идеальным. Приготовьтесь, там будут находить ошибки(бесплатно!) Это ещё полбеды. Но вот когда вы не знаете почему написали код вот так, а не по другому, настоящая беда. Значит это только то, что код писали не вы! В этом случае отфутболят с пожеланием придти через полгода со своим кодом.
4.1.2 Резюме
Вообще, по резюме можно многое сказать о человеке. Например, плохоструктурированное резюме. Скорее всего напишет разработчик, не особенно заботящийся о структуре исходного кода.
Скопированный из сети раздел, например, «Профессиональные качества». Говорит о том, что кандидат склонен приврать. Отсутствие достижений, которые не вспоминают даже на собеседовании, говорит, что человек «профессионал». И ещё много чего.
Как-то раз была забавная история. Взялся раскритиковать резюме одного коллеги. Выводы были неутешительными. Говорю: «У тебя такое плохое резюме, что я бы тебя взял на работу! Специалист ты хороший. Но вот со твоим резюме хорошей работы тебе не найти. Поэтому тебя можно будет держать на маленькой зарплате. И ты никуда не денешься!»
Чтобы такого не было. Резюме тоже желательно дать почитать специалистам HR и программистам на оценку.
Естественно, в резюме не надо врать или приводить сомнительные факты. Его будут очень внимательно читать люди с большим жизненным опытом. Любые попытки скрыть что-то или приукрасить будут расцениваться крайне негативно.
Лучше иметь скромное резюме. Но быть уверенным, что ответите за любое слово в нём.
Если вы уже приобрели какой-то опыт работы и вам есть чем похвастаться. Можете добавить раздел «Портфолио», в самом конце. Подробно описать проекты, в которых участвовали. Интересные технические решения, достижения(подробно). Хоть 10 страниц. Но именно в конце.
Обязательно укажите, что готовы к релокации(переезду) и командировкам.
Также вам поможет заполненный профиль в LinkedIn, HeadHunter и других сайтах поиска работы.
4.1.3 Поиск работы
Теперь переходим к самому интересному.
Вам надо чётко усвоить, стажёры и неопытные разработчики редко кому нужны. Работодатели ищут прежде всего опытных. Но их зарплаты не всегда позволяют нанять кого надо. Поэтому ваше резюме с нулевым опытом будет рано или поздно рассматриваться. И в этом очень поможет код из вашего портфолио.
Поэтому вы должны рассылать резюме по всем вакансиям, подходящим под ваш профиль. Например, изучали JavaScript. Шлите резюме везде, где этот JavaScript требовался. Невзирая на минимальный требуемый стаж, наличие профильного высшего образования, то, что вакансия уже закрыта и многое другое. На «том конце провода» лучше знают, что делать с этим. Так же шлите во все фирмы, которые теоретически имеют или могут иметь специалистов вашего профиля. Почту обычно разбирают секретарши. Невелика беда, если они отправят ваше письмо в корзину. Мнение таких работодателей о вас значения не имеет. Даже если это самые престижные фирмы.
Сам поиск работы занимает от месяца до двух. Обычно, если вы откликаетесь на вакансию, с вами связываются через 2-3 дня. Потом, в течение недели собеседование и\или тестовое задание. И далее, в течение месяца работодатель будет думать над результатами. Прямые отказы, обычно, не присылают. Про вас просто забывают и всё. Так что приготовьтесь к множеству интервью, после которых вы забудете о них. Не надо возлагать надежды ни на какие варианты. Прошли собеседование и погружайтесь обратно в изучение программирования.
4.1.4 «Карма» программиста
Есть один очень любопытный момент при поиске работы. Предположим, вы изучали JavaScript. Добросовестно учили и изучили. Потом ищете работу программистом JavaScript. И вам внезапно предлагают стать, к примеру, системным программистом. Работодатель может сказать, ваш JavaScript хорош. Но вакансии стажёров у него только для системных программистов С. Поэтому можете пойти на стажёра С.
Хитрость тут в том, после такой первой работы. Вернуться работать с JavaScript будет проблемно. И это не какая-то там магия. Просто, как программист С будете опытным. Как программист JavaScript неопытным. Т.е. возврат к JavaScript снижает вашу зарплату. Возможно даже в два раза. Поэтому останетесь системным программистом С, на всю оставшуюся жизнь. Не думаю, что это плохой вариант. Но о таких ограничениях надо знать.
4.1.5 Собеседование
Вы удивитесь, но большинство собеседований для программистов проходят удалённо. Поэтому, даже если хотите устроиться на работу в городе, за сотни километров от вас, ничего страшного, что сейчас находитесь в другом месте. Работодатель может удалённо проверить ваши компетенции и решить, стоит ли вам ехать на очное интервью или сразу на работу в его город.
Если собеседование заочное, тут всё просто. Вам понадобиться хорошая связь, интернет и телефонная. И полтора-два часа времени, когда никто не будет мешать. Если тишина и хороший интернет у вас дома невозможен. Договоритесь с друзьями, что они дадут вам свою комнату с компьютером или квартиру на время собеседования. Видеосвязи обычно не требуется. Скорее всего понадобиться Skype и TeamViewer. Тяжёлые среды разработки, компиляторы, редакторы обычно не нужны. Простого редактора кода, типа Sublime или Notepad++ хватит. Работодатель сам напишет, что нужно иметь для собеседования.
Про очные собеседования написано и так очень много. Не вижу смысла повторяться. В любом случае получив приглашение, должны узнать о пригласившей фирме как можно больше. Посмотреть отзывы о ней, как о работодателе. И решить, хотите ли там работать. Если хотите, обязательно придумайте повод, почему именно там. Почему вы прислали туда своё резюме?! Ведь оно может не подходить под формальные требования.
В любом случае вы должны хотеть, в первую очередь, интересную работу и профессионального роста. Типа попробовали программировать, вам очень понравилось. И сейчас ищете интересную работу в этом направлении. От своей будущей занятости, в первую очередь, ждёте интересных задач. Возможность общаться с коллегами-единомышленниками. И, конечно же, шлифовать, своё профессиональное мастерство. Именно такого плана вопросы вы должны задавать вначале. Вас должно интересовать, какой опыт будет у ваших будущих коллег. Какие технологии используются в проекте, на который ищут сотрудника.
Конечно, будем откровенны. У большинства свербит главный вопрос, о зарплате. Вот это надо выяснять, в последнюю очередь. Такие вопросы поначалу обычно задают «профессионалы». Начальники же ищут любителей.
Обычно, размер зарплаты у стажёра, с некоторым багажом знаний по теме, это размер зарплаты обычного офисного хомячка в том же городе. Но если предложили меньше, мой совет, соглашаться всё равно. Допустим работаете сисадмином. Получаете 500$. Думаю, 500$ для сисадмина в средней полосе России потолок. И вот вам предлагают должность программиста (фактически стажёра) за 300$. Если для вас это «отстой». Даже не начинайте ничего изучать. Закройте эту статью. И забудьте о программировании как о будущей профессии.
Ваша первая зарплата разработчика должна быть достаточной чтобы выжить. Дело в том, что вместе с 300$ будете получать опыт и знания на 1000$. Получите опыт коллективной разработки. Вашу работу будут оценивать более опытные коллеги. Получите безграничный доступ к их опыту. Скорее всего ваше портфолио будет прирастать реальными проектами. Всё это сделает вас настоящим и востребованным специалистом. Если не будете лениться и воспользуетесь всем этим. Уже через полгода, догоните свои 500$. И это будет только начало вашей карьеры.
Конечно, может так случиться, «Опыт и знания на 1000$» не получите. В этом случае, просто ищите другую работу.
Во время собеседования вам не стоит ничего боятся. Надо вести себя естественно, но иметь рабочий настрой. Собеседования ведут обычно вежливо. Задача вашего будущего начальника понять, что вы за человек и специалист. Они будут скорее очень внимательно наблюдать за вами.
Вам никто никогда не скажет правдивого мнения о вас. Плохое мнение может настроить вас против. Что не имеет никакого смысла. Вдруг вы ещё пригодитесь. А хорошее, может быть причиной просьб о более высокой зарплате.
Собеседование, это как первое свидание с девушкой. Всё всегда вежливо, культурно и хорошо. Только вот следующее может не состоятся.
4.2 Стажировка
Задача стажировки отшлифовать полученные знания.
4.2.1 Фриланс
Начинающие программисты могут начитаться статеек из интернета, где рассказывается, как здорово быть «фрилансером». Сидеть под пальмами, брать разовые заказы и «не работать на дядю».
Чтобы понять преимущества и недостатки фриланса, надо понимать, работодатель готов вкладываться в ваше обучение, только видя долгосрочную перспективу. Иначе ему проще переплатить готовому специалисту, чем ждать когда начинающие решат сложные задачи. Поэтому фриланс не даёт опыта вглубь. Вам просто никто не даст заказы, если вы не обладаете нужными компетенциями. С другой стороны, фриланс — это первая интересная практика и первые деньги. И за деньги заказчика одновременно можете создать себе портфолио.
Не надо возлагать больших надежд. Просто попробуйте найти заказы в конце самостоятельного обучения. Будет здорово, если у вас получится. Но не надо считать, что прошли стажировку и стали настоящим программистом. Это хорошее занятие, только когда вас ещё не берут серьёзные компании. Либо вы там уже отработали 3-5 лет.
4.2.2 Компании
Как то раз слышал про один экономический закон. Чем больше объединение работников, тем больший доход это объединение получает на каждого работника. Соответственно, в больших фирмах зарплаты у работников обычно выше. Чем у отдельных «фрилансеров». По крайней мере в IT. Именно известные гиганты индустрии платят самые топовые зарплаты и скупают лучшие умы. Поэтому «дядю», собирающего специалистов в кучку и дающего работу, надо любить. Потому что вместе можно заработать гораздо больше, чем по отдельности.
А раз так. Вам необходимо научиться работать в команде. Использовать коллективные средства разработки. Коллеги будут делиться с вами опытом, помогать исправлять ошибки. Вы сами удивитесь, как много нового есть в профессии, с чем не сталкивались ранее.
Как говорилось ранее, большинство людей «профессионалы». Попав на свою первую работу, они «успокоятся». И их стратегией будет «выживание». Они будут осваивать только знания, необходимые здесь и сейчас. Допустим, надо составлять SQL запросы для кода. Они быстро посмотрят в инете, как сделать запрос под конкретную задачу. И напишут код на этой основе. Потом код попадает на «сode review» к опытному коллеге. Там выясниться, что вместо двух запросов и кучки кода, можно написать один запрос, но с «джойнами». И вот стажёр лезет в инет. Читает там кусок какого-нибудь материала о «джойнах». Переделывает код. Так каждый день. Таким образом большинство стажёров накапливает знания.
Правильно было бы после 3-4 подобных вопросов, связанных с базой данных, взять руководство по этой СУБД и изучить полностью. Этим обычно заняты только «любители». Которым становиться любопытно, что кроме «джойнов», там ещё есть.
Надо отметить, читать любые руководства на данном этапе, гораздо интереснее. Вы уже знакомы с технологией. И хорошее знание, может значительно облегчить работу. Это гораздо привлекательнее, чем просто абстрактные примеры из книг, на предыдущем этапе.
Стажировка плавно перетекает в обычную работу. Сложно выделить тот момент, когда вы можете считать себя полноценным разработчиком. Наверное когда на ваши вопросы коллегам, кончаются простые ответы. И вы понимаете, большинство проблем придётся решать самим. Обычно этот период полгода. Если хорошо потрудились на предыдущем этапе. Если же поторопились, устроились, дочитав книгу по основному языку наполовину. Значит продолжайте освоение книги и дополнительных технологий.
После стажировки вы вольны делать всё, что угодно. Фрилансить. Делать самостоятельные проекты и прочее. Но мой вам совет. Иногда почитывать связанную с вашей работой литературу. Для повышения квалификации. Если раньше вы читали, как вообще писать код. То сейчас вам можно прочитать, как это делать очень хорошо и правильно. Будьте уверены, вы всегда будете видеть новые горизонты профессиональной подготовки. Не ленитесь! Особенно, если хотите большую зарплату.
5 Заключение
Надеюсь данная статья поможет всем желающим освоить нашу замечательную профессию.
Если вам понравится данный труд. Есть идея рассказать о плюсах и минусах высшего образования в IT.
Комментарии (157)
alexander_8901
15.10.2017 00:50ИМХО необходимо начинать с технологий, а не с языков программирования.
TheDeadOne
15.10.2017 08:35+5ИМХО совет начинающему программисту разбираться с технологиями, алгоритмами и структурами данных до изучения языка — это как совет ребёнку до изучения алфавита разобраться со стихотворными ритмами и особенностями применения синкретизма при написании поэм.
square
15.10.2017 09:18Возможно имелась ввиду архитектура компьютера, иначе действительно звучит странно
ru_vlad
15.10.2017 09:59В принципе такое возможно, вспомните псевдо язык у Кнута или Дейкстры.
Но правда это все для любителей теории и математики.TheDeadOne
15.10.2017 10:11+2Я никогда не встречал программистов, которые начинали с Кнута. Зато встречал тех, кто терял интерес к этой области при недостатке практики и избытке теории.
ru_vlad
15.10.2017 13:16Ну я встречал и то и другое. Были кто начинал с Вирта и Кнута, а есть те кто даже не знает кто это.
Хотя рекомендации новичкам начинать чтение с Кнута это конечно "жесть".samodum
15.10.2017 17:35+1Я за 15 лет работы в разных компаниях ещё ни разу не видел программиста, который бы читал Кнута. По крайней мере, никто в этом публично не признался.
Зато да, многие говорят, что Кнута знать обязан каждый.ru_vlad
15.10.2017 17:41Зато да, многие говорят, что Кнута знать обязан каждый.
Поймать, связать и заставить в слух прочитать все три тома (у меня старое издание) )
parakhod
15.10.2017 10:46-1Ну не соглашусь, кстати. У меня жена, когда решила сменить род деятельности и стать программистом спросила, с чего начать.
И я посоветовал ей начать с питона (хоть сам и не пользуюсь им, но язык действительно аккуратный и для обучения очень хороший).
На 200% чувствую что был прав.
А технологии — это всё приходящее. Сам навык умения программировать гораздо важнее.
Ivan_83
15.10.2017 02:19Очередное войти вайти.
Те кому и так это всё интересно сами всё найдут, и найдут что им наиболее интересно, и будут заниматься этим не смотря ни на деньги ни на популярность этого.
Остальным соваться не стоит, получать кучу бабла за просто так не выйдет.
То что всякие доктора, юристы учатся вроде как долго и там целая система вокруг обучения, а тут можно типа чего то почитать и получать столько же или больше это очень большое заблуждение и огромный обман со стороны вайти курсов.
В ИТ действительно можно всё осваивать самому, и больших проблем/трудных барьеров отсутствие корочки тут не создаёт, это никак не отменяет того факта что требуется быть экспертом в определённых областях технологий/знаний чтобы хотя бы пройти собеседование на вакансию где платят больше чем каком нибудь макдаке или сети магазинов.
Чтобы получить знания всё равно придётся потратить время, и не только смотреть «смишные» обучающие видео, но дофига читать и делать самостоятельно что то (то что в учебных заведениях называется лабами). А чтобы совсем — совсем въехать во что сложное то придётся проделать работы никак не меньше, чем нужно для написания качественной курсовой или дипломной.
Плюсом тут что нет чёткого срока сдачи (если есть источник дохода), мандража перед комиссией/преподом, минусом что нужно самого себя мотивировать, далеко не всегда есть с кем посоветоваться по проблеме или вообще о том насколько перспективно то на что планируется потратить время.
У меня лично уходило по 3-6 месяцев на такие самостоятельные курсовые/дипломные исследования (иногда неделю подряд пилил, иногда были какие то перерывы).
Что то не пригодилось, а кое что оказалось настолько удачным попаданием что кормит уже лет 7-8.
Изучать лучше базовые технологии, они устаревают очень медленно.
Язык программирования — как и язык разговорный это всего лишь инструмент: ты можешь изучить молоток и как им правильно махать, но кузнецом ты не станешь и тебе будут платить как макаке за забивание гвоздей. Кузнец — это базовые знания металлов и их обработки, а молоток один из инструментов. (Это к вопросу о том какой язык учить круто)
Язык лучше изучать устоявшийся: си, питон. Может джаву.
Хипстерские языки не факт что выживут и будут кому то нужны. Да и мало там пока либ, примеров и пр. Фундаментальных вещей на них тоже ещё не написано.
Фреймворки и пр — последнее что нужно знать. Лучше писать свои (подглядывая в чужие), это хотя бы опыт, который перерастает в базовые знания и это то, что потом можно продать.
Конечно есть всякие 1С, пхп манямирки и прочее — но это для тех кто хочет по быстрому войти, и так же быстро вылететь, если на пол года-год перестанет изучать новые наслоения говнокода.stanislav888 Автор
15.10.2017 12:34-3Согласен со всем. Кроме того что изучать поначалу надо не питон с явой. А банально хтмл и js. Кто осилит, проходите на следующий уровень. Для остальных это будет пустая трата времени.
DrPass
15.10.2017 14:32+1А банально хтмл и js.
Начинать карьеру программиста с хтмл и js — это все равно что начинать карьеру хирурга с коронарного шунтирования. Программист сначала должен учиться писать программы на императивном языке, чтобы порядок шагов для достижения цели соответствовал тому, что он напишет в программе. А уже потом уходить в функциональщину. А HTML вообще к программированию имеет весьма косвенное отношение.
samodum
15.10.2017 17:39html — не язык программирования. Разве что только если назвать его декларативным. Ничему он не научит.
Начинать с JS? Ну хз. Какой у вас опыт в преподавании JS новичкам? Лучше, если начинать с Pascal? Python? C++? Есть Какие-то выборки по результатам для сравнения?
То-то жеgeher
15.10.2017 20:29Начинать лучше с Pascal. Очень дисциплинирует.
Потом переходить на С/С++. Дает в руки широчайшие возможности.
Потом на более другие языки. Отучает от финтов ушами.
А дальше уже собственный выбор, на чем, где и когда.geher
15.10.2017 21:47Добавлю. При переходе полезно переписывать старые проекты на новый язык. Не писать с нуля по старому заданию, а именно переписывать, рассматривая старый код и пытаясь воспроизвести его поведение на другом языке.
aquamakc
16.10.2017 09:44Зачем начинать с неактуального в современных реалиях языка? Плюсы — лучший вариант для начала. Научит основным принципам ООП, дисциплинирует (не хуже паскаля), море литературы, а что самое главное — актуален и постоянно развивается. Да и вообще (IMHO) плюсы хотябы чуть-чуть должен знать каждый программист, даже если он махровый ПХП`шник.
Free_ze
16.10.2017 11:50Зачем начинать с неактуального в современных реалиях языка?
С академической точки зрения он вполне актуален.
Плюсы — лучший вариант для начала.… дисциплинирует (не хуже паскаля)
Учить его можно годами, но при этом он всегда найдет, чем тебя удивить. По вашей же логике: зачем учить язык, который не будешь применять на практике?
А насчет дисциплины — его часто ругают, что он поощряет плохие стили. Стоит ли говорить, что новичок плохое от хорошего не отличит?
а что самое главное — актуален и постоянно развивается.
В старых и новых стандартах куча треша, который не всегда возможно исправить (breaking changes).aquamakc
16.10.2017 12:00С академической точки зрения он вполне актуален.
Не вижу смысла тратить время на изучение технологии не применяемой в реальной жизни, если можно начать с чего-то более практичного.
Учить его можно годами, но при этом он всегда найдет, чем тебя удивить.
Как и любой язык. Но базовые принципы, типы данных и конструкции стандартны. Различия появляются потом.
А насчет дисциплины — его часто ругают, что он поощряет плохие стили.
Плохие стили могут быть реализованы на любом языке. Но я говорил о другом. Тут тебе и строгая (относительно) типизация, и ручная работа с памятью без оглядки на всякие GC и полноценное ООП.
В старых и новых стандартах куча треша, который не всегда возможно исправить
Если их вносят — значит кто-то считает, что они могут быть полезными. Основная мысль в том, что изучающий C++ в ближайшее время врядли окажется в ситуации, что знакомый ему стек технологий уже не нужен рынку.Free_ze
16.10.2017 12:34Не вижу смысла тратить время на изучение технологии не применяемой в реальной жизни, если можно начать с чего-то более практичного.
А теперь представьте, что вы не «тратите время», а изучаете базовые концепции на грамотно спроектированном инструменте, а не на кладбище промышленного легаси.
Как и любой язык.
А вот и нет. Сравните хотя бы объемы спецификаций.
Плохие стили могут быть реализованы на любом языке.
В большинстве современных языков и даже Pascal это делать сложнее. Благодаря этому у новичка вырабатывается хороший стиль.
Тут тебе и строгая (относительно) типизация
Не знаю, что такое «относительно строгая типизация», но в C++ как раз слабая типизация, что порой доставляет боль.
Основная мысль в том, что изучающий C++ в ближайшее время врядли окажется в ситуации, что знакомый ему стек технологий уже не нужен рынку.
Изучающий C++ в ближайшее время сам рынку не будет нужен, ибо голый C++ нигде не применяется, да и порог вхождения такой, который он не потянет со своим чисто теоретическим опытом. На это практично тратить время?aquamakc
16.10.2017 12:54Я не говорю, что новичок должен учить с++ до уровня «рокет сайнс». Плюсы хороши именно тем, что могут дать прекрасный фундамент для профессионального роста в отрасли. Зная хотябы азы этого языка войти в любой другой, реализующий ООП становится легче.
С этого языка можно перейти на «кровавый ентерпрайз» Java или C#, можно уйти в жёсткий, но интересный мир микроконтроллеров. Нужна кроссплатформенная разработка с GUI — велком ту Qt.
В большинстве современных языков и даже Pascal это делать сложнее. Благодаря этому у новичка вырабатывается хороший стиль.
Хороший стиль вырабатывается только с опытом разработки, желательно с наставником и код-ревью, а так-же при чтении хороших книг по теме. Говнокодить можно на чём угодно.
Не знаю, что такое «относительно строгая типизация», но в C++ как раз слабая типизация, что порой доставляет боль.
Для меня слабая типизация в любимом автором статьи JS, питоне или LUA. В плюсах, конечно, не такая жёсткая, как в с# или Java, но опытными программистами эта фишка как-раз таки часто используется.
Изучающий C++ в ближайшее время сам рынку не будет нужен, ибо голый C++ нигде не применяется
Реалии таковы, что практически ни один язык «голый» не применяется.
Невозможно написать web приложения не используя JavaScript, а соответственно практически не увидишь его «голым» без фреймворков типа JQuery. Не напишешь корпоративный софт без БД, а соответственно в том или ином виде должен применяться Сиквел. Расширения, библиотеки, феймворки — это реалии, от которых не уйти.
И напоследок к вопросу актуальности и нужности плюсов. Даже тут на хабре соответствующие рейтинги демонстрируются. Жаль у меня ссылки не вставляются. Яндекс по запросу «популярность языков программирования 2016» первая же ссылка на хабр.Free_ze
16.10.2017 13:50Я не говорю, что новичок должен учить с++ до уровня «рокет сайнс».
Учить язык, чтобы в конечном итоге не уметь им пользоваться должным образом? Зачем? Вы сами назвали его «рокет сайнс», я за язык не тянул.
Плюсы хороши именно тем, что могут дать прекрасный фундамент для профессионального роста в отрасли.
Си даст вам такой же прочный фундамент, только получите вы это малой кровью, а практическая ценность будет сопоставима, а то и больше.
Зная хотябы азы этого языка войти в любой другой, реализующий ООП становится легче.
Таки зная любой язык изучать следующий будет легче.
Хороший стиль вырабатывается только с опытом разработки, желательно с наставником и код-ревью, а так-же при чтении хороших книг по теме. Говнокодить можно на чём угодно.
Ну так получайте опыт синхронно с изучением, а ориентиром вам будет хорошая книга и ворнинги) Чем вам компилятор не наставник? Тоже поругает за плохой код.
Для меня слабая типизация в любимом автором статьи JS, питоне или LUA. В плюсах, конечно, не такая жёсткая, как в с# или Java, но опытными программистами эта фишка как-раз таки часто используется.
Это не та «фишка», ради которой стоило бы любить язык и часто опытные программисты вынуждены стоить костыли во имя этого.
Реалии таковы, что практически ни один язык «голый» не применяется.
У некоторых языков достаточно богатая стандартная библиотека, чтобы писать приложения с минимумом внешних зависимостей. Но это я не про C++, у которого до сих пор нет нормальных строк.
Невозможно написать web приложения не используя JavaScript
Вам ничего не мешает писать веб-приложения без единой строчки JS (но это только между нами!).
а соответственно практически не увидишь его «голым» без фреймворков типа JQuery.
O RLY?
Но, опять же, веб — это мутант, не образец хорошей архитектуры.
Яндекс по запросу «популярность языков программирования 2016» первая же ссылка на хабр.
Я не утверждал, что C++ мертв. Однако, через год изучения на работу с ним вы едва ли устроитесь. Да и вообще, C/C++ изучают многие, только пишут потом на php почему-то (=
За крайние 20 лет из стандарта де-факто в любой сфере язык превратился в очень нишевой. Но в вузиках все еще изучают, студентота генерит рейтинги в поисковых запросах/Q&A-сервисах.aquamakc
16.10.2017 14:21Учить язык, чтобы в конечном итоге не уметь им пользоваться должным образом?
Я же сказал — как база для новичка. А дальше уже пусть сам решает. Изучать все его тонкости или переходить на другой стек. Опять-же, при написании кода на управляемом языке вполне может появиться необходимость реализации какого-нибудь функционала критически важного или высоконагруженного. Вынос такого функционала в dll на плюсах и подключении через external — вполне себе типовое явление.
Си даст вам такой же прочный фундамент, только получите вы это малой кровью, а практическая ценность будет сопоставима, а то и больше.
При всём уважении, СИ — это процедурщина с зачатками ООП и очень узким сектором применения. Причём с плюсов перейти на С можно без особых проблем.
Таки зная любой язык изучать следующий будет легче.
Для тех, кто начинал с управляемых языков, да ещё интерпретируемых перейти на плюсы гораздо сложнее, чем наоборот.
Ну так получайте опыт синхронно с изучением, а ориентиром вам будет хорошая книга и ворнинги) Чем вам компилятор не наставник? Тоже поругает за плохой код.
Компилятор пропустит любой треш, лишь-бы не было ошибок в коде. Качество кода и антипаттерны он не определяет.
У некоторых языков достаточно богатая стандартная библиотека, чтобы писать приложения с минимумом внешних зависимостей. Но это я не про C++, у которого до сих пор нет нормальных строк.
У всех языков, что я знаю строки — это массив char + нуль-терминатор. Просто они могут быть завёрнуты в гору синтаксического сахара.
Вам ничего не мешает писать веб-приложения без единой строчки JS (но это только между нами!).
Можно, конечно. Вот только хреновенькое это будет приложение… не приложение, а страничка-визитка )
O RLY?
Открываем код данной страницы и видим:
Но, опять же, веб — это мутант, не образец хорошей архитектуры.
Веб бывает разный. asp.net — веб и php — веб и node.js — веб.
Да и вообще, C/C++ изучают многие
Потому-что c++ даёт прекрасную базу. Большинство популярных языков если и имеют что-то общее, то это взято из C++.lair
16.10.2017 14:29У всех языков, что я знаю строки — это массив char + нуль-терминатор.
… ну вот в .net там в начале длина, например. Что дает понятные профиты (например, возможность включать нуль-символы внутрь строки). А потом не массив, а буфер байтов, что тоже дает профиты, например, при взаимодействии с неуправляемым кодом.
aquamakc
16.10.2017 14:36) по секрету скажу, C# лично я считаю одним из лучших современных языков, в т.ч. и за такие фишечки. Но это не противоречит моей мысли, что тому-же .Net программисту полезно знать C++ и порой импортировать плюсовые библиотеки в свой код. Будь до библиотеки WinApi или написанные своими руками для повышения производительности критичных задач.
lair
16.10.2017 14:49тому-же .Net программисту полезно знать C++
Очень много чего знать "полезно", а голова — одна.
библиотеки WinApi или написанные своими руками для повышения производительности критичных задач.
… а вот в этом случае намного полезнее знать, как устроен Interop в .net.
geher
16.10.2017 21:59… ну вот в .net там в начале длина, например. Что дает понятные профиты (например, возможность включать нуль-символы внутрь строки).
Из паскаля сперли. :)
lair
16.10.2017 22:03Я — человек необразованный, паскаль видел только в чужой курсовой. Но как бы уже видно, что языки немножко разные в этом вопросе.
Free_ze
16.10.2017 15:03Я же сказал — как база для новичка.
Там база на 90% будет состоять из знания особенностей конкретного языка, неприменимых и непереносимых.
СИ — это процедурщина с зачатками ООП и очень узким сектором применения.
Внезапно сектор применения Си шире, чем у С++.
Для тех, кто начинал с управляемых языков, да ещё интерпретируемых перейти на плюсы гораздо сложнее, чем наоборот.
Учить С++, чтобы потом писать скрипты? Крутой план развития!)
Компилятор пропустит любой треш, лишь-бы не было ошибок в коде.
Тот треш, который пропустит компилятор C++ не пропустит компилятор C#, например. Такой, как if (a = 5), например.
Просто они могут быть завёрнуты в гору синтаксического сахара.
Почет и слава разработчикам!
Можно, конечно. Вот только хреновенькое это будет приложение… не приложение, а страничка-визитка )
Как наличие JS коррелирует с тематикой сайта?) Ничто не мешает сделать интернет-магазин, стриммить аудио/видео и т.п.
Жду очередного ответа в стиле: «Можно, конечно, но...»
Открываем код данной страницы и видим:
Шок! Сенсация!) Что нам это должно сказать? Что нас обманули и без jq интерпретатор в браузере не заработает?
Веб бывает разный. asp.net — веб и php — веб и node.js — веб.
Веб — это HTTP, который для всех один. Перечисленные вами технологии — это попытки обуздать его stateless-природу.
Потому-что c++ даёт прекрасную базу.
Как и Turbo Pascal, да? (=
Большинство популярных языков если и имеют что-то общее, то это взято из C++.
Лямбды? Кортежи? Range-based for?)aquamakc
16.10.2017 15:19Мне кажется, мы друг-друга недопонимаем. Хотя я не согласен со многими вашими тезисами и мог бы привести контр-аргументы, но во избежание эксцессов, предлагаю прекратить данный диспут. Всё-равно все останутся при своём мнении.
Прошу прощения, если чем-то вас задел.
aquamakc
16.10.2017 14:28Открываем код данной страницы и видим:
Да блин, тэг CODE не вставляется.
src=«habracdn.net/habr/javascripts/1507811441/libs/jquery-1.8.3.min.js»
geher
17.10.2017 08:54Начинать с неактуального языка хорошо хотя бы потому, что не возникает ложного ощущения собственной готовности к реальной работе после первого поверхностного знакомства с языком.
Ivan_83
17.10.2017 12:49-1Смотря какие задачи и цели.
Я примерное изложил путь в области в которых я сейчас, для «вебкодеров» это хардкорная область.
Питон это отличный инструмент, который я видел в руках разных специалистов: математиков, криптографов, сайтоклепателей, админов и тп.
Си — все фундаментальные вещи, которые ещё не успели заразить плюсами. Все дрова, ОС (кроме колибри :) ), куча всего что потом куда то цепляется и оборачивается фантиками перед втюхиванием/продажей.
Хтмл и жабаскрипт — путь один, без вариантов.
С другой стороны я сам немного писал на жабаскрипте, синтаксис там близкий к си.
А вот жабаскриптовцы вряд ли смогут так же быстро на си что то рабочее написать.
И пожалуй я бы добавил ещё git к своему списку, того что не плохо бы знать (хотя бы чуть-чуть: clone, commit, pull, push, status, diff) в качестве базовой вещи.
samodum
Я не курсы рекламирую по вайтизму, мне лично плевать на лёгкость изучения, я описал самые базовые штуки, с которыми можно войти во многие ниши айти.
geher
Относительно того что лучше начинать в паскале я не соглашусь: он сейчас не решает никаких практических проблем, а для обучения есть 100500 других языков и это отдельная холиварная тема.
Я пожалуй лучше потренируюсь на своих детях чтобы было о чём говорить.
aquamakc
Я же написал: «Си».
Я же написал: что язык это только инструмент.
Нет смысла изучать электронный микроскоп когда более чем достаточно школьного-оптического или лупы, а необходимо всего то рассмотреть мелкую гравюру.
Гораздо выгоднее во всех смыслах потратить немного времени на язык, и опираясь на него начать делать какие то лабы/опыты по освоению реальных технологий или модификации чего то нужного.
У меня так и не появилось осознанной потребности в плюсах.
Иногда патчу сильно плюсовые проекты, каждый раз ругаясь матом за эту абракадабру :)
Единственное что мне за все 15 лет в си иногда не хватало шаблонов, пришлось менее красиво писать через define макросами, например:
github.com/rozhuk-im/liblcb/blob/master/include/utils/str2num.h
Но меня лично это не парит.
У многих плюсовиков почему то нет понимания что обычный си очень много где используется и его может быть более чем достаточно для всего что нужно другим людям.
Ещё хуже когда «плюсовики» начинают рассказывать как же круто там всё в плюсах, какие они крутые и что тебе со своим си тоже надо бы подтянуть знания до их уровня. При этом они сами пишут на уровне «си с классами» и просят более продвинутых коллег не использовать шаблоны и ещё какие то новомодные фичи появившиеся в с++11.
PS: то что ссылки/коды не вставляются — проблема хубра. Я бы не парился и херачил ссылку текстом )
Free_ze
Касательно стиля писания есть много мнений.
ИМХО в учебных заведениях обычно две проблемы: время и кадры.
Те маловато учебного времени чтобы ещё что то впихивать.
У нас был вижал бейсик, там оно само делало стиль.
Для си нужно либо схожую среду, либо автоформатер/стайлер хотя бы для начала, ну и опять же чтобы препод это учитывал принимая работу, типа «написал рабочую прогу в одну строчку» — вот те тройбан, в след раз напишешь читабельно.
Касательно строк.
Боюсь у вас не правильные ожидания от языка.
Нужны строки — ищите либо другой язык либо какую то либу/фреймворк которые их реализуют.
Си это про работу с буферами/памятью.
То что там есть в стандартной либе это так, самое простое и необходимое.
И лично меня всякие atoi() совершенно не устраивают (а snprintf() устраивает), поэтому я накорябал свои str2num() которые принимают отдельным параметром длину.
geher
Хз зачем вы учились программировать, а я учился чтобы сделать то что мне нужно, мне собственно всегда было плевать на язык, мне нужен был результат.
Изучать язык программирования (или разговорный) только чтобы знать — это херня какая то.
lair
net это такой загончик, пока ты внутри этого манямирка у тебя всё шикарно. Вот лучше и дальше в нём сидеть и не вылазить на ружу, а то начинается всякое непотребство: всякие анманагед коды, необходимости извращаться чтобы дёрнуть апи и тп, всё что было ещё в вижал бейсик в прошлом веке.
МС с net дико пролетело.
Если бы они в 2005 его заопенсорсили то сейчас были бы на коне, а так они толкаются среди всяких го, растов и прочего хипстерского шлака.
За пределами венды с net хотят связываться в основном те кто с венды пытается свалить, остальные недоумевают нахрена оно вообще надо.aquamakc
17.10.2017 13:02Не совсем понял, зачем вы меня упомянули в этом каменте, у меня возник небольшой спор по поводу языка с которого по моему мнению стоит начинать обучение, ну да ладно.
По вашему тексту:
С — отличный язык для, но он имеет очень узкую специализацию системного низкоуровневого программирования. Да и скилл, чтобы на нём писать что-то действительно хорошее нужен намного выше, чем на ООП языках. Современным джунам сложно представить архитектуру ПО без классов, интерфейсов, наследования и т.д.
Да и спрос на рынке на веб-программистов, Ентерпрайз и мобильных намного больше, чем на системщиков. И это совсем другие языки, а тот-же С++ разработчкик вполне может работать в каждой из этих областей.
Free_ze
17.10.2017 13:14Касательно стиля писания есть много мнений.
Стиль форматирования — это ерунда, которая в контексте изучения программирования имеет мало значения, я говорил о навыке построения архитектуры.
Боюсь у вас не правильные ожидания от языка.
У вас неправильные ожидания от моих ожиданий) Во-первых, речь шла о C++, во-вторых, там есть строки, но они плохие.
Си это про работу с буферами/памятью.
И? Эта суровость мешает нам работать с буферами, как с юникодовыми строками?
Нужны строки — ищите либо другой язык либо какую то либу/фреймворк которые их реализуют.
Это инструмент, необходимый в каждой первой полезной программе, поэтому он обязан быть в стандартной библиотеке.
lair
17.10.2017 13:43net это такой загончик, пока ты внутри этого манямирка у тебя всё шикарно. Вот лучше и дальше в нём сидеть и не вылазить на ружу, а то начинается всякое непотребство
Простите, а вы с каким моим тезисом спорите?..
geher
17.10.2017 15:19+1Хз зачем вы учились программировать, а я учился чтобы сделать то что мне нужно, мне собственно всегда было плевать на язык, мне нужен был результат.
Изучать язык программирования (или разговорный) только чтобы знать — это херня какая то.Сначала я учился программировать только потому, что было интересно.
Потом потому, что планировал работать в этой области.
Теперь для поддержания квалификации.
Попутно я изучал языки программирования (сразу должен заметить, что изучение программирования и изучение языка программирования — совершенно разные вещи).
Сначала те, на которых предлагали обучаться.
Потом те, необходимость в которых возникала по ходу дела.
Кстати, первым языком программирования, который я изучил, и на котором учился азам программирования, был Fortran (крайне неудачный язык для обучения программированию, кстати, но вариантов тогда не было). Да еще прогрпммы вводили при помощи перфокарт. Это вообще жесть.
Потом был ЯМБ.
Потом было много всякого, и Паскаль среди прочего (для реальной разработки, кстати).
И среди всех языков именно Паскаль отличается особенной строгостью и лаконичностью, что позволяет наиболее наглядным образом увидеть в коде основные парадигмы и приемы программирования кроме функционального программирования и логического вывода (на Паскале их тоже можно, но это уже извращение).
Возможно, есть другие языки подобного уровня. Мне они не попадались.
lair
15.10.2017 02:20Если вес, рост, размеры основных органом человека варьируются, условно +-50% у основной массы взрослых людей, то размеры долей головного мозга варьируются в десятки раз.
А можно, пожалуйста, источники для это прекрасного и громкого утверждения?
Собственно, статья наполовину, если не больше, состоит из такого же рода утверждений, для которых не видно особых оснований. И написана весьма плохим языком (не касаясь даже банальной грамотности).
stanislav888 Автор
15.10.2017 10:42-2А можно, пожалуйста, источники для это прекрасного и громкого утверждения?
Это мнение профессора Сергея Савельева. У него есть прекрасная лекция на тему. Не хотел его пиарить, ибо тема совершенно другая.
Собственно, статья наполовину, если не больше, состоит из такого же рода утверждений, для которых не видно особых оснований.
Отвечу за каждое слово. Огласите список «такого же рода утверждений».
lair
15.10.2017 14:50+1Это мнение профессора Сергея Савельева.
Я так и подумал. В том же самом интернете, на который вы ссылаетесь, есть достаточно опровержений его, гм, "теорий".
Отвечу за каждое слово.
Ну, вы сам напросились.
Сначала полгода-год самостоятельной учёбы. Т.е. учёбы без широкой посторонней помощи. [...] Потом вы сможете получать деньги за свои знания.
Через полгода-год обучения уже можно получать деньги за свои знания?
Проработав так год, за самую обычную зарплату 300-400$. Вы получите опыт, открывающий перед вами все двери в жизни. Сможете получать от 1000$ удалённо и\или уехать туда, где вам больше нравится. Даже в другую страну.
Через год работы, т.е., через полтора-два года с момента начала обучения можно получать от $1000 удаленно или эмигрировать в любую страну? Простите, а вы знаете про условия оформления рабочих виз в части требуемого образования и/или опыта работы?
Вам всегда хватит денег на «булку с маслом» и даже досрочное погашение ипотеки.
Я знаю программистов, которым не хватали на первоначальный взнос в ипотеку, что уж говорить о досрочном погашении. Так что нет.
А в противном случае сможете набрать все необходимые знания за полгода.
Что именно относится к "необходимым" знаниям, и почему именно этот список? За полгода при какой загруженности?
Большинство желающих стать программистами, любители компьютерных игр, которым родители отключили инет для того, чтобы вернуть в реальность. [...] Устраиваются системными администраторами, самого низшего звена. Идут работать в техподдержку, потому что компьютер, единственное чем они могут пользоваться хорошо. У таких людей уже есть нужный багаж знаний.
Нет у них никакого "нужного багажа знаний". Любовь к компьютерным играм никак не связана со знанием компьютеров.
А еще я вот никогда не работал ни системным администратором, ни в техподдержке. Можно, пожалуйста, ссылку на исследование, которое подтверждает ваше утверждение о "большинстве"?
Конечно, все думают, всё можно свести к чему-то подобному вступительному экзамену в ВУЗ, где главным предметом будет математика.
Нет, не все. Я не думаю.
Дело в том, что освоение профессии — полгода или даже год учёбы.
Нет, освоение профессии — это сильно больше.
Профессионалы из больших компаний склонны писать огромные книги или статьи, где описывают свой бесценный опыт другим. Странные люди конечно. Вместо получения огромных денег за работу занимаются книгописательством, за которое платят меньше, а то и совсем ничего.
Во-первых, вы не знаете, как соотносятся деньги, которые они получают за программирование и за написание книг. Во-вторых, почему вы думаете, что одно происходит вместо другого.
А в-третьих...
Не надо покупать никакие курсы и платить за чудо-учебники. Все «чудеса» уже давно лежат, максимум на торрентах.
… вот поэтому за книги и платят меньше, чем могли бы. Давайте расширим этот список "не надо покупать никакие программы и платить за пользование ими"?
HTML
Очень простой язык программированияHTML — это язык разметки, а не программирования.
Инструкции этого языка выглядят примерно так: «Вот у этого параграфа должен быть наклонный шрифт» [...] «Размер шрифта данного куска текста 12 точек. Цвет красный».
… это как раз показывает, что вы не понимаете, что такое HTML, и какой у него интент.
Ориентировочное время освоения, 2-5 дней.
Какой результат после этого "освоения"?
JavaScript
Это уже «настоящий» язык программирования. Его изучение тесно связано с HTML.Эм… нет. Если это "настоящий" язык программирования, то его можно учить без HTML. Для JS это вполне верно, кстати.
Но даже если вы собрались стать системным программистом.
… а что такое "системный программист"?
Скорее всего, рано или поздно столкнётесь с HTML и JS.
Вот когда столкнетесь, тогда и выучите. Зная хотя бы один C-подобный язык, понять JS достаточно несложно.
Одна из причин выбора JS как первого языка программирования, его применимость в разных областях. Начиная с логики web-страничек на стороне клиента. Кончая JS-подобным языком QML, куда нас тянут за уши разработчики фреймворка Qt.
Мне вот никогда в моей разработке не был нужен ни Qt, ни QML. И я знаю много людей, которым он тоже не был нужен.
Но даже не зная QML, я уверенно могу сказать, что он не JS-подобный. Он декларативный (что, собственно, видно из M в названии), JSON-подобный, и может содержать включения на JS.
А еще я хочу сказать, что моим первым языком программирования был GW-Basic. Вторым — Visual Basic. Оба из них сейчас не применяются. И что?.. это никак мне не помешало.
Если начинающий программист не знает простых вещей, нет большой разницы на чём начинать.
Именно. Поэтому лучше начинать на максимально простом и последовательном языке.
Те, кто имеет хороших наставников по другим технологиям программирования. К примеру, брат\сват, работающий системным программистом С. И он готов вам помогать. В этом случае С может быть предпочтительней.
А чего бы просто не пойти учиться?
Но насколько знаю, около 30% программистов, WEB-программисты. Так что с большой вероятностью JS будет правильным выбором.
Веб-программисты — это не обязательно JS.
Люди, которым какой-то другой язык нужен, прямо сейчас для работы. Системным администраторам, как правило, SQL и bash.
А вот нет. Системным администраторам — то, что нужно по месту администрирования. Но кто возьмет человека без опыта на администрирование SQL?
В случае SQL я бы не стал обольщаться. Это тоже «ненастоящий» язык.
SQL как раз "настоящий" язык. Просто он в непривычной вам парадигме.
Но со временем я бы советовал, всё равно попробовать что-то типа JS, поддерживающее процедурное и ООП парадигмы.
Можно подумать, больше мультипарадигменных языков нет. Хотя я бы, кстати, советовал начинать с языка с одной выраженной парадигмой, чтобы не было смешения в голове.
Слышал, JS позволяет заменять bash через модуль в node.js. Так что, если надо написать скрипты с нуля, JS будет поинтереснее.
"Поинтереснее", ага. Так вам и дали поставить node.js на продакшн-сервер, где ноды нет и никогда не будет.
Очень важный вопрос, какие учебные пособия использовать. Здесь перечислены варианты в порядке, которoм должны их проходить: Видеоуроки [...] Мультимедийные учебники [...] Книги. Самые тяжёлые для восприятия.
Во-первых, лично мне из этого списка книги — самые легкие для восприятия. Во-вторых, на чем вообще основывается ваше утверждение о том, что это правильный порядок?
Но даже, если вы решите, что лучше взять учебник по другому языку программирования, на который вы возлагаете большие надежды. Он тоже будет мучать вас строками типа '5' + 3.
… или нет. Есть, знаете ли, языки, которые запрещают явное сложение разных типов.
После освоения основ JavaScript. Вы уже хорошо представляете себе, что такое писать код программ.
Нет, просто нет. Вы думаете, что представляете себе, что такое писать код программ. Но на самом деле вы еще ничего не понимаете о куче вещей, на которых программирование основано. Это как сказать "после того, как вы выучили алфавит, вы уже представляете себе, что такое писать книги".
Всех людей, стремящихся овладеть какой либо профессией, можно поделить на две категории: любителей и профессионалов.
Профессионалы же готовы заниматься этим только за деньги. Либо за перспективу их получения. Профессионалов надо мотивировать. И они практически всегда останавливаются в своём развитии, как только получают хорошую работу. Даже повышение з.п. в два раза может быть недостаточной причиной для них, продолжить учёбу. На повышение квалификации годны, как правило, только любители.На каком конкретно определении профессионала вы основываетесь, и где вы его взяли? Одно из качеств профессионала — в словарном определении — это поддержание уровня в профессии.
Придётся отдельно зарабатывать деньги, отдельно программировать. Что, естественно, невозможно.
Почему невозможно?
Единственное исключение я бы сделал для С++. Это сложный язык. Он, наверное, требует в два раза больше времени на освоение. Чем просто С или JS. При этом зарплата будет больше максимум на 20%. С++ это язык любителей С++.
Простите, а сколько языков вы освоили?
Но, с другой стороны, разработчики Java в связке с Oracle(PL\SQL) из больших корпораций, возможно, самые высокооплачиваемые разработчики в IT. При том, что это технологии средней сложности.
Как вы меряете "сложность" технологии?
(Предполагаю, в мире Java платят уже только за умение запускать jar файлы.)
Вы предполагаете неправильно.
Самостоятельная учёба имеет преимущество перед стажировкой. Можно получать более фундаментальные знания.
… какие, например?
Вы должны выбрать для себя большую, фундаментальную книгу по какому-либо языку программирования. И изучить её до конца.
Фундаментальная книга по языку программирования — это не фундаментальные знания, это практические знания.
У SQL есть ещё один аспект. Этот язык, возможно, самое сложное, что спрашивают при приёме на работу тестировщиком.
Нет, самое сложное, что спрашивают при приеме на работу тестировщиком — это как протестировать вот это, вот это и вот это. Надежно, быстро и повторяемо. SQL на этом фоне прост, как азбука.
И вас очень легко переведут из тестировщиков в разработчики. Как только покажете, что способны писать хороший код.
Еще один человек, который считает, что тестировщики — это такие неудавшиеся разработчики? Но нет.
Освоить «слепой» десятипальцевый метод печати на клавиатуре [...] освойте обязательно. [...] Если у вас не хватит терпения на даже на это, двигаться дальше нет никакого смысла.
Я не освоил (и никогда не пытался даже). Мне это никак не помешало.
Системы контроля версий. Конечно же это будет Git.
… а потом вы придете на первую работу, а там SVN. Или TFS. Или Mercurial. Так откуда же такое "конечно же"?
Лучше быть стажёром через год самостоятельной учёбы, чем через четыре года посещения ВУЗа.
Не вы ли выше писали про фундаментальные знания? Про учебу с наставником?
Те, кто начнёт заниматься по моим рекомендациям сейчас, через 4 года будут проводить технические тесты при приёме на работу тех, кто сейчас поступает в ВУЗы.
Нет, не будут. Откуда им взять навыки для собеседования?
Как правило, такие курсы имеют какие-то требования к кандидатам. Яндекс требовал математическую подготовку. EPAM требовал знание основ программирования. [...] Большой плюс таких курсов. Там не требуют никакого образования.
Эм. Так "требуют матподготовку/основы программирования" или "не требуют никакого образования"?
Вы заказали себе костюм в ателье. Оговорили все детали. Через неделю звонит мастер с известием, оговоренная форма швов очень плохо смотрится на костюме, надо менять.
Плохой мастер, больше не ходите в это ателье.
С разработкой то же самое — есть набор решений, которые можно и нужно принять заранее, и неспособность их сделать свидетельствует о недостатке квалификации.
Например, стали больше понимать что хотите делать в итоге, сайты или десктопные приложения. Потом, на этапе пробного периода, попробуете программировать для web (html, js).
… а если я понял, что хочу делать десктопные приложения? Или вообще чат-боты?
Но тех, у кого получится, ждёт приятный бонус в виде перспективы стать «менеджером проектов». Если сейчас вам просто хочется получать зарплату программиста, то зарплату менеджера проектов вам захочется настолько, что не сможете спать.
А ничего, что менеджер проектов — это совершенно другая работа, не связанная с навыками программиста, и требующая других навыков? И да, спать вы не сможете. От постоянного стресса.
Если вам до 23 — 25-ти лет и вы живёте там, где хорошо развита отрасль разработки ПО, у вас это получится. Может вы не станете хорошим специалистом. Но на жизнь заработаете точно.
Что у нас считается "заработать на жизнь" в Москве?
И есть люди которым далеко за 25. Такие должны дольше учиться.
Э, а почему?
Начать искать работу, как можно раньше, имеет смысл, если вы уже работаете на работе с высокой загрузкой. Там, где не почитаешь книжки по программированию. В этом случае вам без разницы, после какой работы вечером изучать предмет. Нынешней или после работы стажёром.
Вот я работаю на работе с высокой загрузкой. Получаю там ощутимые деньги. При переходе на работу программистом я потеряю раза в три. "Без разницы"?
Процесс вашей самоподготовки делает вас более привлекательным для работодателей.
Совершенно не обязательно. Направление вашей самоподготовки может совпадать с задачами работодателя, а может и не совпадать.
Если вы сделаете калькулятор для расчёта траекторий полёта спутников Земли, будет конечно круто. Но ваш будущий работодатель навряд ли в теме. Поэтому не сможет оценить результат.
Как раз наоборот. Оценивают же качество кода, а не качество алгоритмов. Если код по незнакомой теме понятен — это большой плюс.
Тему, где вам рассказывали про ваши ошибки, удаляете.
Ну то есть воспользовались чужим опытом, а потом не позволяете другим воспользоваться вашим. Очень мило.
Будущему работодателю об ошибках знать не обязательно.
(Особенно если он случайно был одним из тех, кто рецензировал ваш код.)
На самом деле, как раз наоборот, работодатель заинтересован в том, чтобы знать, как человек реагирует на сообщения об ошибках, и как он исправляется. Ошибки совершают все. Исправляют их не все.
Как-то раз была забавная история. Взялся раскритиковать резюме одного коллеги. Выводы были неутешительными.
А что в этой истории забавного? Вы написали свои выводы, но вы не написали, на чем они основывались и оказались ли они верными.
Интересные технические решения, достижения(подробно). Хоть 10 страниц. Но именно в конце.
А в начале что?
Обязательно укажите, что готовы к релокации(переезду) и командировкам.
А если не готов?
Невзирая на минимальный требуемый стаж, наличие профильного высшего образования, то, что вакансия уже закрыта и многое другое. На «том конце провода» лучше знают, что делать с этим.
Да, записать в черный список. Если человек не способен прочитать требования (и аргументированно объяснить, почему к нему они не применимы), он на этой работе не нужен.
Вы удивитесь, но большинство собеседований для программистов проходят удалённо.
Очень удивлюсь. Во всех местах, где я работал, были очные собеседования.
У большинства свербит главный вопрос, о зарплате. Вот это надо выяснять, в последнюю очередь. Такие вопросы поначалу обычно задают «профессионалы».
Нет, такие вопросы задают люди, которым нужны деньги.
Обычно, размер зарплаты у стажёра, с некоторым багажом знаний по теме, это размер зарплаты обычного офисного хомячка в том же городе.
С чего бы? Пользы компании от таких стажеров немного.
Думаю, 500$ для сисадмина в средней полосе России потолок.
Что?!
Конечно, может так случиться, «Опыт и знания на 1000$» не получите. В этом случае, просто ищите другую работу.
… на которую вас не возьмут, потому что у вас недостаточно опыта. Замкнутый круг, не правда ли?
Чем больше объединение работников, тем больший доход это объединение получает на каждого работника. Соответственно, в больших фирмах зарплаты у работников обычно выше.
Во-первых, я не вижу, как из первого вытекает второе. Во-вторых, можно, пожалуйста, ссылку на исследование, показывающее, что у работников одинаковой квалификации зарплаты в больших фирмах больше?
Как говорилось ранее, большинство людей «профессионалы». Попав на свою первую работу, они «успокоятся». И их стратегией будет «выживание». Они будут осваивать только знания, необходимые здесь и сейчас.
Ссылку на подтверждающее исследование, пожалуйста.
Обычно этот период полгода.
Полгода до становления полноценным разработчиком? С какого момента?
redfs
15.10.2017 15:00+1Скажу — спасибо. Нашелся все-таки человек, который не пожалел времени и сил, чтобы достаточно подробно прокомментировать все эти фантазии.
stanislav888 Автор
15.10.2017 21:46
>>> Это мнение профессора Сергея Савельева.
Я так и подумал. В том же самом интернете, на который вы ссылаетесь, есть достаточно опровержений его, гм, «теорий».
То что говорит Савельев очень хорошо сходиться с моим жизненным опытом.
>>> Сначала полгода-год самостоятельной учёбы. Т.е. учёбы без широкой посторонней помощи. [...] Потом вы сможете получать деньги за свои знания.
Через полгода-год обучения уже можно получать деньги за свои знания?
Да, но небольшие. Читайте внимательней!
>> Проработав так год, за самую обычную зарплату 300-400$. Вы получите опыт, открывающий перед вами все двери в жизни. Сможете получать от 1000$ удалённо и\или уехать туда, где вам больше нравится. Даже в другую страну.
Через год работы, т.е., через полтора-два года с момента начала обучения можно получать от $1000 удаленно или эмигрировать в любую страну? Простите, а вы знаете про условия оформления рабочих виз в части требуемого образования и/или опыта работы?
Не прощу. В стране куда уехал я ничего такого не нужно.
>>> Вам всегда хватит денег на «булку с маслом» и даже досрочное погашение ипотеки.
Я знаю программистов, которым не хватали на первоначальный взнос в ипотеку, что уж говорить о досрочном погашении. Так что нет.
Статья поможет стать правильным программистом, которому хватит.
>>> А в противном случае сможете набрать все необходимые знания за полгода.
Что именно относится к «необходимым» знаниям, и почему именно этот список? За полгода при какой загруженности?
Просто надо внимательнее читать. Имелось ввиду стать опытным пользователем компьютера. Я стал таким за полгода.
>>> Большинство желающих стать программистами, любители компьютерных игр, которым родители отключили инет для того, чтобы вернуть в реальность. [...] Устраиваются системными администраторами, самого низшего звена. Идут работать в техподдержку, потому что компьютер, единственное чем они могут пользоваться хорошо. У таких людей уже есть нужный багаж знаний.
Нет у них никакого «нужного багажа знаний». Любовь к компьютерным играм никак не связана со знанием компьютеров.
Любовь к компьютерным играм заставляет молодёж изучить: что такое файл, как устанавливать\настраивать ПО, настраивать локалки и многое другое. Просто потому что нет денег на дядю который всё это сделает за них.
А еще я вот никогда не работал ни системным администратором, ни в техподдержке. Можно, пожалуйста, ссылку на исследование, которое подтверждает ваше утверждение о «большинстве»?
Это мое ИМХО. И оно здесь ни на что не влияет.
>>> Конечно, все думают, всё можно свести к чему-то подобному вступительному экзамену в ВУЗ, где главным предметом будет математика.
Нет, не все. Я не думаю.
Вы так не думаете потому что у вас есть опыт. У неопытных это очень частое заблуждение. Вам вообще стоит усвоить что это статья для начинающих, а не для вас персонально.
>>> Дело в том, что освоение профессии — полгода или даже год учёбы.
Нет, освоение профессии — это сильно больше.
Напишите свою статью на тему. Это будет лучше чем придираться к чужим.
>>> Профессионалы из больших компаний склонны писать огромные книги или статьи, где описывают свой бесценный опыт другим. Странные люди конечно. Вместо получения огромных денег за работу занимаются книгописательством, за которое платят меньше, а то и совсем ничего.
Во-первых, вы не знаете, как соотносятся деньги, которые они получают за программирование и за написание книг. Во-вторых, почему вы думаете, что одно происходит вместо другого.
А вы знаете?! Ну расскажите нам тогда о мотивации топовых разработчиков.
Это соотноситься примерно так же как статьи на хабре и деньги. Их пишут явно не за деньги, но явно в рабочее время.
А в-третьих…
>>> Не надо покупать никакие курсы и платить за чудо-учебники. Все «чудеса» уже давно лежат, максимум на торрентах.
… вот поэтому за книги и платят меньше, чем могли бы. Давайте расширим этот список «не надо покупать никакие программы и платить за пользование ими»?
Нет, не надо покупать. Я так и делаю. За всю жизнь купил только две лицензии на ПО. Чисто из уважения к разработчикам. Да на мой Debian и покупать то особо нечего.
>>> HTML
>>> Очень простой язык программирования
HTML — это язык разметки, а не программирования.
Я тут перепутал «языки программирования» и «компьютерные языки». Но для вас эта разница настолько важна здесь, что статья оказывается совершенно негодной, так?
>>> Инструкции этого языка выглядят примерно так: «Вот у этого параграфа должен быть наклонный шрифт» [...] «Размер шрифта данного куска текста 12 точек. Цвет красный».
… это как раз показывает, что вы не понимаете, что такое HTML, и какой у него интент.
Смотря как переводить слова pixel и point.
>>> Ориентировочное время освоения, 2-5 дней.
Какой результат после этого «освоения»?
Понимание, можно ли браться за изучение более серьёзных технологий. Читайте внимательно!
>>> JavaScript
>>> Это уже «настоящий» язык программирования. Его изучение тесно связано с HTML.
Эм… нет. Если это «настоящий» язык программирования, то его можно учить без HTML. Для JS это вполне верно, кстати.
Однако все учебники JS рассматривают его исключительно с HTML.
>>> Но даже если вы собрались стать системным программистом.
… а что такое «системный программист»?
А это так важно прямо сейчас? И у вас забанили гугл?
>>> Скорее всего, рано или поздно столкнётесь с HTML и JS.
Вот когда столкнетесь, тогда и выучите. Зная хотя бы один C-подобный язык, понять JS достаточно несложно.
Зная хотя бы один С-подобный язык не хотят стать программистами. Это статья для тех кто как раз не знает.
>>> Одна из причин выбора JS как первого языка программирования, его применимость в разных областях. Начиная с логики web-страничек на стороне клиента. Кончая JS-подобным языком QML, куда нас тянут за уши разработчики фреймворка Qt.
Мне вот никогда в моей разработке не был нужен ни Qt, ни QML. И я знаю много людей, которым он тоже не был нужен.
Но даже не зная QML, я уверенно могу сказать, что он не JS-подобный. Он декларативный (что, собственно, видно из M в названии), JSON-подобный, и может содержать включения на JS.
Ну и что? Учить JS, не учить JS? Может вы всё таки напишете свою статью, вместо того что бы раздувать своё ЧСВ на моей?!
А еще я хочу сказать, что моим первым языком программирования был GW-Basic. Вторым — Visual Basic. Оба из них сейчас не применяются. И что?.. это никак мне не помешало.
Уверен что ваши ученики и поклонники оценят Basic двух видов, как первые языки программирования. Надо было просто написать о своих взглядах раньше меня. Но ещё не всё потеряно!
>>> Если начинающий программист не знает простых вещей, нет большой разницы на чём начинать.
Именно. Поэтому лучше начинать на максимально простом и последовательном языке.
Т.е. всё же Basic, по вашему?
>>> Те, кто имеет хороших наставников по другим технологиям программирования. К примеру, брат\сват, работающий системным программистом С. И он готов вам помогать. В этом случае С может быть предпочтительней.
А чего бы просто не пойти учиться?
Тема учёбы рассматривается. Читайте внимательней!
>>> Но насколько знаю, около 30% программистов, WEB-программисты. Так что с большой вероятностью JS будет правильным выбором.
Веб-программисты — это не обязательно JS.
Т.е. опять Basic??? Можно как то конкретнее выражать свои мысли?!
>>> Люди, которым какой-то другой язык нужен, прямо сейчас для работы. Системным администраторам, как правило, SQL и bash.
А вот нет. Системным администраторам — то, что нужно по месту администрирования. Но кто возьмет человека без опыта на администрирование SQL?
Поэтому и написано «как правило».
>>>В случае SQL я бы не стал обольщаться. Это тоже «ненастоящий» язык.
SQL как раз «настоящий» язык. Просто он в непривычной вам парадигме.
По вашему «структурированный язык запросов» может быть заменой JS или Python???
>>> Но со временем я бы советовал, всё равно попробовать что-то типа JS, поддерживающее процедурное и ООП парадигмы.
Можно подумать, больше мультипарадигменных языков нет. Хотя я бы, кстати, советовал начинать с языка с одной выраженной парадигмой, чтобы не было смешения в голове.
Ваш совет был услышан. Начинающие начинают забивать в гугл «язык с одной выраженной парадигмой». Пусть это будет хорошее начало для ваших поклонников. Для всех других есть моя статья.
>>> Слышал, JS позволяет заменять bash через модуль в node.js. Так что, если надо написать скрипты с нуля, JS будет поинтереснее.
«Поинтереснее», ага. Так вам и дали поставить node.js на продакшн-сервер, где ноды нет и никогда не будет.
А чего это вдруг? Ноду можно оставить только для консоли. Лишние модули поудалять. Потом речь идёт о полезности языка для карьеры, а не для продакшн-сервера.
>>> Очень важный вопрос, какие учебные пособия использовать. Здесь перечислены варианты в порядке, котором должны их проходить: Видеоуроки [...] Мультимедийные учебники [...] Книги. Самые тяжёлые для восприятия.
Во-первых, лично мне из этого списка книги — самые легкие для восприятия. Во-вторых, на чем вообще основывается ваше утверждение о том, что это правильный порядок?
Восприятие видео всегда было легче. Поэтому надо начинать с него. Если кому больше нравятся книги, пожалуйста.
Потом, эта статья писалась не лично для вас. А скорее для всех кроме вас.
>>> Но даже, если вы решите, что лучше взять учебник по другому языку программирования, на который вы возлагаете большие надежды. Он тоже будет мучать вас строками типа '5' + 3.
… или нет. Есть, знаете ли, языки, которые запрещают явное сложение разных типов.
GW-Basic??? Если кто хочет сбежать от указанных проблем, наверное найдёт прибежище только там.
>>> После освоения основ JavaScript. Вы уже хорошо представляете себе, что такое писать код программ.
Нет, просто нет. Вы думаете, что представляете себе, что такое писать код программ. Но на самом деле вы еще ничего не понимаете о куче вещей, на которых программирование основано. Это как сказать «после того, как вы выучили алфавит, вы уже представляете себе, что такое писать книги».
Нет, неправильно поняли.
>>> Всех людей, стремящихся овладеть какой либо профессией, можно поделить на две категории: любителей и профессионалов.
Профессионалы же готовы заниматься этим только за деньги. Либо за перспективу их получения. Профессионалов надо мотивировать. И они практически всегда останавливаются в своём развитии, как только получают хорошую работу. Даже повышение з.п. в два раза может быть недостаточной причиной для них, продолжить учёбу. На повышение квалификации годны, как правило, только любители.
На каком конкретно определении профессионала вы основываетесь, и где вы его взяли? Одно из качеств профессионала — в словарном определении — это поддержание уровня в профессии.
На перестроечном. Массовое сознание воспринимает это слово как «человек работающий за деньги». Поэтому словосочетание «профессиональная армия» подразумевает военную службу за денежное вознаграждение. Глупо оспаривать определения дающиеся в статье. Ну пореплейсите в текстовом редакторе «профессионал» на «чулакабра». Поменяется и определение и ссылки на данное понятие. Пусть вам будет легче.
>>> Придётся отдельно зарабатывать деньги, отдельно программировать. Что, естественно, невозможно.
Почему невозможно?
Потому что кроме программирования и работы есть ещё куча других вопросов в жизни которым надо уделять время. Семья, дети, дача и всевозможный быт. А тут ещё и программирование. Как раз этот момент я и продумал.
>>> Единственное исключение я бы сделал для С++. Это сложный язык. Он, наверное, требует в два раза больше времени на освоение. Чем просто С или JS. При этом зарплата будет больше максимум на 20%. С++ это язык любителей С++.
Простите, а сколько языков вы освоили?
Опять не прощу. Это просто не ваше дело. Для тех кто не верит мне на слово, есть куча учебников по С++. Дерзайте!
>>> Но, с другой стороны, разработчики Java в связке с Oracle(PL\SQL) из больших корпораций, возможно, самые высокооплачиваемые разработчики в IT. При том, что это технологии средней сложности.
Как вы меряете «сложность» технологии?
Субьективно.
>>> (Предполагаю, в мире Java платят уже только за умение запускать jar файлы.)
Вы предполагаете неправильно.
Это был просто стёб. Я люблю шутить над Java. Даже когда меня собеседуют джависты. Надо сказать они такие шутки понимают. А вы походу не джавист.
>>> Самостоятельная учёба имеет преимущество перед стажировкой. Можно получать более фундаментальные знания.
… какие, например?
«более фундаментальные»
>>> Вы должны выбрать для себя большую, фундаментальную книгу по какому-либо языку программирования. И изучить её до конца.
Фундаментальная книга по языку программирования — это не фундаментальные знания, это практические знания.
Какое практическое значение содержит ваше замечание?
>>> У SQL есть ещё один аспект. Этот язык, возможно, самое сложное, что спрашивают при приёме на работу тестировщиком.
Нет, самое сложное, что спрашивают при приеме на работу тестировщиком — это как протестировать вот это, вот это и вот это. Надежно, быстро и повторяемо. SQL на этом фоне прост, как азбука.
Вы ещё нагрузочное тестирование вспомните. Речь идёт о банальном «протыкивании» мышкой интерфейса программ. Самое сложное там как раз знать SQL.
>>> И вас очень легко переведут из тестировщиков в разработчики. Как только покажете, что способны писать хороший код.
Еще один человек, который считает, что тестировщики — это такие неудавшиеся разработчики? Но нет.
Нет. У каждого своё призвание в жизни.
>>> Освоить «слепой» десятипальцевый метод печати на клавиатуре [...] освойте обязательно. [...] Если у вас не хватит терпения на даже на это, двигаться дальше нет никакого смысла.
Я не освоил (и никогда не пытался даже). Мне это никак не помешало.
… но и не помогало.
>>> Системы контроля версий. Конечно же это будет Git.
… а потом вы придете на первую работу, а там SVN. Или TFS. Или Mercurial. Так откуда же такое «конечно же»?
Оттуда что всё равно придётся заливать код для портфолио на gitXXX сервисы. Кто держит TFS и Mercurial никогда не будут искать именно ихних пользователей. Тут уж либо Mercurial либо PHP, к примеру.
>>> Лучше быть стажёром через год самостоятельной учёбы, чем через четыре года посещения ВУЗа.
Не вы ли выше писали про фундаментальные знания? Про учебу с наставником?
Качество образования в ВУЗ-ах. Такое что лучше без них. Тут в каментах уже обсуждался этот вопрос с ссылками на источники.
>>> Те, кто начнёт заниматься по моим рекомендациям сейчас, через 4 года будут проводить технические тесты при приёме на работу тех, кто сейчас поступает в ВУЗы.
Нет, не будут. Откуда им взять навыки для собеседования?
В статье есть всё про это. Просто надо внимательнее читать.
>>> Как правило, такие курсы имеют какие-то требования к кандидатам. Яндекс требовал математическую подготовку. EPAM требовал знание основ программирования. [...] Большой плюс таких курсов. Там не требуют никакого образования.
Эм. Так «требуют матподготовку/основы программирования» или «не требуют никакого образования»?
Имелось ввиду не требуют дипломов. Но требуют иметь какие то знания. У них на сайтах всё подробно расписано.
>>> Вы заказали себе костюм в ателье. Оговорили все детали. Через неделю звонит мастер с известием, оговоренная форма швов очень плохо смотрится на костюме, надо менять.
Плохой мастер, больше не ходите в это ателье.
С разработкой то же самое — есть набор решений, которые можно и нужно принять заранее, и неспособность их сделать свидетельствует о недостатке квалификации.
Т.е. заплатить деньги второй раз?
>>>Например, стали больше понимать что хотите делать в итоге, сайты или десктопные приложения. Потом, на этапе пробного периода, попробуете программировать для web (html, js).
… а если я понял, что хочу делать десктопные приложения? Или вообще чат-боты?
Выбирайте соответствующие технологии. Я не обязан описывать все кейсы.
>>> Но тех, у кого получится, ждёт приятный бонус в виде перспективы стать «менеджером проектов». Если сейчас вам просто хочется получать зарплату программиста, то зарплату менеджера проектов вам захочется настолько, что не сможете спать.
А ничего, что менеджер проектов — это совершенно другая работа, не связанная с навыками программиста, и требующая других навыков? И да, спать вы не сможете. От постоянного стресса.
Менеджер проектов который не вырос из тимлида это просто секретарь у команды разработчиков. Таких обычно не держат, ибо толку никакого.
>>> Если вам до 23 — 25-ти лет и вы живёте там, где хорошо развита отрасль разработки ПО, у вас это получится. Может вы не станете хорошим специалистом. Но на жизнь заработаете точно.
Что у нас считается «заработать на жизнь» в Москве?
Ищите обзоры зарплат для Москвы. Там будут и ставки начинающих программистов.
>>> И есть люди которым далеко за 25. Такие должны дольше учиться.
Э, а почему?
Читайте внимательней!
>>> Начать искать работу, как можно раньше, имеет смысл, если вы уже работаете на работе с высокой загрузкой. Там, где не почитаешь книжки по программированию. В этом случае вам без разницы, после какой работы вечером изучать предмет. Нынешней или после работы стажёром.
Вот я работаю на работе с высокой загрузкой. Получаю там ощутимые деньги. При переходе на работу программистом я потеряю раза в три. «Без разницы»?
Если хотите стать программистом то да. Надо чем то жертвовать. Есть вариант не становится программистом.
>>> Процесс вашей самоподготовки делает вас более привлекательным для работодателей.
Совершенно не обязательно. Направление вашей самоподготовки может совпадать с задачами работодателя, а может и не совпадать.
Работодателей масса. С кем то совпадает. А с кем то нет.
>>> Если вы сделаете калькулятор для расчёта траекторий полёта спутников Земли, будет конечно круто. Но ваш будущий работодатель навряд ли в теме. Поэтому не сможет оценить результат.
Как раз наоборот. Оценивают же качество кода, а не качество алгоритмов. Если код по незнакомой теме понятен — это большой плюс.
Оценить качество кода без возможности проверить на практике его работу??? Успехов!
>>> Тему, где вам рассказывали про ваши ошибки, удаляете.
Ну то есть воспользовались чужим опытом, а потом не позволяете другим воспользоваться вашим. Очень мило.
Да, звучит цинично. Но…
>>> Будущему работодателю об ошибках знать не обязательно.
(Особенно если он случайно был одним из тех, кто рецензировал ваш код.)
На самом деле, как раз наоборот, работодатель заинтересован в том, чтобы знать, как человек реагирует на сообщения об ошибках, и как он исправляется. Ошибки совершают все. Исправляют их не все.
Работодателя интересует чтобы кандидат наделал меньше ошибок в коде. Ибо если кандидату подсказали на форуме что есть ошибка в его коде, то никто не будет подсказывать тоже самое для продакшена потом.
>>> Как-то раз была забавная история. Взялся раскритиковать резюме одного коллеги. Выводы были неутешительными.
А что в этой истории забавного? Вы написали свои выводы, но вы не написали, на чем они основывались и оказались ли они верными.
Заплатите мне. Напишу детальную статью про резюме. В т.ч. на чём основывался. Пока что меня поливают грязью такие как вы, за работу которую сделал бесплатно. Ну и смысл писать тут что то ещё для вас?
>>> Интересные технические решения, достижения(подробно). Хоть 10 страниц. Но именно в конце.
А в начале что?
Что обычно.
>>> Обязательно укажите, что готовы к релокации(переезду) и командировкам.
А если не готов?
Значит придётся ждать работу у себя в городе или даже деревне. Возможно даже всю жизнь.
>>> Невзирая на минимальный требуемый стаж, наличие профильного высшего образования, то, что вакансия уже закрыта и многое другое. На «том конце провода» лучше знают, что делать с этим.
Да, записать в черный список. Если человек не способен прочитать требования (и аргументированно объяснить, почему к нему они не применимы), он на этой работе не нужен.
Так и так человек не попадёт никуда. Смысла бояться черных списков нет.
>>> Вы удивитесь, но большинство собеседований для программистов проходят удалённо.
Очень удивлюсь. Во всех местах, где я работал, были очные собеседования.
Лично я недавно много куда просился на работу в офис. И никого не смущало что сейчас нахожусь на другом конце света. Прекрасно беседовали по скайпу.
>>> У большинства свербит главный вопрос, о зарплате. Вот это надо выяснять, в последнюю очередь. Такие вопросы поначалу обычно задают «профессионалы».
Нет, такие вопросы задают люди, которым нужны деньги.
… т.е. «профессионалы» как они описаны в статье.
>>>Обычно, размер зарплаты у стажёра, с некоторым багажом знаний по теме, это размер зарплаты обычного офисного хомячка в том же городе.
С чего бы? Пользы компании от таких стажеров немного.
Поэтому и зарплаты смешные, по сравнению с обычными разработчиками.
>>> Думаю, 500$ для сисадмина в средней полосе России потолок.
Что?!
500$
>>> Конечно, может так случиться, «Опыт и знания на 1000$» не получите. В этом случае, просто ищите другую работу.
… на которую вас не возьмут, потому что у вас недостаточно опыта. Замкнутый круг, не правда ли?
Как раз возьмут, потому что формально опыт уже будет.
>>> Чем больше объединение работников, тем больший доход это объединение получает на каждого работника. Соответственно, в больших фирмах зарплаты у работников обычно выше.
Во-первых, я не вижу, как из первого вытекает второе. Во-вторых, можно, пожалуйста, ссылку на исследование, показывающее, что у работников одинаковой квалификации зарплаты в больших фирмах больше?
Повторюсь. «Именно известные гиганты индустрии платят самые топовые зарплаты и скупают лучшие умы.» Опровергайте сами если не согласны.
>>> Как говорилось ранее, большинство людей «профессионалы». Попав на свою первую работу, они «успокоятся». И их стратегией будет «выживание». Они будут осваивать только знания, необходимые здесь и сейчас.
Ссылку на подтверждающее исследование, пожалуйста.
Нет ссылки. Не хотите не верьте. Я вам своё мнение не навязываю.
>>> Обычно этот период полгода.
Полгода до становления полноценным разработчиком? С какого момента?
Вообще то вначале вы правильно сосчитали. Цитирую:«через год работы, т.е., через полтора-два года с момента начала обучения можно получать от $1000 удаленно или эмигрировать в любую страну? „
А сейчас как раз об этом спрашиваете.lair
15.10.2017 23:54То что говорит Савельев очень хорошо сходиться с моим жизненным опытом.
У вас есть жизненный опыт в части нейробиологии? Определения размером долей в головном мозге? Нахождения корреляции между этими размерами и способностями?
Да, но небольшие.
А стипендию в ВУЗе можно получать сразу.
В стране куда уехал я ничего такого не нужно.
Вы сказали "уехать туда, где больше нравится". Мне нравится в тех странах, куда высокий въездной ценз. Скажем, в Штаты (которые мне, впрочем, не нравятся, но нравятся многим другим) можно уехать через два года обучения по вашей методике?
Статья поможет стать правильным программистом
Докажите это утверждение. Пока что озвученные вами деньги с ипотекой не согласуются никак.
Просто надо внимательнее читать. Имелось ввиду стать опытным пользователем компьютера.
Надо лучше писать. Что такое "опытный пользователь компьютера", и какие именно критерии?
Я стал таким за полгода.
Ваша фундаментальная ошибка состоит в том, что вы считаете, что если вы как-то что-то сделали, то эта методика обязательно подойдет другим.
Любовь к компьютерным играм заставляет молодёж изучить: что такое файл, как устанавливать\настраивать ПО, настраивать локалки и многое другое.
Нет. Просто возьмите приставку, настройте вайфай и играйте.
Просто потому что нет денег на дядю который всё это сделает за них.
А откуда вдруг взялась идея про "нет денег"?
Это мое ИМХО.
Так я про это с самого начала и сказал: вся статья — ваше ХО. Я бы вот побоялся учиться по чужому ХО.
Вы так не думаете потому что у вас есть опыт. У неопытных это очень частое заблуждение. Вам вообще стоит усвоить что это статья для начинающих, а не для вас персонально.
Вы-то пишете "все думают". Я неизбежно включен в эти "все".
Напишите свою статью на тему. Это будет лучше чем придираться к чужим.
Кому лучше-то? Я вот знаю, что не могу написать хорошую статью на эту тему; но почему я должен по этому поводу пропускать чужие плохие статьи?
А вы знаете?
Я не знаю; но я и не утверждал, что знаю.
Это соотноситься примерно так же как статьи на хабре и деньги.
Откуда вы знаете?
Их пишут явно не за деньги, но явно в рабочее время.
Я вот не пишу статьи на хабре в рабочее время. А кто-то пишет статьи на хабре за деньги.
Нет, не надо покупать. Я так и делаю.
Ну тогда и программистам будет не на что жить. Правда, здорово придумано?
Я тут перепутал «языки программирования» и «компьютерные языки». Но для вас эта разница настолько важна здесь, что статья оказывается совершенно негодной, так?
Да, именно так. А что такое "компьютерные языки", кстати?
Смотря как переводить слова pixel и point.
А как ни переводи, вы все равно смешали семантическую разметку и презентационную.
Понимание, можно ли браться за изучение более серьёзных технологий. Читайте внимательно!
Пишите лучше. А за день нельзя понять, можно ли браться за изучение более серьезных технологий? А без HTML вообще?
Однако все учебники JS рассматривают его исключительно с HTML.
Сочувствую людям, которые в 2017 будут учить JS по этим учебникам.
А это так важно прямо сейчас?
Да, это важно, потому что это термин, на который вы неоднократно ссылаетесь в своей статье, ни разу его не объяснив.
И у вас забанили гугл?
Да, забанили.
Зная хотя бы один С-подобный язык не хотят стать программистами. Это статья для тех кто как раз не знает.
Я имел в виду, что не обязательно учить JS первым — если в какой-то момент жизни он понадобится, освоить его легко.
Ну и что? Учить JS, не учить JS?
Конечно, не учить JS, пока не будет конкретных задач, требующих его применения.
Т.е. всё же Basic, по вашему?
Нет.
Тема учёбы рассматривается. Читайте внимательней!
Пишите лучше. Тема учебы рассматривается под лозунгом "учиться не надо".
Поэтому и написано «как правило».
Нет, "как правило", нужно то, что нужно по месту администрирования.
По вашему «структурированный язык запросов» может быть заменой JS или Python?
Нет. А JS не может быть заменой структурированному языку запросов. Так что это не аргумент. А еще есть T-SQL и PL/SQL, которые и вовсе тьюринг-полные. Впрочем, обычный SQL с CTE — тоже тьюринг-полный.
А чего это вдруг?
А того, что ничего лишнего на продакшн-сервере быть не должно.
Потом речь идёт о полезности языка для карьеры, а не для продакшн-сервера.
Вот только вы аргументируете эту полезность через то, что язык можно будет использовать для администрирования.
Восприятие видео всегда было легче.
Для вас. Если вы утверждаете, что оно легче для всех — приводите подтверждающие исследования.
GW-Basic?
Да нет, просто языки со статической типизацией и запретом на неявные приведения.
Массовое сознание воспринимает это слово как «человек работающий за деньги».
Люди, знаете ли, вообще чаще всего работают за деньги. Это смысл работы — получать за нее деньги.
Глупо оспаривать определения дающиеся в статье.
Глупо давать в статье определения, отличающиеся от общепринятых.
Потому что кроме программирования и работы есть ещё куча других вопросов в жизни которым надо уделять время. Семья, дети, дача и всевозможный быт. А тут ещё и программирование. Как раз этот момент я и продумал.
Если вас послушать, у людей не может быть хобби. Жизненный опыт с вами не согласен.
Это просто не ваше дело. Для тех кто не верит мне на слово, есть куча учебников по С++.
Ну то есть доказать свое утверждение вы не можете. Как и говорилось выше.
Субьективно.
И какую ценность для обычного читателя представляет ваше субъективное мнение?
А вы походу не джавист.
Да, я не джавист. В профиле написано.
«более фундаментальные»
А конкретнее? Список?
Какое практическое значение содержит ваше замечание?
Очень простое: вы говорите, что людям не хватает фундаментальных знаний, но не говорите, где их взять; единственный ваш совет на эту тему — "Вы должны выбрать для себя большую, фундаментальную книгу по какому-либо языку программирования. И изучить её до конца.". Так вот, это не фундаментальные знания по программированию. Так где же их взять?
Речь идёт о банальном «протыкивании» мышкой интерфейса программ. Самое сложное там как раз знать SQL.
В банальном протыкивании мышкой интерфейса SQL знать не нужно.
но и не помогало.
Отнюдь. Я не потратил времени и сил на этот не самый нужный мне навык, взамен потратив их на что-то более мне нужное. Например, на конфеты. Конфеты — вкусно.
Оттуда что всё равно придётся заливать код для портфолио на gitXXX сервисы.
BitBucket прекрасно поддерживает hg.
Качество образования в ВУЗ-ах. Такое что лучше без них.
Я вот ни капли не жалею, что закончил ВУЗ. Поэтому мне с ВУЗом лучше.
В статье есть всё про это. Просто надо внимательнее читать.
Не, нету (если есть, вас, конечно же, не затруднит привести цитату). Навыки проведения собеседования — это отдельные навыки.
Т.е. заплатить деньги второй раз?
Нет, не платить первый. И потребовать предоплату обратно.
Выбирайте соответствующие технологии. Я не обязан описывать все кейсы.
Ага, то есть ваша статья — про то, "как стать таким же программистом как я", а не про то, как стать таким программистом, которым хочет стать читатель. Ок.
Менеджер проектов который не вырос из тимлида это просто секретарь у команды разработчиков. Таких обычно не держат, ибо толку никакого.
Сколько менеджеров проектов вы видели за свой опыт? И да, можно "вырасти из тимлида", но для этого все равно понадобится приобретать отдельный большой набор навыков.
Ищите обзоры зарплат для Москвы. Там будут и ставки начинающих программистов.
Это будут ставки начинающих программистов. Но почему вы утверждаете, что их достаточно, чтобы заработать на жизнь? И, что важнее, почему вы считаете, что человека, который последовал вашей статье, на эту ставку возьмут?
Читайте внимательней!
Пишите лучше. Ответа на этот вопрос в статье нет.
Если хотите стать программистом то да. Надо чем то жертвовать
Чем-то жертвовать — это как раз "есть разница". А вы утверждаете, что ее нет.
Оценить качество кода без возможности проверить на практике его работу?
А что, в вашем коде нет тестов?
Работодателя интересует чтобы кандидат наделал меньше ошибок в коде.
Не только.
Ибо если кандидату подсказали на форуме что есть ошибка в его коде, то никто не будет подсказывать тоже самое для продакшена потом.
Код-ревью же. Никто не пустит код стажера в серьезный продакшн напрямую.
Ну и смысл писать тут что то ещё для вас?
Никакого. Не пишите. Это вы сказали, что отвечаете за каждое слово в статье, не я. Ну вот, отвечайте.
Что обычно.
… а что обычно пишут в начале резюме? Нет, после ФИО.
Так и так человек не попадёт никуда. Смысла бояться черных списков нет.
Есть, конечно. Если потом в этой компании откроется вакансия мечты, для вас она будет закрыта.
Лично я недавно много куда просился на работу в офис. И никого не смущало что сейчас нахожусь на другом конце света. Прекрасно беседовали по скайпу.
Ваш опыт не универсален.
т.е. «профессионалы» как они описаны в статье.
Ну если все люди, которым надо есть — это "профессионалы", то ваше определение не имеет смысла.
500$
Подтверждение в студию. Именно тезиса о потолке.
Как раз возьмут, потому что формально опыт уже будет.
Берут не по формальному опыту, а по фактическому. Умные работодатели, по крайней мере.
Именно известные гиганты индустрии платят самые топовые зарплаты и скупают лучшие умы.
Я же сказал: для одинаковой квалификации. Ваше утверждение, сделанное в вашей статье — вам и доказывать.
Нет ссылки. Не хотите не верьте. Я вам своё мнение не навязываю.
Вот про это я и говорил в самом начале: ваша статья основана на вашем мнении, подтвердить универсальность которого вы не можете.
А сейчас как раз об этом спрашиваете.
Я уточняю. Так вот, через полтора-два года с начала обучения — с нуля, без образования и наставника — нельзя стать полноценным разработчиком.
stanislav888 Автор
16.10.2017 15:13-2Я так и не увидел в вашем ответе доказательств того что статья негодная. У меня почасовые рейты. Поэтому писать ответы на всё ваше словоблудие времени нет. Выделите любые три тезиса из вашей портянки. И я вам подробно отвечу на них.
lair
16.10.2017 15:23Я так и не увидел в вашем ответе доказательств того что статья негодная.
А должны были? Это вы, как утверждающий, должны доказывать, что она годная.
Повторюсь, это вы написали "Отвечу за каждое слово". Теперь выясняется, что не ответите, "времени нет". Ну как бы да, я с самого начала про это и написал.
stanislav888 Автор
16.10.2017 19:07-1Я так и не увидел в вашем ответе доказательств того что статья негодная.
А должны были? Это вы, как утверждающий, должны доказывать, что она годная.
Вы вы сделали кучу замечаний к моей статье. Так понимаю, что бы доказать мою некомпетентность в данном вопросе. И соответственно моя статья негодная. Я не нашёл в ваших аргументах ничего подтверждающее это.
Повторюсь, это вы написали «Отвечу за каждое слово». Теперь выясняется, что не ответите, «времени нет». Ну как бы да, я с самого начала про это и написал.
Ну так вам и ответили! Читайте внимательнее!(Сколько можно повторять?!) Что не так??? Какого ответа на «каждое слово» вы тут ждёте??? То что у меня внезапно кончилось бесплатное время на ответы. Я не ожидал что вопросов будет так много. Будте добры экономить моё время, потому что оно стоит денег!
Не думаю, вам было бы трудно выделить 3 самых веских аргумента. Просто вы боитесь что вам на них ответят. Значит ничего веского с вашей стороны нет. Одно словоблудие.
Резюмирую, статья оказалась годной!DrPass
16.10.2017 19:40+2Резюмирую, статья оказалась годной!
Угу, на текущий момент с рейтингом -25, и к вашей начальной карме примерно -15. Годнее и не придумаешь, читатели просто в восторге.
lair
16.10.2017 20:58Так понимаю, что бы доказать мою некомпетентность в данном вопросе.
Нет, чтобы показать, что статья плохая.
Я не нашёл в ваших аргументах ничего подтверждающее это.
Я и не ожидал, что вы что-то найдете.
Ну так вам и ответили!
Мне ответили аргументами той же степени значимости (а иногда и вовсе теми же самыми), что и в статье. Толку от этого никакого.
Читайте внимательнее!
Пишите лучше. У вас совершенно отвратительный язык.
Что не так?
Да я сразу написал, что не так: "статья наполовину, если не больше, состоит из [громких] утверждений, для которых не видно особых оснований".
Будте добры экономить моё время, потому что оно стоит денег!
Я не думаю, что я как-то управляю вашим временем. Это вы, самостоятельно, решили написать эту статью, и это вы решаете, отвечать на комментарии или нет. Я не могу вас принудить ни к одному, ни к другому.
Не думаю, вам было бы трудно выделить 3 самых веских аргумента.
Мне просто лень сортировать их по "вескости". Но если вы настаиваете, то вот вам три произвольных сделанных вами ошибочных утверждения:
- через два года с момента начала движения по описанному вами маршруту разработчик (не имевший до того высшего образования) сможет "уехать туда, где [ему] больше нравится. Даже в другую страну"
- JavaScript — лучший первый язык программирования
- учебные пособия должны применяться в порядке "видеоуроки, мультимедийные учебники, книги"; "книги — самые тяжёлые для восприятия"
Резюмирую, статья оказалась годной!
Не вам это определять.
lair
15.10.2017 15:05А, еще одну вещь забыл.
Вот, предположим, человек потратил "полгода-год" на самостоятельное обучение. Устроился на работу. Еще через полгода-год стал "полноценным программистом".
Дальше что?
lair
16.10.2017 00:11Это мнение профессора Сергея Савельева. У него есть прекрасная лекция на тему. Не хотел его пиарить, ибо тема совершенно другая.
Одна, одна цитата из этой "лекции": "Управление мозга человека — оно состоит из нескольких компонентов. [...] В первую очередь, это — врождённые системы инстинктов. [...] таких врождённых инстинктов очень много".
У человека нет инстинктов (ладно, ладно, один есть, но не тот, который вы думаете).
DrPass
16.10.2017 00:34У человека нет инстинктов (ладно, ладно, один есть, но не тот, который вы думаете).
Автор статьи ошибается. У человека есть довольном много инстинктов. Часть из них проявляют себя у новорожденных, и вместе с рефлексами новорожденных отключаются по мере того, как у ребенка запускается высшая нервная деятельность. Только что родившийся ребенок, например, может ползти в сторону материнской груди, на запах. Тут работает и рефлекторный механизм отталкивания ногами, и инстинктивный — поиска источника запаха.
Сохраняются инстинкты и у взрослых. Если вы сзади внезапно услышите голодное рычание, вы испытаете страх и получите впрыск адреналина для того, чтобы драпать и остаться в живых. При этом осознание ситуации к вам придёт только через несколько секунд, когда вы уже будете сидеть на дереве.lair
16.10.2017 00:36Автор статьи ошибается.
Автору статьи я доверяю больше, чем вам, извините. Учитывая, что он не единственный, делающий такое утверждение, у меня есть больше одного источника для доверия.
Если вы сзади внезапно услышите голодное рычание, вы испытаете страх и получите впрыск адреналина для того, чтобы драпать и остаться в живых. При этом осознание ситуации к вам придёт только через несколько секунд, когда вы уже будете сидеть на дереве.
А это точно инстинкт? Он есть у всех особей вида (хотя бы одного пола)?
DrPass
16.10.2017 00:48Автору статьи я доверяю больше, чем вам, извините.
Я не претендую на его лавры.
Учитывая, что он не единственный, делающий такое утверждение, у меня есть больше одного источника для доверия.
Не так давно научное сообщество практически единодушно считало, что сознание — уникальная прерогатива человека. К популярным научным трендам лучше относиться с некоторой долей скепсиса. Все могут ошибаться, и зеленые аспиранты, и матерые академики.
А это точно инстинкт? Он есть у всех особей вида (хотя бы одного пола)?
Однозначно инстинкт. Да и все признаки, даже упомянутые в той статье, присутствуют.
И да, инстинкт не обязательно должен работать у всех особей вида. Видовое разнообразие подразумевает, что какие-то признаки, в том числе и инстинкты, у одной особи могут быть ярче выражены, у другой менее выражены. А естественный отбор уже решит, какие признаки важнее. Просто богомолы с менее выраженным инстинктом размножения померли бездетными, а наши предки с менее выраженным инстинктом убегания от хищников были сожраны в первую очередь. Сейчас (к сожалению или к счастью, не могу сказать точно) для нашей популяции естественный отбор не действует, поэтому и сохранение подобных признаков в популяции тоже не гарантировано.lair
16.10.2017 00:54"С классических позиций этологии врождённая программа действий включает в себя ключевой стимул, общий у всех представителей данного вида, который всегда будет вызывать один и тот же фиксированный комплекс действий"
Всегда вызывать один и тот же фиксированный комплекс действий. Тем не менее, некоторые люди в ответ на голодное рычание сзади могут не убежать, а замереть, а некоторые — развернуться и выстрелить.
DrPass
16.10.2017 00:55Всегда вызывать один и тот же фиксированный комплекс действий. Тем не менее, некоторые люди в ответ на голодное рычание сзади могут не убежать
И тем не менее, абсолютно все они испытают страх и получат впрыск адреналина. Инстинкт — это цепь реакций, которая не обязательно должна заканчиваться движением конечностей.lair
16.10.2017 00:59… про страх не знаю, а впрыск адреналина — это рефлекс, а не инстинкт. Безусловная и практически мгновенная реакция на стимул.
DrPass
16.10.2017 01:11В том то и дело, что это не рефлекс. Здесь действует детерминированный пусковой механизм. Если у вас за спиной заиграет скрипка, у вас подобной реакции не будет. А вот на рычание — будет. Это именно инстинкт.
lair
16.10.2017 01:15Так у рефлексов тоже детерминированный пусковой механизм. Различие рефлекса и инстинкта не в стимуле, а в реакции — у рефлексов она простая, а у инстинктов сложная.
Собственно, в определении инстинкта: "inherent inclination of a living organism towards a particular complex behavior" (выделение мое).
DrPass
16.10.2017 01:21Не совсем так. У рефлексов как раз простая взаимосвязь между раздражителем и реакцией. Рецептор сработал — нервный центр возбудился — эффектор выполнил действие. Рефлекс может срабатывать просто на наличие раздражителя, либо на какой-то пороговый уровень. А вот детерминировать источник раздражения, например, отличить один звук от другого, рефлекс уже не способен.
lair
16.10.2017 01:24Окей, значит это не рефлекс (если верить вашему утверждению, что "не может отличить"). Но это все равно не инстинкт, потому что нет сложного поведения (выброс адреналина — не сложное, и вообще не поведение).
DrPass
16.10.2017 01:48Почему нет? Мы же говорим про адреналин не как самостоятельный процесс, а как часть цепочки реакций на угрозу появления хищника за спиной. Так что всё честно :)
lair
16.10.2017 01:51Потому что нет запускаемого fixed action pattern. Есть только выброс адреналина, а вся последующая цепочка может быть произвольной. Какой конкретно complex behavior запускается голодным рычанием (и воспроизводится, в рамках вариативности, у всего вида)?
DrPass
16.10.2017 02:20Дык, упомянутый вами «fixed action pattern» — это лишь частный случай инстинкта. В общем случае нет никакого fixed, набор действий может варьироваться от особи к особи. Есть общая модель, попытка избежать опасности. А конкретное поведение у разных особей одного вида может отличаться — бег, прыжок, свернуться в клубок, притвориться мертвым, укакаться от страха и т.д.
Чем более развита нервная система, тем выше вариативность действий. Это, кстати, ещё одно существенное отличие инстинкта от простого рефлекса.lair
16.10.2017 02:23В общем случае есть "particular complex behavior". Разница между застыть от страха и вскарабкаться на дерево (в рамках одного вида-пола) в это не умещается.
DrPass
16.10.2017 03:12Почему? Вполне умещается. Критерии-то «умещается/не умещается» весьма субъективные. В сухом остатке есть потребность, пусковой механизм, «автоматическое» действие. Что ещё надо? Какие-то классификации «вот это действие считается, а вот это нет»? Таких классификаций не существует.
lair
16.10.2017 03:17Какое именно "автоматическое действие" включается у всех людей в ответ на такой раздражитель?
lair
16.10.2017 02:27Из той же статьи: "проявление конкретного инстинкта у разных особей одного вида может иметь слабые различия, но одновременно с этим оно явно определено у всего вида в целом и может служить чёткой отличительной чертой по отношению к другим видам.". Вот этого вот "явно определено" мы в вашем примере и не наблюдаем.
lair
15.10.2017 02:25Вспомнилось еще.
— How do I get to Carnegie hall?
— Practice, young man, practice...Интересно, почему никто не пишет статей "как стать музыкантом"?
lair
15.10.2017 02:30Английский язык
Отдельный ужасно смешной пункт.
Как известно, программисты такой народ, который умеет читать по английски, но не умеет говорить.
Кому известно?
Это тот язык, на котором вы будете искать решение своих проблем, общаться с заказчиками.
Ну и как можно общаться с заказчиками, не умея говорить на этом языке?
Хотя, надо признать, времени на него можно потратить столько же, сколько и на язык программирования.
… в несколько раз больше обычно.
Технический английский, изучить проще. Просто переводите материалы нужные вам, в различных переводчиках. Запоминайте незнакомые слова.
… и вы так и не выучите технический английский. Потому что даже в "техническом английском" нужна грамматика, которую таким способом получить невозможно. Собственно, таким образом можно получить только навык условного понимания простого английского текста.
stanislav888 Автор
15.10.2017 11:37-2Кому известно?
Это была шутка из интернета, которую очень хорошо запомнил ибо сам такой. Это вполне типично для специалистов которые пользуются английским только для чтения документации. Например когда работают только на отечественного заказчика.
Ну и как можно общаться с заказчиками, не умея говорить на этом языке?
Я это делал несколько лет текстом(чаты и багтрекинг).
… и вы так и не выучите технический английский. Потому что даже в «техническом английском» нужна грамматика, которую таким способом получить невозможно. Собственно, таким образом можно получить только навык условного понимания простого английского текста.
Лично я делал точно так как написал. До этого момента были только обрывочные знания о грамматике со школы. Сейчас понимаю всё что мне пишут. Но разговорный хромает.
lair
15.10.2017 12:28+1Это была шутка из интернета, которую очень хорошо запомнил ибо сам такой.
Не надо судить всех по себе.
Это вполне типично для специалистов которые пользуются английским только для чтения документации.
Если уж на то пошло, это типично для людей, которые пользуются английским только для чтения. Программисты и документация тут ни при чем.
Я это делал несколько лет текстом(чаты и багтрекинг).
Вы себе противоречите. Только что выше вы написали, что "вы сам такой" — т.е. умеете читать, но не умеете говорить, а теперь выясняется, что вы умеете писать.
Лично я делал точно так как написал.
И снова — не судите по себе. Если у вас такой подход привел к знаниям, это не значит, что у других он приведет к знаниям.
До этого момента были только обрывочные знания о грамматике со школы. Сейчас понимаю всё что мне пишут.
Есть разница между "понимаю все, что мне пишут" и техническим английским — в который входит как минимум навык грамотного письма и, желательно, простейшим навыком аудирования и говорения.
Собственно, что вообще такое "технический английский", раз уж на то пошло?
parakhod
15.10.2017 10:41+2Графомания — это ладно. Хотя, признаться, со мной редко такое случается чтобы я не смог осилить текст, даже формата "обо всём и ни о чём".
Но и советы-то вредные. Особенно в плане того, что учить. Учите, детки, хтмл, жабоскрипт, а потом переходите на серьёзный уровень — SQL и PHP. Нам нужно больше вордпрессят.
C++ не учите, слишком сложно.
Да, а ещё я слышал несколько умных названий, я вам сейчас их перечислю чтобы показать какой я умный.stanislav888 Автор
15.10.2017 11:51-2Но и советы-то вредные. Особенно в плане того, что учить. Учите, детки, хтмл, жабоскрипт, а потом переходите на серьёзный уровень — SQL и PHP. Нам нужно больше вордпрессят.
Тем кто не осилит хотя бы это стек, браться за плюсы или что серьезное противопоказано. Кто освоит можно и за плюсы. Но ради чего? Я вот с опытом на плюсах с трудом нахожу нормальную работу. Что уж говорить про начинающих.
«Лучше синица в руках, чем журавль в небе.» Об этом и написано.
stanislav888 Автор
15.10.2017 11:59-3Да, а ещё я слышал несколько умных названий, я вам сейчас их перечислю чтобы показать какой я умный.
Если хотите возразить по теме моего ума\опыта. Прочитайте другие мои статьи и возражайте.
SergeyKa_Ru
15.10.2017 12:15+1«Большинство желающих стать программистами, любители компьютерных игр, которым родители отключили инет для того, чтобы вернуть в реальность.» В детстве, мои родители сначала разными способами отключали телевизор, что бы я делал уроки в их отсутствие. Например вынимали предохранители (я купил свои) и другие ухищрения. Но я не стал инженером, хотя подробно разобрался в устройстве телевизора.
Затем при появлении отдельной комнаты они стали закрывать телевизор на ключ. Плюс имелся сейф с охотничьими причиндалами. Я научился вскрывать и закрывать замки с помощью иголок и ножниц. Но я не стал «медвежатником».
А стал программистом…
Мне кажется у вас много не верных предпосылок и предположений. Хочешь быть программистом — будь. А остальное условности.
GnuriaN
15.10.2017 12:35+2В IT не надо входить. В IT нужно жить. Это не работа от звонка до звонка. Это такой образ жизни. Где приходится учиться от зари до зари.
Есть миф, что программистом может стать каждый. Этот миф любят эксплуатировать все, кто хотят заработать денег.
redfs
15.10.2017 12:49-2Лучше быть стажёром через год самостоятельной учёбы, чем через четыре года посещения ВУЗа. Те, кто начнёт заниматься по моим рекомендациям сейчас, через 4 года будут проводить технические тесты при приёме на работу тех, кто сейчас поступает в ВУЗы
Забудьте этот совет, как можно быстрее.
Впрочем, как и вообще об этой статье.
Я провожу технические собеседования уже лет 20, поверьте, разница в кандидатах с ВО и без него есть, и выражается она даже не в общем уровне на момент собеседования, а в перспективе.
И да, автор нагло врёт, когда обещает, что вы будете проводить технические собеседования через 4 года, следуя его советам. В любой приличной компании никто вас не назначит на должность, требующей принятия хоть каких-то решений, если у вас нет ВО. Может это и несправедливо по отношению к отдельным уникам, но это — факт. Это один из фильтров, и никуда от него не денешься.
Автор сам пишет, подтверждая мои слова:
Я вот с опытом на плюсах с трудом нахожу нормальную работу
И написал вредную методичку…lair
15.10.2017 14:02разница в кандидатах с ВО и без него есть
С любым ВО?
redfs
15.10.2017 14:11Если вы о любом техническом ВО, то в принципе — да, с любым. А программированию он мог учиться самостоятельно, но тут нет противоречия. ВУЗ учит в первую очередь самостоятельно получать знания, а не алгоритмам и программам.
lair
15.10.2017 14:26Нет, я говорю о любом ВО вообще, не только техническом.
redfs
15.10.2017 14:33Тогда я не могу вам ответить, потому что не знаю. Я имел дело только с технарями (разных специальностей и специализаций).
lair
15.10.2017 14:34Значит, ваши 20 лет технических собеседований были весьма ограниченными. Печально.
redfs
15.10.2017 14:42Возможно я что-то потерял, раз за 20 лет ко мне ни разу не приходила на собеседование выпускница ВГИКА в поисках вакансии программиста, но я не понимаю, какая ваша то печаль? Поясните, плиз.
lair
15.10.2017 14:44Моя печаль в том, что я не могу из вашего утверждения "разница в кандидатах с ВО и без него есть" понять, какие шансы у человека с гуманитарным ВО.
redfs
15.10.2017 14:49Понятно. В любом случае (как мне кажется) во всех случаях подход индивидуальный. Я говорил о свих наблюдениях (можно назвать это статистикой), а не о шансах.
lair
15.10.2017 14:51Утверждение "во всех случаях подход индивидуальный" противоречит вашему же "вас не назначит на должность, требующей принятия хоть каких-то решений, если у вас нет ВО".
(я даже не буду спрашивать, о каком ВО идет речь в этом случае)
redfs
15.10.2017 15:09Не стоит заниматься казуистикой. На всякий случай уточню «индивидуальный подход» — это о техническом собеседовании на должность программиста. А потом идет карьерный рост. Так вот, во многих организациях есть фильтр — «наличие ВО». Претендента могут взять программистом без ВО, но руководителем разработки он не станет никогда, и не потому что начальники плохие, не понимают его гения. Просто есть формальная внутренняя инструкция.
lair
15.10.2017 15:13+1Так вот, во многих организациях есть фильтр — «наличие ВО». Претендента могут взять программистом без ВО, но руководителем разработки он не станет никогда, и не потому что начальники плохие, не понимают его гения. Просто есть формальная внутренняя инструкция.
Я глубого сочувствую этим организациям.
Так все-таки, фильтр на руководителя разработки по ВО-вообще или только техническому ВО?
redfs
15.10.2017 15:19Я глубого сочувствую этим организациям
Я тоже. Но это ничего не меняет.
Так все-таки, фильтр на руководителя разработки по ВО-вообще или только техническому ВО?
Выясню завтра эту тонкость у нашего HR, если вам это действительно интересно.
DrPass
15.10.2017 15:24+1Я глубого сочувствую этим организациям.
А чего сочувствовать? Они ничем не рискуют, кроме того, что с какой-то вероятностью могут пропустить талантливого самоучку, которому было слишком скучно получать вышку. Но я думаю, эту «потерю» они переживут и даже не заметят.
stanislav888 Автор
15.10.2017 15:02-1И да, автор нагло врёт, когда обещает, что вы будете проводить технические собеседования через 4 года, следуя его советам.
Если выбрать направление, где интересно, человек будет развиваться самостоятельно и достигнет больших успехов. Стать TeamLead за 4 года вполне реально.
В любой приличной компании никто вас не назначит на должность, требующей принятия хоть каких-то решений, если у вас нет ВО.
В гоструктурах, да. Там и программировать то особо не надо. А где люди заняты делом ценят исключительно компетентность безо всяких дипломов.
За 4 года реально не то что проводить тех собеседования, но и создать свою фирму. Всё зависит исключительно от талантов и амбиций человека.
Автор сам пишет, подтверждая мои слова:
Я вот с опытом на плюсах с трудом нахожу нормальную работу
Просто на плюсах удалённо мало вакансий. Но вопрос уже практически решён. Поэтому быстро доделал и выложил статью чтоб не отвлекаться на неё во время работы.
Моя фраза изначально была о том, что есть более интересные варианты чем С++ с теми же зарплатами. Питон, например. Хотя усилий на изучение он требует гораздо меньше.
Коротко, но с матом, мнение директора к которому приходят устраиваться на работу после получения ВО. Потом, замечательная статья на тему от профессора Столяроваlair
15.10.2017 15:08Потом, замечательная статья на тему от профессора Столярова
Мне кажется, рассуждения Столярова на хабре тоже уже разбирали и тоже нашли… не очень состоятельными.
DrPass
15.10.2017 15:12Если выбрать направление, где интересно, человек будет развиваться самостоятельно и достигнет больших успехов. Стать TeamLead за 4 года вполне реально.
Если вы пришли в профессию лет в 25, и с опытом работы в других областях, то статьи тимлидом к 30 вполне возможно. Если вы молодой специалист после ВУЗа или там 20-летний самоучка, то как бы вы не старались, вы можете за 4 года стать миддлом, если вы талантливый, то станете сеньором. Но вы вряд ли станете в таком возрасте тимлидом, по крайней мере, не по записи в штатном расписании (это-то вполне возможно, тимлид ушел, вами заткнули вакансию), а по факту выполняемых задач. Потому что тимлид — это не только (и даже не столько) умение писать софт. Тимлид — это в первую очередь работа с людьми. И хренушки вы её освоите за это время, учитывая, что бОльшую его часть вы тратили на своё развитие как специалиста, а не как менеджера.
YemSalat
16.10.2017 00:08В любой приличной компании никто вас не назначит на должность, требующей принятия хоть каких-то решений, если у вас нет ВО. Может это и несправедливо по отношению к отдельным уникам, но это — факт.
Не слишком ли безапелляционно?
Незаконченное высшее тоже не считается?
Bill Gates, Mark Zuckerberg, Steve Jobs — все эти люди плохо принимали решения?redfs
16.10.2017 08:20Да, безапеляционно, возможно. Но честнее и гораздо ближе к реалиям, чем слезливые истории успеха молодых стартаперов. И гораздо ближе к реалиям, чем статья, написанная человеком, считающим html языком программирования и дающего 100% гарантию успешного обучения по своему методу.
aquamakc
16.10.2017 12:16Вспоминается такой шуточный диалог при приёме на работу:
— Забудьте всё, чему вас учили в институте, тут у нас реальная жизнь!
— Но я не учился в институте.
— Тогда вы нам не подходите. Нам нужны сотрудники только с высшим образованием.
lair
15.10.2017 14:01А скажите, сколько программистов на ваших глазах успешно прошло по этому карьерному пути?
AlexZaharow
15.10.2017 16:41А мне вот интересно сколько программистов на ваших глазах прошли по вашему карьерному пути? мне вот интересно было бы почитать про ваш, что скажете? Можно без котиков. Или вы не доверяете здешнему сообществу?
lair
15.10.2017 23:13А мне вот интересно сколько программистов на ваших глазах прошли по вашему карьерному пути?
Зависит от того, что считать моим карьерным путем.
мне вот интересно было бы почитать про ваш, что скажете?
Скажу, что не вижу смысла о нем писать. С одной стороны, он совершенно тривиален: читать, программировать, работать, читать, работать, намылить, смыть, повторить. С другой стороны, учитывая мое образование, он совершенно идиосинкратичен, и поэтому вряд ли будет кому-то полезен. Ну а для мемуаров я, к счастью, недостаточно тщеславен.
Проще говоря, пост про мой карьерный путь будет квинтэссенцией всего, что я не люблю в аналогичных постах на хабре, поэтому я предпочел бы его не писать.
AlexZaharow
16.10.2017 12:10>> намылить, смыть, повторить
Ещё про яйца можно вспомнить анекдот. )))
Я вам больше скажу.«За те двести лет, что я ему служу, он ничуть не изменился.»Есть у «развития» некоторый путь, каждый видит его по-своему.
Вот автор статьи написал как он видит свой. Я не совсем согласен, что-то отсеял, т.к. есть своё субъективное критическое мышление. Вы так накинулись на автора как буд-то он вам кровную обиду нанёс, что опубликовал своё видение.
>> Скажу, что не вижу смысла о нем писать
А критиковать с таким рвением есть смысл? Айзек Азимов написал — «изучать предмет акр за акром для пользования им и наблюдать с высоты для вдохновенья». Вот эта статья — взгляд с высоты. Меня тоже позабавили некоторые «определения» типа html, но уверен, что они отлично подойдут тем кто не отличает языка программирования от данных и форматов. Называют же некоторые всех кто в IT — «компьютерщик» (сериал даже есть).
И если это поможет кому-то понять, что это не его — тем лучше. Или что это его — тоже хорошо.
>> мой карьерный путь будет квинтэссенцией всего, что я не люблю в аналогичных постах на хабре
У нас в столовке с утра на завтрак можно взять оладьи. И многим они не нравятся. А знаете, что интересно — зачем эти люди берут их каждый раз и продолжают жаловаться?
Знаете как сменить интонацию на Хабре? Написать свою статью на эту тему. Это как раз и должна быть квинтэссенция. Лично я не вижу смысла разводить тут холивар, который даже неинтересно читать. Вы не могли эту простыню в личку запихать, т.к. никому не ясны мотивы ваших нападок и придирок к словам.
P.S.
Знаете, вот на сайте есть раздел «тостер». Вот когда мне становится лень, я открываю его и читаю вопросы. Знаете какой ощущение? Вот я сейчас ленюсь, а ведь кто-то прямо сейчас работает головой. А я нет. Надо срочно что-то сделать. )))lair
16.10.2017 12:23Вот автор статьи написал как он видит свой
Нет, автор написал, какой путь развития он рекомендует, как правильный.
А критиковать с таким рвением есть смысл?
Да, есть. Люди, которые будут читать эту статью, будут видеть сделанные в ней ошибки, и не будут ей следовать.
Меня тоже позабавили некоторые «определения» типа html, но уверен, что они отлично подойдут тем кто не отличает языка программирования от данных и форматов.
Если они хотят и дальше не отличать — то да, может быть подойдут.
Знаете как сменить интонацию на Хабре? Написать свою статью на эту тему.
… с другой интонацией, да. А я как раз и говорю, что у моей статьи будет та же интонация, что и у других, и это меня останавливает.
AlexZaharow
16.10.2017 15:47Люди, которые будут читать эту статью, будут видеть сделанные в ней ошибки, и не будут ей следовать.
Я считаю, что тут-то и состоит ваше главное заблуждение в отношении опыта. Ну и других людей. Хороший опыт складывается процентов на 90 из знания того как не надо делать. Его не дают в институте, не рассказывают на работе, т.к. все хотят видеть «результат», хоть бы и сомнительный (и с этим трудно спорить). И вы тоже гнёте в сторону, что опыт должен быть только положительный. Уверен, если вы сейчас задумаетесь о своём опыте, то наверняка увидите, что ваше движение в гору началось после того, как у вас накопился достаточно большой неудачный опыт по многим вопросам. И его нельзя нигде получить, кроме как «намылить, повторить», но только каждый раз с разными параметрами «намылить». Просто со временем учишься подбирать верные параметры за одну-две-три итерации. Ну, а лично для себя я веду рабочий дневник. Очень помогает когда открываешь проект двух-годичной давности и освежаешь в памяти не по исходному коду в десять тысяч строк, а по обычному «человеческому» тексту, да ещё и со скринами. Правда надо бы его чаще перечитывать. ))) Так что, я хоть и не со всем согласен в статье, но думаю, что её больше стоило бы дополнить, чем придираться по-мелочам.
P.S.
Вот вы тут выше спросили «а дальше что?». А дальше — как и в любой профессии. Расширять круг влияния своих решений — экспансия. Сначала на маленькое количество людей, потом шире и шире. Скажем, даже если на начальном этапе вы облегчили работу одному человеку, то потом 10, потом 100, 1000 и т.д. Всегда. Есть. Самые. Разные. Задачи. Нужно учиться их находить и решать. По-моему это вполне логично, когда именно ваше «кун-фу» приобретает «человеческое» лицо, а не просто я владею «кодированием».
Программирование — оно для людей, а не для компьютеров. Для компьютеров — кодирование.lair
16.10.2017 15:50И вы тоже гнёте в сторону, что опыт должен быть только положительный.
Э, где? Я как раз говорю, что многим, включая работодателя, интересен отрицательный.
Так что нет, я не вижу, как то, о чем вы говорите, противоречит тому, о чем говорю я. Опыт надо нарабатывать, и положительный, и отрицательный. Но в статье заложено много ошибочных посылок, которые человеку помешают.
Грубо говоря, учитель не должен давать ученику заранее неправильный совет, чтобы тот набрался отрицательного опыта, это подрывает доверие к учителю.
AlexZaharow
16.10.2017 17:02Э, где?
>> Люди, которые будут читать эту статью, будут видеть сделанные в ней ошибки
Многие люди, читающие эту статью не отличат «правильного» с вашей точки зрения от «неправильного» тоже с вашей точки зрения. Так что я бы не спешил что-то считать правильным в принципе. Ровная поверхность ровная только до определённого увеличения. Но не каждый понимает как это сделать.
многим, включая работодателя, интересен отрицательный
Меня не один работодатель не спросил ещё «А что у вас не получилось?» Или вы имели в виду что-то другое?
учитель не должен давать ученику заранее неправильный совет
Автор — не учитель. Во всяком случае для меня. Поэтому лично я сразу отфильтровал его утверждение, что это «истинный» путь программиста, но в принципе направление задано верно. Согласитесь, что по карте всегда можно проложить разные маршруты между пунктами назначения. Разве нет?lair
16.10.2017 17:07Многие люди, читающие эту статью не отличат «правильного» с вашей точки зрения от «неправильного» тоже с вашей точки зрения.
Вот именно для этого я и пишу комментарии.
Меня не один работодатель не спросил ещё «А что у вас не получилось?» Или вы имели в виду что-то другое?
Один из "стандартных" вопросов на собеседовании — назовите самую запомнившуюся вам вашу ошибку. Это во-первых. Во-вторых, когда люди ошибаются на собеседовании (или им указывают на ошибки в принесенном коде), очень важно, как они реагируют на это и исправляют. Ну и наконец в работе все то же самое — все будут ошибаться. Важно не то, что они ошибаются, а то, как они исправляют свои ошибки (и какие выводы они делают).
Поэтому лично я сразу отфильтровал его утверждение, что это «истинный» путь программиста
Ну то есть вы отфильтровали утверждение, с которым я спорю, и удивляетесь, что я с ним спорю.
Согласитесь, что по карте всегда можно проложить разные маршруты между пунктами назначения. Разве нет?
Очевидно, не всегда.
AlexZaharow
17.10.2017 10:14(или им указывают на ошибки в принесенном коде), очень важно, как они реагируют на это и исправляют
Вы преподносите работодателя как уникума, который способен разглядеть ошибку в коде, который он видит в первый раз. Вы серьёзно?
Неприятно, что считается, что работодатель — это какое-то божество.
>> Ну и наконец в работе все то же самое — все будут ошибаться.
Вот и мне тоже интересно, а как себя поведёт работодатель, который окажется в ситуации, которую мне же и создал. Под видом «развлечься» на собеседовании подкинул одному техническому директору задачку из окружающей действительности. Ну, вы уже поняли, что я с ним больше не встречался ))) Либо мы все вместе разгребаем авгиевы конюшни, либо я это делаю самостоятельно, но не разрешаю мне указывать как я это буду делать, лопатой или брандспойтом. Я бы предпочёл просто разговор с возможным работодателем о его проблемах и моём месте в его решении.
Очевидно, не всегда.
Возможно, я не совсем понятно выразился, поэтому я уточню. В достаточно сложной задаче есть «узкие» места, каждое из которых является «атомарным» шагом. Сумму таких шагов всегда можно переделать по разному. Именно поэтому я и сказал, что маршрутов бывает несколько.lair
17.10.2017 11:55Вы преподносите работодателя как уникума, который способен разглядеть ошибку в коде, который он видит в первый раз. Вы серьёзно?
Эээ, а что в этом такого уникального? Код же приносят на языке, который собеседующий знает (иначе зачем), ошибки дизайна от бизнес-задачи зависят мало. В каком-то смысле, это ничем не отличается от абстрактного code review на том же http://codereview.stackexchange.com. Я же не говорю, что надо найти все ошибки, или что ошибки вообще обязательно надо найти. Но когда люди приносили мне на собеседование код, я всегда мог задать вопрос "почему здесь так сделано" и "что будет, если сделать вот так".
В достаточно сложной задаче есть «узкие» места, каждое из которых является «атомарным» шагом. Сумму таких шагов всегда можно переделать по разному.
Прикол в том, что есть такие задачи (например, обучение некоторым дисциплинам), где узкие места, будет они возникают, проходятся всеми одинаково (просто потому, что за несколько сотен лет обучения этой дисциплине пока так никто ничего и не придумал лучше в этом месте). Как не переделывай остальной маршрут, а через это ущелье придется пройти.
retran
16.10.2017 16:23Из нескольких сотен известных мне программистов такой карьерный путь только у тебя.
А вот у очень многих из тех кому сейчас примерно 30+ все примерно аналогично — таки компьютерные игрушки, попытки делать свои, школьные олимпиады по информатике/математике/физике, техническое/математическое/физическое образование, подработки параллельно с вузом.
У тех кто младше — уже совершенно другой — ПХП, сайтики, фриланс (печально на самом деле, среднее качество разработчиков стремительно спускается на дно).lair
16.10.2017 16:51Из нескольких сотен известных мне программистов такой карьерный путь только у тебя.
Какой "такой"? Читай-пиши-читай-пиши?
А вот у очень многих из тех кому сейчас примерно 30+ все примерно аналогично — таки компьютерные игрушки, попытки делать свои, школьные олимпиады по информатике/математике/физике, техническое/математическое/физическое образование, подработки параллельно с вузом.
Ну вот замени в этом списке образование и получишь меня. Я даже игрушку свою пытался писать, не спрашивай, на чем.
У тех кто младше — уже совершенно другой — ПХП, сайтики
Опять-таки ж, до первого устройства на работу я наклепал аж два своих сайта на asp (ванильном), не думаю, что это чем-то лучше PHP. И один нафрилансил.
retran
16.10.2017 17:36Ну вот замени в этом списке образование и получишь меня.
Угу, вот только, имхо, это и важно. Не то чтобы самими знаниями, а кругом общения, затратами времени на серьезное непрофильное образование и тому подобным.
Я даже игрушку свою пытался писать, не спрашивай, на чем.
Если вышеупомянутый выше GW-BASIC, то, да, ты не один такой :)))
Опять-таки ж, до первого устройства на работу я наклепал аж два своих сайта на asp (ванильном), не думаю, что это чем-то лучше PHP. И один нафрилансил.
Ты до этого целенаправленно «учился делать сайты»? Или все-таки программировать?lair
16.10.2017 17:39Угу, вот только, имхо, это и важно. Не то чтобы самими знаниями, а кругом общения, затратами времени на серьезное непрофильное образование и тому подобным.
А, так я ж поэтому и написал, что мой опыт идиосинкратичен, применить его к себе стороннему человеку будет не так-то просто.
Ты до этого целенаправленно «учился делать сайты»? Или все-таки программировать?
Я до этого валял дурака. А тут просто возникла задачка, и я полез искать, как бы ее решить.
retran
16.10.2017 17:54Я до этого валял дурака. А тут просто возникла задачка, и я полез искать, как бы ее решить.
По моему субъективному ощущению — количество людей, которые «валяют дурака» радикально уменьшилось. До смешного — приходят студенты, которые помнят сложности сортировок, но не могут писать код, и которым нечего показать.lair
16.10.2017 17:59Engineers tinker; no tinkering — no engineers?
retran
16.10.2017 18:17А как иначе воспитать какое-то реальное инженерное мышление?
lair
16.10.2017 18:20Да я же не спорю. Кстати, ты помог мне понять, что меня — кажется — подсознательно расстраивало в этой статье: в ней тоже нет этого этапа, tinkering for the sheer f*g fun of it. Сразу "я вас научу, как заработать денег".
retran
16.10.2017 18:30У нас есть целый отдел, который занимается наймом и адаптацией студентов. Обсуждал этот вопрос с ними (буквально, задал вопрос — «Почему в эпоху гитхаба и войтивайти студенты крутых профильных вузов приходят и у них нет буквально ничего, кроме лабораторок?») — говорят, что вот такая тенденция есть. Цитируя: «они себя вот так видят: я делаю лабораторки, потом, бац, и я крутой программист с большой зарплатой». Собственно, я примерно про это и писал, но плохо раскрыл мысль.
AlexZaharow
17.10.2017 10:32>> «я вас научу, как заработать денег»
Простите, но мне кажется, что вы всё-таки слишком придираетесь. В конце концов все работают за зарплату. Халявных денег почти не бывает.
Но, ведь это нормально, когда разговор идёт о деньгах. Мне один начальник говорил, как его предыдущий начальник мотивировал: открывал сейф, показывал котлету денег и говорил
— Это ваше! Но… (закрывая сейф) надо заработать.
Если вы работодатель, то почему не быть честным с интервьюируемым не показать, что вы платёжеспособны?
В выгодном положении находится тот, кто умеет диктовать условия. И договариваться. Простите, но у меня складывается впечатление, что вы как-то всё больше жалуетесь, что ли. Нужно как-то зажечь кандидата, чтобы он перестал хотеть только денег. Даже если вы откажете человеку, хорошо бы, чтобы он всё равно ушёл довольным. Мало ли когда ваши пути пересекутся?
Арнольд Шварцнеггер в своей книге написал: «Мне нужен такой агент, который придёт к режиссёру фильма, стукнет кулаком по столу и скажет — этот парень достоин главной роли». Может вам нужен такой агент? )))lair
17.10.2017 11:57В конце концов все работают за зарплату.
Не все, но дело даже не в этом. Меня существенно больше волнует то, что не все программируют за зарплату. Работать с человеком, который делает то, что он делает, только потому, что за это платят большие деньги — грустно.
Нужно как-то зажечь кандидата, чтобы он перестал хотеть только денег.
Если он заведомо пришел в профессию только потому, что в ней платят много денег, это уже не удастся.
Другое дело, что люди, которые делают свою работу только и исключительно за деньги — но при этом, и это важно, делают ее хорошо — тоже полезны. Просто не универсальны.
AlexZaharow
17.10.2017 15:48Работать с человеком, который делает то, что он делает, только потому, что за это платят большие деньги — грустно.
Это палка о двух концах. Если вы за его работу получите большие деньги, а ему достанется только зарплата, то будет грустно ему. Поэтому, если он свои деньги отрабатывает, то уже не грустно.
Или поставьте себя на место своих заказчиков. Им не грустно, что вы хотите взять их деньги себе?
Я вот иногда как-то стесняюсь говорить о деньгах. Хороших деньгах. И знаете что? За свою «карьеру» я получал разные суммы. Больше всего больших сумм было тогда, когда я сам их называл. Люди оставались довольны. Это главное.
Знаете, я сделаю предположение, почему вы так строги к автору. Вы крутитесь в этом бизнесе и у вас есть внутренняя планка. И я вас понимаю. За свою работу я и сам никому не заплачу много денег. Просто потому, что могу её сам сделать. Но и подход автора мне понятен. Как можно построить карьеру без бизнесплана? Планирование — это очень правильно для экономики в целом, хотя я им не занимаюсь. Возможно когда-то я поменяю свою точку зрения.lair
17.10.2017 15:58Это палка о двух концах. Если вы за его работу получите большие деньги, а ему достанется только зарплата, то будет грустно ему.
А откуда у вас взялось противопоставление "больших денег" и "зарплаты"? Я-то эти вещи употреблял как синонимы.
Или поставьте себя на место своих заказчиков. Им не грустно, что вы хотите взять их деньги себе?
Нет, потому что взамен они получают возможность заработать больше.
Мой пойнт не в количестве денег. Мой пойнт в мотивации.
stanislav888 Автор
15.10.2017 16:46-1Это компиляция моего жизненного опыта. Статье два дня. И первые реальные прошедшие будут через полтора-два года.
DrPass
15.10.2017 16:55+1И первые реальные прошедшие будут через полтора-два года.
Т.е. сравнивать у вас не с чем, есть только выборка из одного человека, но вы решили сразу протестировать на живых людях? Не проводя испытаний на мышах, обезьянах? Педагогика у вас так себе, если честно.
Да и первые реально прошедшие появятся лишь в том случае, если они после прочтения статьи не начнут читать кучу негативных (обоснованно негативных, между прочим) комментариев к ней.
lair
15.10.2017 23:14Ну то есть ни один человек, кроме вас, по этому маршруту еще программистом не стал (а про вас мы тоже особо ничего не знаем). Так откуда вы знаете, что это работающий маршрут?
AlexZaharow
15.10.2017 15:05В принципе интересно почитать разные пути джедаев. Тем более, что нет одинаковых. Ни путей, ни джедаев. Я считаю, что хорошо, когда люди делятся такой информацией, т.к. программирование — это наука, а наука может развиваться только когда открыта для новых идей.
Полностью согласен, что программирование в принципе трудно. По поводу того, как понять, что оно вам подходит (о чем пишет автор в начале статьи), то у меня такое мнение: если программирование вам помогает, то это ваше, если не помогает, то не ваше.
Что касается выбора работы — вообще полезно иногда сменить работу, потому что в каждой фирме образуется свой стек технологий и все программирование у новичка может начать выкристаллизовываться в такой стек. И такой «новичок» в итоге становится вечным.
По мне так нормально написано и сделана некоторая систематизация опыта. Я бы добавил ещё, что свои знания полезно записывать и скриншотить, т.к. невозможно все запомнить. Не все заметки из записной книжки достойны публикации, но автор верно заметил — не все проблемы можно нагуглить и если их решения записаны, то это здорово.
Что касается работодателей, то проще найти с ними общий язык, если говорить об их проблемах. Вдруг у вас есть, что предложить даже на собеседовании. Не обязательно быть крутым спецом, чтобы предложить хорошее решение. Но нужно понимать суть проблемы.
stanislav888 Автор
16.10.2017 23:06-1Задали очень интересный вопрос. А на ком я испытал предложенную методику? Просят привести примеры успешной карьеры.
lair: А скажите, сколько программистов на ваших глазах успешно прошло по этому карьерному пути?
DrPass: Т.е. сравнивать у вас не с чем, есть только выборка из одного человека, но вы решили сразу протестировать на живых людях? Не проводя испытаний на мышах, обезьянах? Педагогика у вас так себе, если честно.
Да и первые реально прошедшие появятся лишь в том случае, если они после прочтения статьи не начнут читать кучу негативных (обоснованно негативных, между прочим) комментариев к ней.
Начнём с того что статья, компиляция жизненного опыта.
Во первых. Сам прошёл каким то путём. И глядя назад понимаю что многих ошибок можно было избежать. Например пытаться осилить большую толстую книгу по С++, не имея минимального опыта программирования, на чём угодно.
Во вторых. Во все времена видел много людей, которые разными путями, успешно и безуспешно становились программистами. Думаю, у любого человека есть такие знакомые. Так что нет ничего удивительного что у меня они были тоже.
В третьих. Когда я всё таки стал программистом, захотелось протащить в IT и своих близких. Пусть тоже работают за хорошие деньги. Желание протащить родных на «блатные должности», даже когда они совсем для этого негодные, есть у всех. Это и заставило придумывать методику для совсем чайников.
В четвёртых. Я тоже почитывал статейки и смотрел видео на тему «как стать программистом». То что оказалось годным, было учтено при написании.
Таким образом за ~10 лет успел стать программистом сам, попробовал учить родных. И знакомился с мнением других. Если коротко у меня есть какое то мнение и опыт. Он несовершенен, конечно, и я даже не преподаватель или педагог. Казалось бы с какой стати мне учить других?!
Зайдём с другой стороны. А что имеет начинающий и особенно молодой человек на данном пути:
1) Понтоватые программы подготовки ВУЗ-ов. Высшее образование на хабре не пинал только ленивый. Даже преподаватели солидных учебных заведений справедливо его критикуют.
2) Различные курсы и тренинги, предлагающие научить с «гарантией трудоустройства». Учить то учат. Только кадровый голод никуда не девался почему то. Если бы это действительно работало, все бы учились и научились. Судя по отзывам, большая часть таких курсов не годиться.
3) Куча хорошей и качественной литературы по конкретным технологиям. Там хорошо написано как изучить что то конкретное. Но стать программистом в целом — нет.
4) Поверхностные и малопригодные статьи по запросу «стать программистом». Может и есть хорошее, но очень мало тонкостей процесса. Никто не будет объяснять особенности «спиральной модели», что бы впарить очередные курсы или поднять посещаемость сайта. Зато много кому нужны деньги или просто клики на ссылки. Людей гораздо проще обмануть рекламными приёмами, чем добиться реальных успехов.
5) Ну и самое «сладенькое». Советы самих программистов начинающим.
Просто возьмём некоторые комментарии отсюда.
Программист сначала должен учиться писать программы на императивном языке, чтобы порядок шагов для достижения цели соответствовал тому, что он напишет в программе. А уже потом уходить в функциональщину. А HTML вообще к программированию имеет весьма косвенное отношение.
… я бы, кстати, советовал начинать с языка с одной выраженной парадигмой, чтобы не было смешения в голове.
… Вот когда столкнетесь, тогда и выучите. Зная хотя бы один C-подобный язык, понять JS достаточно несложно.
Такими «советами» интернет очень богат.
Прочитав подобное, вместе с «для начала выбрать парадигму в которой будете программировать». Новички начинают чувствовать себя дураками не способными понять даже «элементарные вещи».
Если бы такие предложения имели какое то подобие программы действий. Т.е. объяснили бы парадигмы программирования, потом шаги для движения в соответствии с выбором. Но, нет! Просто кучка фрагментарных советов, порождающая только хаос в голове. Начинать изучение чего либо на основе этого. То же самое, что учиться фигурному катанию на льду, без коньков.
Лично я видел только одну методичку задающую правильное направление начинающим «Путь программиста: от 100$ до 10000$ в месяц». Хотя это и реклама очередных курсов. (С которыми я никогда не познакомлюсь) Но книжечка получилась хорошей.
Я не нашёл в сети целостной и эффективной программы становления специалистом. Но у меня было много идей на этот счёт. Поэтому решил написать данную статью.
Давайте, для примера рассмотрим ситуацию. Покупаете себе первый мотоцикл. Решили взять «спортивный» т.е. очень мощный и скоростной. Советуетесь с друзьями, что лучше. А вам старый байкер внезапно говорит: «Не надо брать 'спорта'!» Тогда вы по логике здешних комментаторов должны спросить: «А сколько человек ты уже научил ездить на мотоцикле? Какие у них успехи? Какие призы, на каких соревнованиях они получили?» — ну и так далее. То же самое можете спросить своих родителей, если они советуют не ездить пьяным за рулём.
Нормальный человек в случае со 'спортом' должен спросить: «Почему?» — если так интересно. Те кто будут заниматься петросянством, получат рекомендацию купить всё таки спортивный мотоцикл, как и хотели ранее. В результате станут хорошей иллюстрацией для очередного клипа группы «Ленинград».
Современные люди привыкли, тот кто предлагает или обещает что то, занимаются «облизыванием» клиента. Все эти продавцы-консультанты, техподдержка, прочие работники сферы услуг. Настраивают на хороший сервис «по умолчанию». Другие должны им что то объяснять, рассказывать и даже развлекать. И с таким потребительским отношением они вдруг открывают статью с котиками, где тоже объясняют, рассказывают и даже немного развлекают. «Клиент» в свою очередь переносит свои представления о сервисе на автора и начинает обращаться со словами «докажите», «обязаны» и т.п. Автор не слышал такие слова уже лет 5 даже от начальства. И его внезапная обязанность чего то доказывать кому то, вызывает недоумение, как минимум. Таким залетевшим в каменты «клиентам» хочется дать по голове цепью, которой блокирую колёса мотоцикла. Это будет даже гуманно. У «любимого клиента» включиться инстинкт самосохранения, вытесняющий неадекватные ситуации, модели поведения. С таким поворотом событий «клиент» наделает меньше глупостей в будущем.
Слегка устал давать отдельные советы разным людям. Гораздо лучше написать нормальный материал, включающий всё что могу сказать по теме. Это не реклама очередных курсов, книг, семинаров. Не надо переносить на меня свои представления, что я априори вам обязан. Не хотите моих советов, как стать программистом?! Воспользуйтесь чужими! Это ваша жизнь и это вам придётся плакать или радоваться результатам.
Если интересно кто попробовал методику и чего достиг. Могу вам предложить заглянуть в топик через два года. Хотя не думаю что кто то напишет что то дельное. Когда у людей не получается они рвут, мечут и поливают грязью всех подряд. А когда получается и всё хорошо. Они воспринимают это как должное и забывают что их отзыв будет важен другим. Потребительское отношение ко всему, победит. Даже не сомневайтесь! Максимум, вы можете получить экспертную оценку моих советов, своих знакомых-программистов.
(Данный пост будет исправлен и включен в основную статью позже)DrPass
16.10.2017 23:56+1Давайте, для примера рассмотрим ситуацию. Покупаете себе первый мотоцикл. Решили взять «спортивный» т.е. очень мощный и скоростной. Советуетесь с друзьями, что лучше. А вам старый байкер внезапно говорит:
Только вы не старый байкер. Если хотите более полную аналогию с данным случаем, то кто-то покупает себе первый мотоцикл, а какой-то молодой прохожий с улицы (это я вас имею в виду) говорит: «Послушай моего опыта, возьми сегвей, и на ходулях бегать ещё потренируйся, и станешь настоящим байкером».
Вы говорите, что «таких советов сотни», а может быть, их так много, потому что они верные? Вы-то какую альтернативу предлагаете? Изучать язык разметки (офигеть какой нужный скилл для старта обучения программированию. Может, ещё и навыки работы в фотошопе в свои советы добавите, тоже ведь программисты иконки рисуют) и начинать программировать на языке, в котором нет очевидных правил, зато для создания любого более-менее адекватного приложения нужно понимать многопоточность и асинхронную работу?
За подобные советы вас и надо гнобить, т.к. не дай боже кто-то это прочтет и всерьёз воспримет.
. Когда у людей не получается они рвут, мечут и поливают грязью всех подряд.
Напомнило старый анекдот:
— Милый, ты там будь осторожнее, по радио передали, что по твоей дороге какой-то идиот едет по встречке.
— Какой идиот?! Их тут сотни, сотни!stanislav888 Автор
17.10.2017 00:39-1Вы говорите, что «таких советов сотни», а может быть, их так много, потому что они верные? Вы-то какую альтернативу предлагаете? Изучать язык разметки (офигеть какой нужный скилл для старта обучения программированию.
HTML предлагался как способ проверить свои способности для начала, а не технология программирования на всю жизнь.
Вы просто не прочитали статью внимательно. Зато упорно её критикуете.
Читайте внимательней и не позорьтесь!lair
17.10.2017 00:52В статье написано, дословно:
Это очень полезный язык для начинающих. Даже если вы не собираетесь в web-разработку, эти знания вам пригодятся.
Ни слова о "проверить свои способности".
Так что пишите лучше.
DrPass
17.10.2017 01:01+1HTML предлагался как способ проверить свои способности для начала,
Способности к чему? Набирать текст и выделять его жирненьким? Это как-то коррелирует с умением писать программы?
Вы просто не прочитали статью внимательно. Зато упорно её критикуете.
Читайте внимательней и не позорьтесь!
Давайте вы сначала дорастете до того уровня, когда ваши опусы будут стоить потраченного на них времени, прежде чем делать такие замечания.
saboteur_kiev
17.10.2017 19:30В третьих. Когда я всё таки стал программистом, захотелось протащить в IT и своих близких. Пусть тоже работают за хорошие деньги. Желание протащить родных на «блатные должности», даже когда они совсем для этого негодные, есть у всех. Это и заставило придумывать методику для совсем чайников.
Это самое противоестественное желание нормального логичного человека. Негодный сотрудник, да еще и родственник, который работает в твоем проекте — заваливает этот проект. Тащить на себе всех, кого привел? Потерять работу из-за того, что привел человека, который тупо не годен?
Нормальное желание — привести на работу знакомого, в котором ты уверен, потому что так ты не просто сделаешь рандомное доброе дело кому-то, но и в первую очередь упростишь жизнь себе.
lair
17.10.2017 00:01В третьих. Когда я всё таки стал программистом, захотелось протащить в IT и своих близких. Пусть тоже работают за хорошие деньги.
Да-да-да, retran, ты был прав.
Желание протащить родных на «блатные должности», даже когда они совсем для этого негодные, есть у всех.
У меня нет.
Это и заставило придумывать методику для совсем чайников.
Придумать-то можно что угодно. Но как можно утверждать, что оно работает ("это 100% метод"), пока по нему не прошло достаточно людей?
Куча хорошей и качественной литературы по конкретным технологиям. Там хорошо написано как изучить что то конкретное. Но стать программистом в целом — нет.
Вы не читали ни Clean Coder, ни Pragmatic Programmer?
Если бы такие предложения имели какое то подобие программы действий. Т.е. объяснили бы парадигмы программирования, потом шаги для движения в соответствии с выбором.
Ну так SICP же. Иди и читай.
Автор не слышал такие слова уже лет 5 даже от начальства.
"Автор", похоже, много чего не слышал. Это бывает.
Не хотите моих советов, как стать программистом?!
Нет, мы не хотим иметь дело с программистами, которые воспользуются вашими советами.
Потребительское отношение ко всему, победит.
… пишет человек, который предлагает стирать топики на форуме, где ему делают код-ревью.
Максимум, вы можете получить экспертную оценку моих советов, своих знакомых-программистов.
А мы тут чем занимаемся?
retran
17.10.2017 09:47Вы не читали ни Clean Coder, ни Pragmatic Programmer?
Это все же не про то «как стать программистом».
Я всех посылаю вот сюда:
pragprog.com/book/cfcar2/the-passionate-programmer
Ну или — www.ozon.ru/context/detail/id/31901152
Книжка более чем исчерпывающая. На хабре есть переводы отдельных глав (https://habrahabr.ru/post/189650/)redfs
17.10.2017 10:22Это все же не про то «как стать программистом».
Наверное, это зависит от того, на каком этапе образования их читать. Впрочем, как и Фаулера кмк.
lair
17.10.2017 11:51Знаешь, это занятный вопрос. С моей точки зрения, CC/PragProg — это про качества хорошего программиста (as opposed to "простое знание ЯП"). Так что в этом смысле это книжки про то, как стать хорошим программистом. Но не про карьерный путь, я согласен.
lair
17.10.2017 00:20Поверхностные и малопригодные статьи по запросу «стать программистом»
Теперь их на одну больше, да.
geher
17.10.2017 08:34Понтоватые программы подготовки ВУЗ-ов. Высшее образование на хабре не пинал только ленивый. Даже преподаватели солидных учебных заведений справедливо его критикуют.
Вышка сейчас не торт, но пока не придумали более эффективного способа пнуть будущего молодого специалиста на предмет расширения кругозора за пределами его предполагаемой профессиональной деятельности.
Различные курсы и тренинги, предлагающие научить с «гарантией трудоустройства». Учить то учат. Только кадровый голод никуда не девался почему то
Учат тех, кто готов учиться. Остальные курс тупо просиживают.
Поверхностные и малопригодные статьи по запросу «стать программистом». Может и есть хорошее, но очень мало тонкостей процесса
Люди разные, а потому статьи на тему "как стать..." всегда будут либо поверхностными, затрагивающими только общие моменты, либо пригодными только для узкой группы люднй, которой подходят изложенные подробности (соответственно, для остальных статья будет малопригодной).
retran
17.10.2017 09:56Когда я всё таки стал программистом, захотелось протащить в IT и своих близких. Пусть тоже работают за хорошие деньги.
Пожалуйста, не надо. На рынке слишком много оббивающих пороги войтивайтишников и слишком мало специалистов.
redfs
17.10.2017 09:59Я не нашёл в сети целостной и эффективной программы становления специалистом. Но у меня было много идей на этот счёт. Поэтому решил написать данную статью.
Книги читайте. Я предполагаю, что по Дейкстре, Бруксу или Томасу с Хантом нет видеоуроков, но надо же когда-нибудь и напрячься.
Вообще, советуемый вами порядок получения информации (1. Видеоуроки, 2. Мультимедиа 3. Книги (тяжелы для восприятия, оставить на потом)) о многом говорит. К сожалению, новички могут принять это за чистую монету и поверить.
stanislav888 Автор
17.10.2017 10:47-2lair, это будет пост о вас. Вы так много написали про меня, так что есть моральное право мне обсудить вашу личность.
Вы упомянули мою отрицательную карму. Мне плакать из-за этого или радоваться, уточнитесь пожалуйста!
Ну а теперь заглянем к вам! Карма около 36, зарегистрирован уже 8 лет как, «Комментарии 12,4k». Мне ничего не мерещиться случаем? 12 400 комментариев за 8 лет??? По 4 комментария в день, без выходных? Это правда?
Нууу вы уникум просто! Представляю глаза директора фирмы которому принесли резюме такого «архитектора». Всего одна статья на технические темы за годы, зато двенадцать тысяч каментов(Карл!), даже без владения «слепой печатью»!
Сколько ж человек убил рабочего времени на ниве создания замечаний другим людям. Вам определённо в кроссовер. Там как раз требуются архитекторы C#.
О самих каментах. Чаще капризные выпады с описанным выше синдромом «клиента».
В моём случае вы даже не прочитали статью внимательно. Поэтому были справедливо посланы перечитывать несколько раз. Ладно моя статья. Так в конце своей самой первой портянки вы забыли что писали в её начале!
Далее:stanislav888: Не думаю, вам было бы трудно выделить 3 самых веских аргумента.
lair: Мне просто лень сортировать их по «вескости». Но если вы настаиваете, то вот вам три произвольных сделанных вами ошибочных утверждения:
Т.е. вы не только мою статью плохо прочитали и при этом делаете замечания. Но и свою писанину читать «лень». Вывалили на голову другим отладочный вывод и пошли «творить добро» дальше. Вам было гораздо проще настрочить что то новое, чем выбирать из старого. В старом же много букв, на это надо время. «Чукча не читатель, чукча писатель!»
Поэтому я не считаю что ваши замечания к моей статье достойными какого либо внимания. Вас очень легко проверить на деле. Надо просто следовать вашим советам! Например найти в ваших каментах, с какого языка надо начинать обучение. (На самом деле здесь только я знаю чего и когда вы советовали. Даже вы не осилите чего понаписали)
Кому интересно узнать про lair -a больше, читайте замечательную статью «Четыре типажа программистов» там он описан как «Пассажир (business bullshitter)». Если данный персонаж будет опять делать другим многословные замечания. Не надо отвечать по существу. Просто потыкайте его носом в этот камент.lair
17.10.2017 12:21Вы упомянули мою отрицательную карму.
Хм. Точно я? Можно цитату?
Представляю глаза директора фирмы которому принесли резюме такого «архитектора».
Я вот хотел показать этот комментарий нашему CTO, но он никак с митинга не вылезет. Но даже и без этого могу вам сказать — вряд ли вы представляете их себе правильно. По крайней мере, судя по тому, что обычно вопросы в моем резюме вызывает конкретная строчка, и она с хабром не связана.
даже без владения «слепой печатью»!
Слепой десятипальцевой, я попрошу. Слепой я как раз владею.
Вам определённо в кроссовер.
Они мне не понравились.
Вам было гораздо проще настрочить что то новое, чем выбирать из старого.
То есть вы не видите, что выбранные три ваших утверждения — это те же, которые я критиковал раньше?
Поэтому я не считаю что ваши замечания к моей статье достойными какого либо внимания.
Я знал, что этим закончится. Давайте посмотрим в развитии:
- 15.10 10:42: "Отвечу за каждое слово"
- 16.10 15:13: "Выделите любые три тезиса из вашей портянки. И я вам подробно отвечу на них."
- 17.10 10:47: "я не считаю что ваши замечания к моей статье достойными какого либо внимания"
Хотя замечания все это время не менялись.
stanislav888 Автор
17.10.2017 13:00-1Как вы догадываетесь, не считаю вас человеком достойным уважения. Поэтому и дискутировать с вами бесплатно тоже не намерен. Мне надо работать в отличие от вас. Желающие могут посмотреть сами историю комментариев и заглянуть к вам в профиль за самыми «жареными» фактами. Там вы точно ничего не исправите.
— Хочу заметить читателям, если кто то не доверяет моему мнению в статье. Обращайтесь к тем персонажам которым вы доверяете. Я не настаиваю на том что бы все следовали только моей статье. Хотите «по Дейкстре, Бруксу или Томасу с Хантом», пожалуйста. Я за вас только порадуюсь, когда у вас получиться.
На каменты, любые, отвечать скорее всего не буду. Просто нет времени. Ничего личного, извините.lair
17.10.2017 13:42Как вы догадываетесь, не считаю вас человеком достойным уважения. Поэтому и дискутировать с вами бесплатно тоже не намерен.
Замечательная стратегия. Сначала пишем что угодно, а потом говорим, что не считаем оппонента достойным уважения, и отказываемся дискутировать.
Желающие могут посмотреть сами историю комментариев и заглянуть к вам в профиль за самыми «жареными» фактами.
О, история комментариев, точно. Спасибо что напомнили.
Там тоже не нашел.
Там вы точно ничего не исправите.
Эээ… вы намекаете, что я правлю комментарии? Так я вас расстрою, в профиле пользователя показываются исправленные.
На каменты, любые, отвечать скорее всего не буду. Просто нет времени. Ничего личного, извините.
Ну вот видите. Дело не в том, что вы не считаете меня достойным уважения человеком — вы всех остальных туда же запихнули. По крайней мере, ваше поведение ничем не отличается.
DrPass
Мне кажется, даже несмотря на наличие котиков, такое публиковать на Хабре не надо. Это формат журналов для подростков.
saboteur_kiev
У автора в каждой статье котики.
DrPass
Да, он явно читер.
third112
Мне кажется, что Вы не читаете журналы для подростков (как и я) — поэтому там некому будет остановить подростков :(