Юрист стал программистом

admin

Из юриста в заклинатели змей. История разработчика Python

Всем салют, меня зовут Ровшан Мамедов и на сегодня мне 22 года.

Еще в школе я очень увлекался компьютерными технологиями и дружил с техникой лучше многих сверстников и старших знакомых. К слову, я был отличником, поэтому с инициативы преподавателей было решено отдать меня в секцию компьютерных наук Малой Академии Наук. Занятия были нудные, неинформативные и непонятные мне, 14-летнему. В итоге, при успешно посеянном во мне этой секцией чувстве, что программирование мне не по зубам (а понятия обучения чему-либо через Интернет на тот момент, к сожалению, в моей картине мира даже не существовало:), за неимением друзей-единомышленников, развивающихся в IT (этого слова я тогда и не знал:) и под высказывания родных "Компьютеры — это не серьезно. Ты ведь уже взрослый" я перенаправился в русло изучения юриспруденции, которая тоже меня интересовала.

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

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

Летом 2015 я попробовал язык Python и получил кучу удовольствия от его простоты и лаконичности. Программировать было так комфортно, как бывает зимним утром в теплой постели, когда просыпаешься и любая твоя поза идеальна, чтоб поспать еще. 🙂

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

Спустя несколько месяцев в одной из групп «ВКонтакте» я увидел приглашение на бесплатный курс «Основы программирования» и записался на него. Я исправно выполнял все домашние задания, вдумчиво слушал преподавателя и по окончании курса понял, что так учиться мне нравится и отлично получается. К этому времени я уже успел приметить, что смогу после курсов GeekBrains также отточить свои навыки на гарантированной стажировке.

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

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

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

Сейчас я прохожу стажировку GeekBrains в роли Team Lead'a, где моя бравая команда разрабатывает интересный проект в сфере информационной аналитики и статистики.

Друзья, учитесь получать удовольствие от того, что вы делаете!

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

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

Вдохновились? Тогда добро пожаловать в царство Питона!

Всем салют, меня зовут Ровшан Мамедов и на сегодня мне 22 года.

Еще в школе я очень увлекался компьютерными технологиями и дружил с техникой лучше многих сверстников и старших знакомых. К слову, я был отличником, поэтому с инициативы преподавателей было решено отдать меня в секцию компьютерных наук Малой Академии Наук. Занятия были нудные, неинформативные и непонятные мне, 14-летнему. В итоге, при успешно посеянном во мне этой секцией чувстве, что программирование мне не по зубам (а понятия обучения чему-либо через Интернет на тот момент, к сожалению, в моей картине мира даже не существовало:), за неимением друзей-единомышленников, развивающихся в IT (этого слова я тогда и не знал:) и под высказывания родных «Компьютеры — это не серьезно. Ты ведь уже взрослый» я перенаправился в русло изучения юриспруденции, которая тоже меня интересовала.

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

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

Летом 2015 я попробовал язык Python и получил кучу удовольствия от его простоты и лаконичности. Программировать было так комфортно, как бывает зимним утром в теплой постели, когда просыпаешься и любая твоя поза идеальна, чтоб поспать еще. 🙂

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

Спустя несколько месяцев в одной из групп «ВКонтакте» я увидел приглашение на бесплатный курс «Основы программирования» и записался на него. Я исправно выполнял все домашние задания, вдумчиво слушал преподавателя и по окончании курса понял, что так учиться мне нравится и отлично получается. К этому времени я уже успел приметить, что смогу после курсов GeekBrains также отточить свои навыки на гарантированной стажировке.

Так и записался на профессию «Программист Python».

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

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

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

Сейчас я прохожу стажировку GeekBrains в роли Team Lead’a, где моя бравая команда разрабатывает интересный проект в сфере информационной аналитики и статистики.

Друзья, учитесь получать удовольствие от того, что вы делаете!

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

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

Вдохновились? Тогда добро пожаловать в царство Питона!

Юрист стал программистом

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

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

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

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

И вот теперь, как мне кажется, снова пришло время что-то менять.
И снова, как и в предыдущий раз, все спрашивают: Почему? Зачем? Всё ведь хорошо!

