Jak zostać programistą systemów embedded / i lub c++

Jak zostać programistą systemów embedded / i lub c++

Wątek przeniesiony 2017-04-24 09:37 z C/C++ przez kq.

XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

Jestem programistą PHP/MySQL z 7 letnim doświadczeniem. Swoją naukę programowania rozpoczynałem od Pascala, potem pisałem trochę w C++. Nigdy jednak w tych językach nie pisałem zawodowo. Wiem jednak "o co chodzi" ze wskaźnikami i znam bardzo dobrze pojęcie typu danych co nie jest tak popularne wśród programistów PHP ;)

Umiem programować obiektowo, znam kilka frameworków PHP w tym najlepiej Laravela. Ze znajomością angielskiego jest u mnie dość słabo. Czytając rozumiem 80%, potrafię robić commity po angielsku zrozumiałe dla większości ludzi ale z rozmową mam duże problemy.

Pytanie czy mam szansę na zmianę pracy jako programista systemów embed? Obecnie mam jakieś 4k na rękę UoP. Mógłbym gdzieś teoretycznie iść na młodszego programistę (choć takich na C++ nie szukają) ale żeby nie wiązało się to ze spadkiem wynagrodzenia.

Zastanawiam się czy jest jakiś sposób na naukę programowania embed c++ w domu po godzinach? Czy pomoże mi np. zakup Arduino? Jak się rozwijać i co zrobić by iść do przodu? Czego warto się uczyć?

Aha i najważniejsze: zawsze mnie interesowały różne systemy automatyczne, czujniki, oprogramowanie sterowników np. CO, systemy kontroli trakcji w samochodach itp. Z grubsza wiem jak działają wszystkie podstawowe czujniki. Dodatkowo dość dobrze orientuje się w fizyce. Dlatego właśnie chce zmienić zawód i czuje że w programowaniu CRM-ów nie wykorzystuje części swojej wiedzy, ale nie wiem również czy ją wykorzystam jako programista c++ embed?

edytowany 3x, ostatnio: xxxxxxx
0

Upewniam się

Jesteś programistą z 7 lat doświadczenia, znasz wiele frameworków, zarabiasz 4 tysiące zł.

XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0
Samiec Krokodyla napisał(a):

Upewniam się

Jesteś programistą z 7 lat doświadczenia, znasz wiele frameworków, zarabiasz 4 tysiące zł.

Tak, 4 netto. Prawie nigdy nie szukałem nowej pracy. RAZ zmieniłem firmę w życiu. Zawsze jak było coś do roboty nowego to starałem się kończyć projekty i pojawiały się nowe... za ogłoszeniami się nie rozglądałem. Wiem, że osoby, które poskaczą po wielu firmach mają dużo więcej. Nie brałem udziału w rekrutacjach ze względu na kiepski angielski i "przywiązywanie się" do miejsca pracy.

LS
Jesteś człowiekiem rodzinnym więc zostań przy modelu kariery, przy dobrych wiatrach za 10 lat osiągniesz 8k zarobków a dzięki zaoszczędzonemu stresowi będziesz cieszył się dobrym zdrowiem więc zaoszczędzisz to co inni przy większych zarobkach wydadzą na służbę zdrowia ;)
XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

wiem, że podejście nie jest dobre i czasami skutkuje życiowymi fakapami jak np. wtedy kiedy rzuciła mnie dziewczyna bo zarabiałem 2000 netto a nie chciałem iść do firmy w której ona pracowała i tam na start miałbym 3000 zł. różnica jednak była taka, że w firmie w której miałem 2k ja rządziłem kodem a nawet organizacją wszystkiego i uzgadniałem proces wewnętrznego oprogramowania ze samym właścicielem a tam miałbym szefa...

0

Standardowe pytanie dla doświadczonych programistów w widełkach 3-5 tys. netto.

Masz wyższe informatyczne, inżyniera?

W7
  • Rejestracja:około 11 lat
  • Ostatnio:5 miesięcy
  • Postów:13
0

Kiedys bylem w podobnej kropce jak ty wiec poznalem Arduino, szybko poszlo bo C i C++ znam. Pobawilem sie z dzieckiem w czujniki itp. Zrobilem kilka projektow dla siebie jak sterownik do pieca ze sterowaniem pomp, regulacji temp , z zabezpieczeniami przed przegrzaniem wody itp. Mam wlasny alarm w domu na tym i dziala z powiadamianiem GSM, sterowniki oswietlenia itp itd, ale.... Taka naprawde to zabawa tylko i tylko wstep do prawdziwych sterownikow. Jak chcesz naprawde potem poznac to przejsc na mikrokontrolery typu STM32 gdzie C++ jest pelna geba z obsuga watkow,przerwan itp. Jak to poznasz i bedziesz dobry to mozesz szukac ofert pracy, ale znajac Arduino marne szanse na kase.

