Есть ли какие-нибудь рабочие места в области компьютерной инженерии / науки, которые не требуют программирования ВЕСЬ день [закрыто]

Недавно я получил степень бакалавра в области вычислительной техники и искал работу. У меня было 4 стажировки в прошлом; они были как в государственном, так и в частном секторе, как в маленьком, так и в большом. Тем не менее, я обнаружил, что общим фактором является то, что они сажают вас перед компьютером и ожидают, что вы будете кодировать по существу 8 часов подряд. (Правка: когда я говорю «программа», я имею в виду программирование и все, что оно на самом деле влечет за собой. Я не сидел и не писал весь день элегантный, функциональный код. и т.д.)

Теперь я не полный дурак. Когда я зарегистрировался, я знал, что компьютерная инженерия будет включать в себя большой объем программирования, и что я потрачу значительную часть своего времени, непосредственно взаимодействуя с компьютерами. Однако на самом деле сесть и подумать о следующих ~ 40 годах моей жизни было бы ничем, но это заставило меня чувствовать себя немного взволнованным.

Я не ненавижу программирование; Мне на самом деле это очень нравится. Я работал над личными проектами, пока был безработным, и я чувствую мотивацию к программированию в целом. Но я не могу идти более 4 часов, не чувствуя себя полностью сожженным.

Мне интересно, есть ли работа, где я могу применить свой набор навыков, не будучи в ловушке, работая над одним делом по 8 часов каждый день. Я понимаю, что чем бы я ни занимался помимо программирования, это будет сильно связано с вычислениями/программированием (репетиторство, исследования, писательство и т. д.), и это совершенно нормально. Мне просто нужно что-то, чтобы разбить мои обязанности.

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

РЕДАКТИРОВАТЬ: я хотел уточнить, что я не тратил 8 часов на создание нового кода. Почти в каждом случае я работал над уже существующим кодом. Так что, конечно же, я потратил значительное количество времени на отладку и работу/изучение кода, написанного другими людьми. Я думаю, можно с уверенностью предположить, что, если вы не разрабатываете собственное приложение или не работаете в небольшом магазине, вы не будете сразу же создавать свой собственный совершенно новый код, и я согласен с этим. Однако мне казалось, что 90% моего дня я провел один в своем кубе, уставившись в окно IDE. Это действительно та часть, которую я чувствую, что мне нужно расстаться.

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .

Ответы (17)

Основываясь на том, что вы нам рассказали, кажется, что те рабочие места, которые предполагают, что вы будете кодировать несколько часов подряд, могут быть связаны с областью разработки программного обеспечения в CS (хотя 8 часов подряд звучит немного преувеличенно, ИМХО).

Такие работы требуют больше кода: разрабатывается проект, задачи распределяются и назначаются, а затем остается «просто» кодировать и кодировать, пока все задачи не будут выполнены. В зависимости от размера компании и практики, которую они используют на борту, это может привести к нескольким (4-6) часам "прямого кодирования"... но, по моему опыту, эффективное время кодирования может быть намного меньше.

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

При этом есть другие области CS, которые требуют меньше кода. Одним из них, например, является область Data Science .

Вообще говоря, в работах, связанных с наукой о данных, вы тратите больше времени на размышления и меньше на кодирование, поскольку эти проекты, как правило, требуют меньшего количества строк кода/шаблона, но каждая строка, как правило, более значима, чем другие виды проектов. Однако это не означает, что наука о данных — это рай для любителей CS; кодировать легко, знать, что кодировать, сложно , а в науке о данных много сложных моментов, связанных с мышлением (примечание: в настоящее время я руковожу как проектами DS, так и проектами по разработке программного обеспечения)

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

