Sposób na udaną pracę.

0

W tym roku rozpoczynam studiowanie informatyki i z tego powodu zdarza mi się rozmyślać nad sposobem studiowania. Zastanawiam się jak powiniem postrzegać studia oraz nad tym jakie cele powiniem sobie wyznaczyć. Nie chodzi mi tu o papier, a o pomysł na życie.

Na stronie uczelni, przejrzałem plan przedmitów. Z tej listy wyznaczyłem sobie część, która mnie interesuje i były to takie pozycje jak np. algorytmika, paradygmaty programowania, metody realizacji języków programowania, sztuczna inteligencja czy systemy ekspertowe.

Te przedmioty są dla mnie cool, lecz nie chciałbym skończyć pod mostem. Przeczuwam, że będzie ciężko znaleźć pod to pracę. Zastanawiam się, czy dać sobie luz. To znaczy traktować takie przedmioty tylko jako hobby, a nie jako sposób na pracę.

Nie znam rynku, ale po forach widzę, że najczęściej poszukują programisty pod php/java/dotnet dlatego, gdyby ktoś mógł się podzielić informacjami na temat przyszłości jaką dają programiscie takie przedmioty jakie wcześniej wymieniłem to byłbym niezmiernie ucieszony.

Póki co na to wszystko patrzę sceptycznym okiem. Studia widzę, tylko jako fabrykę pomysłów na projekty domowe. Przez co wydaje mi się, że dobrze płatną pracę zyskam, dopiero, gdy wezmę się za znany framework np. Java EE, Hibernate, Struts albo SDK Androida, OpenGL, a może Flex bądź RoR.

Osobiście do tego nie jestem przekonany. Znaczy wiem, że tu kasa jest niezła, ale ta tematyka po prostu mnie przynudza. Poza tym, gdybym postawił na ten ruch, to wypadałoby gdzieś po drodzę zacząć pracę, tak czyni wielu i uważa ten ruch za znakomity, bardziej wartościowy niż samo studiowanie.

Reasumując:
Czy zajmując się bardziej teoretycznymi przedmiotami (tzn. fundamentem, który nie ulega szybkim zmianom), mam spore szanse znaleźć dobrze płatną pracę na stanowisku programisty?

0

Najprosciej popatrz kogo szukaja w ogloszeniach. Tylko poaptrz na dzialke ktora Cie interesuje. Podstawy sa potrzebne, ale same nie wystarcza. Z wlasnego doswiadczenia to dyplom i dobre CV tylko ulatwiajaja dostanie sie na rozmowe kwalifikacyjna, a tam juz musisz swoje umiec:)

Na studiach postaraj sie popracowac od przynajmniej 4 roku (chocby praktyki) bardzo ulatwi to zalapanie sie do pracy pozniej.
Co do PHP to IMHO rynek jest zepsuty i szkoda w to isc (zakladajac ze chcesz na jakims przyzwoitym poziomie zarobic).

0

Według mnie -- to zależy. W korporacjach raczej nie poszukują algorytmików, a jeśli tak, to nie ludzi tuż po studiach. Z drugiej strony małe, specjalistyczne firmy czy ośrodki naukowe często takich ludzi potrzebują. Jednak znaleźć się tam nie jest łatwo, poza tym początki są naprawdę ciężkie.

Mimo to nie uważam, że powinieneś traktować te przedmioty jako hobby, tylko jak najbardziej się do nich przyłożyć. Paradygmaty programowania są przydatne każdemu: poznasz tam programowanie funkcyjne, lambdy, etc. Algorytmika: niezwykle ważna, choćby z tego względu, że będziesz lepiej potrafił dobrać algorytm bądź strukturę danych dla konkretnego problemu. AI i systemy ekspertowe: nieco mniejsze pole manewru, ale wszelkiego rodzaju heurystyki są wykorzystywane w wielu dziedzinach, nie tylko tych dwóch, a na nich najłatwiej je zrozumieć. Te zagadnienia nie dają pracy same w sobie, ale pozwalają na lepsze zrozumienie problemów, jakie przed tobą staną, i oferują lepsze ich rozwiązania. To, że masz prawo jazdy, nie oznacza, że musisz być zawodowym kierowcą -- ale jakie to ułatwienie i wygoda, prawda? :)

Podsumowując -- nie zlewaj tych przedmiotów, bo są często niezbędne (a przynajmniej przydatne), ale nie licz na pracę po nich; chyba, że liczysz na karierę naukową i planujesz zostać na uczelni. ;)

0

Czy zajmując się bardziej teoretycznymi przedmiotami (tzn. fundamentem, który nie ulega szybkim zmianom), mam spore szanse znaleźć dobrze płatną pracę na stanowisku programisty?

Jak najbardziej masz o ile nie olejesz kompletnie praktyki. Tzn. wybierz sobie jakiś język (najlepiej C++ ewentualnie Java bo głównie w tym tworzy się algorytmiczne rzeczy) i naucz się go dobrze łącznie z biblioteką standardowymi i innymi przydatnymi bibliotekami. Implementuj algorytmy AI w tym języku, pisz projekty, rozwalaj zadanka z Top Codera. Ja właśnie postawiłem na te "fundamenty" i b. dobrze na tym wyszedłem. I udało mi się znaleźć pracę związaną z uczeniem maszynowym w Polsce (za granicą to w ogóle jest masa tego typu ofert za bardzo przyzwoite pieniądze, ale tutaj wszystko dochodzi z lagami).

0

Tak też lubię, działać na styku teorii i praktyki. Interesuje mnie to, czy ciężko było znaleźć taką pracę? Czy ofert było dużo? Czy wymagania wstępne nie były powalające?

