Aprendendo o desenvolvimento de sistemas embarcados sem supervisão [fechado]

10

Eu me formei este ano e consegui meu primeiro emprego em programação C, administração Linux e desenvolvimento de sistemas embarcados. Sinto-me bastante satisfeito com o meu trabalho, mas tenho medo de não me tornar um programador de sucesso neste campo. Sou um desenvolvedor solitário no meu trabalho agora, com meus colegas de equipe sendo especialistas em hardware, não há ninguém para me orientar ou me ensinar sobre os modos de programação incorporada, tenho que estudar sozinho.

Então, aqui estão as minhas questões. É possível tornar-se um bom desenvolvedor de sistemas embarcados a partir de uma posição básica, sem a supervisão de programadores seniores? Como eu poderia me tornar um (talvez com a ajuda de fóruns, canais de IRC, bons livros didáticos)? Quanto tempo levaria?

ATUALIZAÇÃO: Até agora, recebi algumas respostas úteis, mas percebi que precisava de algumas dicas específicas sobre o assunto.

Então, aqui estão minhas perguntas particulares:

  1. Quais são alguns bons livros didáticos que podemos usar para aprender o desenvolvimento incorporado?
  2. Quais comunidades on-line especializadas podem ser úteis para um desenvolvedor embarcado aspirante (sem contar itens gerais como Stack Overflow, Reddit e assim por diante)?
  3. Quais são os blogs mais interessantes dedicados ao desenvolvimento incorporado?
Olga
fonte

Respostas:

3

Você está certo de que estar no seu caso tornará as coisas um pouco mais difíceis. No entanto, existem muitas soluções para resolver seu problema.

  1. Primeiro, tente participar de comunidades como esta, mas talvez mais especializadas em seu campo. Ao participar, você aumentará seu conhecimento e, mais importante, conhecerá outras pessoas.

  2. Tente participar de campos de código ou qualquer iniciativa em que você encontre outros desenvolvedores como você em realidade. É mais fácil compartilhar conhecimento quando você tem a pessoa à sua frente.

  3. Peça ao seu chefe para reservar pelo menos 10 dias de treinamento por ano . Não há necessidade de explicar as vantagens aqui, se ele recusar, ele é estúpido.

  4. Tente ir de 1 a 2 conferências ou feiras relacionadas ao seu negócio.

  5. Tente ler um livro técnico a cada dois meses . Se você pode ler mais, não hesite.

  6. Consiga um mentor . Não é a coisa mais fácil de conseguir, é claro.

  7. Reserve algum tempo na semana para experimentar e fazer pesquisa e desenvolvimento , experimentando novas tecnologias do que você lê em seus livros, comunidade, feiras, treinamentos, etc.

  8. Hoje você é o único desenvolvedor, mas, graças ao seu trabalho duro, a empresa em que você trabalha crescerá e provavelmente precisará contratar mais pessoas do seu tipo .


fonte
3

Sou um desenvolvedor solitário no meu trabalho agora, com meus colegas de equipe sendo especialistas em hardware

Não hesite em usá-los como um recurso. Uma das coisas mais difíceis para programadores incorporados que não são EE é se sentir confortável com o hardware. É muito útil poder ler um esquema (mesmo que você não possa projetar um) e entender como usar um escopo para observar os sinais que saem do microcontrolador.

tcrosley
fonte
0

Já faz um tempo desde que você fez essa pergunta, por isso espero que esteja bem no seu caminho. Aqui estão algumas sugestões adicionais que, espero, ajudem.

Troca de pilha e blogs

Surpreendentemente, o Stack Exchange não possui seu próprio site de perguntas e respostas para sistemas embarcados. Um deles foi proposto há cerca de dois anos, mas ainda está em fase de compromisso, definhando sem número suficiente de pessoas que se inscreveram para apoiá-lo. Se você quiser fazer a diferença, clique aqui:

http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development

Leia a proposta e, se concordar, clique em confirmar para se envolver.

O Linked In também possui um grupo de Sistemas Incorporados, além de alguns grupos intimamente relacionados que podem ser de interesse:

Sistemas Embarcados

Firmware

BRAÇO

Recursos da Web

O EETimes possui recursos sobre sistemas embarcados.

http://www.eetimes.com/design/embedded

Dr. Dobbs é um amigo de longa data para programadores de todos os tipos e tem ótimas coisas incorporadas.

http://www.drdobbs.com/embedded-systems