TK
W 8 bitowcach też możesz obsługiwać wątki, przerwania etc, w przejście w duże ARM to nie jest nie wiadomo co. Wiem, bo miałem do czynienia z AVR, później bawiłem się ARM i dużych różnic nie było, jedyne, co mnie zaskoczyło to wyjątek sprzętowy jak zmienną ustawiłem na adresie nieparzystym. W samym C różnica będzie jeszcze mniejsza, bo piszesz C, w tym też możesz tworzyć procedury obsługi przerwań.
XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0
wmk73 napisał(a):

Kiedys bylem w podobnej kropce jak ty wiec poznalem Arduino, szybko poszlo bo C i C++ znam. Pobawilem sie z dzieckiem w czujniki itp. Zrobilem kilka projektow dla siebie jak sterownik do pieca ze sterowaniem pomp, regulacji temp , z zabezpieczeniami przed przegrzaniem wody itp. Mam wlasny alarm w domu na tym i dziala z powiadamianiem GSM, sterowniki oswietlenia itp itd, ale.... Taka naprawde to zabawa tylko i tylko wstep do prawdziwych sterownikow. Jak chcesz naprawde potem poznac to przejsc na mikrokontrolery typu STM32 gdzie C++ jest pelna geba z obsuga watkow,przerwan itp. Jak to poznasz i bedziesz dobry to mozesz szukac ofert pracy, ale znajac Arduino marne szanse na kase.

A Tobie poznanie Arduino pomogło? Co teraz robisz? I co robiłeś wcześniej?

W7
Pomoglo ze poznalem i pobawilem sie z synek 10 latkiem. Nie pomoglo w zarobkach. Teraz siedze w duzym projekcie mobile z webaplikacja.
XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0
std in napisał(a):

Standardowe pytanie dla doświadczonych programistów w widełkach 3-5 tys. netto.

Masz wyższe informatyczne, inżyniera?

Mam wyższe, inż. z prywatnej uczelni na zaocznych studiach.

0

C++ jest dość mało popularny w mikrokontrolerach. Zabawę radzę zacząć od C i jakiś ARM Cortex.

W7
Fakt C ma wiekszy udzial. Tak samo jak ARM Cortex, ale STM wykorzystywany gdyz ma chyba mniejszy pobor energii. Ale w sumie to procek wybiera sie do projektu a nie na odwrot.
XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

W sumie to nie wiem czy konkretnie mikrocontrollery :P

Tak naprawdę to chciałbym pracę z językami bardziej poważnymi niż PHP + jakaś fizyka, obliczenia. To mnie kręci. Pytanie czy tylko mam szansę na jakiegoś Juniora z takim doświadczeniem? I czy nie będzie się to wiązało z obniżką pensji (np. do zera jako praktykant)

xfin
  • Rejestracja:ponad 11 lat
  • Ostatnio:8 miesięcy
  • Lokalizacja:Genewa
  • Postów:597
0
xxxxxxx napisał(a):

nie chciałem iść do firmy w której ona pracowała i tam na start miałbym 3000 zł. różnica jednak była taka, że w firmie w której miałem 2k ja rządziłem kodem a nawet organizacją wszystkiego i uzgadniałem proces wewnętrznego oprogramowania ze samym właścicielem a tam miałbym szefa...

A wiesz, że jako programista embedded mało tego, że będziesz miał szefa, to pewnie jeszcze elektroników, z którymi będziesz musiał pracować nad specyfikacją? Kodem nie porządzisz na pewno.
Mnie to wygląda na to, że się trochę zasiedziałeś i ciężko ruszyć dalej.

Dobre wejście w trochę wyższe embedded to praca z linuksem/Androidem. Można próbować lecieć do firm z branży telekomunikacyjnej albo iść w Set-Top-Boxy. Niemniej ten "spadek zarobków" o który się boisz będzie zależał od konkretnej firmy.

Dlatego właśnie chce zmienić zawód i czuje że w programowaniu CRM-ów nie wykorzystuje części swojej wiedzy, ale nie wiem również czy ją wykorzystam jako programista c++ embed
Ale to zależy co umiesz. bo "pisałem trochę w c++" i "Wiem jednak "o co chodzi" ze wskaźnikami i znam bardzo dobrze pojęcie typu danych" dużo nie mówi, a raczej sugeruje, że nawet na juniora może być ciężko.

