Собираюсь приступить к поиску работы программиста. Дело отнюдь не горит, так что возможно до-обучение до нужной специализации. Как раз в выборе этой специализации и состоит мой вопрос.
Немного о себе: 18 лет, МИФИ, 2-ой курс. Вот области, не связанные с тех. реализацией, к которым я проявляю симпатию:
1) Дизайн архитектуры
2) Написание алгоритмов (интерес к строкам и графам)
3) Юзабилити (чувствую, что внутри умирает талант )
Как мне следует поступить со всем этим добром? Объединить всё в одном или прокачивать что-то отдельное, а про остальное забыть? Как искать работу при таком раскладе? Что пользуется спросом у работодателей?
Выскажете, пожалуйста, всё что думаете – любая информация будет для меня полезна.
Здравствуйте, Limonadni Joe, Вы писали:
LJ>Как мне следует поступить со всем этим добром? Объединить всё в одном или прокачивать что-то отдельное, а про остальное забыть? Как искать работу при таком раскладе? Что пользуется спросом у работодателей?
LJ>Выскажете, пожалуйста, всё что думаете – любая информация будет для меня полезна.
Научись делать законченные продукты. И цены тебе не будет.
Здравствуйте, Слава Шевцов, Вы писали:
СШ>Научись делать законченные продукты. И цены тебе не будет.
Простите, не до конца понял вашей мысли. Вы имеете в виду начать заниматься shareware и/или организовать собственную фирму? Или навык создания законченных продуктов высоко ценится работодателями и следует лишь просто научиться это делать, чтобы было, что показать?
Эх, не модно теперь даже немного "просто программистом". Всем подавай "архитектор", "аналитик", "менеджер проекта". Даже вот уже до 18-летних эхо докатилось.
А ведь это, IMHO, плохо. Приходилось встречаться по работе с такими доморощенными "архитекторами", которые не представляют себе, что их якобы идеальную архитектуру на практике вообще возможно реализовать и расширить.
С другой стороны, чем меньше будет опытных программистов, тем больше они будут оплачиваться. Эта тенденция уже заметна, кстати. Ну и замечательно!
По делу: будь мне 18 лет, я бы занялся как раз фундаментальными вещами — то бишь как раз алгоритмами, строками, графами и прочим. Потому что эти знания никогда не за-obsolete-ятся. А всякие "дизайны архитектура" — дык концепции меняются очень быстро, и неплохая на архитектура 5-летней давности в настоящее время может стать сущим кошмаром для разработчика.
Юзабилити тоже тема, но тут все еще более динамично. Я бы сказал, вопрос моды. Одно время модно было так, другое — эдак. То Microsoft одну тему продвинет, то другую. Вот, недавно в HTML-like интерфейсы ударились.
Здравствуйте, Limonadni Joe, Вы писали:
СШ>>Научись делать законченные продукты. И цены тебе не будет.
LJ>Простите, не до конца понял вашей мысли. Вы имеете в виду начать заниматься shareware и/или организовать собственную фирму? Или навык создания законченных продуктов высоко ценится работодателями и следует лишь просто научиться это делать, чтобы было, что показать?
Имеется ввиду выполнять задание от начала и до конца. И именно то, что требуется.
Есть такой недостаток большинства программистов: они почему-то считают, что фичи важнее того, чтобы их код работал. Многие программисты работу меряют именно в сложных элементах, которые удалось реализовать. Лучше если бы они меняли в том, насколько работа близка к тому, что требовалось. Или сказали человеку, что надпись на форме должна быть перевёрнута, а он спорить начинает, что так будет плохо. И на то, чтобы его убедить уходит куча времени. Есть и другой вариант: человек сделал что ему интересно (сложные фичи), а довести проект до конца ему лениво. В итоге получается полуфабрикат вместо конфетки.
Здравствуйте, SkyDance, Вы писали:
SD>Эх, не модно теперь даже немного "просто программистом". Всем подавай "архитектор", "аналитик", "менеджер проекта". Даже вот уже до 18-летних эхо докатилось.
точно... эх, молодость, "где мои 17 лет"!
SD>А ведь это, IMHO, плохо. Приходилось встречаться по работе с такими доморощенными "архитекторами", которые не представляют себе, что их якобы идеальную архитектуру на практике вообще возможно реализовать и расширить.
чем больше узнаешь тем больше не знаешь
SD>С другой стороны, чем меньше будет опытных программистов, тем больше они будут оплачиваться. Эта тенденция уже заметна, кстати. Ну и замечательно!
+1
SD>По делу: будь мне 18 лет, я бы занялся как раз фундаментальными вещами — то бишь как раз алгоритмами, строками, графами и прочим. Потому что эти знания никогда не за-obsolete-ятся. А всякие "дизайны архитектура" — дык концепции меняются очень быстро, и неплохая на архитектура 5-летней давности в настоящее время может стать сущим кошмаром для разработчика.
а я бы еще почитал фундаментальные труды Страуструпа и банды четырех — паттерны это то что нужно начинающему архитектору, даже больше чем графы со строками, верьте мне
SD>Юзабилити тоже тема, но тут все еще более динамично. Я бы сказал, вопрос моды. Одно время модно было так, другое — эдак. То Microsoft одну тему продвинет, то другую. Вот, недавно в HTML-like интерфейсы ударились.
ага, это уже уход в конкретную специализацию — путь тернистый и всегда есть шанс не достичь там высот и грубо говоря поставить не на ту лошадь. Тут или сердце подскажет или без сердца лучше что-то стандартное поначалу помучать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Limonadni Joe, Вы писали:
LJ>Собираюсь приступить к поиску работы программиста. Дело отнюдь не горит, так что возможно до-обучение до нужной специализации. Как раз в выборе этой специализации и состоит мой вопрос.
LJ>Немного о себе: 18 лет, МИФИ, 2-ой курс. Вот области, не связанные с тех. реализацией, к которым я проявляю симпатию: LJ>1) Дизайн архитектуры
рано ышшо. Вряд ли ты даже близко понимаешь что это.
LJ>2) Написание алгоритмов (интерес к строкам и графам)
малоприменимо к реальной жизни. Лучше про паттерны программирования прочитай.
LJ>3) Юзабилити (чувствую, что внутри умирает талант )
заблуждение Покажи как примерчик как ты его понимаешь
LJ>Как мне следует поступить со всем этим добром? Объединить всё в одном или прокачивать что-то отдельное, а про остальное забыть? Как искать работу при таком раскладе? Что пользуется спросом у работодателей?
Ничего из указанного под "отдельное" не подходит. Хорошо бы во всем шарить. Кучу областей ты просто пропустил. Искать работу — любую, лишь бы за программинг платили. У работодателей спросом пользуется опыт в непосредственной области, затем опыт в смежных областях, смышленность тоже катит, но сначала — опыт. А по технологиям — все нужно — c/c++/gcc/dotnet/java/com/corba/delphi/win/linux/bsd и так далее. Работы на всех хватит
Вообще тут правильно сказали — сделай законченный продукт. От себя добавлю — чтоб тебе самому хотелось им пользоваться, и пару друзей на него подсади.
Да ушш, несколько странный вопрос. Нельзя не согласиться со всеми высказавшимися — надо бы работать начать, а там видно будет, что твое, а что не твое.
А время терпит — научусь и пойду программировать, мне кажется заблуждением и очень сильным, ибо не вся теория применима и (закидайте помидорами) не всегда нужна. А то сильно раздражают ненужные обобщения и абстракции от либо самоучек либо сильно продвинутых девелоперов...
Также не представляю кто тебя возьмет архитектором, экспертом итп без реального опыта коммерческой разработки.
LJ>>>1) Дизайн архитектуры
aik>>рано ышшо. Вряд ли ты даже близко понимаешь что это.
Хотелось бы услышать разъяснений. Почему рано? Разве это не та область знаний, в которой, чем раньше начнёшь рабираться, тем лучше? Неужели, если я начну изучать эту область знаний уже после накопления большого опыта разработки проектов я смогу изучить её быстрее или лучше?
M>Знали б люди, что это такое и как за это занятие по голове дают, то не стали б в архитекторы рваться.
Под выражением "дают по голове" вы имеете в виду большую ответственность за результаты своего труда?
BB>Да ушш, несколько странный вопрос. Нельзя не согласиться со всеми высказавшимися — надо бы работать начать, а там видно будет, что твое, а что не твое. BB>А время терпит — научусь и пойду программировать, мне кажется заблуждением и очень сильным, ибо не вся теория применима и (закидайте помидорами) не всегда нужна. А то сильно раздражают ненужные обобщения и абстракции от либо самоучек либо сильно продвинутых девелоперов... BB>Также не представляю кто тебя возьмет архитектором, экспертом итп без реального опыта коммерческой разработки.
Спасибо. Надеюсь я правильно всё понял: главное — практика. Здесь два пути: работа на кого-то и работа для себя. Т.к. на работу устроится пока проблематично, лучше заниматься собственными проектами. А параллельно можно искать работу стажёром.
Вот области, не связанные с тех. реализацией, к которым я проявляю симпатию:
LJ>1) Дизайн архитектуры
IMHO, архитектура — это то, чем заниматься не имея практического опыта программирования, смысла нет. Хорошие архитекторы вырастают из опытных программистов-практиков и никак иначе.
LJ>Как мне следует поступить со всем этим добром?
Самое лучшее, что вы можете сделать, это получить практический опыт работы в команде девелоперов в серьезной компании над серьезным проектом. Такой опыт "откроет вам глаза", и через год-другой вы уже сможете осознанно сделать выбор — в какую степь углубиться далее.
LJ>Спасибо. Надеюсь я правильно всё понял: главное — практика. Здесь два пути: работа на кого-то и работа для себя. Т.к. на работу устроится пока проблематично, лучше заниматься собственными проектами. А параллельно можно искать работу стажёром.
Да уж Джо, практика необходима. Просто то, что ты делаешь для себя и коммерческая разработка это 2 большие разницы.
Я уже написала, что не зная и не прочувствовав специфику коммерческих проектов стать архитектором итп ты не сможешь хотя бы в силу того, что не всегда хорошо "идеальное" решение, а нужно работающее решение
А академический опыт конечно полезен, но не совсем то что нужно.
Тут даже были обсуждения — указывать ли то что ты делал для себя или в интституте — универе в резюме и, кажется все сошлись на том что не надо.
В любом случае — реальный опыт позволит тебе правильно расставить акценты и понять чего ты хочешь. В любом случае желаю тебе найти себя.
В кратце моя идея — что решает не знание конретных технологий, а умение в них быстро вникать. Этого можно достигнуть только имея солидный фундамент, любознательность и упорство. Одним словом: рюхай то, что нравится и не забывай при этом математику. хотя судя по твоему посту, интерес к ней есть, значит все ок И не гонись пока за деньгами. На первых порах кажется, что отставание от одногруппников в з\п на 500 баксов это ужасно. Потом, когда уже они от тебя отстают, понимаешь, что _ремесленное_ знание какого-нибудь COM не заменит соображалки и умения _эффективно_ учиться.
нравится юзабили — пиши что-нить с гуи. нравятся графы — напиши свою библиотеку алгоритмов на графах или что-то такое. конечно использовать ты ее в реальной жизни не будешь, но это бесценный опыт. правда дизайн — это не та вещь, которой можно научиться по книжкам, нужно поработать в большом проекте.
ключевое слово — интерес, люди делают то, что им интересно, намного лучше и эффективнее того, что им не нравится, какие бы деньги им за это ни платили.
все вышенаписаное — имхо с моей колокольни, которая не намного выше твоей
а да... учи с++. выучишь с++ — выучишь потом все что угодно
Здравствуйте, Limonadni Joe, Вы писали:
LJ>>>>1) Дизайн архитектуры
aik>>>рано ышшо. Вряд ли ты даже близко понимаешь что это.
LJ>Хотелось бы услышать разъяснений. Почему рано? Разве это не та область знаний, в которой, чем раньше начнёшь рабираться, тем лучше? Неужели, если я начну изучать эту область знаний уже после накопления большого опыта разработки проектов я смогу изучить её быстрее или лучше?
Дело в том, что эта область требует скорее мудрости, чем знания...
Архитектура системы — в больше мере искусство компромисов, чем что-либо еще.
Здравствуйте, Limonadni Joe, Вы писали:
LJ>>>>1) Дизайн архитектуры aik>>>рано ышшо. Вряд ли ты даже близко понимаешь что это. LJ>Хотелось бы услышать разъяснений. Почему рано? Разве это не та область знаний, в которой, чем раньше начнёшь рабираться, тем лучше? Неужели, если я начну изучать эту область знаний уже после накопления большого опыта разработки проектов я смогу изучить её быстрее или лучше?
Изучать можно когда угодно и параллельно с чем угодно, но без хорошего девелоперского опыта это пустая трата времени. Сейчас на этом циклиться не надо.
Здравствуйте, Limonadni Joe, Вы писали:
LJ>>>3) Юзабилити (чувствую, что внутри умирает талант ) aik>>заблуждение Покажи как примерчик как ты его понимаешь LJ>Заблуждение на счёт чего?
Что ты его понимаешь как надо, что "умирает талант". Вполне возможно, что в тебе сидит Пикассо
Здравствуйте, Limonadni Joe, Вы писали:
LJ>>>>1) Дизайн архитектуры aik>>>рано ышшо. Вряд ли ты даже близко понимаешь что это.
LJ>Хотелось бы услышать разъяснений. Почему рано?
Нужен опыт, иначе программеры с большим багажом тебя и слушать не будут. То, что должно работать в теории, могло бы работать, если б тебе удалось это доказать. Но практик с 10 годами разработки может погубить любую новую идею. Проще говоря я думаю, что только к 35 годам я смогу добиться от людей нормальной реакции на мои идеи, и не из-за того, что они будут лучше, а потому что я буду выглядеть старше/опытнее.
LJ>Разве это не та область знаний, в которой, чем раньше начнёшь рабираться, тем лучше?
Лучше конечно. Разбирайся, пытайся построить идеальное решение, не гонясь за практической ценностью, тогда то ты и сможешь дорасти до архитектора — мастера структуры, но не содержания.
LJ>Неужели, если я начну изучать эту область знаний уже после накопления большого опыта разработки проектов я смогу изучить её быстрее или лучше?
Тут всё просто — либо ты архитектор, либо нет. И это не область знаний, а искусство, по-крайне мере на уровне разработки нового программного обеспечения, всё остальное — software engineering, тупое использование уже готовых решений, framework-ов и методологий. Сам решай, что ты хочешь — изобретать новые способы написания ПО, или использовать уже имеющиеся для написания ПО.
M>>Знали б люди, что это такое и как за это занятие по голове дают, то не стали б в архитекторы рваться.
LJ>Под выражением "дают по голове" вы имеете в виду большую ответственность за результаты своего труда?
Нет у архитекторов никакой ответсвенности, поскольку нет "результата труда". Архитекторы не пишут код, а если и пишут, то практической ценности он не представляет до тех пор, пока программеры не сядут и не начнут его использовать.
Мысли вслух...
Архитекторы бывают разные.
Есть infrastructure architects — это те, кто проектирует, как будет работать готовая система, то бишь сервера, сети, репликации, кластеры и пр. То есть, они создают среду для нормального функционирования ПО.
Есть application architects — это как раз и имеют в виду те, кто говорит об "архитекторах", "technical architects" или "software architects". Это люди создающие структуру программы, чтобы она (программа) легко создавалась, изменялась, поддерживалась, тестировалась и пр. Такие люди должны держаться подальше от практики — срезание острых углов (слышал про программеров с напильниками? ) иногда плохо сказывается на здоровье системы в целом.
Есть business architects — те, кто занимается структурой бизнеса, то есть как он устроен и как его улучшить. Бизнес-аналитики описывают состояние бизнес-процессов "as is", бизнес-архитекторы — идельное состояние бизнес-процессов с практической точки зрения (обычно используются финансовые метрики). Результат всё равно оказывается слишком "теоретическим", именуется blue print и откладывается на полку. Только сильное и заинтересованное руководство может заставить всех сделать следующий шаг — нарисовать roadmap, то есть как перейти из текущего состояния к идеальному. Business architecture не имеет к ПО никакого отношения.
Ну и наконец, enterprise architects — те, кто связывают работу всех остальных архитекторов вместе, чтобы получить Систему. Основная обязанность — продать всем и вся идею системы, увязать вместе бизнес и IT, проследить, чтобы система гармонично изменялась с изменением бизнеса. Обычно выходец из программистов с 10 годами опыта разработки и проектирования ПО, опытом руководства и опытом продаж идей руководству. 95% времени эти люди тратят на общение с другими людьми, чтобы те не сбились с Пути и что более важно — понимали куда они идут. Тяжкий это труд, скажу я вам.
Так что для начала реши, каким архитектором ты хочешь быть, а потом можно поговорить, что тебе для этого нужно и если у тебя необходимые качества. А математика... ну не нужна она архитекторам. Изучени чистой математики вправит тебе мозги, чтоб мыслил как архитектор. А содержание... как я уже говорил, для архитектора главное Структура