От оборудования к программному обеспечению [закрыто]

Ищем способы официально заняться разработкой ПО, не теряя при этом текущей зарплаты (> 160 тысяч долларов). Есть несколько путей, которые я могу рассмотреть, исходя из своего опыта и интересов.

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

На самом деле я написал материал для работы, в том числе настоящие прошивки, выпущенные в полевых условиях, некоторые калибровочные материалы на заводе, некоторые внутренние инструменты. Я участвовал в нескольких обзорах кода, нескольких agile-спринтах и ​​могу ориентироваться в git. Так что это не похоже на то, что я играю гитарного героя с кодом; Я думаю, что у меня лучшие навыки кодирования, чем у других EE, для которых это просто хобби. У меня сейчас лежит книга по архитектуре, и несколько лет назад я влюбился в SICP, что и пробудило во мне интерес к функциональному программированию.

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

В настоящее время моим предпочтительным языком является Clojure, хотя при необходимости я могу делать некоторые законные вещи в Matlab, Python, C/C++ и Verilog. В основном я работаю в Windows, но при необходимости могу перемещаться в Linux довольно прилично как пользователь, а не как администратор.

Итак, я вижу следующие варианты:

  • Какая-то компания по производству инструментов/CAD/EDA – я не знаю ни одной из этих компаний в Сиэтле.
  • Некоторая математическая роль в отношении данных датчиков, навигации, спутников, систем управления и т. д. — в основном требует докторской степени, которой у меня нет.
  • Будьте в курсе текущих событий, связанных с самоуправляемыми автомобилями и т. Д. Я видел несколько ролей в разработке FPGA, поскольку они связаны с ИИ и глубоким обучением, так что это может быть моей ногой в двери.

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

Ответы (2)

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

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

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

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

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

Не вижу ни малейшей проблемы.

По сути, вы просто говорите

«Я хочу работать с программным обеспечением. Но я ненавижу облачные технологии и социальные сети. Мне нравятся инструменты / САПР / датчики».

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

Пока не проблема.

Вас встретят с распростертыми объятиями весь мир программного обеспечения, который также ненавидит облака/социальные сети/приложения.

Как было указано миллионы раз, программное обеспечение это:

  • Вы ничего не делаете, когда вы неопытны/непроверены, тогда вы делаете безумие денег, когда вы опытны/проверены. Будьте готовы сделать ноль на некоторое время.

  • Очень сложно «вломиться». Когда-то, хорошо, если вы «в деле», спрос на вас сходит с ума. Но. Очень сложно «вломиться».

  • Имейте в виду, что программирование похоже на игру на гитаре. Вы не можете научиться быть Джо Уолшем. Верно? И это почти всегда то, где вы начинаете рано. Большинство «настоящих» программистов просто «имеют это», когда им 13, 14 или около того (например, гитаристы) и набираются опыта оттуда. Отличная математика также является непременным условием. Это не игра для начинающих.

  • Огромная проблема с программным обеспечением заключается в том, что каждый может стать программистом-любителем. Итак, до смешного легко взять Unity и выбить «игру». Это сильно отличается от того, чтобы поглотить все богатство информатики, алгоритмической структуры, взаимодействий в реальном времени, параллелизма и математики программирования и иметь возможность делать с этим такие вещи, как, знаете, «управлять самолетом».

Удачи. Если это сработает, вы скоро будете получать достойную зарплату ;-)


Кстати, ваша позиция почти скромная! Все отчаянно нуждаются в программистах, которые также могут делать аппаратное/встроенное оборудование и т. д. Верно? Я имею в виду, что я не могу подключить чертову релейную плату. Ты действительно кажешься золотым. Я только что просмотрел дюжину контрактов, которые вы могли выбрать на сайте SO вакансий. Наслаждаться!!


Фактор условно-бесплатного ПО...

  1. ОТЛИЧНЫЙ , ВЫДАЮЩИЙСЯ "в" для вас, чтобы создать часть платного программного обеспечения, которое продается где-нибудь.

  2. Это сразу полностью решает две проблемы : (i) это лучшая визитная карточка. В вашем положении наниматели ХОТЯТ ВЕРИТЬ, что вы компетентный программист как таковой благодаря вашему опыту. Коммерческий продукт достигает этого, и

  3. И (ii) сама по себе работа над такой вещью ускорит работу на обычном языке, скажем, с # в порядке или (я прикусываю язык) вариантах Java. (Кстати, идея «не любить» питона, положить его в коробку и уплыть :))

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

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

  6. Вы не можете проиграть с условно-бесплатным подходом

Одна проблема с этим...

Создать такой небольшой программный продукт «в нерабочее время» — то есть сидеть в прачечной по несколько часов каждую ночь, как когда авторы пишут свою первую книгу, еще имея работу (с вашей верной женой, стиснувшей зубы и присматривающей за дети и т. д.) - довольно сложно, это "игра для молодых парней". Легче сделать это, когда тебе около 20, чем 40, так что приготовься к вызову. (Наоборот, конечно, ваш обширный опыт в области инженерии чрезвычайно в вашу пользу.)

Удачи

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