Nauka programowania systemów wbudowanych bez nadzoru [zamknięte]

10

W tym roku ukończyłem studia i po raz pierwszy zająłem się programowaniem C, administracją Linuksem i rozwojem systemów wbudowanych. Czuję się całkiem zadowolony z mojej pracy, ale obawiam się, że nie zostanę odnoszącym sukcesy programistą w tej dziedzinie. Jestem teraz samotnym programistą w pracy, a moi koledzy z zespołu są ekspertami w dziedzinie sprzętu, nie ma nikogo, kto by mnie poprowadził lub nauczył mnie programowania wbudowanego, muszę uczyć się sam.

Oto moje pytania. Czy można zostać dobrym programistą systemów wbudowanych, zaczynając od stanowiska podstawowego bez żadnego nadzoru ze strony starszych programistów? Jak mogę zostać jednym z nich (być może z pomocą forów, kanałów IRC, dobrych podręczników)? Ile to zajmie?

AKTUALIZACJA: Jak dotąd otrzymałem garść pomocnych odpowiedzi, ale zdałem sobie sprawę, że potrzebuję konkretnych wskazówek na ten temat.

Oto moje szczególne pytania:

  1. Z jakich dobrych podręczników można nauczyć się programowania wbudowanego?
  2. Jakie wyspecjalizowane społeczności online mogą być pomocne dla początkującego programisty wbudowanego (nie licząc ogólnych rzeczy, takich jak Stack Overflow, Reddit itp.)?
  3. Jakie są najciekawsze blogi poświęcone programowaniu wbudowanemu?
Olga
źródło

Odpowiedzi:

3

Masz rację, że bycie w twoim przypadku sprawi, że będzie trochę trudniej. Istnieje jednak wiele rozwiązań rozwiązania problemu.

  1. Najpierw spróbuj uczestniczyć w takich społecznościach , ale być może bardziej wyspecjalizowanych w swojej dziedzinie. Uczestnicząc, poszerzysz swoją wiedzę, a co ważniejsze, poznasz inne osoby.

  2. Spróbuj wziąć udział w obozach programistycznych lub w jakiejkolwiek inicjatywie, w której poznasz innych programistów takich jak ty. Łatwiej jest dzielić się wiedzą, gdy masz osobę przed sobą.

  3. Poproś szefa, aby zarezerwował ci co najmniej 10 dni szkolenia rocznie . Nie trzeba tutaj wyjaśniać zalet, jeśli odmówi, jest głupi.

  4. Spróbuj przejść na 1–2 konferencje lub targi związane z Twoją firmą.

  5. Spróbuj czytać książkę techniczną co dwa miesiące . Jeśli możesz przeczytać więcej, nie wahaj się.

  6. Znajdź mentora . Oczywiście nie jest to najłatwiejsze do osiągnięcia.

  7. Zarezerwuj tydzień w celu eksperymentowania i prowadzenia badań i rozwoju , próbując nowych technologii rzeczy, które czytasz w swoich książkach, społeczności, targach, szkoleniach itp. ... Poświęcenie czasu na ćwiczenie tego, czego się nauczyłeś, jest BARDZO ważne.

  8. Dziś jesteś jedynym programistą, ale dzięki ciężkiej pracy firma, w której jesteś, będzie się rozwijać i prawdopodobnie będzie musiała zatrudnić więcej osób w twoim rodzaju .


źródło
3

Jestem teraz samotnym programistą, a moi koledzy z zespołu są ekspertami od sprzętu

Nie wahaj się użyć ich jako zasobu. Jedną z najtrudniejszych rzeczy dla programistów osadzonych, którzy nie są EE, jest wygodne korzystanie ze sprzętu. Bardzo przydatna jest umiejętność czytania schematu (nawet jeśli nie można go zaprojektować) i zrozumienia, jak używać lunety do sprawdzania sygnałów wychodzących z mikrokontrolera.

tcrosley
źródło
0

Minęło trochę czasu, odkąd zadałeś to pytanie, więc mam nadzieję, że jesteś na dobrej drodze. Oto kilka dodatkowych sugestii, które mam nadzieję pomogą.

Stos wymiany i blogi

O dziwo, Stack Exchange nie ma własnej strony z pytaniami i odpowiedziami dotyczącymi systemów wbudowanych. Jeden został zaproponowany około dwa lata temu, ale wciąż znajduje się w fazie zaangażowania, marnieje bez wystarczającej liczby osób, które poprą go. Jeśli chcesz coś zmienić, przejdź tutaj:

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

Przeczytaj propozycję, a jeśli się zgadzasz, kliknij przycisk zatwierdzenia, aby się zaangażować.

Linked In ma również grupę Embedded Systems oraz kilka blisko powiązanych grup, które mogą być interesujące:

Systemy wbudowane

Oprogramowanie układowe

RAMIĘ

Zasoby internetowe

EETimes ma funkcje dotyczące systemów wbudowanych.

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

Dr Dobbs jest wieloletnim przyjacielem programistów wszystkich typów i ma świetne rzeczy na temat osadzania.

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

Społeczność Arduino jest duża, entuzjastyczna i usunęła wiele barier wejścia na program wbudowany, w tym cenę i wcześniejsze szkolenie.

