W którą stronę się rozwijać (programista C)

1

Witam, jestem 22-letnim studentem robotyki. Od roku pracuję jako programista mikrokontrolerów ARM. Po tym roku grzebania w rejestrach i wynajdowania koła od nowa z każdą funkcjonalnoscią chciałbym zająć się nieco bardziej wysokopoziomowymi technologiami. Problem w tym że nie bardzo wiem w którą stronę warto pójść.
Poza mikrokontrolerowym C pisałem trochę w Javie (projekty studenckie, odrobina Androida), w C++ Qt (studenckie), Pythonie (jakieś proste narzędzia testowe do pracy). Na przyszłość widzę dla siebie trzy drogi:

  • pozostać w C, ale bardziej w klimatach Embedded Linux
  • Java
  • Python.
    Z rozmów z moimi znajomymi wybranie "ścieżki Javy" to korporacje w stylu Accenture. Z kolei przeglądając oferty Pythona widzę chyba tylko pracę związaną z web-developerką, a już kilka osób radziło mi aby trzymać się od tego z daleka. Na pewno nie chciałbym klepać HTML i CSS, ale budowanie serwisów od strony backendowej jest dla mnie jak najbardziej ciekawe. Osobiście w programowaniu największą satysfakcję daje mi komponowanie działających systemów zamiast dłubania nad optymalizacją kodu (dlatego mam dość uC). W tej chwili największą "zajawkę" mam na pythona, ale wiem że zajawka to rzecz ulotna i że "wszędzie dobrze gdzie nas nie ma"
    No i wreszcie moje pytania. Jest ich kilka: czy "szlak Pythona" skazuje mnie na web-developement, czy web-developement jest naprawdę tak straszny? Czy Java oznacza korporację i wyrabianie nadgodzin za wszelką cenę? Gdzie powinienem szukać zatrudnienia, jeśli muszę dodatkowo ciągnąć studia mgr (prawdopodobnie będzie to informatyka na WEiTI PW)? Korpo, jakies biura projektowe?
1

@Offtop
"Czy Java oznacza korporację i wyrabianie nadgodzin za wszelką cenę?"
Hmm ja jestem ciekawy skąd wziął się ten mit z nadgodzinami, ktoś coś wie na ten temat?

A co do Javy, jest Javka biznesowa, w której jest masę pracy i w korporacjach, i w mniejszych firmach. Więc nie jesteś skazany na korporacje, chociaż według mnie wszystkiego w życiu trzeba spróbować i korpo i startupów, no może poza Janusz-Softami ;)

0

Java EE, więc back-end. Wcale nie musi być korporacja, wcale nie muszą być obowiązkowe nadgodziny, wszystko zależy od firmy, w której będziesz pracować.

0

Jakich technologii używa się do Backendu w JEE? albo inaczej formułując - mam pomysł na aplikację internetową (platforma do zbierania danych z urządzeń IoT, dajmy na to, smartfona zrzucającego na serwer dane z akcelerometru, serwis ma użytkowników, którzy mają urządzenia, które mają dane, to można obrazować itp). Czy dałoby się to napisać od strony backendu w Javie, jeśli tak w jakim frameworku? Chciałbym wykorzystać ten pomysł do nauczenia się konkretnej technologii, chociaż podstaw. Najpierw miałem pomysł żeby napisać to w Django, Flasku, albo node.js.

0

Słowo klucz w tym wypadku to Spring, możesz również poczytać o Hibernate i MyBatis

0

@diegotm Startowałem podobnie jak Ty, tzn. po elektronice i od małego embedded, do tego Python, z tym, że zamiast Javy było na pecetach C++. Obecnie piszę pod Linuxami w C/C++ (raczej w tym pierwszym, ale różnie bywa), do tego wspomagam się Pythonem, i paroma innymi raczej typowo unixowymi technologiami. Webdevu też szczerze nie cierpię ;)
Przy czym, żeby była jasność: mnie pisanie blisko sprzętu pasowało i pasuje.

Szlak Pythona nie skazuje na webdev, ale wtedy często idziesz w testowanie a nie developerkę. Kluczową kwestią jest znaczenie stanowiska "tester", bo może to być klepacz skryptów a może być to gość do rozwijania naprawdę sporych (acz często jedynie wewnętrznych) narzędzi. W tym drugim przypadku z Pythona (i ew. paru innych języków skryptowych) da się wyżyć jednocześnie patrząc w lustro bez obrzydzenia ;)

1

Jeśli chodzi o firmę A to rzeczywiście możesz się tam spodziewać nadgodzin, niezależnie od wybranej technologii.

Python to nie tylko web. Jest dużo różnych zastosowań tego języka:

  • data mining
  • automatyzacja procesów
  • obliczenia naukowe
  • aplikacje desktop
  • prototypowanie

Web development nie musi być straszny - zależy od charakteru pracodawcy.
Jeśli jest to agencja marketingowa nastawiona na liczbę nowych klientów, to będzie słabo. Klepanina aby aby.
Ale jeśli to jest firma która ma 3-4 produkty i sporo klientów to jest szansa że będzie dbała o jakość kodu, automatyzację procesów i wygodę programisty.

0

Jeśli faktycznie jesteś dobry w C to poznaj trochę pythona i celuj w oferty, gdzie jest wymagany jednocześnie C i Python. Wtedy nie będziesz programistą do klepania formularzy. Sprawdź Onet (utrzymywanie ich poczty), Alior Bank bądź Polsat. To jest lepszy start niż celowanie w małe firemki bądź całkowite przestawienie się na inny język i frameworki.

0

W C możesz pisać kompilatory i systemy, sterowniki do tego skrypty w Lua. Raczej ciągle pisanie strukturalne będzie dominowało w systemach komputerowych typu Linux/BSD/Unix/Windows/Apple. C++ tylko w Haiku napisany jest ten system bez użycia C.

0

Pozwolę sobie zadać pytanie(głównie do autora) Czy używasz bibliotek SPL? Mam zamiar aplikować na stanowisko embedded C gdzie programują STM32, mam kilka projektów, ale wszystkie z użyciem SPL. Jak to widzicie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1