Это отличный ответ. Я бы добавил, что по мере того, как вы будете набираться опыта и расти в своей карьере, вы будете меньше писать код и решать более абстрактные проблемы и руководить.
Я работал на работах, связанных с программированием, по 12-16 часов подряд без перерыва неделями. В сцене запуска это довольно распространено. К счастью, это также связано с получением дополнительной сверхурочной зарплаты в размере двойной зарплаты :)
Для инженера-программиста привлекательная часть списка, которая занимает много времени (кроме совещаний, конечно), — это попытка разобраться в ужасном, грязном, неструктурированном коде, для специалиста по данным — это попытка разобраться в ужасных, грязных, неструктурированных данных.
Видите ли, я думаю, мне может понравиться наука о данных. Я люблю Python, который, как я знаю, имеет большую сцену разработки DS и ML. Я немного знаю TF, numpy и matplotlib, что не помешает. Я просто чувствую себя особенно неопытным в этой области, так как это такая быстро развивающаяся, развивающаяся область, и я действительно мало занимался ею в колледже, кроме вводного классического курса ИИ (шахматный ИИ, минимакс и т. д.). Кроме того, существует так много учебных пособий, которые обещают «работу в отрасли», я чувствую себя ошеломленным.
@watersnake хорошо, если вы уже знаете что-то, связанное с DS, в конце концов, это неплохая идея. Это может быть ошеломляюще, но никто не рождается знающим, поэтому, конечно, приложив некоторые усилия, вы сможете расширить свои знания в этой области, а также рассмотреть возможность поиска соответствующей работы. Я бы сказал, что стоит задуматься :)
Еще одна область, которая для некоторых должностей может потребовать на удивление мало кода, — это Embedded Development. Когда в половине случаев проблема аппаратная, а не программная, значительная часть моего времени уходит на исследование тактовых сигналов и шин данных с помощью осциллографа или логического анализатора, рассмотрение печатных плат под микроскопом (чтобы выяснить, какой чип пускает дым). out), или пытаемся выяснить, как лучше всего подключить неисправные платы (чтобы они не были полностью списаны). Написание кода — это только часть моей работы.
@watersnake Вы упомянули о своей карьере в целом, поэтому я добавлю кое-что к этому ответу и комментариям. После того, как вы овладеете одной или несколькими темами, у вас есть возможность стать наставником и учителем и, как указано в этом ответе, тратить большую часть своего времени на дизайн и архитектуру. Я начал программировать по 6+ часов в день, пробовал менеджмент там, где почти никогда не программировал, затем обратился к дизайну и лидерству (но не к «менеджменту»). Теперь я трачу только 25 % своего времени на написание кода, 25 % — на командные сессии, 25 % — на дизайн-сессии и встречи с заинтересованными сторонами и 25 % — на самостоятельный дизайн и исследования.
@DarkCygnus, отличный ответ, и приятно знать, что есть альтернатива тому, чтобы быть кодирующей обезьяной. Я оценил, сколько рабочих мест хотят, чтобы я был их обезьяной-программистом, по характеру их технических собеседований, очень и очень немногие до сих пор, когда у меня был вопрос потенциального работодателя, каковы преимущества использования Redux? или скажите, чтобы я был готов ответить на архитектурные вопросы. Нет, им просто нужна кодирующая обезьяна, эти решения уже приняты за меня кем-то выше в пищевой цепочке.
@Daniel найти хорошую и достойную работу действительно непросто. Я рад, что мой ответ помог вам :) просто помните, что весьма вероятно, что кто-то будет обезьяной хотя бы один раз в какой-то момент вашей карьеры. По мере того, как человек изучает их пути и становится более опытным, ему легче найти такую ​​​​альтернативную работу.
@DarkCygnus, опять же, отличный ответ. Я с нетерпением жду возможности прочитать больше ваших ответов на этом форуме. Мне всегда нравится следовать за более опытными инженерами, чьи слова находят отклик во мне.