W Polsce ofert jest niestety mało. Jednakże ludzi, którzy chcą się w to bawić również jest mało więc wystarczy obczaić firmy, które się zajmują interesującym Cię działem AI i uderzać tam.
Generalnie jak nie uda Ci się znaleźć pracy związanej z AI zawsze pozostaje zwykła praca programisty, żeby przezimować na "lepsze czasy". Pisanie projektów związanych z AI nie licząc złożonych algorytmów nie różni się aż tak bardzo od pisania zwykłych systemów informatycznych tak więc doświadczenie w tej dziedzinie też może pomóc.

Dygresja: czemu akurat java? Czy tu chodzi o jej współbieżną naturę?

Często algorytmy np. data miningu wymagają rozpraszania na wiele komputerów i tutaj wąskim gardłem jest komunikacja sieciowa a nie to czy program napisany w Javie działa trochę wolniej niż pisany w C++.
Również nie wszystkie algorytmy AI wymagają mega wydajności więc wtedy lepiej użyć Javy, która ma świetną bibliotekę standardową i programy pisane w niej są prostsze w utrzymaniu.

0

W sumie wychodzi na to, że pierw powinienem zadbać o dupochron, a dopiero później o temat specjalizacji w której chciałbym się rozwijać.

Typowy rozwój widziałbym tak:

Rok/dwa poświęcę na opanowanie technologii np. pod webówkę, wykonam kilka projektów i zacznę pracować. Natomiast samym studiom poświęcę odłam swego czasu, celem nie będą piątki, a samo przejście do następnych semetrów i poznanie możliwie wielu ciekawych zagadnień, aby zrozumieć co tak naprawdę w informatyce mnie rajcuje.

Przypuszczam, że cześć osób opowie się za tym, że podchodzę do tego jak do szkoły zawodowej, a nie jak do studiowania i w sumie racja, bo też tak to widzę.

Sądzę, że moje prawdziwe studiowanie zacznie się znacznie później. Gdy sytuację sobię ustabilizuje, wyznaczę co konkretnie chce robić i jednocześnie zacznę studia zaoczne. Wtedy matematykę będę widział innymi oczami - oczami praktyka. Wtedy dopiero skupię się w 100% na tym co mnie będzie interesować.

Rozwiązanie z serii "I wilk syty i owca cała" :-).

Ciekaw jestem waszej zimokrwistej opini, czy to podejście ma sens?

0

Generalnie są działy , które są szczególnie przydatne do programowania AI. Przykładowo w uczeniu maszynowym przydają się:

  • Ogólnie inżynieria oprogramowania, dobry styl kodowania, wzorce projektowe itd.
  • Programowanie współbieżne i rozproszone
  • Bazy danych
  • Programowanie sieciowe

Opanowanie kilku/któregoś z nich bez problemowo da Ci "dupochron" w postaci pracy, która nie będzie związana z AI.

0
bang_bang napisał(a)

Te przedmioty są dla mnie cool

Będą, o ile trafisz na sensownych wykładowców. :)

Ciekaw jestem waszej zimokrwistej opini, czy to podejście ma sens?

Myślę, że to jest to jak najbardziej sensowne. Wiedząc, czego chcesz i potrzebujesz łatwiej się tego nauczyć. Zwłaszcza, jeśli nie musisz się już martwić o kasę.

W ogóle jestem zdania, że tak powinna wyglądać edukacja informatyczna, przynajmniej dla większości osób. Najpierw nauczenie praktycznych technologii i podstaw ich używania, a potem (dla chętnych) podejście bardziej naukowe. Bo niestety, ale nauczanie pewnych rzeczy, w sytuacji, w której student nie ma wystarczającej wiedzy ani doświadczenia, żeby wiedział kiedy może mu się to przydać jest nieefektywne.

0

Jeśli chodzi o sztuczną inteligencję, to zanim zaczęły się zajęcia to też myślałem, że to fajne, a potem na zajęciach prowadzący pokazał, że to niefajne :D

Na egzaminie główne zadanie "praktyczne" to obliczyć wyjście systemu wnioskowania rozmytego Mamdaniego lub Takagi Sugeno. Nie wiem, czy to takie fascynujące i interesujące. Projekty to też np. uczenie się rozpoznawania rodzajów grzybów lub rodzajów szkła na podstawie danych wejściowych. Wszystko fajnie, ale niczego z tego nie sprawdzaliśmy w praktyce - uczyliśmy tylko nasze sztuczne sieci neuronowe za pomocą funkcji matlabowych - learnbpm, trainbpx itp. Potem podawaliśmy błąd uczenia.

Spodziewałem się czegoś ciekawszego po tym przedmiocie. Miałem nadzieję, że będzie coś o sztucznej inteligencji w takim aspekcie, jak np. gra ucząca się grać w szachy sama od siebie (program wystawiony przeciwko sobie) albo od gracza - to by było dużo ciekawsze niż nic nie warte obliczenia.

Studia w wielu przypadkach (na wielu przedmiotach) cię zawiodą. Nie wszystkie przedmioty są jak matma - ponadczasowe, które może wykładać nawet dziadek nie dokształcając się zbytnio. Na informatyce jest wielu staruchów, którzy uczą swój stary przedmiot pod nową nazwą. Tępią z języka C i Pascal'a, bo to jest przecież jedyny język, który znają itd. Stąd też studiowanie informatyki w Polsce to tak naprawdę historia informatyki. Jak ci ludzie mają przygotować kogokolwiek do pracy w zawodzie informatyka skoro sami mają duże braki w aktualnych trendach i studenci muszą ich uczyć nowych technologii? Rozumiem jeszcze jakby używali na zajęciach Free Pascal'a, który jest kompatybilny z najnowszym sprzętem i systemami operacyjnymi, ale nie, zazwyczaj prowadzący zajęcia w Pascal'u każą klepać w Turbo Pascal 7.0...

