Witam wszystkich, jestem studentem 3-go roku informatyki, chciałbym dowiedziec
się od bardziej doświadczonych osób jaką dziedziną informatyki najlepiej się
zajać (sciezka kariery - perspektywy finansowe - zapotrzebowanie na rynku
pracy)? Interesuje sie głownie programowaniem w Javie, ale wszystko inne też
wchodzi w grę (np bazy). Problem w tym, że nie mam pomysłu w którą stronę
warto pokierować swoją przyszłą karierę zawodową. Programistów już jest w
sumie bardzo dużo. Jakie trendy na rynku przewidujecie w ciągu najbliższych
kilku lat? Kogo bedzie brakować?
Rob to co lubisz i to czym sie interesujesz. Bedziesz dobry to znajdziesz prace. W miedzyczasie przygotuj sobie male portfolio swoich najlepszych projektow, tak aby potencjalny pracodawca wiedzial co potrafisz.
Kiepskich programistów jest dużo. Dobrych jest mało.
Tak, programistów Alfa jest 20%, a całej reszty 80% zgodnie z zasadą Pareto.
20%? Optymista... Ja jak zwykle obstaję przy swoim - nie wiesz co robić to zajmij się RE. Zajęcie może i momentami nudne ale i tak mniej monotonne niż typowa robota programisty; lepiej płatne i łatwe do zdobycia mając jakiś sensowny skill. Żeby mieć klawe życie jako programista to też raczej trzeba się czymś niszowym zająć, im większa specjalizacja tym początkowo trudniej o pracę, w ostatecznym rozrachunku jednak korzyści większe. Zdecydowanie coraz więcej rzeczy powierza się tanim wyrobnikom - przysłowiowym studentom czy hindusom...
20%? Optymista... Ja jak zwykle obstaję przy swoim - nie wiesz co robić to zajmij się RE. Zajęcie może i momentami nudne ale i tak mniej monotonne niż typowa robota programisty; lepiej płatne i łatwe do zdobycia mając jakiś sensowny skill. Żeby mieć klawe życie jako programista to też raczej trzeba się czymś niszowym zająć, im większa specjalizacja tym początkowo trudniej o pracę, w ostatecznym rozrachunku jednak korzyści większe. Zdecydowanie coraz więcej rzeczy powierza się tanim wyrobnikom - przysłowiowym studentom czy hindusom...
Mała ciekawostka - w międzynarodowej firmie, w której pracuje, hindusi są lepiej opłacani niż polacy...
A co do wyszukania niszy to się zgadzam - może to być bardziej opłacalne niż pisanie stronek na PHP czy na J2EE. Czy nisza może być mniej monotonna? Na RE się nie znam ale jak kiedyś trochę się w to bawiłem to była to dla mnie bardzo żmudna robota. Ciekawą opcją wydają się systemy wbudowane, pisanie drajwerów itd. Jakie nisze jeszcze znacie?
Jakie nisze jeszcze znacie?
Programowanie gier? Na świecie może to nie nisza, ale w Polsce zdaje mi się szału za bardzo nie ma. Jak znasz Jave to może pójść w JME albo zainteresować się Androidem?
deus. napisał(a)
20%? Optymista... Ja jak zwykle obstaję przy swoim - nie wiesz co robić to zajmij się RE. Zajęcie może i momentami nudne ale i tak mniej monotonne niż typowa robota programisty; lepiej płatne i łatwe do zdobycia mając jakiś sensowny skill. Żeby mieć klawe życie jako programista to też raczej trzeba się czymś niszowym zająć, im większa specjalizacja tym początkowo trudniej o pracę, w ostatecznym rozrachunku jednak korzyści większe. Zdecydowanie coraz więcej rzeczy powierza się tanim wyrobnikom - przysłowiowym studentom czy hindusom...
co do tego RE, możesz rozwinąc skrót bo nic nie nasuwa mi sie na myśl
RE - reverse engineering. W sporym uproszczeniu grzebanie w cudzym sofcie bez posiadania źródeł, dosyć typowe zajęcie w branży antywirusowej, chociaż ma zdecydowanie szersze zastosowania.
Przypomnial mi sie jeden hamerykański film s-f, gdzie (w oficjalnym tlumaczeniu) padalo czesto okreslenie "projektowanie od tyłu". Czyżby tam o RE chodzilo? :>
Po polsku to raczej mówi sie na to po prostu inżynieria odwrotna ;)
deus - ile czasu zajmuje wykształcenie w miare przyzwoitego skilla w RE przy założeniu w miare dobrych zdolności analitycznych?
'Odwrotna' albo bardziej profesjonalnie(?) 'wsteczna'.
Ile czasu? Tak żeby zadania testowe firm AV zrobić to kilka ładnych miesięcy. Assembler, programowanie niskopoziomowe, kryptologia i kilka innych rzeczy w stopniu pozwalającym się w tym swobodnie orientować opanować trzeba. Generalnie firmy często nie zakładają, że idzie do nich jakiś geniusz/doświadczony RE, i tak takiego gościa trzeba dodatkowo przeszkolić - raczej liczy się chęć rozwoju i sensowne podejście do zadań testowych.
deus. napisał(a)
RE - reverse engineering. W sporym uproszczeniu grzebanie w cudzym sofcie bez posiadania źródeł
Jeśli posiadasz cudzy program, to zawsze posiadasz jego źródło... tylko nie zawsze w języku innym niż maszynowy/asembler :)
A tak poważniej, to gdzie ma zastosowanie RE oprócz branży antywirusowej?
Zastanawiam się też czy istnieje dziś jakiś super debugger, odpowiednik starego dobrego SoftICE, który działał w trybie jądra?
Kiedyś była dobra strona internetowa pod adresem cracking.pl z której można było czerpać wiele ciekawej wiedzy na tematy związane z RE i asemblerem. Strona niestety padła, ale jak ktoś się tym tematem interesuje i zna podstawy asemblera, to może wejść na mirror tej strony:
http://cracking.prv.pl/
A co do rozwoju IT, to myślę, że wciąż będzie rozwijał się internet oraz telefonia komórkowa. Na pewno coraz szybszy internet będzie dostępny na urządzenia mobilne (np. w Japonii już mają tak szybki internet, że mogą sobie oglądać filmy w internecie na telefonie komórkowym) i myślę, że coraz więcej firm będzie tworzyło strony internetowe dla urządzeń mobilnych. Gdzieś w jakiejś reklamie widziałem informację, że około 53% polskich firm nie ma własnej strony internetowej, a więc widać, że internet w Polsce wciąż jeszcze nie jest tak powszechny jak na Zachodzie i myślę, że w najbliższym czasie będzie to ulegało zmianie.
Gdzie RE ma zastosowanie? Wszędzie, chociażby wkurzanie Adobe - cyrk z protokołem RTMPE czy innymi 'solidnymi zabezpieczeniami'. Generalnie RE stosuje się wszędzie, gdzie są jakieś protokoły i formaty danych, do których dokumentacji się nie posiada - nawet firmy zajmujące się tłumaczeniem gier, jak CD Projekt, zatrudniają ludzi od psucia aplikacji. Czasem jest tak, że dostaje się wersję dystrybucyjną i zgodę na przetłumaczenie, 0 źródeł, 0 dokumentacji formatów danych (gdyby komuś chciało się grafiki tłumaczyć), w szczególnych wypadkach nawet protector...
Ostatnio pracuję nad rozszerzeniem GUI jednego programu - straszny syf pisany w MFC z brakiem poszanowania jakichkolwiek zasad inżynierii oprogramowania - RE jest zbawienne. Po prostu klient pisze legalne rozszerzenie i chce to zintegrować ładnie z programem, bez pomocy RE się zwyczajnie nie da (własne kontrolki, które zamiast wymieniać między sobą komunikaty to grzebią sobie wzajemnie w składowych). W międzyczasie algorytm szyfrowania z jednego softu przepisywałem bo autor alternatywnego rozwiązania chciał kompatybilności etc. Obecnie bawię się poprawianiem rtmpdumpa bo komuś nie pasuje, że z RTMPE z paru serwisów sobie nie radzi, oczywiście też ociera się to o RE bo raczej nie bez powodu strony stosunkowo nowego Flasha wymagają (może będzie trzeba coś z samej wtyczki wyciągnąć). No ale to zlecenia, nie praca na etat, jednak nie tylko AV.
Co do legendarnego SI - dokładnych zamienników nie ma, są zabawki pokroju Syser Kernel Debugger ale i tak najczęściej do rzeczy na poziomie jądra używa się WinDbg. OllyDbg mocno dopakowany rozszerzeniami jest wystarczający do pracy z normalnymi aplikacjami. Poza tym Interactive Disassembler wreszcie w ostatnich wersjach dorobił się ładnego, wygodnego debuggera, nawet ze wsparciem emulacji.
Był cracking.pl, było ctrl-d, był #crackpl... stare dzieje, to wszystko praktycznie rzecz biorąc zdechło do reszty jakieś 3-4 lata temu. Po prostu stara ekipa się już rodzin/poważnych zobowiązań podorabiała, a szczytem ambicji młodzieży jest napisanie stealware'u do Tibii, zwykle w oparciu o już istniejący syf z takiego haker.com.pl czy innego śmietnika.
Tak z ciekawości: robi się komercyjnie jakiś RE na Linuksie?
Generalnie średnio się w tym orientuję. Trochę firm wspiera rozwój Linuksa tak kasą jak programistami, tworzenie alternatywnego oprogramowania wymaga czasem RE, ze 2 lata temu podobną ofertę pracy widziałem (minus taki, że RE z Windowsowego softu i przepisywanie). Ze dwa razy w życiu widziałem też zlecenie na RE jakiegoś mechanizmu zamkniętego softu na Linuksa, w celu stworzenia bardziej poprawnego politycznie na GPL. Trochę RE jest w bezpieczeństwie jako takim - bughunt chociażby. O ile mi się dobrze kojarzy to Hacker Challenge 2006 opierało się o Linuksowe crackme, ale to ciekawostka, zresztą HC się już chyba skończyło na dobre - ostatnie było 2008 (świetne źródło darmowej kasy).
W ostateczności pozostaje rozwijanie linuksowego softu AV - chociażby Kaspersky ma swoje rozwiązania. Może i malware'u mało, ale exploitów na różne programy i w różnych formach nie brakuje.