http://www.arduino.cc/

Jeśli jesteś programistką lub nieoświeconym programistą, który zajmuje się głównie systemami „Good-Old-Boys”, sprawdź tę stronę. Autorka jest absolwentką MIT, robiła nerwowe, od razu po wyjęciu z pudełka (lub czasem w pudełku, jak na przykład ładowarka iPhone do Altoids-box) i wydaje się bardzo płodna w projektowaniu, pisaniu i blogowaniu wideo.

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

http://www.adafruit.com/tutorials

Wielu dostawców będzie miało obszerne zbiory kart danych, notatek aplikacyjnych, oficjalnych dokumentów oraz bezpłatnych lub ewaluacyjnych kopii narzędzi programistycznych. Najważniejsze firmy w tej przestrzeni to ARM, Atmel, Freescale, intel, Microchip Technologies, NXP (wcześniej Phillips), TI i wiele innych.

Książki

Nie jestem pewien, czy możesz go znaleźć, ale mam książkę, która, jak sądzę, opowiada wiele historii na temat systemów wbudowanych pod względem narzędzi (asemblerów, łączników, ładowarek) i podstawowych rzeczy, które zdarzają się w mikroprocesorach (zakłócenia, operacje we / wy, proste menedżery zadań i harmonogramy, proste struktury plików). Programowanie systemów dla małych komputerów, Daniel Marcellus.

Bardziej nowoczesnym odniesieniem jest Embedded Linux Primer. Wczesne rozdziały omawiają uzasadnienie działania Linuksa na systemach wbudowanych i niektóre mechanizmy. Rozdział 3 zawiera przyjemną dyskusję na temat procesorów + chipsetów pomocniczych i opcji SOC (System On a Chip), które można rozważyć do wykorzystania w obecnych projektach. W rzeczywistości cel się porusza, więc stanowi punkt wyjścia współczesny wraz z publikacją książki. Rozdział 3 jest świetny, ale należy go uzupełnić o dalsze badania w sieci i dyskusję z dostawcami. Zazwyczaj inżynier elektryk i wiodący inżynier oprogramowania w projekcie wybierają procesor, więc jeśli jesteś w firmie i uczysz się systemów wbudowanych, wykonaj głębokie zanurzenie na wybranym sprzęcie.

Późniejsze rozdziały zawierają obszerne opisy wielu praktycznych aspektów ukierunkowania Linuksa na sprzęt, ale partnerstwo z dostawcą i zastosowanie dość standardowego projektu referencyjnego może znacznie zmniejszyć wysiłek.

DeveloperDon
źródło
0

To zależy głównie od ciebie. Jeśli chcesz się uczyć i wiedzieć, jak zebrać wystarczającą ilość informacji na ten temat, możesz nauczyć się wszystkiego. Ale nie wszyscy ludzie odnoszą takie same sukcesy:

Zaczynałem w podobnym środowisku i jeśli widzę, gdzie jestem teraz, w przeciwieństwie do 5 lat temu (ukończyłem inżynier elektroniki, praktycznie bez doświadczenia programistycznego), wydaje mi się niesamowite, do czego zdolny jest ludzki mózg. Kiedy zaczynałem, nigdy nie słyszałem o wzorach projektowych, TDD ... i nigdy nie widziałem kodu prawdziwego programu. Teraz znam te rzeczy całkiem dobrze i wiem, jak ich używać. Jedyne, co robię, to przeszukiwanie sieci, czytanie kodu z innych i niektórych książek (które znowu znalazłem w sieci), a co najważniejsze, pisanie ton kodu, debugowanie, uczenie się na własnych błędach. Uczenie się na błędach jest znacznie lepszym sposobem na naukę czegoś, niż tylko czytanie próbki i powtarzanie zachowań. To bardzo dziwne, ale rozmawiałem tylko w prawdziwym życiu z tym, co nazwałbym dobrym programistą kilka razy.

Jedynym innym programistą tutaj jest to, co nazwałbyś starszym (ponieważ jest w pracy od ponad 15 lat). Pracuje w zupełnie inny sposób niż ja. I wciąż pisze okaleczoną formę C z klasami, nigdy nie używa STL, nie ma pojęcia, co to jest wzorzec projektowy itp. Itp. (Prawdopodobnie wkrótce zacznę pytanie na ten temat, mam trudności z próbą zachęć go do przyjęcia przynajmniej niektórych moich metod ..)

stijn
źródło
-1 Dla prawdopodobnie dobrego znaczenia, ale bez żadnych wskazówek otwieranie „Jeśli jesteś wystarczająco inteligentny ...”. Proszę, nigdy nie kwestionujmy niczyich danych wywiadowczych, szczególnie jeśli nie ma widocznych dowodów. Nie sądzę, żeby twoim celem było być nieprzyjazne, ale dla Olgi mogło się tak wydawać. Wygląda na to, że opublikowała to jedno pytanie, a następnie nie zrobiła nic więcej na Stack Exchange.
DeveloperDon
@DeveloperDon moim celem rzeczywiście nie było bycie nieprzyjaznym, ale masz rację, kiedy czytam zdanie, brzmi to tak, jakbym siedział na wieży, która jest nadrzędna. Wstydliwa rzecz, więc ją usunąłem.
stijn