Как стать автором
Обновить

Комментарии 77

Во сколько лет вы пришли в программирование?

Программирование как пиво — до 18 нельзя? В нынешнее время не то, что в школе учат, а для младшеклассников уже курсы есть.

И правда, чего это я. Спасибо, добавил вариант!

Ещё бы на 1-5/5-10/10-15/15-18 разбить

:)

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

А можете его перенести на самый верх? А то перфекционист во мне негодует.

Не могу, извините, Хабр так устроен.

php is not a drug ?!

Уж лучше PHP, чем бухать в подъезде :)

PHP — друг, если им правильно пользоваться :)

культурно употреблять
Другой вопрос: «Прийти в программирование» — это начал писать код, или начали за него платить?)

В последний вариант. Если его нет, обновите страницу :)

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

ИМХО, эту войну стоит начинать, только если готов тяжело работать, пожертвовать многим и пойти до конца, если программирование — это мечта. У меня был именно такой настрой и успешно получилось — в 45 лет из инженеров по автоматизации в разработчики Java)

А советы в статье правильные, конечно, только это 1 процент от того, что предстоит сделать и пройти.

Спасибо за комментарий! Я вот с вами согласен, между одним комфортом и другим всегда есть переходный этап, когда бывает непросто. Но это же чаще всего стоит того, особенно если понимать, для чего в это ввязываться.

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

А вы сейчас в процессе перехода, если не секрет?

Нет, я уже 2,5 года как Java разработчик в большом банке)
По-моему стоит пробовать если нравится и интересно. Бонусом еще и деньги платят. Когда станет рутиной, то бонус поддержит.
А иначе это будет боль.
в 45 лет из инженеров по автоматизации в разработчики Java.
Наверняка вы уже знали С и слега Asm. )
Но очень интересно — как нашлась работа и получился ли профит по деньгам. Ну и скорее всего ваша ценность не в самом программировании как таковом, а в знании, что именно и как надо запрогать.
Связаны ли сейчас задачи по программированию с автоматизацией?
Если кратко -> все было хорошо, но сменилось руководство, начало продвигать какие-то странные идеи из странных книжек, завело компанию в тупик в инженерном плане, продажи упали втрое. Руководитель отдела разработки уволился, нового не стали брать, руководитель отдела автоматизации уволился, нового тоже не взяли. И тут мне вдруг пришло понимание, что и мне места в компании больше нет. Моей последней работой, которую мне поручили — был поиск лишних пробелов и точек с запятой в excel файле базы товаров. Это стало последней каплей. И хотя я еще не чувствовал себя полностью готовым, а к тому моменту я интенсивно переучивался на Java уже полтора года +. был неплохой бекграунд на С и С++ — в тот же вечер я разместил резюме на hh.
5 дней по 4-5 собеседования в день и вот я и в IT!)
Никак не связаны пока, но я хочу подучится еще на ML а там, может быть и мой опыт в промышленности пригодится
А я с вами не согласен. Если нужно тратить «много» усилий и «много» работать — станете максимум середнячком, да и дальше будет тяжело. По крайней мере не знаю ни одного крутого прогера, который бы сказал «да, это было тяжело». Их просто прет и все.

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

