Obecnie pracuję zawodowo jako inżynier oprogramowania współpracujący z systemem operacyjnym Android. Pracujemy nad zintegrowaniem naszej platformy jako natywnego demona wśród innych aspektów projektu. Pracuję przede wszystkim w Javie, tworząc aplikacje SDK i Android, ale pomagam przy platformie w C / C ++.
W każdym razie jestem bardzo zainteresowany zawodową pracą nad rozwijaniem niskiego poziomu dla systemu Linux. Nie jestem niezadowolony z mojej obecnej pozycji i będę się kręcił tak długo, jak pozwoli mi na to firma (w rzeczywistości lubię tam pracować!), Ale chciałbym pracować w tym kierunku. Pracowałem przez Linux Kernel Development (Robert Love) i The Linux Programming Interface (Michael Kerrisk) (oprócz wzmacniania moich umiejętności C przy każdej okazji) i od niechcenia przeglądałem Monster i podobne strony.
Problem, jaki widzę, polega na tym, że nie ma pozycji na poziomie podstawowym. Jak się włamać do tego pola? Za każdym razem, gdy widzę „Linux Systems Programmer” lub „Linux Device Driver Programmer”, wszystkie one wymagają co najmniej 5-7 lat odpowiedniego doświadczenia. Chcą kogoś, kto zna liny, a nie programistę na niższym poziomie (pracuję od 7 miesięcy ...).
Tak więc zakładam, że niektórzy z was na przepływie stosów pracują profesjonalnie, robiąc to, co chciałbym zrobić. Jak się tam dostałeś? Z jakich platform korzystałeś, aby tam pracować? Czy będę miał trudniejszy czas, ponieważ mam licencjatów w CSC w przeciwieństwie do inżyniera komputerowego (gdzie doświadczyliby nieco bardziej wbudowanego, asm itp.)?
EDYCJA W CELU WYJAŚNIENIA! Zdaję sobie sprawę z otwartego źródła jądra / sterowników Linuksa itp. Planuję przyczyniać się bez względu na to, gdzie jest moja codzienna praca. Jestem bardziej ciekawy, jakie rodzaje pozycji podstawowych pozwolą mi wykonać odpowiednią pracę i zarabiać za to! Dziękujemy za wszystkie dotychczasowe odpowiedzi!
źródło
Odpowiedzi:
Piszę sterowniki urządzeń dla Linuksa dla mojej firmy i doszedłem do tego stanowiska, wiedząc najlepiej o rozwoju Linuksa w moim dziale, a oni awansowali / zatrudniali mnie do nowej roli. To był bardzo młodszy styl, więc istnieją i nie tracą nadziei!
Moja bezpośrednia rada dla ciebie to sprawdzenie, czy możesz zawęzić swoje skupienie. Programowanie jądra bardzo różni się od programowania systemu bardzo różni się od programowania sterowników urządzeń.
Bardzo dobry programista jądra może nie wiedzieć wiele na temat opóźnień przerwań i determinizmu sprzętowego, ale będzie dużo wiedział na temat działania blokad, kolejek i obiektów Kobject. Programista sterowników urządzeń będzie wiedział, jak używać blokad, kolejek i innych interfejsów jądra, aby sprzęt działał poprawnie i szybko, ale nie będzie tak prawdopodobne, aby naprawić błąd alokacji strony lub napisać nowy harmonogram.
Wybierz więc to, co najbardziej Cię interesuje, na przykład poprzez ankietę list rozwoju lub narzędzia do śledzenia błędów i zobacz, jaki wpływ chcesz wywrzeć. Następnie wnieś wkład i zdobądź doświadczenie pracując nad tymi projektami i wysiłkami. Kiedy twoje imię / e-mail jest dołączony do kodu w głównej linii jądra, będziesz miał doświadczenie, na które możesz wskazać w CV / liście motywacyjnym dla innych pozycji :-)
źródło
Jestem programistą z ponad 15-letnim doświadczeniem w pracy w Motoroli i kilku innych firmach z branży zaawansowanych technologii. Mam stopień BSCE. Więc nie jestem amatorem.
To pytanie ... jak się włamać ... jest powszechne nie tylko w Linuksie, ale praktycznie w każdym obszarze specjalizacji. Inżynieria oprogramowania stała się jak medycyna w tym, że specjaliści muszą się specjalizować. Ale kiedy Twoja firma zmniejsza i zwalnia cię po 10 latach bycia specjalistą, okazuje się, że rynek pracy zmienił się i nie jesteś obecny. Firmy kiedyś nie były tak selektywne - często teraz jedynym kandydatem, który ma wszystkie umiejętności na liście życzeń, są te, które już pracują dla tej firmy lub bezpośredni konkurent! Stało się dość trudne.
Jestem teraz w tej sytuacji i choć jest ciężko, istnieje kilka strategii, które możesz wykorzystać, aby zostać zatrudnionym. Ale najpierw MUSISZ opanować technologię, ponieważ jeśli zostaniesz zatrudniony, będziesz musiał produkować. Gdy będziesz gotowy, zastanów się, co następuje:
Poszukaj małej firmy na początek. Nie mogą być tak wybredni w kwestii tego, kogo zatrudniają, jak duzi faceci. Spędź tam rok lub dwa, a następnie będziesz mieć doświadczenie zawodowe w CV, aby się zakwalifikować.
Rozważ zawarcie umowy, szczególnie jeśli nie pracujesz w pełnym wymiarze godzin. Firmy są znacznie bardziej skłonne do skorzystania z usług kontrahenta niż w pełnym wymiarze godzin. Ponownie, gdy masz weryfikowalne doświadczenie, aby włączyć swoje CV, otwiera drzwi.
Wykonaj mały projekt lub dwa samodzielnie i stwórz portfolio, które przedstawi potencjalnym pracodawcom. Może to otworzyć drzwi do wejścia nie tylko małej firmie, ale także średniej wielkości.
Oprócz powyższego, rozważ skorzystanie z usług profesjonalnego rekrutera z firmy takiej jak Kforce, Aerotek itp. Pracodawca płaci opłatę rekrutacyjną, a rekruter pomoże ci sprzedać w sposób, którego nie będziesz w stanie zrobić sam.
W rzeczywistości „młodszy programista” z zaledwie 7-miesięcznym doświadczeniem ma ogromną przewagę nad facetem takim jak ja, gdy próbuje zostać zatrudniony do zrobienia czegoś nowego. Firmy UWIELBIAJĄ „świeże” / „nowe stopnie”, ponieważ wiedzą, że nie poprosisz o dużo pieniędzy i chętnie zrobią to, CO ZADAJĄ, w tym, jeśli to konieczne, za granicą. Firmy nie zatrudniają mnie na niższą pozycję, nawet gdybym ubiegał się o jedną, ponieważ wiedzą, że od razu będę chciał odejść na lepszą. Twoja sytuacja nie jest taka zła.
Powodzenia!
źródło