Попробую объяснить свою позицию

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

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

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

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

В общем нужно что-то менять! Но что и на что? — вот в чем вопрос!

Если посмотреть на программирование, то это направление представляется очень интересным:

  • Оно с одной стороны — совершенно новое для меня, т.е. в нем можно учиться и развиваться: выбор ПО, задач, проблем практически не ограничен, от молекулярной биологии, физики и химии до верстки сайтов. Мне кажется, тут есть возможности и есть перспективы.
  • С другой стороны — это направление, в котором у меня есть некоторый опыт: Fortran в институте, LabView — последние три года на работе, Си и Free Pascal (немножко для общего развития), PHP + WordPress + HTML+CSS — вполне рабочий сайт получился.
  • Честно говоря, мне просто нравится кодить, и я люблю когда моя работа имеет результат: сделал — заработало!

Судя по тому, что я вижу на Хабре и в интернете — разработчик должен быть очень опытным и молодым, желательно лет 23-27, после 35 — найти работу становится сложнее. Скажу честно, это кажется немного странным! Конечно, общеизвестно, что с возрастом интеллектуальные способности деградируют, но с точки зрения медицины — возрастом считается 70-80 лет и никак не 30-40. Другое дело, что человеку, которому двадцать лет, можно меньше платить. Но я не претендую на позицию разработчика с 20-летним стажем.

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

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

Мне нравятся слова, адресованные Кирком Шупом молодым разработчикам на встрече в Яндексе:
Найдите вещи, которые вас мотивируют, пишите много кода и читайте много кода. Меня вдохновляет строить вещи, которые просуществуют много лет после того, как я их сделаю, и которые не сломаются даже после изменений, которые в них внесут люди, не понимающие их.
Когда я начинал программировать, смотрел на опытных разработчиков и думал, что через 10 лет я догоню их текущий уровень, но они уже уйдут вперёд на 10 лет. Через десять лет я понял, что на самом деле полностью их догнал. Технологии двигаются вперёд, так что мне не пришлось изучать старые, а новые я узнавал одновременно с ними.
Также у меня есть жизненный опыт, который говорит, что учусь новому я быстро и что если что-то делать и не стоять на месте — результат будет.

Рассмотрим финансовый вопрос. Да, при смене работы я существенно потеряю в деньгах, но кое-что при этом и приобрету:

  • Во-первых программист не так сильно привязан к месту работы географически, а это значит, что при желании я смогу работать на удаленных заказчиков;
  • Во-вторых, по моей оценке уровень дохода скорее всего через пару лет сравняется с моим текущим уровнем;
  • В третьих, рынок программного обеспечения неуклонно растет, а значит растет спрос и на специалистов, а вот производство оборудования в РФ непрерывно сокращается (это безусловно мои личные субъективные ощущения, не претендующие на какую-либо объективность), а значит работу программиста через двадцать лет я скорее всего найду, а вот работу инженера-конструктора — вряд ли!

Но языков программирования так много, почему именно Python — скажете вы.

Получилось так, что лет пять назад один мой друг, увлекающийся Linux, очень настоятельно мне его порекомендовал, были новогодние праздники и было время попробовать разные дистрибутивы, в общем последние пять лет я использую Debian. А дальше все просто: bash — это наше все, но хотелось возможности написать что-то более сложное: попробовал Си, по рекомендации того же друга попробовал Lazarus, немного повозился с PostgreSql. Потом был почти годовой перерыв, а потом, попробовал Python.

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

Еще одна причина для меня выбрать Python — это то, что я считаю его более перспективным языком с точки зрения участия в различных технических, научных и просто интересных проектах, чем например PHP.

Сейчас, в свободное от работы время потихоньку начал изучать machine learning, а на прошлой неделе сходил на первое собеседование.

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

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

6 причин не быть программистом

Меняются времена, меняется мода на профессии. Если раньше все хотели стать бизнесменами в малиновых пиджаках, то теперь все стремятся быть программистами. Но всем ли подходит эта деятельность?

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

1. Вы не любите творчество

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

2. Вы работаете из-под палки

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

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

3. Вы не любите решать головоломки

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