Моя номинальная работа в области программного обеспечения (одна должность, которую я занимал: старший инженер-программист) требует, чтобы я тратил около 85% своего времени на сбор требований, выяснение того, какие модули необходимо обновить, общение с «бизнесом» (людьми, не занимающимися программным обеспечением). и т.д. и около 15% (если много) занимаются собственно кодированием. Из времени кодирования очень мало тратится на набор текста. Большинство пытается выяснить, что код делал раньше и как заставить его делать то, что нам нужно сейчас, с минимальным воздействием. Различные типы боссов в офисе хотят, чтобы я переложил кодирование на младших сотрудников, но я возражаю, потому что это единственная часть, которая мне «нравится». Я не получаю большого и длительного удовольствия от кодирования, но, по крайней мере, я не имею дело с id10T в бизнесе. (Вместо этого, когда я кодирую, я ругаюсь на «неоптимальных» людей, которые работали над программами до меня.)

Приложение, над которым я работаю, представляет собой систему точек продаж для КРУПНОГО розничного продавца (я бы сказал, что вероятность того, что вы ее использовали, составляет около 35%). Несколько штук СТАРЫЕ, датируемые концом 1990-х годов. Детали новые, им не больше месяца. Все это было написано и переработано людьми разной квалификации. Требования меняются, и рано или поздно все должно быть обновлено.

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

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

Не забудьте проклясть людей, которые написали эту плохо спроектированную библиотеку или программное обеспечение, от которого сильно зависит кодовая база. Вы знаете, тот, который не обновлялся с начала проекта.
Это соответствует моим переживаниям. Важным примечанием является то, что более младшим разработчикам программного обеспечения (менее 3 лет промышленного опыта) часто приходится много писать код и исправлять некоторые ошибки. Мне не приходилось заниматься дизайном более высокого уровня, требованиями и так далее. Размер бизнеса тоже многое меняет. Крупный бизнес имеет больше возможностей для специализации, малому бизнесу нужен кто-то, кто сделает все.
Из моего опыта работы в небольших компаниях и (в некоторой степени) Agile-проектах: даже джуниоры могут быть включены в коммуникационную часть работы (например, сбор требований), если компания небольшая или вы работаете над более Agile-проектом.
"конец 90-х" - это не старость. У одной фирмы, в которой я работал, был документ, который начинался так: «Часть нашего кода старше, чем некоторые из наших сотрудников».
@MartinBonner 19 или 20 лет могут быть моложе кода конца 90-х. Код начала 90-х легко может быть старше, чем у выпускников четырехгодичных колледжей.
@TafT Я предполагаю, что причина, по которой на младших должностях больше «рук на клавиатуре», заключается в том, что чем опытнее вы становитесь, тем больше вы становитесь лидером. Вы помогаете другим, участвуете в сеансах проектирования, работаете с другими командами, используя свое программное обеспечение и т. д.

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

Для инженера-программиста ваш день должен быть разбит на такие вещи, как:

  • прототипирование нового решения,
  • стендап/встреча команды
  • исследуйте новые инструменты ABC или функции XYZ, которые вы могли бы использовать,
  • члены команды проверки кода,
  • разговор с техническим менеджером и/или менеджером по продукту о новой функции,
  • раздавливание ошибок,
  • написание тестов,
  • планирование будущей работы,
  • разделение работы между несколькими членами команды,
  • наставничество стажеров или более младших членов команды,
  • получать наставничество от более старших членов команды, и
  • гораздо больше

Если этот список не похож на вас, то смена роли/карьеры пойдет вам на пользу.

Приведенный выше план превосходен.

Я могу только исходить из своего опыта. За последнее десятилетие работы веб-инженером/разработчиком программного обеспечения я обнаружил, что в среднем я занимаюсь программированием примерно 1-2 часа в день, если не больше. Обычно около 10-100 строк кода, максимум. Остаток дня уходит либо на исследование, либо на поиск наилучших подходов к решению проблем.

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

Я слышал о потогонной работе во всех областях ИТ. Я знал одного аниматора, который действительно хорошо разбирался в Maya и 3ds Max. Ему приходилось работать по 12-15 часов в день, создавая анимацию для этой компании, которую некоторые крупные компании привлекали для рисования на аутсорсинге. Ему в основном говорят сидеть за своим столом, и он не может делать перерывы на обед или делать что-либо еще, кроме как анимировать. Иногда ему приходилось приходить на работу и по выходным, особенно когда у них были сжатые сроки или им нужно было набрать слабину.

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

