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

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

отличная статья! Спасибо, Автор!
Если хотите быть интровертом, вы быстро упрётесь в потолок профессионального развития

А разве быть программистом имеет смысл только тогда, когда потолок недостижим? Что такого, ечли человек упёрся в потолок? Если ему с этим потолком платят достаточно, то зачем менять профессию? Да и на что её менять? Вариант с "засуньте интроверсию себе..." я даже не рассматриваю.
И не нужно путать интровертов и социофобов, интроверты могут общаться с коллегами наравне с экстравертами, особенно по деловым вопросам, а не личным.

Никто и не говорил что обязательно не упираться. Упретесь — да. А решать вам.
Программисты в ИТ-компании [...]
Программисты в не-ИТ-компании [...]


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

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

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

Еще один момент по «вхождению в профессию», которого тут не увидел (пропустил?) — стажировки. У нас (Альфабанк) есть практика набирать стажеров из числа студентов старших курсов или выпускников. Обычно это или профильные специальности (информатика, информатика-экономика) или просто технические специальности.

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

Очень неплохой вариант — стажер сразу получает рабочее место, оплату, наставника (или наставников) и достаточно быстро переходит на уровень решения боевых задач (сначала несложных, потом «полноразмерных»).
По моему убеждению, для того, чтобы не быть глухонемым, нужен минимум Upper-intermediate либо Intermediate с активным говорением (например, вы туговаты в грамматике, но хорошо прокачали язык на учебной программе, в личном общении или на стажировке)
Полностью согласен, хотя это наверно потому, что сам с грамматикой не очень дружу

Хм, ну, пол статьи точно напоминает нулевую главу книги Страуструпа по С++.
Не мешало бы её тоже в список литературы.

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

спасибо автору! так мало вдохновения, а тут эта статья)))
Забавно. Листаю хабру и вижу картинку. Печенька падает из раскрытого рта. «Это ж Ден». Чувак, который изображен на КДПВ. Знаю его лично и того, кто рисовал :)
Собственно, здрасте )
Действительно, забавно видеть в шапке картинку, которую когда-то давно с меня рисовали)
Где и откопали-то )
буквально спустя полгода с начала обучения у вас сформируется представление о том, в какую стороны вы собираетесь двигаться

10 лет уже код пишу, еще со школы, до сих пор не могу определиться, куда "двигаться", интересно все, лезу в сурсы всех инструментов, с которыми работаю, если они есть, а времени все это изучать хватает все меньше и меньше :(


Жизнь фулстека непонятна и сложна

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


Дайте знать, пожалуйста, если вдруг когда-нибудь поймёте, как во всём этом интереснейшем многообразии выбрать что-то одно. Хочется попробовать все языки, освоить десятки предметных областей, раскусить все фреймворки, а жизнь одна и так коротка.
Если сам пойму для себя, как нужно выбирать раз и навсегда, на чём стоит остановиться и чему посвятить свою жизнь — обещаю рассказать в ответ.
В 35 я задумался как выйти из айти. И не нашел выхода, хехе.
> программист
А у автомобилистов как? А у трамвайнистов? А у лечистов? Причина больше в непонимании профессии подавляющим большинством. Программу устанавливаешь? Значит программист.
Есть уже разбиение на: программный инженер (Software Engineer), Информатик (Computer scientist), Mobile Developer, Web Developer. У каждого свои поверхностные и глубокие знания. Пишут везде программист для тупа простоты.
Приятная статья. Признавайтесь, граждане программисты, напрягают вас «войтишники» или вы уже забили?)
НЛО прилетело и опубликовало эту надпись здесь

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


Тем не менее, все еще считаю что один отличный эксперт может заменить 5-10 "вайтишников", так что работа всегда найдется :)

напрягают вас «войтишники» или вы уже забили?


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

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

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


В этом смысле, те, кто хочет созидать в новой эпохе, должны понимать что программирование это Ваш "one-stop shop", будь Вы хирург, инженер, маркетолог, дизайнер и много чего еще.


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

Подборка книг забавная Сонмез с Кнутом. Я вот не видел никого кто прочитал Кнута, но правда и алгоритмы разрабатывал только в институте.
Сам недавно прочитал Джона Сонмеза «The Complete Software Developer's Career Guide», вот это могу порекомендовать каждому, подойдет на любом уровне. Единственная мысль — почему я не прочитал книгу раньше