4. Вы не можете сидеть долго на одном месте

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

5. Вы цените нормированный рабочий день

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

6. Вы хотите быстро разбогатеть

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

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

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

Ну что, ещё не передумали идти в программисты?

Юрист стал программистом

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

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

Понимание всей этой отрасли у меня было на уровне тех «типичных» заказчиков из постов про IT. Поэтому после посещения местной веб-студии я понял, что я тупой мудак, который ничего не знает. В нете нашел habrahabr (В его лучшие времена), и загорелся идеей получить инвайт.

После 9 статей в песочницу (в основном переводы it статей с New York Times), я все же получил свой инвайт. Начал задавать вопросы под профильными статьями, спрашивал насчет сайтов. Ну и мне один мужик посоветовал выучить для начала html/css.

Я скачал с торента книгу по html/css и начал её читать в свободное от работы время, благо жена еще училась в универе и ей было особо не до меня. Через три месяца изучения книги я уже мог делать статичные странички с убогим дизайном.

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

Скачал с нета учебник в двух томах на 2500 страниц, и каждый день на протяжении 6 месяцев еще читал и смотрел примеры. После его прочтения я так и не понял, как делать сайты.

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

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

У меня появилась идея сделать что-то грандиозное, и я стал разбираться в том, как это делать. Для начала выбрал себе html/css фрейм-ворк, который бы помогал мне делать адаптивные сайты (по случайности выбор пал на Foundation). И опять же скачал с нета книгу по javascript/jquery и начал её читать.

В ходе разработки сайта тажке скачал книги по SQL, POSTGRESQL и GIT, также запоролся с тем, что поставил себе Ubuntu для настройки сервера под хостинг. Также разбирался во всяких плагинах, библиотеках и прочих штуках.

Каждый день выглядел так:

— Открываю блокнот, где с вечера написал вещи, которые нужно сделать.

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

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

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

P.s. Хочу отметить, что у меня в городе нет ни одной нормальной IT-компании, и все мое обучение было книги, документация и практика! Поэтому было бы желание.

  • Лучшие сверху
  • Первые сверху
  • Актуальные сверху

141 комментарий

Как вы стали веб-разработчиком я понял, честь и хвала. Но в какой момент вы стали программистом?

У меня телефон с 5 но этажа упал, чет не работает, починить, тыж программист.

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

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

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

Можно и я немного в срач встряну?

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

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

Ещё имеется английский термин «software engineer», вот тут я не уверен, как это нынче правильно на русский переводится. Именно сюда, по моему мнению, и стоит стремиться. В западных ВУЗах на факультетах компьютерных наук «software engineering» — отдельная дисциплина, эдакая наука о процессах и правильной организации разработки, тут и умение риски взвешивать, и правильно менеджмент организовывать, и все процессы моделировать и формализировать, и эвалуацией заниматься. И, ещё раз — организовывать, организовывать, организовывать, мать его, правильно! От идеи «а давайте напишем вот это» и до шиппинга заказчику, через все этапы жизненного пути ПО. Это отнюдь не исключительно гуманитарная дисциплина, хочу заметить. Всё это постигается уже поверх знаний программиста/девелопера. В итоге получается, что инженеры проводят в написании кода всего лишь 20-30% всего времени, зато делают это эффективно и с пониманием, что и зачем они пишут.

Удачи вам в начинаниях и профессионального роста!

Наиболее адекватный коммент в данной ветке. Вы выразили мое мысль лучше чем я бы смог :).

Чуть более месяца сдавал предмет, который очень похож на Ваше описание. Называется «Технологии создания программных продуктов». Там описывались этапы разработки ПО, этапы разработки требований и архитектуры. Также описывались методологии (как классические, так и гибкие).
На практике было UML и системы контроля версий.
Вы об этом имели ввиду под «software engineering»?

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

Ах да, небольшой дисклеймер: я рассматриваю это на примере немецких вузов.

Если есть большое желание — я могу привести в качестве примера оглавление лекций по курсу.

ООо, буду благодарен, если можете привести)

Заранее извиняюсь, если перевод получился не совсем гладким.

Это немецкий курс программного инжиниринга, который преподаёт проф. Райнер Кошке, председатель комитета TCSE / IEEE по реверс-инжинирингу.

Благодарю. Где перевод получился не совсем гладким, всё равно ясно о чем идет речь (по крайней мере для меня).

Человек становится скрипачом в тот момент когда первый раз провел смычком по скрипке. 😉

Программистом становятся по обретении образования, знаний и опыта. То что вы описываете, это «script kiddie».

В какой момент становятся программистом? Как измеряется та критическая масса знаний, после которой уже нет обратного пути? Правда, интересно же!

Я часто интервьюирую кандидатов и для меня та заветная черта начиная с которой на человека есть смысл потратить полчаса — диплом.

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

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

Я понял нашу с вами ситуацию.

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

2) В то же время автоматизация, game development, разработка сложных движков и прочее — это дело для людей с конкретным набором знаний, где персонажи без образования — исключения, а не правило.

Я прекрасно понимаю, что 2 категория для меня закрыта (разве, как менеджером проекта, что вполне реально), поэтому я развиваюсь в 1 категории.

А потом эти сайты тормозят из за квадратичных алгоритмов в скриптах.

Принято. На западе с этим чуть проще, в русском еще терминология не устоялась.

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

Я раньше работал программистом ЧПУ и у меня есть образование в той области. Но я никогда не смотрел на людей без оного с высока. Много очень хороших спецов здесь сразу после школы обучались на практике.

То де самое и в компьютерном/веб программировании

Какие такие требование у вас выше?
«Вы не умеете в прерывания потому, что у вас нет корочки» ?

Для всего есть доки.

Ну например, у нас требуется понимать разницу между О(n^2) и О(n * log n)

Доки для этого тоже есть, только очень толстые.

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

Ну, а где-то требуется другое, в чем проблема ?

На трассе требуется в жопу давать дальнобоям. Иди уже, работай.

@moderator , успокойте человека, пожалуйста.

@moderator , у людей просто пуканы горят, ты же не призван их успокаивать )))

вы верите, что выпускники вузов знают и понимают О-нотацию как-то по особенному?

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

Правильно ли я вас понимаю: Вы ни разу не интервьюировали кандидата без диплома и тем не менее, не считаете нужным тратить время на подобных специалистов? Вы требуете хорошие знания матана, но и в тоже время считаете, что у многих выпускников «в одно ухо влетело, а из другого вылетело»? Что же такого в этом дипломе?

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

Отсуствие формального академического образования обычно коррелируется не только с отсутствием фундаментальных базовых знаний (в унивеситете студентов почти не учат «как», это они изучают сами, их учат «почему», а самоучки это обычно игнорируют за ненадобностью), но и с отсутствием усидчивости, ответственности и дисциплины. Если у человека не хватило терпения 6 лет грызть гранит науки, где гарантия что он сможет вкладывать в работу те усилия которые нужны чтоб делать работу качественно и самостоятельно. Поднахватавшиеся вершков, обычно оказываются совершенно беспомощны, если задачу которая перед ними стоит не возможно скопировать со stackoverflow.com. Возможно есть исключения из правил, истинные самородки, но пытаться найти одного из них в толпе и-так-сойдет-ников право же слишком дорого. Слава Б-гу, в головастых выпускниках с горящими глазами и готовностью изменить мир недостачи не наблюдается.

Чтоб избежать голословия, приведу один простой пример: обратите внимание как яростно заминусован пост #comment_69531440

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

Кроме того, есть еще один аспект: индустриальное оборудование изредка калечит, а иногда даже убивает людей. В таком случае, в суде, дипломы всех разработчиков становятся частью аргумента что фирма-производитель сделала все от себя зависящее чтоб избежать несчастный случай. «А вот это писал Вася который научился на питоне», в суде звучит как гол в свои ворота. Представляете какая рожа была бы у Илона Маска если бы выяснилось что код для сенсора который позволил его Тесле недавно заехать под грузовик, писал коекакер-самоучка?

А помните несколько лет назад у Тойоты была проблема с якобы залипающей педалью газа из-за якобы дефектного кода в микроконтроллере управления двигателем? Угадайте, какой аргумент использовала Тойота чтоб избежать миллиардных исков?