Лично я считаю «исследование» и «выяснение наилучших подходов к проблемам» кодированием . Если бы у меня была работа, на которой я делал бы это весь день и обходился без совещаний, координации, обучения других и тому подобного, я бы считал эту работу стопроцентной работой по программированию.
Вышеупомянутый пост прямо на деньгах.

Люди упоминали старшие/управленческие должности, но, поскольку вы только что закончили обучение, я собираюсь предложить еще один потенциальный вариант, который вы можете изучить раньше: работа в стартапе/малой компании! Я могу говорить только о своем собственном опыте в качестве младшего разработчика.

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

  • Сбор требований/исследование/планирование (самостоятельно и с клиентами и коллегами)
  • Особенности кодирования и исправления ошибок (в одиночку и с коллегами)
  • Предоставляйте клиентам демонстрации/пошаговые руководства по программному обеспечению
  • Выполнение установки клиента и устранение неполадок
  • Обновление документации

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

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

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

Сказав это, буквально любая работа, на которой вы сидите и пишете код по 8 часов в день, не является хорошей. Если вы не тратите больше времени на сбор требований, общение с заинтересованными сторонами, обдумывание проблем и т. д., чем на кодирование, вы, вероятно, делаете это неправильно. Рынок труда сейчас довольно хорош, нет причин, по которым вам нужно быть кодовой обезьяной.

Я хотел бы присудить дополнительные баллы, особенно за второй абзац.

Обратите внимание, что некоторые из описанных ролей могут не считаться строгим CE, но предыдущий опыт CE, по крайней мере, очень ценен. Иногда необходим предыдущий «чистый» опыт программиста, и вы попадаете на описанную роль после того, как поработаете над кодом как минимум несколько лет, но вы имели в виду гораздо более 10+ лет перспективы.

Список, наверное, не полный. Также часто задания объединяют более одного из списка (я видел множество предлагаемых ролей BA/DEV и BA/PM), и в этом случае ваши задачи включают задачи обеих ролей (доля может быть не 50-50).

Бизнес-аналитик (ИТ)

Это я опишу из своего опыта, поэтому мой ответ будет здесь наиболее подробным.

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

Большую часть времени BA делает одну из 3 вещей:

  • взаимодействие с бизнесом (встречи, семинары, телефонные конференции и т. д.)
  • создание документации (BRD, FSD, Backlog, руководства, сопоставление данных, макеты, дизайн графического интерфейса, ввод в документы, управляемые PM, и т. д.)
  • взаимодействие с разработчиками и другими ИТ-специалистами (объяснение содержания документов ;-))

Кроме того, эта работа может включать в себя некоторое программирование (я бы сказал, ~ 10% в среднем с проектами до 50%), управление проектами (опять же ~ 10% в среднем с до 30% для конкретного проекта), тестирование, обучение.

Аналитик тестирования

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

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

Архитектор программного обеспечения

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

  • Специфика приложения — человек, который досконально знает конкретное приложение и решает, как применить новые требования, чтобы все было легко поддерживать; они обеспечивают соблюдение стандартов для приложения (низкоуровневые), определяют такие элементы, как структура БД, технологии, которые будут использоваться в проекте и т. д.
  • В масштабах всей организации — человек, отвечающий за определение стандартов и ландшафта всех приложений. У них может быть меньше знаний о конкретных приложениях, но они должны знать, например, как все приложения зависят друг от друга, каковы точки контакта, открытые API и т. д.

Вообще говоря, первый тип системного администратора передает детали задачи программистам ;-), в то время как второй тип проверяет требования, предоставленные бизнес-аналитиками, с точки зрения ИТ-стратегии.

Специализированный SA для приложений обычно также занимается кодированием, но это кодирование ограничено наиболее сложными и интересными областями .

Руководитель проекта

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

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

