Как перейти от разработки встроенного программного обеспечения к веб-разработке? - PullRequest
5 голосов
/ 04 апреля 2009

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

Пожалуйста, объясните мне, какие факторы мне следует учитывать, чтобы решить, какую технологию (MSFT / Java связанная / LAMP) мне выбрать. Если возможно, также предоставьте предложения для проектов, которые могут иметь какое-то применение в реальной жизни, и сколько времени я должен выделить на это (так как у меня много незапланированного времени в эти дни :)).

Спасибо.

Ответы [ 5 ]

4 голосов
/ 04 апреля 2009

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

Еще лучше, книга Linux Driver Development доступна бесплатно онлайн.

2 голосов
/ 04 апреля 2009

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

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

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

1 голос
/ 06 апреля 2009

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

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

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

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

1 голос
/ 04 апреля 2009

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

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

С начальной точки зрения вы можете заглянуть в винный магазин PHP / MySQL, который находится в этой книге:

Приложения веб-баз данных с PHP и MySQL

Это довольно пошаговый (если более старый) подход к изучению того, ЧТО делает веб-программа, и подход к ее выполнению. Не беспокойтесь об AJAX и других вещах в Web 2.0, пока не разберетесь с основами; это будет сбивать с толку, по моему мнению.

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

http://confluence.atlassian.com/display/DEVNET/

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

Как правило, веб-программирование, основанное на языках кухонной утвари (PHP, Java, C #), кажется, дает силу при решении проблем, поэтому в идеале вы могли бы найти способ использовать приобретенные навыки с языком, основанным на производительности , а не навороты. Однако в Java и C # гораздо больше позиций, чем в Python, поэтому тщательно отбирайте яд (несчастье).

PHP неплох, если вы хотите попасть в сферу стартапов / средне-низкого уровня, в то время как Java / C # будет платить лучше, но обстоятельства, как правило, сильно различаются (каковы корпоративные / коммерческие среды). *

Вы можете взглянуть на получение сертификата в Java или C # (сертификат PHP - шутка). Они не получат вас на работу, но, поскольку вы уже обладаете знаниями, но не в той области, которую хотите улучшить, сертифицированные курсы помогут вам перенести ваш набор инструментов и терминологию, а также объяснить цель. Некоторые работодатели тоже заботятся.

Сертификация Java (школа Sun)

C # Сертификация

Для чего-то забавного и похожего на Python / Ruby, подумайте о приобретении Groovy, интерпретируемого языка на основе Java.

http://groovy.codehaus.org/

Это хороший список ресурсов, если вы хотите войти в Java:

Основные ресурсы Java

0 голосов
/ 04 апреля 2009

Хороший следующий шаг - пойти по пути разработчика для iPhone, поскольку у вас, скорее всего, есть опыт работы с любопытствами клиентов (утечки памяти, ограниченное использование процессора и т. Д.). IPhone / iPod Touch также выигрывает от наличия довольно мощного браузера на основе веб-набора, который может работать с большинством AJAX, которые вы можете написать, и может взаимодействовать с компонентом на стороне сервера.

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

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

(о, а дешевые захватывающие игры могут принести приличную сумму денег из длинного хвоста, хотя кто знает, как долго это продлится, если серьезные игроки, такие как EA, запускают на iPhone серьезные игры)

...