Поэтому мне кажется лучше не сражаться с самим собой и искать что-то такое, что будет по настоящему интересным. Хотя в любой работе бывают скучные моменты, от этого не убежишь, да.
Когда нападающий легко и непринужденно делает хет-трик на поле — все говорят что у него прет игра) Только, чтобы игра так перла — до этого он вкалывал(нет, я не кальянчики имею ввиду))) как Папа Карло лет 20. Также и в программировании и в любом другом деле — сначала ты учишься, работаешь, все это с тяжелым трудом и зачастую — с надрывом, и только потом начинает переть)
НЛО прилетело и опубликовало эту надпись здесь
Возможно, но у меня легко и непринужденно не получилось)))
Возраст + сфера деятельности относительно далекая от IT + отсутствие опыта, создавали серьезные проблемы — пришлось попотеть.
НЛО прилетело и опубликовало эту надпись здесь
Я вот казалось бы вошел «легко и непринужденно», хоть и начал поздновато, но правило 10к часов и его аналоги никто не отменял. Просто поскольку многие вещи вроде установки и ковыряния в линуксе, ковыряния в разном софте, чтения книг, статей и прочее идут фоном по причине того что делаются just for fun. Но это все равно то самое «вкалывание». Тому же нападающему из примера выше тоже скорее всего было в кайф в футбол играть, вот он и вкалывал.
НЛО прилетело и опубликовало эту надпись здесь
Никто не может отпахать как папа Карло лет 20 и достичь в этом колоссального успеха, если его в этом не «прет».

Объективно. Я чтобы «войти в айти» пахал. Чтобы дорасти до того где я сейчас, я пахал. Я знаю много чего из айти. Потратил ли я на это много времени? Да. Тут писали про 10К часов. Думаю у меня было все 20. Было ли мне это тяжело? Нет. И я не из тех кто занимался этим с детства, с универа — может быть. Я кайфую от того что делаю. И в этом суть. Есть те, кто кайуют еще больше или от более «правильных» вещей, которые сейчас в моде — они выше, везение никто не отменял, но так или иначе нам не было тяжело.

И когда я говорю «мне не было тяжело». Я не имею ввиду «ололо, тут все просто, вы тупые». Я лишь говорю о том, что я так же как и все отпахал много часов, чтобы это понять. Просто мне это стоило меньше ментальных усилий, так как мне это было интересно.

И именно к этому я и призываю. Лучше найти то, что идет само собой — вы достигнете в этом большего успеха. Увы американская мечта «много работай — много зарабатывай» не работает. И опять подчеркну. Это не значит что программирование «не твое». В том же программировании столько сфер, что наверное чуть ли не каждый найдет себе место, главное найти свое.
А инженер по автоматизации — это не программист по своей сути? Языки МЭК 6-1131/3 — это тоже языки программирования.
Я пришёл в программирование когда компьютера у меня и в помине не было. Благодаря книге «Энциклопедия профессора Фортрана»
Там было одно из упражнений — лента с командами и данными по которой можно было двигать рамку, и самому быть интерпретатором. Тогда я осознал концепцию goto. Это был 2-4 класс школы. Потом я что-то читал про Бейсик и знал PRINT и GOTO, собственно больше примерно ничего. Потом в 7м классе, когда нас впервые допустили до компьютеров в школе я, увидя открытый бейсик, написал программу которая выглядела примерно так:
10 PRINT "Bobr loh"
20 GOTO 10

И она заработала с первого раза и, как и было задумано, зависла. Чем снискал бесконечное уважение товарищей. Потом был VisualBasic, и игровые автоматы в виде колонны которые игрались на 5 рублёвых монетах. А у меня не было денег на игру на них. И я списал оттуда таблицу выигрышей и сделал себе такой автомат на VB с честным рандомом. Это было первой игрой в которую я поиграл чутка и потом зациклил чтобы посмотреть что будет. И увидел как мой счёт тает, каким бы я его не начал. Примерно с этого началось настоящее программирование. Потом поступление на прикладную математику, бросание оной, и там завертелось. Миша, 32 года. Делаю игры всю свою сознательную жизнь.

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

Миша, это прекрасная история! Сначала показалось, что вы откуда-то узнали всё про меня и пересказываете. Только я 13 лет делал футбольный симулятор на VB :)


Ну и как же в этом треде без легендарного:
image

В глаза на клавиатуре бросается клавиша между стрелками. За что она отвечала? Или это заглушка была?
Я молод и клавиатур подобных не встречал.

image
Я тоже вживую не встречал, но беглый поиск говорит, что клавиатура примерно срисована корветовской (может, Корвет ПК 8020). А значит, там кнопка Меню.