Линейный менеджер (ИТ)

Как ИТ-менеджер вы несете ответственность за свою команду (но это не проектная команда, как PM). Вы будете заниматься такими вещами, как новые сотрудники, продвижение людей по службе (но также увольнение их при необходимости), эскалация и т. д. В зависимости от команды и размера компании менеджер также может частично выполнять ту же работу, что и его команда, но обычно это не так. более 50% времени. Конечно, менеджер может быть для любой из команд, так что это может быть менеджер разработчиков, менеджер BA и т. д.

+1, но я считаю, что лучшей формулировкой будет «линейный менеджер». На первый взгляд, когда вы говорите «ИТ-менеджер», я имею в виду скорее роль оператора...
Мне очень нравится этот ответ. Возможно, стоит упомянуть, что для того, чтобы стать бакалавром, скорее всего, придется вернуться в университет, по крайней мере, для получения диплома об окончании бизнес-школы.

Помимо всех уже упомянутых вариантов, есть еще:

  • Исследовать. Как в людях-которые-пишут-бумаги. Обычно вы получаете степень магистра и/или доктора философии, постдока и так далее. В основном в университетах, научно-исследовательских институтах и ​​очень крупных компаниях.

  • Обучение. В университетах, школах и т.

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

  • Техническое письмо. Спецификации, руководства пользователя, программная документация.

Также: Менеджер по тестированию. Специалист по интеграции. конструктор API. DevOps-инженер. Все они требуют гораздо более разнообразной работы, вероятно, 50% кодирования.

Это зависит от того, что вы определяете как программирование и взаимодействие с компьютерами.

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

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

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

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

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

Обратите внимание, что это можно сделать с помощью современных ПК с контроллерами; в 70-х, 80-х и 90-х годах я был программистом встраиваемых систем и писал загрузочный код для механических и автономных устройств; аппарат МРТ, аппаратура связи, подводный океанографический зонд, спутник, новая (по тем временам) аудио- и видеоаппаратура. Огромное удовольствие, и я до сих пор постоянно вижу новые устройства; дроны и роботы, и такие штуки, как автоматизация ферм и беспилотные автомобили, и я думаю, что было бы интересно поработать над этим. Это намного лучше, чем перебирать пиксели. Узнайте, что вам нужно, чтобы приблизиться к реальному оборудованию; это весело.

Трудно кодировать более 6 часов подряд за один рабочий день. ~ 4 часа - это немного меньше, чем в среднем вы ожидаете от обычного рабочего дня, но YMMV. Самое главное — это то, что вы делаете, а не то, сколько часов вы даете своей заднице шанс оставить отпечаток*.

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

Другой вариант — стать менеджером. Это на вашем пути продвижения для большинства компаний, и это в основном программирование в масштабе. В настоящее время вы управляете одним разработчиком (самим собой), менеджер управляет несколькими разработчиками. Меньше программирования в зависимости от компании, и вам придется иметь дело с вашими коллегами / младшими.

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

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

Мне нравится эта первая часть. Честно говоря, иногда я «валяюсь» несколько часов или трачу это время на фоновую обработку в уме того, как решить задачу... но в конце у меня есть ага-момент, и я выполняю задачу... может быть, это способ CS людей откладывать. Возможно, именно поэтому иногда стоит выбрать ленивого человека для выполнения работы, так как он найдет легкий/быстрый способ сделать это.
Я подозреваю, что это скорее исключение, чем норма, чтобы быть менеджером и по-прежнему тратить приличное количество времени на написание кода (больше, чем в исключительных случаях), особенно на более поздних этапах вашей (управленческой) карьеры. Некоторые могут возразить, что вам нужно делегировать такие вещи, чтобы быть хорошим или старшим менеджером.

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

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

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

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