Na początku powinieneś studiom poświęcić więcej czasu, ponieważ na początku jest największy odsiew. U mnie większość osób, która odpadła - zrezygnowali, nie dali rady itp. - zrobili to tuż po pierwszym semestrze. Potem raczej wszyscy wytrzymali do końca.

0
bang_bang napisał(a)

Natomiast samym studiom poświęcę odłam swego czasu, celem nie będą piątki, a samo przejście do następnych semetrów i poznanie możliwie wielu ciekawych zagadnień, aby zrozumieć co tak naprawdę w informatyce mnie rajcuje.

Ja od trzeciego semu też mam takie podejście do studiów. Ale do pracy dyplomowej przyłożyłem się porządnie.

0

Spodziewałem się czegoś ciekawszego po tym przedmiocie. Miałem nadzieję, że będzie coś o sztucznej inteligencji w takim aspekcie, jak np. gra ucząca się grać w szachy sama od siebie (program wystawiony przeciwko sobie) albo od gracza - to by było dużo ciekawsze niż nic nie warte obliczenia

Bo sztuczna inteligencja to matematyka, obliczenia i algorytmy. I bynajmniej nie są bezwartościowe.
Po prostu miałeś błędne oczekiwania i Cię to rozczarowało. W zasadzie większość osób sztuczna inteligencja rozczarowuje ze względu na matematyczną stronę tego działu.

0
0x200x20 napisał(a)

Spodziewałem się czegoś ciekawszego po tym przedmiocie. Miałem nadzieję, że będzie coś o sztucznej inteligencji w takim aspekcie, jak np. gra ucząca się grać w szachy sama od siebie (program wystawiony przeciwko sobie) albo od gracza - to by było dużo ciekawsze niż nic nie warte obliczenia

Bo sztuczna inteligencja to matematyka, obliczenia i algorytmy. I bynajmniej nie są bezwartościowe.
Po prostu miałeś błędne oczekiwania i Cię to rozczarowało. W zasadzie większość osób sztuczna inteligencja rozczarowuje ze względu na matematyczną stronę tego działu.

A co byś powiedział o systemach wbudowanych na kierunku informatyka? My robiliśmy na tym przedmiocie program starego przedmiotu "Sterowniki Mikroprocesorowe" - prowadzący kazał nam opracowywać algorytm sterowania zbiorniczka z zaworami (rysować graf, diagram przejść i pisać kod w C) na kartce, z bardzo ograniczoną ilością czasu.

0

Mógłbyś dodać jakiś wniosek? Zalety i wady takiego podejścia. Ja na razie planuje, ty to przeszedłeś. Więc nasz punkt widzenia może być różny.

U mnie jeszcze jest ta różnica że ja nie studiuję informatyki a Elektronikę i Telekomunikację. Programowaniem zainteresowałem się na studiach więc to trochę późno. Gdy podnosiłem skill (zobacz sobie moje pierwsze posty na tym forum, uśmiechniesz się) a potem brałem pierwsze drobne, płatne zlecenia to czas stał się limitowanym dobrem. Szczególnie, że będąc na studiach chciałem mimo wszystko trochę poimprezować. Inna sprawa że czasami brakowało motywacji by zagłębiać się w coś co mnie nie interesuje i co zwyczajnie mi się nie przyda. W moim przypadku studia wskazały mi to czym mógłbym zarabiać na chleb, potem zaliczałem dla papierka. Trochę to dołujące że nie wykorzystałem w pełni tego co studia oferują, niektóre przedmioty były o dziwo ciekawe mimo że luźno wiązały się z programowaniem, ale niestety przez to że nie kodziłem przed studiami w niczym oprócz asma wolałem poświęcić czas temu, dzięki czemu będę w stanie się utrzymać. A do pracy dyplomowej warto się przyłożyć z dwóch powodów, skoro tak czy siak poświęcasz temu czas to może warto zrobić coś co bez wstydu będzie można sobie wpisać do portfolio/CV. Druga sprawa, że to cholernie podnosi średnią :P Prace oceniono mi na sześć a obroniłem się na pięć, studia skończyłem ze średnią 4.5 mimo że leciałem głównie na trójczynach, czasami czwórka wpadła. Piątek przez siedem semestrów wpadło tylko kilka. Niby nikt nie patrzy na średnią gdy aplikujesz gdzieś, ale mimo wszystko jest to jakaś satysfakcja.

0

W tym roku rozpoczynam studiowanie informatyki i z tego powodu zdarza mi się rozmyślać nad sposobem studiowania.

Błagam, załóżcie jeden uniwersalny temat dla studentów, gdzie będą mogli do woli czytać czy szukać porad nie zaśmiecając w ten sposób forum.

0
Spine napisał(a)

Spodziewałem się czegoś ciekawszego po tym przedmiocie. Miałem nadzieję, że będzie coś o sztucznej inteligencji w takim aspekcie, jak np. gra ucząca się grać w szachy sama od siebie (program wystawiony przeciwko sobie) albo od gracza - to by było dużo ciekawsze niż nic nie warte obliczenia.

A my na Politechnice Poznańskiej mieliśmy mniej-więcej coś takiego, co Ty byś chciał mieć. Bez matmy się nie obyło, ale wykorzystywaliśmy ją praktycznie. Na koniec semestru każdy miał do napisania SI do jakiejś gry planszowej -- mało znanej, coby nie można było ściągnąć gotowca. Ja pisałem do "Royal Carpet" (coś jak skrzyżowanie warcabów i Go). Moje SI dość szybko mnie w tę grę zaczęło miażdżyć. Oczywiście, do gry trzeba było dołączyć kilku(nasto) stronicowy raport z opisem rozwiązania, szacunkami odnośnie liczby przeliczanych ruchów, ścieżek itp. Projekt pisało się w dwie osoby, a niektórym chyba nawet -- co było prawdziwym ewenementem -- udało się połączyć ten projekt z przedmiotem Sieci Komputerowe: dodali do niego po prostu obsługę multiplayer po sieci.