НЛО прилетело и опубликовало эту надпись здесь
У меня была какая-то комбинация с книгой «А я был в компьютерном городе». Сейчас поищу по самой книжке.
Так, бейсик я взял отсюда image
Но вот интерпретатора точно в книжке нет. Значит где-то в другом месте мне попалась такая штука. Там был генератор стихов.
Заголовок спойлера
image

Очень похоже, но там точно были переведённые фразы и точно была описана лента на которой писались русским языком команды, и нужно было двигать рамку. Может перевод другой с адаптацией.
Вообще мегакнига была, я на ней и вошёл в ИТ :)
Если C# — подумать, подходит ли вам имя Филипп


Очень улыбнуло. Интересно, как Филипп на это среагирует (наверное он эту статью читать не станет, даже от скуки).

P.S.: подача материала понравилась.
А поясните пожалуйста, что за Филипп то?
Дык, он же, вроде как, на F# перебрался?
(например, никогда не прикасаться к Java)

За что джаву обидели?
А если человек в мобайл хочет? То что, котлин? Но «прикасаться к Java» в любом случае придется. Ну а на реакте в мобайле это не серьезно.

Часто встречаю людей, которые путают Java и JavaScript, а раз уж мы тут про веб-разработку говорим, то вот к слову и пришлось.


Ну и это просто шутка, не переживайте так :)

Почему обидели-то?
Просто Java — это большой отдельный мир, в который мимиходом заглядывать особого смысла не имеет. Т.е. либо с нырять головой, либо идти мимо. Ибо галопом по европам толку совсем мало.
Просто Java — это большой отдельный мир, в который мимиходом заглядывать особого смысла не имеет

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

Да, такие кодеры востребованы рынком (брать на рутинные типовые задачи высокооплачиваемого программиста никто не будет), но не стоит говорить, что они умеют программировать. Они умеют только писать код.

А в чём, по-вашему, отличие между «программировать» и «писать код»? Особенно если и тем, и тем, платят деньги за работу программистами.

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

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

А откуда берутся навыки, чтобы осознать и оптимизировать эти 20% кода?

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

Тут же всё зависит от того, какой именно разработкой заниматься.


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


Из курсов математик (начиная с дискретной математики) в профильном ВУЗе.

Большинству примерно никогда не пригодится специализированная математика. Могу представить, где фронтендерам может пригодиться тригонометрия и линейная алгебра (для анимаций), но что-то большее — совсем нет.


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


Из чтения и сравнительного анализа чужого кода.

Про это есть в статье.


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

Не знаю, о каких курсах вы говорите, но у нас в HTML Academy у студентов есть наставники, которые и ревью кода проводят, и подсказывают, если где-то есть ошибка.