A comunidade do Arduino é grande, entusiasta e removeu muitas barreiras à entrada para programação incorporada, incluindo preço e treinamento prévio.

http://www.arduino.cc/

Se você é um desenvolvedor de software feminino ou um desenvolvedor masculino não esclarecido, que trabalha com sistemas embarcados é principalmente um clube "Bons-velhos-meninos", confira este site. A autora é graduada no MIT, já havia se destacado, fora da caixa (ou às vezes na caixa, como o carregador para iPhone da Altoids), e parece ser muito produtiva em seus blogs de criação, escrita e vídeo.

http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded# !

http://www.adafruit.com/tutorials

Muitos fornecedores terão extensas coleções de folhas de dados, notas de aplicação, white papers e cópias gratuitas ou de avaliação das ferramentas de desenvolvimento. As principais empresas nesse espaço incluem ARM, Atmel, Freescale, intel, Microchip Technologies, NXP (anteriormente Phillips), TI e muitas outras.

Livros

Não tenho certeza se você pode encontrá-lo, mas acho que tenho um livro que conta muito da história de sistemas embarcados em termos de ferramentas (montadores, linkers, carregadores) e coisas fundamentais que acontecem em microprocessadores (interrupções, E / S, simples). gerenciadores de tarefas e planejadores, estruturas simples de arquivos). Programação de sistemas para computadores pequenos, Daniel Marcellus.

Uma referência mais moderna é o Embedded Linux Primer. Os primeiros capítulos discutem a lógica por trás da execução do Linux em sistemas embarcados e algumas das mecânicas envolvidas. O Capítulo 3 apresenta uma boa discussão sobre processadores + chipsets de suporte e opções de SOC (System On a Chip) que podem ser consideradas para uso nos projetos atuais. Na verdade, o alvo está se movendo, portanto, fornece um ponto de partida contemporâneo da publicação do livro. O Capítulo 3 é ótimo, mas deve ser complementado com algumas pesquisas adicionais na Web e em discussão com fornecedores. Normalmente, o engenheiro elétrico e os principais engenheiros de software do projeto escolhem o processador; portanto, se você estiver em uma empresa e aprendendo sistemas embarcados, faça um mergulho profundo no hardware que escolher.

Os capítulos posteriores incluem descrições extensas sobre muitos aspectos práticos da segmentação do Linux para o hardware, mas a parceria com o fornecedor e o uso de um design de referência bastante padrão podem reduzir significativamente o esforço.

DesenvolvedorDon
fonte
0

Depende principalmente de você. Se você estiver disposto a aprender e saber como reunir informações suficientes sobre o assunto, poderá aprender a si mesmo. Mas nem todas as pessoas são igualmente bem-sucedidas ao fazer isso:

Comecei em um ambiente semelhante e, se vejo onde estou agora há cinco anos (formado em engenharia eletrônica, praticamente sem experiência em programação), acho incrível o que o cérebro humano é capaz. Quando comecei, nunca tinha ouvido falar em padrões de design, TDD, ... e nunca tinha visto o código de um programa real. Agora eu conheço essas coisas muito bem e sei como usá-las. A única coisa que faço é pesquisar na rede, ler o código de outras pessoas e alguns livros (que novamente achei na rede) e, o mais importante, escrever toneladas de código, depurar, aprender com meus erros. Aprender com um erro é uma maneira muito melhor de aprender algo, em vez de apenas ler uma amostra e replicar o comportamento. É muito estranho, mas eu só falei na vida real com o que eu chamaria de bom programador algumas vezes.

O único outro programador aqui é o que você chamaria de sênior (porque ele trabalha há mais de 15 anos). Ele trabalha de uma maneira completamente diferente da minha. E ele ainda está escrevendo uma forma aleijada de C com classes, nunca usa STL, não tem idéia do que é um padrão de design, etc. levá-lo a adotar pelo menos alguns dos meus métodos ..)

stijn
fonte
-1 Para um possível significado, mas sem pistas "Se você é inteligente o suficiente ...", abrindo. Por favor, nunca questionemos a inteligência de ninguém, principalmente se não houver evidências aparentes. Eu não acho que seu objetivo era ser hostil, mas para Olga, pode ter parecido assim. Ela parece ter postado essa pergunta e não ter feito mais nada no Stack Exchange.
DeveloperDon
@DeveloperDon meu objetivo era realmente não ser hostil, mas você está certo, quando li a frase agora parece que estou sentado em uma torre sendo superior. Uma coisa vergonhosa, então eu a removi.
stijn