Więc nie zawsze jest nudno!

bang_bang napisał(a)

Nie znam rynku, ale po forach widzę, że najczęściej poszukują programisty pod php/java/dotnet dlatego, gdyby ktoś mógł się podzielić informacjami na temat przyszłości jaką dają programiscie takie przedmioty jakie wcześniej wymieniłem to byłbym niezmiernie ucieszony

Rzeczywiście, zwykle te przedmioty za bardzo się w korporacjach nie przydają. Znacznie większe znaczenie ma inżynieria oprogramowania, ogarnianie frameworków. Panowanie nad dużymi, skomplikowanymi systemami. Nie tylko budowanie ich (zgodnie ze specyfikacją!), ale również utrzymywanie. Skalowalność i wydajność też mają znaczenie, ale rzadko trzeba tu samemu stworzyć/zmodyfikować/wykorzystać bezpośrednio jakiś zaawansowany algorytm. W przypadku aplikacji webowych -- a Java EE jest obecnie b. popularna w korpo -- zaprzęga się do pracy gotowe rozwiązania, np. jakiś system keszowania.

Super algorytmów tu zwykle nie ma.

Z drugiej strony: intuicja podpowiada mi, że ci algorytmicy gdzieś są potrzebni. Choć powiem uczciwie: jeszcze nie widziałem tego typu zespołu w korporacji. Choć przy wielkości tych firm równie dobrze mogliby pracować w teamie równoległym do mojego i nawet bym o tym nie wiedział.

Aha: mówisz o opłacalności i pieniądzach. Jeśli tylko możesz, NIE idź w PHP. Jest mało bardzo dobrych ofert dla koderów PHP. Próg wyjścia do języka jest niski, średni poziom umiejętności PHP-owców też jest b. niski, wymagania zwykle też, a więc zaróbki również. Są wyjątki, ale nieliczne. Tymczasem pracując w Polsce jako kontraktor Javy bez wielkiego problemu wyciągniesz kilkanaście tys. zł (nawet na rękę).

Ze studiami problem polega na tym, że one niemal nie uczą robienia praktycznych rzeczy. Będąc piątkowym studentem, ucząc się pilnie do przedmiotów, zdając dobrze egzaminy i spełniając wszystkie wymagania programów zaliczeniowych i nie robiąc nic innego, nie będziesz po studiach przygotowany do normalnej pracy. Nie będziesz znał używanych frameworków, a Twoja wiedza nawet odnośnie użycia niektórych języków (np. języki frontendowe w aplikacjach webowych: HTML/CSS/JavaScript) będzie po prostu żałosna. Studiujący z Tobą uczeń trójkowy, który interesował się tymi rzeczami we własnym zakresie, może znaleźć znacznie lepszą pracę niż Ty, bo będzie miał do niej znacznie lepsze kwalifikacje.

Sam papierek wielkiego znaczenia nie ma. Nie wiem kto na to patrzy w mojej korporacji. Może dział HR filtruje jakieś beznadziejne (wg nich) przypadki, ale jak ja kogoś przyjmuję na rozmowę, to skończona uczelnia ma minimalne znaczenie. Na pewno nikogo za brak tejże nigdy nie zdyskredytowałem. Mamy tu za to sito sprawdzające umiejętności. Rekrutacja jest wieloetapowa. Rzesze ludzi wykładają się na sprawdzianach umiejętności, gdzie mają do wykonania praktyczne (w miarę możliwości) zadania.

0