Тут же всё зависит от того, какой именно разработкой заниматься.
Базовые принципы программирования не зависят ни от языков, ни от технологий, ни от области использования. И если бы в front-end всё было так просто, не пришлось бы изобретать WebAssembly.
Большинству примерно никогда не пригодится специализированная математика.
Чтобы оптимизировать сложное логическое выражение, необходимо знать булеву алгебру (кстати, часть дискретной математики). Представление банального сценария заказа товаров в интернет-магазине в виде конечного автомата может многократно упростить реализацию. Любое регулярное выражение — тот же конечный автомат. В программировании ничего, кроме математики, вообще нет. И если разработчик видит эту математику, он видит и способы оптимизации кода.
если в конкретной области разработки человеку нужна продвинутая математика, человек идёт и изучает её
Только в том случае, если этот человек знает о существовании нужной ему математики. Систематическое ВУЗовское образование такое знание даёт (во всяком случае, давало в те времена, когда я учился), курсы — нет. Если разработчик утверждает, что пишет текстовый редактор и единственная проблема — подсветка синтаксиса, очевидно, он ни разу в жизни не слышал о контекстно-свободных грамматиках.
у нас в HTML Academy у студентов есть наставники, которые и ревью кода проводят, и подсказывают, если где-то есть ошибка.
Ничего не могу сказать о качестве ваших курсов, но всё же сомневаюсь, что на них разбирают границы применимости встроенного в язык метода sort и дают учащимся задачи, в которых использование встроенных методов языка порождает заведомо неэффективный код.
Справедливости для: сейчас компиляторы шибко умные, часто и логические выражения сами упрощают, и инвариант за цикл выносят, и деление умножением на обратную константу заменяют… Т.е. можно быть джуном и не знать математики.
Компилятор много чего может оптимизировать. Но ручная оптимизация сложных логических выражений нужна самому разработчику: для лучшего понимания взаимосвязей. Никогда не бывало, что в результате такой оптимизации вы хлопаете себя по лбу и выкидываете половину кода функции?
Бывало, конечно. Но логические выражения я стараюсь писать максимально подробно, даже если получается избыточность, как раз чтобы не пропустить чего. В том числе я стараюсь не использовать XOR, хотя он часто упрощает выражение.
НЛО прилетело и опубликовало эту надпись здесь
Чтобы оптимизировать сложное логическое выражение, необходимо знать булеву алгебру (кстати, часть дискретной математики). Представление банального сценария заказа товаров в интернет-магазине в виде конечного автомата может многократно упростить реализацию.

Это школьный уровень. Для упрощения выражений не нужно ничего вузовского, для сценариев заказов не нужно преобразовывать NFA в DFA.


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

Успехов с подсветкой синтаксиса хотя бы C++ на КСГ. У него неразрешимая (в тьюринговом смысле) грамматика.

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

либо тонкости работы процессора. Если много операторов — можно все разложить на битовые операции и посчитать на масках за несколько тактов. ИЧСХ, чаще всего даже этого не требуется, компиляторы во многих случаях сделают это за вас
Из учебников программирования, рассказывающих о свойствах алгоритмов (и проводящих сравнительный анализ разных алгоритмов достижения заданного результата), а не о приёмах программирования на модных языках.

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


Я так не очень давно код в 20 раз ускорил тупо за счёт приемов. Алгоритм остался там же.

Сейчас программирование в крупных конторах обвешано таким количеством ритуалов, что собственно кодинг занимает лишь малую часть времени.
В том, что выпускники таких курсов могут что-то сделать строго в рамках, которые они зазубрили без малейшего понимания, что собственно происходит. Шаг влево — шаг вправо — представление закончено, человек в полном ступоре вообще не понимает, что и как делать. Под «писать код» ваш собеседник скорее всего имел в виду, что человек пишет одно и тоже (часто через copy & paste), вообще не понимая, зачем оно нужно, и как оно работает. Ему сказали, что в такой ситуации надо делать так и вот так. Он запомнил и делает. Ситуация немного отличается от той, про которую рассказали? Или полный ступор, или попытки применить то, что рассказали безотносительно ситуации без малейшего понимания, как же это заставить работать.
В смысле 18-23? А если шёл 1989 год, мне 12 лет и я написал свой первый Sokoban на Бейсике?

Там в конце списка вариант есть как раз для вас.

Совершенно логичный способ сортировки

На Хабре забытые варианты добавляются только в конец списка.

Правильный заголовок должен быть таким «Всем кажется, что они научились программировать. А дальше-то что?»
Во сколько лет вы пришли в программирование?

Это во сколько лет устроились на работу программистом или просто потрогали половинку основ или там в школе/универе пару лаб сделал? А то в вк в группах «Программирования» сплошь одни программисты сидят 10-20 летние)
Пришел в программирование — это написанный первый Hello World в паскале или это первые деньги за строчки кода? Что-то уж больно много людей пришли в программирование до 18 лет, я сомневаюсь, что тут все юные гении, программировали для компаний с 13 лет.

А что, после 45+ жизни нет? Где следующая опция 55+?:-)

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