Dla embedded to głównie hasła jak (w zależności od firmu): c++, zarządzanie pamięcią, znajomość linuksa, czasem Qt i python, znajomość stl/boost (nawet pobieżnie, część mechanizmów wspólna z Qt), programowanie współbieżne, jakieś IPC (inter process communication).

Embedded to nie jest już tylko pisanie na procka (bo to bardziej leci w jakiegoś Firmware/Driver dewelopera).

slim44
  • Rejestracja:ponad 10 lat
  • Ostatnio:3 dni
  • Lokalizacja:Wrocław
  • Postów:111
0

A może warto pomyśleś w zupełnie innym kierunku, automatyki i robotyki. Tam masz programowanie PLC, pneumatyke, optyke itp itd. Tutaj Twój kod("wprowadzane parametry") mają żeczywiste fizyczne w pełni namacalne efekty. To musi dawać wiele sadysfakcji z programowania. Ale czy jest na tyle opłacalne ?? nie wiem

W7
PLC polecam. Bardzo malo dobrych programistow do tego. A zarobki faaajne. Wiem bo pomagalem ojcu ktory programuje w STEP5 SIEMENS. Juz jest STEP7 ale STEP5 jest w starszych maszynach a programistow na lekarstwo.
slim44
siemens i jego simatic s7 200 to legenda automatyki:D
fozolif
PLC odradzam, kasa nie najgorsza ale: Ladder programming = nudy, technologia sie wolno rozwija, praca zwiazana z ciaglymi wyjazdami i zyciem na krzeselku na hali podczas uruchomienia.
XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

Czytałem, że automatycy narzekają generalnie na kasę względem programistów. Swoją drogą Nie wiem czy programowaniem automatyki zajmuje się automatyk czy programista? Słyszałem również że automatyk w PL to praca przede wszystkim wyjazdowa. To nie dla mnie. Lubię pracować często zdalnie.

fozolif
dobrze slyszales. automatyk to praca na wyjazdach i do tego babranie sie w elektryce i od czasu do czasu w mechanice.
0

Zależy czy chcesz być emebedd niskopoziomowy czy bardziej wysokopoziomowy. Możesz pisać coś okienkowego, w ogóle nie dotykając sprzętu.

XX
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

Bardziej wysokopoziomowy. Np. czym bym się chciał zająć: w omawianym tu amatorskim systemie CO nie bawiłoby mnie zaprogramowanie sterownika sterującego elektrozaworem ale programowanie logiki jak miałby działać dany system mając już dane ze wszystkich czujników itp. To idealna praca byłaby dla mnie. Albo symulacje fizyczne, całkiem bez dotykania sprzętu... rysowanie po ekranie realnych zamodelowanych zjawisk. Ostatnio właśnie to ostatnie czynię sobię po godzinach bardzo amatorsko.

fozolif
Jest silna tendencja dzisiaj do programowania PLC off-line w aplikacjach typu WinMod (zerknij, moze to jest to co Cie zainteresuje). Mysle, ze trend sie bedzie nasilal gdyz redukuje czas uruchomieniowcow na obiekcie i pozwala na prace off-line. Ale w wiekszosci firm z tego co kojarze nikt nie dopusci Cie do pracy nad kodem PLC offline bez uprzedniej pracy na obiekcie z prostego wzgledu: starzy wyjadacze chca odpoczac od obiektu i przechodza do biura majac wiedze i dosw. chca wygodnego zycia i mlodych wysylaja na obiekt za nich do brudnej roboty ;)
slim44
  • Rejestracja:ponad 10 lat
  • Ostatnio:3 dni
  • Lokalizacja:Wrocław
  • Postów:111
0

Z tego co dane było mi kiedyś zaobserwować to często spotykany jest podział automatyków. Na tych co piszą kod w biurach projektowych maszyn i na tych co ten kod poprawiają już na złożonej maszynie, Poprawiają parametry by nie było np. zderzeń ramion pneumatycznych, poprawa ustawień taśm podajników. Poprawiają kod puszczając wykonywanie procesu maszyny etapami. Badają stabilność pracy. A kasa to wiadomo indywidualna sprawa. Zależy jak się kto ustawi. Ale również słyszałem że raczej narzekają , a z drugiej strony kto dziś nie narzeka :D

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)