ODpowiadajac na Twoje pytanie co do tego co napisalem:
Przez podstawy rozumie to co kazdy programista powinien wiedziec, co to jest zlozonosc obliczeniowa, jak dzialaja struktury danych (wady, zalety, kiedy i jak uzyc), wzorce projektowe sie przydaja (jest to gdzies na studiach w ogóle? z tym ze trzeba pamietac o zdrowym rozsadku, wzorce nie zawsze maja sens). Podstawowoe konstrukcje jezykowe, obiektowosc i rzeczy z nia zwiazane itp. Jesli masz takie podstawy, bardzo szybko jestes w stanie nowe rzeczy zalapac (IMHO opanowanie C i C++ bardzo ulatwia pozniej przejscie na Jave czy C#, tylko zaznaczam ze to moja opinia z ktora nie kazdy musi sie zgodzic). To tak z grubsza, z drugiej strony informatyka teoretyczna i duza czesc matmy raczej sie nie przydaja (jesli potrzebujesz w jakims specjalnym zastosowaniu, naprawde mozna szybko sie nauczyc to co trzeba).

Co do wejscia na rynek pracy, pamietaj ze moze bedziesz kiedys chcial sie usamodzielnic, zalozyc rodzine, zwiedzic kawalek swiata i za darmo tego nie zrobisz (z samego doktoratu ciezko wyzyc). Do tego jesli wykonujesz jako prace cos co lubisz moze Ci to szybko zbrzydnac (znajomy uwielbial kryptografie dopki nie poszedl do firmy w ktorej zajmuje sie tym 40h w tygodniu).

0

Niespodziewałem się, że tak wielu opowie się za rozwiązaniem praktycznym, jakby tylko ono się liczyło w Polsce. Ciekawi mnie jak sytuację widzą, osoby, które czują chociaż ciut pociągu w stronę tych bardziej teoretycznych przedmiotów informatyki.

Ktoś, by mógł uznać, abym przestał. W końcu 0x200x20 powiedział, że na początku warto zadbać o dupochron, a potem celować w temat który się lubie tzn. swoją specjalizację. To samo poparł somekind podkreślając, że tak właśnie powinno wyglądać studiowanie.

Nie będę tego wątku prowadził w nieskończoność, ale chciałbym jeszcze usłyszeć zdanie osób, które są bardziej teoretykami. Jest ktoś tu taki? Jak to wygląda z ich perspektywy?

Poczytując tutejsze wątki akurat wibowit sprawia takie wrażenie marudy, jakby pogardzał "klepaczami". Ciekaw jestem jego zdania.

0
bang_bang napisał(a)

Ale nie rozumiem do czego zmierza te twoje gadanie, co chciałeś przedstawić?

Nie rozumiesz? Czy wydaje Ci się, że nie rozumiesz...?

Chciałem odpowiedzieć na Twoje pytania z punktu widzenia osoby jakoś tam doświadczonej w kierunku, w którym poszedłbyś niechętnie: kolesia, który NIE pisze nie wiadomo jakich algorytmów i który pracuje w korporacji.

Uważam też swoją pracę za fajną, nienudną i ambitną. Nie użyłbym określenia "klepacz kodu" do każdego programisty, który w swojej pracy nie używa zaawansowanej, akademickiej teorii. Takie stwierdzenie wydaje mi się w całkowicie nieuzasadniony sposób aroganckie, ale jeśli tak Ci będzie lepiej, to możesz sobie tak myśleć -- oczywiście nie wyrządzisz mi tym najmniejszych szkód, bo nie jesteś w stanie.

Potocznie, "klepaczami" nazywa się słabych programistów piszących słaby kod, który składa się na słabe systemy. W ździebko innej lidze są kolesie o silnej, inżynieryjnej wiedzy i umiejętnościach, którzy piszą złożone, skuteczne, pokonując co i rusz jakieś bariery typowo inżynieryjne i czasem -- owszem -- tworzącym pewne nowatorskie rozwiązania od podstaw. Ci kolesie równie dobrze mogą używać bibliotek i frameworków, jak i je tworzyć.

Doradzałbym mieć do nich szacunek -- podobnie jak i do (prawie) każdego człowieka, ktory w swojej dziedzinie jest dobry. Nadmierna arogancja może Cię zapędzić w kozi róg. Możesz mieć przeświadczenie, że jako algorytmik -- dobry czy słaby -- jesteś od "nich wszystkich" obiektywnie lepszy, ale po prostu nikt tego nie docenia i w ogóle...

Radzę to traktować jako dwie ścieżki, które obiektywnie są w zasadzie równoważne. Tak, Ty możesz zdecydowanie woleć jedną i może ona dla Ciebie będzie odpowiednia. Nie każdy natomiast musi myśleć tak jak Ty i mieć oczekiwania takie jak Twoje. Okay, może nie będzie on potrafił tworzyć zaawansowanych algorytmów, ale za to jeśli chodzi o inżynierię oprogramowania, będzie dużo, dużo lepszy od Ciebie (szczególnie jeśli będziesz klepał niesławny akademicki kod z gigantycznymi funkcjami i jednoliterowymi nazwami zmiennych ;) ).

Prezentuję tylko punkt widzenia kogoś, kto jest -- z racji wieku -- na dalszym etapie kariery niż Ty. Nie mam w sobie tyle arogancji żeby Ci mówić, jak masz robić. Decyzja jest Twoja.

bang_bang napisał(a)

Taki wylew tekstu nie ukazuje mi twego wniosku.

Jak wyżej. Nie ma u "wniosku" bo nie sądzę, że powinieneś słuchać tutaj ślepo twardej rady jakiegoś idioty z forum. I zapewne byś jej ślepo nie posłuchał, więc ja jej nawet nie daję. Oczywiste jest, w którym kierunku ja poszedłem i co uważam za słuszne. Mnie bardziej interesowały inne rzeczy niż algorytmy. Przy czym z algorytmów też mam pewną wiedzę, nie uważam ich za nudny temat, choć przyznam, że niemal nie korzystam w pracy z tych bardziej zaawansowanych. Nie żałuję podjętych decyzji.

Czy Ty powinieneś pójść w tym samym kierunku?

Skąd mam wiedzieć?

Na Twoim miejscu robiłbym dokładnie to, co Ty: szukał kolesi, którzy pracują jako "programiści-algorytmicy". Możesz się wręcz zapytać wykładowców na uczelni -- oni powinni takich znać. Czy wszyscy algorytmicy zostają na uczelni? A nawet jeśli, to jak u nich z pracą -- mają coś fajnego na boku?

Podpowiem Ci, że jedną z firm, gdzie algorytmików zdają się cenić, jest Google. A u nich chyba pracuje się całkiem nieźle, co? Może tam powinieneś celować?

0

Nie rozumiesz? Czy wydaje Ci się, że nie rozumiesz...?
A jak sądzisz co jest w tym do rozumowania, skoro opisujesz rzeczy wiadome wszystkim. Korporacja nie potrzebuje algorytmów, php ma złą sytuację, a papier się dla programisty nie liczy. Co w tej treści ma być dla mnie istotnego? Równie dobrze mógłbyś powiedzieć, że w nocy lepiej się programuje, bo jest spokojniej. Osobiście nie lubie czytać takich rozprawek, bo to świadczy, że osoba nie zwraca uwagi na to o co pytam.