Переехав в начале 2000х в Питер, получил тестовое задание с алгоритмической направленностью. С интернетом (и деньгами) плохо было — купил третий том Кнута (и ещё какую-то книгу) и успешно сделал задание (и получил работу). Всего Кнута конечно не читал. И выбор книг сейчас больше конечно — есть из чего выбрать.

А, ну кстати да, для собеседований надо. А вот на этой работе потом приходилось открывать Кнута?

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

Не претендую на истину — просто наблюдения из жизни программиста:
В начале 2000-х были мысли: приходится постоянно писать велосипеды, что-то с программированием «не так». И тут «повезло» — прочитал «Мифический человеко-месяц» и «Программист-прогматик» (эти книги перевернули мое понимание о программировании). Затем — присоединился на месяц к команде, работающей по XP (eXtream Programming) — работа парами, гибкая разработка (которая сейчас известна как “agile/scrum/kanban/...”), TDD, standup-ы, Smalltalk/Java/C#, узнал о рефакторинге, шаблонах дизайна (design-patterns). Тогда я понял, что это не с «программированием что-то «не так»», а со моим отношением к нему. И недостаточно просто «увлекаться» программированием (к тому времени профессионально работая программистом уже 7 лет) и читая книги про Linux/C++/JavaScript/TCP/IP/SQL/“Невесту программиста» и т.д. Нужно профессионально расти, в том числе регулярно признавая (себе и коллегам), что «я дурак и был не прав» (а значит — «узнал что-то новое, и стал немного умнее или профессионально лучше»). Выше по тексту — я поставил слово «повезло» в кавычках, поскольку убедился, что везение — происходит значительно более часто, чем мы его замечаем, поскольку к нему нужно быть готовым (точнее — нужно себя к нему подготовить) — чтобы в нужный момент увидеть удачную возможность и быть в состоянии воспользоваться ей. Например — нужно достаточно хорошо освоить какой-то фреймворк, что бы суметь получить оффер на «работу-мечту» (для которого этот фреймворк требуется), а для этого хотя-бы быть в состоянии (и хотеть) рассматривать такие позиции на рынке труда. В общем «лучше день потерять, чтобы затем за пять минут долететь» (С). Оцениваю удачу как 90% успеха, но часто только несколько процентов удач многие в состоянии использовать (или даже просто — заметить).
Также приходится смотреть не только «в-глубь» (прокачивая один определенный скил или фреймворк или технологию), но и «в-ширь» — регулярно оглядываясь по сторонам, оценивая тренды и их возможную перспективу на 2-5-10 лет, изучая другие направления (метафора: не фокусироваться только на конной тяге, когда уже мимо начали ездить автомобили и трамваи). И это больше всего мне нравится в современном программировании — не только необходимость постоянно учиться, но и широкие возможности для этого (и да, знание английского минимум upper-intermediate — это «must have»).

Крутая статья, спасибо автору)

Есть пара моментов, довольно спорных.


Вам стоит задуматься, не будущий ли программист вы, если…
… вы не ожидаете бешеных доходов

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


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

Неправда. Программист работает в тепличных условиях. Здоровье программиста расходуется гораздо медленнее, чем здоровье каменщика или шахтёра. Какая-нибудь шахта вместе с перерабатывающим комбинатом, например, может съедать подобно Молоху 0.1-0.4% от числа сотрудников в год только на несчастных случаях, плюс давать всем не-ИТР сотрудникам хронические заболевания годам к 40. Невозможно сорвать спину, двигая мышку. Конечно, заботиться о своём здоровье надо, но профессия программиста в этом плане мало отличается от других офисных профессий.
Психические расстройства? Покажите статистику (я когда-то искал, там в лидерах няньки и персональные помощники, если я правильно помню). Психическая профдеформация, опять же, свойственна людям, работающим с людьми (учителя, врачи, милиционеры).
Туннельный синдром? Для этого надо очень много печатать. Программист — не машинистка и не геймер, он больше думает, чем печатает.


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

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

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

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

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

Знакомы ли вы с произведениями Кнута?
(этот вопрос — примитивный и неточный мини-тест, насколько вы хорошо программируете)

Если вы имеете в виду TAOCP, то я его прочитал лет 20 назад, когда он еще был трехтомником. Другое дело, что я мало что помню, потому что у меня не было никаких практических задач, где нужно было бы самому реализовывать классические алгоритмы.

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

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

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