Я не создавал новый код по 8 часов в день (если только это не был действительно хороший день). Мне действительно приходилось работать над существующим кодом/разрабатывать вместе с коллегами, но это означало просто вставать каждые 1-2 часа, чтобы задать быстрый вопрос. По сути, 99% времени я смотрел в окно IDE и задавался вопросом, почему код, который работает в онлайн-песочнице, не работает над реальной целью разработки.
@Sawyer, это звучит как работа стажера, тяжелая работа, которую я бы поручил кому-то с хорошими техническими навыками, но с небольшим опытом работы. Типа, эй, вот этот список мелких багов, до которых еще никто не додумался. Такая работа не очень веселая, но как только вы перейдете на работу на полный рабочий день и покажете, что можете справляться с более сложными задачами, ваш обычный день будет совсем не таким.

Работа в небольшом стартапе 5-15 человек.

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

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

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

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

В настоящее время я работаю в области промышленной автоматизации в компании среднего размера, поэтому работа также включает в себя множество аппаратных средств (ПЛК, роботов, двигателей, управления движением, датчиков, детекторов и некоторых эзотерических физических вещей). Существует сочетание практической работы, проектирования систем, механического проектирования и разработки программного обеспечения для автоматизации, HMI и т. д.

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

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

Лучшее в программировании должностей то, что вы, как правило, оцениваете свою продуктивность — так что выясните, как максимизировать ее, а не как просидеть 8 часов перед компьютером.

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

  • Системное администрирование — вам часто придется писать сценарии для автоматизации вашей работы.
  • Обеспечение качества программного обеспечения. Написание тестов — это форма программирования. В какой-то организации вы можете работать в тесном контакте с программистами над устранением обнаруженных вами проблем; другие организации имеют брандмауэр между этими отделами.
  • Техническая поддержка — для определения того, вызвана ли проблема клиента ошибками в программном обеспечении, может потребоваться чтение кода (по крайней мере, я нашел это полезным, когда работал инженером службы поддержки), и вы можете работать с программистами над их устранением.

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

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

Да это так.

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

ну есть консультация

Если это так, то есть консалтинг.

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

Если вы хотите больше кодировать, у большинства крупных консалтинговых компаний теперь есть техническое подразделение. Очевидно, что это Accenture, но у McKinsey также есть подразделение технического консалтинга.

Не попадайтесь в ловушку «набор навыков кодирования означает написание кода».

Кроме того, не попадайтесь в ловушку «набор навыков кодирования означает написание кода». Кажется, черт возьми, здесь все отметили, строго говоря, кодирование никогда не бывает по 8 часов в день. Есть разъяснения, исследования, рассмотрение крайних случаев и определение оптимальных решений, помимо более основанного на CS «написания кода» и «отладки».

Вы можете подумать, что кодирование — это «кодирование». Честно говоря, это не так. «Кодирование» — это просто использование ваших интеллектуальных способностей определенным образом , но этот способ также может быть использован для решения других проблем . Тот факт, что вы обучены разъяснять, задавать вопросы, исследовать и находить оптимальные решения, является благом для любого другого предприятия и отрасли. Если вы помогаете обувной компании определить оптимальную планировку фабрики, или мебельной фирме определить, на какой рынок расширяться, или стоит ли инвестировать в определенную технологическую фирму , вы все равно делаете все вышеперечисленное (кроме от написания кода). Это все еще, вероятно, 5 или около того часов вашего дня!

О, другие варианты

ОЙ. И если вам интересно, венчурному капиталу нужны люди с такими навыками. Так же как и частный капитал, и трейдинг. Кроме того, управление лесным хозяйством, аналитические центры по глобальному потеплению и управление больницами.

в заключение

Наконец, вам следует серьезно подумать о том, чтобы отказаться от ИТ, если вы чувствуете, что вам не нравится работать по 8 часов в одиночку весь день. Есть серьезные исследования, показывающие, что человек находит работу. Таким образом, в продажах вы, как правило, найдете людей, которые полны энтузиазма и любят работать с людьми (и соперничать). В ИТ вы найдете обратное — не склонны к риску, застенчивы, не любите общаться с людьми, предпочитаете работать в одиночку.

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

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

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

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