Takie stwierdzenie wydaje mi się w całkowicie nieuzasadniony sposób aroganckie, ale jeśli tak Ci będzie lepiej, to możesz sobie tak myśleć -- oczywiście nie wyrządzisz mi tym najmniejszych szkód, bo nie jesteś w stanie.
Napisałem klepacz w cudzysłowiach, bo akurat wibowit ma tendencję do dzielenia programistów na naukowców i klepaczy. Moim celem nie było obrzucanie innych błotem. Poza tym, ku jasności, ty widzisz klepacza jako osobę mierną, która tworzy fatalnie soft. Natomiast w moim znaczeniu klepacz to osoba, która zawód programisty utożsamia z rutyną tworzenia tego samego. Fakt, możesz robić to zajebiście sprawnie i dobrze, ale nowości w tej pracy będą ograniczać się tylko do zmiany frameworka/języka. Nie uważasz, że to jest ociupinkę za nudne?

Prezentuję tylko punkt widzenia kogoś, kto jest -- z racji wieku -- na dalszym etapie kariery niż Ty. Nie mam w sobie tyle arogancji żeby Ci mówić, jak masz robić. Decyzja jest Twoja.
Udzielenie wskazówki nie jest chyba aroganckie, prawda? Tym bardziej, że o to własnie pytam.

0

Korporacja nie potrzebuje algorytmów

To akurat nie jest prawda. Google to korporacja, algorytmów jak najbardziej potrzebuje. Korporacje z dziedziny telekomunikacji potrzebują ludzi, którzy piszą algorytmy z dziedziny przetwarzania sygnałów. Nie wiem skąd pogląd, że korporacje nie potrzebują algorytmów.

Jeżeli chodzi o kwestie czy z hobby warto robić pracę to generalnie zależy tylko i wyłącznie od człowieka. Niektórym pasja przechodzi jak muszą to robić 40h w tygodniu, dla innych 40h w tygodniu to za mało i jeszcze poświęcają swoje weekendy na rozwijanie hobby. Warto spróbować w której grupie się jest gdyż ludzie z grupy drugiej są zazwyczaj znacznie bardziej efektywni no i dla nich praca to przyjemność a nie przykry obowiązek.

0

Jeżeli chodzi o pracę z algorytmami, to wiem, że takie oddziały badawczo-rozwojowe są w firmach w Polsce: ADB, Comarch, Google Polska, IBM Polska.
Na pewno jest tego więcej, ale myślę, że aby się dostać do takich ośrodków badawczych trzeba być naprawdę dobrym w tym co się zamierza tam robić.

0

Poczytując tutejsze wątki akurat wibowit sprawia takie wrażenie marudy, jakby pogardzał "klepaczami". Ciekaw jestem jego zdania.

Cholera, kolejny sobie założył temat o studiach. ATSD: Mój nick jest z wielkiej litery.

Na stronie uczelni, przejrzałem plan przedmitów. Z tej listy wyznaczyłem sobie część, która mnie interesuje i były to takie pozycje jak np. algorytmika, paradygmaty programowania, metody realizacji języków programowania, sztuczna inteligencja czy systemy ekspertowe.

Brzmią jak przedmioty z mojego wydziału (WMiI UJ). Jeśli tak, to możesz mnie zapytać na PW o opinię nt wykładowców :)