В программировании? Маловероятно. Вы даже юным падаваном, если не кинетесь в первую встречную контору, а потратите немного времени на поиск работодателя, легко найдёте зарплату значительно выше рынка для молодых специалистов. Ну а так да, если вы хотите стажироваться бесплатно, никто вам не запретит.
Уважаемые хабровчане, возможно, кто-то сможет поделиться опытом по схожей ситуации:
Работаю системным аналитиком 3 года. В целом — все интересно. Нравятся задачи по верхнеуровневому проектированию системы, планирование ее развития, интерпретация хотелок бизнеса во что-то техническое, проектирование модели БД.
Но сколько себя помню, все время тянуло что-то покодить. Мелкие поделки на VBA (взял данные из БД и нарисовал отчет), простенькая CRUD-система по учету товара на складе (первый опыт написать что-то на flask, даже стыдно теперь открывать), недавно вот нарисовал api в паре с человеком, который делал фронт для этой же системы. И прям даже немного гордость берет, за то, что уже не так все плохо, как было раньше.
И вот хотел бы спросить у вас, может кто поделиться опытом перехода в программисты из смежного направления? Насколько это было для вас сложным?
И вот хотел бы спросить у вас, может кто поделиться опытом перехода в программисты из смежного направления? Насколько это было для вас сложным?

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

Ох… Ага. "Не все так однозначно"...


1993-й (или еще 92-й год был? Не помню точно уже… Но зима с 92 на 93-й). Оболочка с компилятором C. Прямой предок очень популярных сейчас оболочек с компиляторами...


Ситуация:
Одна из девушек в нашей конторе решила в дополнение к Basic и Pascal освоить C, ибо прогрессивно и модно. Задача и текст программы были взяты из учебника, с одной из первых страниц: "открыть файл на запись, записать в файл значение, закрыть файл на запись, открыть файл на чтение, прочитать значение, закрыть файл на чтение, выйти из программы."


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


Добавляем кучу "printf", чтобы понять, где вешается: "собираемся открывать файл, открыли файл для записи, записали в файл собираемся закрывать файл..." и т.д. Компилируем. Запускаем программу… Все открывается, закрывается, открывается снова для чтения. Т.е. работает… Комментим "printf-ы". Компилируем без вывода диагностики — все снова работает. Удаляем комментарии с printf-ами из программы. Компилируем — все опять работает. Сравниваем с "исходником" исходника, после компиляции которого все вешалось — побитовое полное совпадение. Но результат компиляции того — черный экран и хард-резет, а этот компилируем — все работает… Но тут случились 90-е в полный рост, и стало не до особенностей работы всяких странных компиляторов...


PS: кто-то рассказал бы — я бы не поверил. Я материалист (почти) детерминистского толка :-) Но я сидел за соседним компьютером и подсказывал, куда вставить printf'ы для диагностики...

На языке с "сырыми" указателями получить недетерминированное поведение, да ещё под DOS, — раз плюнуть. Опечатка в книжке — и программа делает немного не то, что должна. Иногда — незаметно, иногда — вешает систему.

Язык с «сырыми указателями» быстро приучает думать, а не просто копипастить чужой код.

Меня это приучило не работать с сырыми указателями) Но всё равно приходится, это довольно-таки фундаментальная вещь и встречается часто.

Вот именно что фундаментальная и часто встречается. Тут просто надо привукнуть держать это в голове на интуитивном уровне.

Там было интереснее… Исходник, который по результатом опытов начал компилироваться в работающую программу, побитово совпадал с исходником, который исходно в скомпилированном виде приводил к мервому зависанию.
Сама программа, извините, fopen, fwrite, fclose, fopen, fread, fclose, printf. Переменная, кажется, вообще одна была, глобальная, статическая — в которую байт из файла читали.

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


Если у вас вдруг сохранился исходник, вы, вероятно, найдёте в нем баг.


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

По моему опыту, в простых случаях баг в программе более вероятен, чем баг в компиляторе.

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

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

«вы знаете, как сделать лучше любую программу, любой сайт, любое мобильное приложение.» Вот это прям про меня. Но я не могу переписать десяток уже существующих программ.
Большое спасибо за статью! Как раз на пути к IT-индустрии, и материал оказался интересным и полезным.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий