Pull to refresh

Comments 78

UFO landed and left these words here
Не правда. :-)
Тут человек ответственно прошел карьерный путь в 30 месяцев.
Тож про неё вспомнил и хотелось спросить ( а почему не как стать тим.лидом за 24 часа? ).

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

Вопросы топикпастеру — как Вы измеряли свой опыт, и что для Вас входит в понятие «сложная задача»?
( т.к. судя по тексту надо выбирать именно их, на месте новой или старой работы :) )

«Общаться, общаться и ещё раз общаться» — чтобы что?
На какие темы?

Для убедительности советов — можете привести примеры задач,
которые перед Вами сейчас ставятся,
уровень ответственности
(кол-во проектов, человек в подчинении ( + что это за люди ) ).
Если бы был пост о том, как стать тим лидом за 24 часа, я бы его с радостью почитала бы) Вдруг это был эпический гений?

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

"«Общаться, общаться и ещё раз общаться» — чтобы что?
На какие темы?"
Общаться на профессиональные темы, конечно. Чтобы оставаться в курсе событий, узнавать об идеях других людей, о проблемах, с которыми они сталкивались и решениях, которые они находили. Я имела в виду обмен опытом, по-моему, это очень важно.
Тимлидом стать легче легкого и даже 24 часов не надо
> Постановка задачи для курсовой работы была примерно такой: «Вот тебе ТЗ...»
Искренне вам завидую. За пять лет так и не получил ни одного сколь-нибудь чёткого задания.
По статье… в принципе, стандартные советы. За 2,5 года можно наизусть выучить стандарт, вот только требования на «сеньора» у каждого — разные.
Да и не ради статуса вроде надо жить.
Не спорю. Может, советы и стандартные, только мне их в своё время никто не дал( Может, помогут кому-нибудь…
> Искренне вам завидую. За пять лет так и не получил ни одного сколь-нибудь чёткого задания.
Значит Вы не смогли заинтересовать научных руководителей. По своему опыту сужу, что если дать свою тему и заинтересовать человека, то он даст волю фантазии и превратит вашу курсовую работу в мини-стартап: напишет тз, будет сам настаивать на консультациях, делиться опытом, да и просто общаться с Вами на околопрофессиональные темы.
В противном же случае, конечно для маленьких и (или) неинтересных курсовых никто Вам тз не составит.
Пятый курс, это не поздно, я вот 5 лет отработал обычным эникейщиком, пока не понял чем хочу заниматься.
>перескочив с уровня Junior Java Developer сразу на Senior
это ваша позиция изменилась, уровень и знания остались теми же.

Не хочу вас обижать, но 23-летние сеньоры всегда улыбают. Хорошо, если вы сами понимаете, что до уровня Senior нужно расти и расти, опыта набираться, и многие 30-летние дядьки с опытом >10 лет не считают себя сеньорами и робко улыбаются от этого статуса.
Поясню, что я имела в виду: мои уровень и знания в конце моего пребывания Junior Developer-ом были уже не Junior, а вполне себе Middle. Сейчас, проработав погода на позиции Senior, я понимаю, что Senior Senior-у рознь) Хотя я, конечно, многому научилась за это время. По моим личным субъективным оценкам я скорее Middle Developer с небольшим перевесом в Senior, но фишка в том, что, судя по размещённым в разных ресурсах вакансиям, многие компании не вводят понятие Middle Developer, а ограничиваются только Senior и Junior, и в большинстве из них (судя опять же по вакансиям) я бы котировалась как Senior. Хотя, чует моё сердце, например, в JetBrains меня дай бы бог, чтобы хоть Junior-ом взяли.
Так проблема аутсорса. Возьмем мидлов, назовем их синьерами и будем брать бабки как за синьеров. А кто их их там отличит мидлов от синьеров
Вы меня не поняли. Бог с ним, как там в вакансиях написано, главное что человек из себя представляет. Вы прекрасно разбираетесь в алгоритмах и структурах данных, OOP, активно участвовали в разработке сложной архитектуры хотя бы пары проектов, знаете многопоточность (если нужно) и прочее, список можно долго продолжать? Это база, без привязки к конкретному языку. + знание языка. 3 года — это курам на смех, этого слишком мало.

Но со временем вы начнете понимать, что вот тут пробел и тут пробел… и сколько же всего я не знаю… и тогда вы получите просветление )
Вы не поверите — чем больше я учусь, тем больше я понимаю, что ничего не знаю! Но, мне кажется, это нормально.
Просто сравнивать свой уровень удобно по каким-то критериям. Для меня это — требования к вакансиям различного уровня. Безотносительно к этой шкале мне трудно себя назвать Junior-Middle-Senior, поскольку многие до сих пор спорят о том, по каким критериям определять эти уровни. Многие обсуждения, насколько я помню, сходятся к тому, что всё зависит от предметной области, но даже и в ней всё не так просто.

Основной смысл этой статьи был в том, что у меня довольно много знакомых девелоперов, у которых стаж больше, чем у меня, на несколько лет, а знают они столько же, сколько и я, просто потому, что не считают нужным тратить кучу времени на самообразование. Мне показалось, что будет полезным написать такую статью для тех, кто ещё не обладает большим стажем, чтобы объяснить, что в конечном счёте всё только от тебя зависит…
Тут вы абсолютно правы. Обязательно занимайтесь саморазвитием. Лучше всего определите самого опытного коллегу и вцепитесь в него зубами — «качайте» знания, спрашивайте ( ненавязчиво ), перенимайте опыт в обмен на шоколадки.)
Успехов вам.
Иногда бывает трудно определить, кто самый опытный, потому что опыт у всех может быть разный) Но совет хорош.

Спасибо!
Чистые знания ещё не всё, очень многое даёт опыт. Поэтому Senior без 5-10 лет опыта работы это или гений или профанация. Ну а ориентироваться на названия вакансий — не самое разумное, лучше смотреть в сторону гигантов и их оценки (у них зачастую отработаны политики разграничения «мощности» программистов). Важно ещё учитывать и то, что senior это не только и не столько какая-то сумма знаний, сколько умение этими знаниями оперировать и стратегически мыслить при решении проблем.

  • джуниор — малая уровень ответственности (минимальное участие в планировании), средний уровень знаний
  • девелопер (миддл) — средняя уровень ответственности (активное участие в планировании/проектировании), высокий уровень знаний
  • сениор — высокая уровень ответственности (активное участие в планировании, проектировании), глубокий уровень знаний


В общем вы правы, через 3-5 лет, те кто работают над собой активно, действительно начнут обгонять тех, кто не работает активно, но очень давно в программировании, но не надо ложных надежд — эти 3-5 лет нужно работать много и до определённого момента даваться это будет тяжелее, чем остальным.
В целом 3 года вполне нормальное время для крепкого мидла, но по своему опыту могу судить, что за 3 года можно хорошо покрыть 1 край 2 предметные области. По тексту не увидил о предметных областях. Вы можете рисовать 3 года сайтеки, решать сложные задачи на уровне веба взаимодействия между сервисами итп… но перейдя в другую область (интерпрайз решения, сопряжение с железяками итп) вы не выстрелити в тот же момент, да вы не джуниор, но и не синъер. Т.е. моя мысль, помимо знание языка, некоторого круга технологий, нужно еще и хорошо знать предметную область и это определяет уровень разработчика имхо…
В целом, идей простые, и думаю все знаю, с чем то согласен с чем то нет.
Я сменила область, перейдя от разработки биллинговой системы (web-приложение на Java/javascript с рядом используемых фреймворков, довольно громоздкое) на разработку тестовых сюит для JDK (не путать с QA-тестами), это разные инженерные задачи. Мне не показалось это принципиально важным в рамках топика, поэтому и не написала. В дальнейшем хотелось бы углубиться в Data Mining. В мире столько всего интересного)
А Oracle — это через какую-то компанию-аутсорсера или есть официальный офис разработки в России?
Есть официальный офис разработки в России, конкретно — в Петербурге.
хм. программирую со школы, считаю себя максимум на среднем уровне. Суммарный опыт программинга — примерно лет семь-восемь
программирую с N лет, суммарный опыт уже к M годам подваливает, при этом оглядываясь назад явно вижу синусоиду самооценки, которая каждый раз после «Я Senior!» превращалась в «Боже, какой же я нуб, еще учиться и учиться» :)
Замечаю за собой то же самое. «Я знаю, что ничего не знаю» (с Сократ)
Эхх… не подскажите где можно прикупить самоуверенности, чтобы поднять самооценку до «я Senior»? Это при том, что первый опыт программирования я получил где-то лет так 20 назад в глубоком детстве :-)
Мне кажется, тут дело не в самоуверенности, а в определении «я Senior» =) Уверена, что наши с вами отличаются и согласно вашему определению я — никакой не Senior, а так… ромашки собираю.
«Из многочисленных исследований вырисовывается следующая картина: о какой бы области ни шла речь, для достижения уровня мастерства, соразмерного со статусом эксперта мирового класса, требуется 10 000 часов практики» (с)Левитин.

Т.е в среднем только за 8часов*5дней*50недель*5лет=10000 часов.
Ну, я себя экспертом не считаю… как не считаю и то, что Senior — это «уровень мастерства, соразмерный со статусом эксперта мирового класса». Мне кажется, это Architect/Lead.
То есть осталось ещё 2 года усердной работы?) Что-то сомневаюсь, что удастся… мне кажется, «эксперт мирового класса» — это в самом скромном случае лет 7-9. Но чем чёрт не шутит? Где мои звёзды, дайте по ним пострелять))
Архитектор — это опыт больше 5-ти лет, а лучше 10-ти. Причем интенсивной разработки и проектирования систем, конечно, а не просиживания штанов на саппорте замшелого энтерпрайза.

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

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

А уж чтобы людьми руководить и решения принимать — тут уж точно надо отрастить ответственность и опыта набраться. Когда мало видел, последствия своих решений сложно оценить. Был у нас один архитектор в свое время… Юный и горячий. Наколбасил и уехал на повышение — ну перерос же уже. А дядьки седые потом чертыхаясь разбирали мусор, которые за ним остался. Ни его одна система не выдержала реальности.
Все сильно зависит от компании, особенно в аутсорсе, раздавать тайтлы выгодно, проще заманить мидлов на позицию senior, самих senior на позиции architect/lead, продать их компании клиенту дороже (согласитесь команда 3 сениора и 1 архитект лучше чем 3 мидла и 1 сениор). Качество работы компанию мало волнует и эта мега команда спокойно пишет плохой код годами.

Сам был 19-ти летним senior java developer, сейчас просто software engineer, тайтлы это просто игра.
Я не думаю, что возраст или стаж работы — это показатель уровня, поскольку время можно использовать по-разному, кто-то более, кто-то менее эффективно.
Сейчас я работаю в большоооой компании… не в аутсорсе… и качество работы тут очень важно… так что не всегда, не всегда так бывает)
Ella — что это за компания, если не секрет?
Боюсь, если я скажу, тут сейчас начнётся такооой холивар… из серии «Вот из-за таких вот Senior-ов JDK 8 и задерживается!» )
Но мне-то стесняться нечего. В Oracle
А вот это заслуживает отдельного упоминания в статье. ;-)
Тут мою статью так заминусовали… мне бы не хотелось, чтобы из-за меня кто-то составил плохое впечатление о компании.
Ни плохое, ни хорошее впечатление о компании из-за тебя не сложится, а вот тебе и твоей статье такое упоминание придало бы большей солидности (и минусов отхватила бы меньше).

PS а о внутренних процессах компании уже многое говорит факт, что первые несколько версий своей БД Oracle сам не использовал, пока CEO волевым решением не перевёл компанию на свою БД. До этого с поддержкой БД была беда. :-)
PPS это не значит, что я считаю Oracle плохой компанией… но я туда особо не стремлюсь.
перескочив с уровня Junior Java Developer сразу на Senior

Коллеги, это мой первый пост на Хабре, и я была бы крайне признательна минусующим за фидбэк. Хотелось бы понять, где накосячила. Пока, как я понимаю, претензии только касательно того, что «нельзя стать Senior Developer-ом за 3 года»? Этот вопрос я уже пояснила в комментариях. А вот если есть ещё что-то… буду очень рада знать! Заранее спасибо.
Совет: поменяйте стилистику с «я расскажу, как пройти путь от абсолютного нуля до Senior Developer» на «мой путь и что бы я в нем изменила».
ты не просто воспользуйся, а пост перепиши в нужном стиле.
> Думаю, сейчас придут зубры с стопятидесятилетним стажем, и начнут издеваться) У них просто ещё рабочий день не кончился.

Они пришли =)
Nomad1, правильно написал. Написали вы правильно, но у вас получилось в так, что вы прям идеал карьрного роста. Все делают ошибки, написали бы где вы накасячили (я вот например на второй неделе моего второго проекта в accenture дропнул несколько таблиц на тестовой базе — тогда я выучил, что truncate != drop, хотя результат отчасти похож...).
И еще не рекомендовал бы Шилда называть нормальной литературой.
Идеал не идеал, но ведь довольно успешно, не правда ли? Хотя я вовсе не отрицаю, что есть и люди, которые добились большего за меньшие сроки. Я сама могла бы добиться большего, если бы не те самые косяки, которые я в статье назвала «шишками». Кстати, как-то я не думала рассматривать эту историю именно как карьерный рост, скорее уж как профессиональный (я различаю эти понятия).

А нам Шилдта в качестве рекомендованной литературы в вузе давали =) Чем богаты, тем и рады…
> Идеал не идеал, но ведь довольно успешно, не правда ли?

Ну давайте не будем меряться =).

> А нам Шилдта в качестве рекомендованной литературы в вузе давали =) Чем богаты, тем и рады…

Нам тоже, но это не значит, что преподаватели во всем правы.
Я тут постом выше писала, что совершенно не отрицаю, «что есть и люди, которые добились большего за меньшие сроки. » =) У меня не самый высокий IQ в мире, и я не считаю себя талантливым программистом. Скорее уж всего, что я добилась, я добилась за счёт старания и любви к учёбе. И это ещё далеко не предел, конечно…

Кстати, Шилдта я назвала «серьёзной литературой», а не «нормальной». И серьёзной по сравнению со всем остальным, что я читала в тот период. Я бы лично сейчас в качестве первой книги «Thinking in Java» порекомендовала бы.
> Я тут постом выше писала, что совершенно не отрицаю, «что есть и люди, которые добились большего за меньшие сроки. » =) У меня не самый высокий IQ в мире, и я не считаю себя талантливым программистом. Скорее уж всего, что я добилась, я добилась за счёт старания и любви к учёбе. И это ещё далеко не предел, конечно…

Хорошее начинание). По своему опыту могу сказать, что enterprise портит и равращает. Самое лучшее, что я там сделал — это свалил от туда.

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

ЗЫ: Тема с шоколадками работает. Удачи.
Шилдт сравнительно неплохая справочная литература… в учебники не годится.
просто «23-летние сеньоры» больная тема, большинство знакомых программистов скромные люди, которые делают то что любят делать и не лезут по головам к следующей карьерной ступеньке, прыгая при этом с работы на работу. И да, есть конечно люди, которые достойны высот, которых они достигли, возможно вы в их числе, но доказать это проблематично)
В любом случае, это доказывают не криками «Я Senior». Вот когда про тебя 10 уважаемых людей так скажут, когда ты не слышишь — вот это да.
А все же интересно почему именно Java? самый многословный из языков ) не пробовали сравнить с другими? Ruby, PHP, С++, C#, Javascript? функциональные? да тот же Scala например? И мотив стать крутым программистом на Java не кажется вам слишком наивным что ли? Ведь язык это лишь средства для решения определенных задач.
Сравнивала с PHP и C++. PHP был отвергнут сразу из-за довольно ограниченной сферы применения (поправьте меня, если на нём можно делать что-то, кроме сайтов). С++ был основным конкурентом, но, почитав Страуструпа, я решила, что он слишком сложен и у меня вряд ли хорошо пойдёт. О C# на тот момент понятие было «вроде появилась такая штука, но хз что из неё выйдет, и вообще, на ней только под винду программировать можно». Javascript я знаю. А Scala собираюсь изучить. Ещё Python в очереди.
Что касается мотива, то я могу переформулировать его так: «хочу стать крутым программистом! А программировать я буду на Java, потому что… она мне нравится!» Так лучше? =)
Все равно получается программирование ради программирования. Может быть отталкиваться все же от целей, например поучаствовать в создании нового поисковика или разработке искусственного интеллекта, или разработке интеллектуального поиска, создание системы автоматизии бизнес процессов, алгоритмов эффективного датамайнинга и т.д.
Я посчитала, что это к теме статьи не относится, поскольку тут даны общие советы для начинающих программистов без привязки к конкретной области. Мне лично интересна разработка высоконагруженных бизнес-приложений, но пока ещё я в поиске того, чему посвящу свою жизнь =) по крайней мере, её ближайший обозримый кусок. В настоящий момент я принимаю участие в разработке Java, и это мне чертовски нравится…
Да ладно вам, второй день на хабре залипаете… а 8 все отодвигается и отодвигается… вот так и «принимают участие в разработке Java»
Так вот почему 8ка не выйдет в срок! :-)

PS ночью работать можно, но устаёшь быстрее и имеется ещё куча сайд-эффектов… Продолжительное время так работать настоятельно не рекомендуется.
Почему не рекомендуется работать ночью? У меня рабочий день начинается в 18 00, больше года так работаю и чуствую себя прекрасно.
Связано с циркадными циклами, сейчас точно не вспомню, больше полугода назад читал. Суть в том, что не ночью организм хуже восстанавливается во время сна, это даёт большую нагрузку на мозг/психику и постепенно приводит к нервному истощению. Это в общем, детали сейчас не вспомню.
По секрету — не надо было читать Страуструпа. Он очень специфическая литература… его далеко не все способны понять и переварить. А вообще в обмен на сложность c++ даёт целую пачку фишек, которые много стоят.
Увы, рядом тогда не оказалось никого, кто мог бы посоветовать мне другую книгу.
Ну… я тоже не нашёл хорошей понятной книги по c++, поэтому в своё время забросил этот язык, но вроде как такие даже существуют.
А вообще тут уже приводили ссылку на картинку про быстрый способ изучения языка C++ (в первом комментарии).
Подбельский неплох для начала. Чтобы просто понять, что к чему.
Пробовал читать… лучше Страструпа (намного), но всё равно не то… в итоге ушёл сперва на web(php), потом на Java. Хотя есть мысли освоить и c/c++, но руки никак не доходят.
Может и дойдут… есть мысли в микроэлектронике покопаться, а там или асм или c/c++. :-)
После динамических языков очень сложно переключиться обратно. Мотивации будет крайне мало. У Вас должна быть чудовищная сила воли, чтобы не бросить это быстро :-)
Так хобби вроде самая сильная мотивация, не? А вот с силой воли… мда, тут проблема, придётся выезжать исключительно за счёт мотивации. :-)
Ну и вообще говоря на c/c++ я программировал (правда ничего серьёзного — только лабы) и читать эти языки могу (правда с библиотеками и фреймворками проблемы).
Ну охота пуще неволи, разберетесь, значит :-)
Бросьте вы все это. С++ — прошлый век. Учить нужно Scala. На текущий момент это must have для настоящего программиста.
Си++ надо в универах изучать (можно и без плюсов, конечно), просто чтобы работать с памятью и указателями научиться. Чтобы потом помнить, что объект в Java — указатель, и понимать, почему строки при помощи + объединять плохо, особенно в длинном цикле.
Это почему это конкатенация строк плохо? В небольших операциях лучше бы и не лезть с преоптимизацией. С большими циклами согласен полностью.
Только тут указатели не совсем при чём, тут важнее механика строк в Java (которые каждый раз создают новый объект, а не изменяют массив символов).
Ну тут же все понимают это, не нужно объяснять про константные строки и увеличения размера строки путем копирования в новую.

А насчет преоптимизации — это правило на другие случаи распространяется, со строками лучше все же сразу применять. А то сначала строчка для лога клеится кем-то из 2-х кусочков, потом приходит кто-то и подклеивает еще 4. IDEA умеет это заменять, но не все пользуются этими средствами, а даже если и пользуются — не все понимают, почему она это предложила.

У нас к счастью это все в универе было, когда структуры данных на основе массивов и указателей построишь — потом объяснять не надо простые вещи, можно и Java-коллекции использовать. Но уметь сделать их руками на указателях ни разу не вредно. Джоэль Спольски про это целую статью написал и я с ним согласна. Он утверждает, что люди, которые не в состоянии понять указатели и работу с памятью, потому что у них отсутствует необходимая для этого часть мозга, не должны попадать в профессию. Раньше вузы это все успешно отсекали при помощи тех самых курсов с использованием Си. Сейчас многие вузы перешли на Java или Python в качестве стартовых языков и в итоге фильтр отключился.
C++ как матан — в жизни пригодится далеко не всем, но понимать и знать его необходимо. Как минимум для собственного развития.
Меня преподаватель в КПИ (покойный уже) учил кодить на плюсах на бумажке. IDE с хелпами, валидаторами и тем более авто-комплишеном он воспринимал как фору для слабаков. Честно, не во всем был с ним согласен, но уж точно лишним этот опыт не оказался.
А для «настоящего программиста» как раз надо выбрать что-то одно и стать в этом мастером. Пусть это будет хоть x86 ассемблер, хоть ruby, хоть lua, но на достойном уровне, а не 100 языков по верхам.
Бросьте вы все это. Scala — прошлый век. Учить нужно Agda. На текущий момент это must have для настоящего программиста.
Agda можно учить. Для расширения кругозора. Правда после того как убедился, что от Хаскеля голова не болит.
Only those users with full accounts are able to leave comments. Log in, please.