A wracając do meritum wątku:
Jak do tej pory pracowałem tylko w Comarchu i to dość krótko. Rozmawiałem jednak z pracownikami i znam opinie kolegów ze studiów, którzy też pracowali w Comarchu. Moja opinia nt Comarchu (załóżmy że to reprezentatywna firma klepaczy):

  • nie liczy się tam indywidualizm, ponadprzeciętne zdolności, no chyba, że się chce być magikiem wołanym przez kolegów, np "Pomóż mi z tym bo nie wiem jak to zrobić", czyli generalnie niewiele by się to różniło od odpowiadania na problemy na forum, no może oprócz tego, że rozwiązanie zobaczyłoby mniej osób,
  • często na wysokich stołkach są barany z długim stażem, np analityk czy jakiś tam team leader nie wiedział czemu wyszukiwanie w małej poindeksowanej tabeli jest niewiele szybsze od wyszukiwania w dwa razy większej poindeksowanej tabeli, albo inna sytuacja, hicior, analityk z kilkuletnim doświadczeniem nie znał różnicy pomiędzy ziarenkami stanowymi, a bezstanowymi w EJB (!) i jeszcze zarzekał się, że wymyślił dobrze architekturę. Kumpel, który znał EJB od kilku miesięcy najpierw go przekonywał, że trzeba zmienić lekko architekturę. Nie dotarło do pustego łba analityka, więc kumpel musiał zrobić coś w stylu programu proof-of-concept,
  • pracowałem tam trzy miesiące jako programista i tester. Generalnie moja robota polegała na przeszukiwaniu iluś tam pdfów w poszukiwaniu odpowiednich identyfikatorów, które trzeba wklepać do kodu, wyglądającego jak by komuś się Ctrl+V zaciął. Testowanie polegało na wrzucaniu CSVa kilka razy dziennie na serwer i odpalaniu obliczeń - wszystko ręcznie. Niestety format pliku CSV zmieniał się co kilka dni i musiałem wypytywać ludzi o nowe przykłady plików testowych, albo dopisywać sobie kolumny na czuja - nie było żadnych informacji nt tego co się zmieniło w systemie.
  • kod jest tworzony jak, jakby ludzie nie wiedzieli jak się używa Javy. Oprócz ogromnych rozmiarów powielania kodu (zamiast refaktoryzacji), był np taki kwiatek jak niby "przeciążanie" statycznych stałych w interfejsach. Nie wiem co za idiota to wymyślił, ale wystarczyłoby zaklepać jakieś singletony do tego. Cóż, "weterani" Javy często nawet nie wiedzą, że od Javy 1.5 istnieją generyczne metody (http://download.oracle.com/javase/tutorial/extra/generics/methods.html), więc jak tu oczekiwać dobrze napisanego kodu?
  • od refaktoryzacji to chyba stronią ile się da, nowe funkcjonalności mają być wdrażane natychmiast. Głębsza refaktoryzacja wymaga wstrzymania rozwoju aplikacji na jakiś czas, a to jest nie do pomyślenia dla "managerów". Systemy są rozwijane, aż do momentu, gdy ich rozwijanie staje się tak uciążliwe i gdy mają tak dużo błędów, że przynoszą więcej strat niż zysków. Potem na szybciora piszą nową wersję od nowa, biorąc pod uwagę pomyłki przy tworzeniu wcześniejszej wersji.

Ogólnie sama nauka Javy/ C# + frameworków spowoduje, że nie będziesz musiał martwić się o robotę. Z mojego punktu widzenia, to jednak tworzenie 1500-nej implementacji CRMa, który niewiele różni się od tych już napisanych jest totalnie nudne i nie satysfakcjonuje. Aby nie popaść w całkowitą rutynę można sobie zmieniać firmę co kilka lat.

Posad dla teoretyków jest mało, ale robota jest wg mnie ciekawa. Nie wiem jak wy, ale ja lubię wymyślać nowe algorytmy/ architektury lub ew szybsze implementacje. Nie lubię pisania na zlecenie, wg z góry ustalonego schematu, obojętne czy byłbym freelancerem czy podwykonawcą (czyt: pracownikiem) w jakiejś firmie, np Comarch. Albo napiszę inaczej: lubię wyzwania, które wymagają nieszablonowego myślenia i być może wielu nieudanych podejść, aby dojść do tego udanego. Jestem jednak dość utalentowany, w szkole wygrywałem konkursy matematyczne, np Kangur Matematyczny, a więc niejako jestem przystosowany do podejmowania wyzwań programistycznych/ matematycznych. Sami sobie oceńcie czy macie talent.

Znajomość matmy, algorytmów, a nawet znajomość wielu pojęć związanych z branżą nie jest koniecznie potrzebna do dobrego zarabiania. Mam kumpla, bez studiów (miał chyba już ze dwa podejścia, ale zrezygnował), który zajmuje się pozycjonowaniem oraz tworzeniem stronek w PHP, zarabia kilka kafli miesięcznie mając własną firmę, a np nie potrafi wyrzucić z tablicy duplikatów, albo nie wie co to są indeksy w bazie danych.

Somekind pewnie napisze, że mogę sobie algorytmy w rzyć wstawić, bo jemu to się nie przydaje. Może w takim razie niech się pochwali swoimi osiągnięciami, zainteresowaniami i np o czym pisze pracę magisterską. Ja interesuję się wieloma rzeczami, a z tych w których coś już dokonałem to np kompresja danych. Stworzyłem własne programy do kompresji danych, a teraz tworzę program (i pracę magisterską o nim) do współbieżnego sortowania blokowego - czyli sortowania używanego np do obliczania transformaty Burrowsa-Wheelera, która znowu służy jako krok w bezstratnej kompresji danych. Jest to pierwszy na świecie tego typu program; wcześniejsze albo wcale się nie skalowały, albo skalowały bardzo słabo. Mam na myśli skalowanie w obrębie jednego bloku.

Ostatni akapit nie jest na miejscu. Aż tak dobrze się teraz masz?

Dlaczego nie jest na miejscu? I co ma oznaczać to drugie pytanie?

Sporo gulgoczesz, a rzuciłeś właściwie tylko dwie myśli, niezbyt istotne. 1. Praca w oparciu o algorytmy jest ciekawa. 2. I bez algorytmiki da się sensownie zarabiać.

A jakie były twoje pytania?

Może to?

Reasumując:
Czy zajmując się bardziej teoretycznymi przedmiotami (tzn. fundamentem, który nie ulega szybkim zmianom), mam spore szanse znaleźć dobrze płatną pracę na stanowisku programisty?

Stanowisko programisty oznacza, że działasz w ramach schematu obmyślonego przez np jakiegoś tam analityka oraz oznacza, że nie pracujesz w ośrodku badawczym. A więc znajomość teorii raczej nie będzie się bardzo liczyć w oczach pracodawcy. Chociaż tobie mogłaby pomóc przy wytykaniu niedociągnięć/ błędów projektowych i naprawianiu ich. Jednak będąc na stanowisku programisty płacą ci za klepanie w miarę działającego kodu, a twoją pracę ocenia pewnie ten sam analityk, więc najlepiej nie wynurzać się tylko spełniać żądania analityka, żeby mieć przychylną opinię.

Wszystko zależy też od wielkości firmy. W małych firmach hierarchie są pewnie trochę "spłaszczone" i łatwiej się dogadać/ wymieniać poglądy. Z drugiej strony jednak małe firmy to małe możliwości awansu, a przez to potencjalnie niższe zarobki niż w korporacjach, a ty chcesz mieć dobrze płatną pracę.

0
bang_bang napisał(a)

Na stronie uczelni, przejrzałem plan przedmitów. Z tej listy wyznaczyłem sobie część, która mnie interesuje i były to takie pozycje jak np. algorytmika, paradygmaty programowania, metody realizacji języków programowania, sztuczna inteligencja czy systemy ekspertowe.

Te przedmioty są dla mnie cool, lecz nie chciałbym skończyć pod mostem. Przeczuwam, że będzie ciężko znaleźć pod to pracę. Zastanawiam się, czy dać sobie luz. To znaczy traktować takie przedmioty tylko jako hobby, a nie jako sposób na pracę.

Nie wiem czy gdzieś w pracy jest potrzebna wiedza z metod realizacji języków programowania czy sztucznej inteligencji, ale algorytmika na pewno będzie Ci potrzebna jeśli chcesz być programistą, a nie klepaczem kodu. Algorytmika uczy myślenia i rozwija umysł, więc lepiej się do niej przyłożyć.

0

Dlaczego nie jest na miejscu? I co ma oznaczać to drugie pytanie?
Przygadujesz somekindowi bez powodu, a następnie opisujesz jaki to z ciebie kozak, bo wygrałeś w podstawówce matematycznego kangura.

Stanowisko programisty oznacza, że działasz w ramach schematu obmyślonego przez np jakiegoś tam analityka oraz oznacza, że nie pracujesz w ośrodku badawczym. A więc znajomość teorii raczej nie będzie się bardzo liczyć w oczach pracodawcy. Chociaż tobie mogłaby pomóc przy wytykaniu niedociągnięć/ błędów projektowych i naprawianiu ich. Jednak będąc na stanowisku programisty płacą ci za klepanie w miarę działającego kodu, a twoją pracę ocenia pewnie ten sam analityk, więc najlepiej nie wynurzać się tylko spełniać żądania analityka, żeby mieć przychylną opinię.
Murzyńska działka, a jak to wygląda w tych ośrodkach badawczych?

0

Przygadujesz somekindowi bez powodu, a następnie opisujesz jaki to z ciebie kozak, bo wygrałeś w podstawówce matematycznego kangura.

  1. Było już pierdyliard takich wątków jak ten i w każdym somekind się wypowiadał, więc kontynuuję sobie tutaj kłótnie z somekindem. 2. Napisałem, że ogólnie miałem dobre wyniki w konkursach i że to jest raczej niezbędne do bycia rozkminiaczem.

Murzyńska działa, a jak to wygląda w tych ośrodkach badawczych?

Jak widać zawodowi badacze się na tym forum nie udzielają :P W końcu to 4programmers, a nie 4researchers :P Jak do tej pory znam relację tylko jednego badacza, ale to nie informatyka, a matematyka finansisty. Pracował on w jakiejś firmie nad nowym algorytmem czy też usprawnieniem algorytmu do automatycznej sprzedaży/ kupna akcji (high frequency trading itp). Nie rozumiałem wiele z tej matmy, ani żargonu. Koleś pracował w tej firmie nad tym projektem wraz z ilomaś tam innymi typami kilka miesięcy. Nie dokończyli projektu - mając skończone więcej niż połowę pokazali wstępne wyniki szefowi firmy. Szef nic wiele nie zrozumiał z prezentacji, rozkazał zakończyć projekt. Widać woli wydać x mln złotych na gotowca niż testować coś innowacyjnego. Ów badacz jednak nie daje za wygraną i planuje z kumplami z projektu dociągnąć ten projekt do końca na własną rękę.

Oczywiście jeden przypadek to za mało żeby wyciągać jakieś konkretne wnioski, ale przynajmniej widać, że bycie badaczem nie zawsze oznacza, że pozbywamy się frustracji. Tak czy siak, jest ciekawie.

0
  1. Było już pierdyliard takich wątków jak ten i w każdym somekind się wypowiadał, więc kontynuuję sobie tutaj kłótnie z somekindem. 2. Napisałem, że ogólnie miałem dobre wyniki w konkursach i że to jest raczej niezbędne do bycia rozkminiaczem.

Wydaje mi się, że pomyliłeś kolejność.
Niezbędne do wygrywania konkursów i ogólnie kumania wyższej algorytmiki jest bycie dobrym rozkminaczem.
Z kolei dobre wyniki w konkursach z nikogo nie robią dobrego rozkminacza.

0

Wydaje mi się, że pomyliłeś kolejność.
Niezbędne do wygrywania konkursów i ogólnie kumania wyższej algorytmiki jest bycie dobrym rozkminaczem.
Z kolei dobre wyniki w konkursach z nikogo nie robią dobrego rozkminacza.

A mi się wydaje, że jest w twojej wypowiedzi sprzeczność.

Jeśli A to wygrywanie konkursów, a B bycie rozkminiaczem to zdanie: "Niezbędne do wygrywania konkursów i ogólnie kumania wyższej algorytmiki jest bycie dobrym rozkminaczem." oznacza mniej więcej:
B => A (jeśli rozkminiacz to wygrywa konkursy)
~B => ~A (jeśli nie-rozkmniniacz to nie wygrywa konkursów)
A to oznacza różnoważność pomiędzy A i B, czyli A <=> B, a drugie twoje stwierdzenie temu zaprzecza.

0

Szef nic wiele nie zrozumiał z prezentacji, rozkazał zakończyć projekt

Jak zajechali szefowi technicznym żargonem, którego nawet sam nie rozumiesz to co się dziwić że im zamknęli projekt? :D
Managerom to się przedstawia jak korzyści będzie mieć firma z projektu, wskaźniki takie jak ROI itd. Ale jak ktoś się brzydzi wszelką praktyką taką jak rozmowa z klientami (w tym wypadku klient wewnętrzny czyli szef) to co się dziwić że ma potem frustracje?

0

Już od paru tematów obserwuję, że niektórzy tutaj ze stałych bywalców od jakiegoś czasu się obnoszą jacy z nich kur... naukowcy, analitycy, rozkminiacze, geniusze i Alberty Einsteiny. Polecałbym więcej samokrytyki i dystansu do siebie, bo pogląd niektórych pod tytułem "miażdżę całe to forum swoim tęgim intelektem" może was do lasu zaprowadzić.

0

020:
Nie rozumiem żargonu finansowego, bo się tym nie zajmuję. A korzyści są proste - zwiększony zysk z operacji na giełdzie. Bo do tego się ich algorytm sprowadzał. Być może ten badacz jest po prostu dupkiem, jeśli chodzi o charakter i go szef nie polubił. Bo na seminarium (tzn znam go tylko właśnie z tego seminarium) zgrywał ważniaka.

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