Юрист стал программистом

Тема, вынесенная в заголовок, недавно обсуждалась в одном белорусском IT-онлайн-издании. Правда, там стоял вопрос, можно ли стать программистом после 40-ка. Автор статьи, состоящей из нескольких частей, начал было описывать свой путь из журналистов в программисты, затем свел все к урокам PHP «для самых маленьких» и далеко отступил от темы. Но в материалах прослеживалась мысль, что бросить журналистику и заняться программированием ему так и не удалось. Из этого следует, что после 40 лет стать программистом если и возможно, то весьма непросто. Попробуем снизить возрастную планку на 5 – 10 лет.

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

Отмечу, что желание стать программистом лично у меня не высосано из пальца (и не из мысли «они получают 100500+ денег, я тоже так хочу»). Это вполне осознанное стремление. В душе я считаю себя программистом давно. Но до сих пор программирование не стало моей основной профессией. Надеюсь (возможно, напрасно), что все кто в зрелом возрасте задумался о профессии программиста, руководствуются не высокими зарплатами, а соображениями самореализации или подобными моральными принципами. А какие еще плюсы несет профессия программиста?

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

А в чем, собственно, проблема?

Будучи взрослым, сменить профессию непросто. Когда человек только вступает во взрослую жизнь и сталкивается с необходимостью выбора профессии, зачастую он не вполне ясно представляет, в чем будет заключаться его работа после получения диплома. Порой на выбор профессии влияют родители, окружение, мода наконец (в 90-е годы было модным иметь экономическую специальность, отсюда имеем переизбыток экономистов всех мастей). Становясь старше, человек начинает лучше разбираться в жизни и отчетливее понимать свои вкусы и желания. С возрастом порой приходит понимание того, что твоя работа, да и профессия вообще — скука смертная. У 17-летнего юноши этого нет, но есть одно важное достоинство: он молод. А став зрелым, не каждый осмелится поменять профессию, ведь интуиция говорит, что на этом пути придется столкнуться с трудностями. При «перевоплощении» в программиста после 30 лет основные трудности такие:

  • К 30 – 35 годам большинство людей имеет семью/детей, а значит, рисковать становится сложнее, чем в 20 лет: на плечах лежит ответственность не только за себя. Как ни крути, но не факт, что новая профессия сразу станет обеспечивать тебя не хуже прежней. Возможно, придется довольствоваться меньшим, пока наберешься опыта.
  • Работодатель хочет (привык?) видеть в качестве junior’а зеленого пацана, студента 2 – 3 курса, но никак не бородатого дядьку, который по возрасту больше подходит на руководящую должность, а по знаниям только до junior’а и дотягивает (и то не всегда).
  • В зрелом возрасте не каждый сможет переступить через себя и снова сесть на студенческую скамью. Большинство людей после 30-ти имеют определенный опыт в какой-нибудь профессии, привыкли к тому, что их воспринимают как профессионалов и они морально не готовы сказать (даже самому себе): «я этого не знаю». Словом — тяжело учиться. При этом не будем рассматривать такой минус смены профессии в зрелом возрасте как «мозги уже не те». Мозги в 35 лет, если человек не давал им покрыться пылью, работают еще о-го-го! Многим молодым фору дадут! Да и приобретаемая профессия программиста предполагает, что мозги должны быть на месте.
  • «Засмеют коллеги». Этот пункт перекликается с двумя предыдущими. Но все же это отдельная тема и для автора этих строк, пожалуй, самая болезненная. Мне сложно будет смириться с тем, что вокруг меня молодежь, которая знает и умеет не меньше моего. А если еще и придется столкнуться с их, мягко говоря, «непониманием» бородатого дядьки, который решил стать программистом и следующими из этого подковырками…
  • Боязнь разочарования. А что если и новая профессия со временем приестся/надоест? Эта мысль также не дает человеку, которому уже за 30 смело шагнуть в новую профессию.

Хотелось бы узнать мнение хабрапользователей о том, реально ли стать программистом после 30 – 35 лет.

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