bang_bang napisał(a)
A jak sądzisz co jest w tym do rozumowania, skoro opisujesz rzeczy wiadome wszystkim.
To były Twoje słowa skierowane do pewnego dość doświadczonego i co ważniejsze chętnie dzielącego się swymi doświadczeniami użytkownika, z którego postów naprawdę wiele wiedzy, zarówno konkretnie technicznej, jak i życiowej można wynieść. Jest dla mnie w zasadzie niewyobrażalne, żeby w jakikolwiek sposób gardzić tym, co on pisze.
@bang_bang, w ogóle masz dziwne podejście - założyłeś temat, a potem dziwisz się i masz pretensje, że ludzie w nim odpowiadają... Nikt Ci nie da przepisu na Twoje życie, co najwyżej może opisać swoje doświadczenia, a Ty możesz wyciągnąć z nich wnioski. Samodzielnie!
Bo jeśli wiesz już wszystko, to po co pytasz? A jeśli nie wiesz wszystkiego, to poczytaj to, co mają Ci do przekazania bardziej doświadczeni, zawsze się czegoś dowiesz.
Demonical Monk napisał(a)
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ć.
No właśnie... A przecież wśród użytkowników forum są np. ludzie piszący rozprawy doktorskie po angielsku i jakoś ani się tym nie chełpią, ani nie wywyższają.
W Kangurze brałem udział w LO, więc to nie jest konkurs tylko dla podstawówek. ;P Ale nie przypominam sobie, bym używał tam matematyki. W zupełności wystarczyła wyobraźnia, intuicja i zdrowy rozsądek. Umiejętność rozwiązywania zagadek pewno się przydaje, ale nie wiem czy robi z kogoś od razu naukowca.
W zasadzie, to nie wiem do końca, co znaczy to słynne już słowo "klepacz". Jedni twierdzą, że wiąże się to z nieambitną pracą, inni że z niską jakością kodu.
Sam pracowałem w niezbyt dużych firmach, i mam wrażenie, że zawsze jest tak, że część pracy jest żmudnym wykonywaniem tych samych czynności, zaś część jest tworzeniem czegoś nowego czy rozwiązywaniem problemów. Nie mam doświadczenia ani w pracy w ośrodku badawczym, ani w koroporacji, ale sądzę, że tam jest podobnie, może jedynie różne są proporcje klepania do myślenia, ale to pewno zależy i od projektu, i od pracownika.
Myślę, że nawet w nudnych CRMach można robić coś ciekawego. Np. dla mnie fajne było rozbudowywanie systemu, w którym większość formularzy do wprowadzania danych było generowane dynamicznie na podstawie konfiguracji zapisanej w bazie. Ja miałem dla niektórych pól dodać "kalkulatory" (w formie wywoływanych przyciskiem okien modalnych z polami do wprowadzania różnych wartości), oczywiście również generowanych dynamicznie na podstawie konfiguracji z bazy. Nic trudnego - powie ktoś, kto nigdy nie robił w webdevie, bo kombinowania było sporo. ;)
Obsługa operacji finansowych w CRMie też niekoniecznie musi być tak łatwa, jak niektórym się wydaje. Np. system wystawia użytkownikom faktury i nalicza klientom należności, a z drugiej strony przyjmuje dane o ich wpłatach (tu wchodzi np. integracja z systemami typu platnosci.pl). Problemem jest połączenie wpłaty klienta z fakturą, z uwzględnieniem umowy, której wpłata dotyczy (np. abonament za usługi dla firmy telekomunikacyjnej), z tymże klient może błędnie zatytułować przelew, może się spóźnić, może zapłacić z góry, może chcieć opłacić fakturę pro forma, itp. Algorytm do tego to co prawda kilka stron A4 opisujących tylko warunki w rodzaju "jeśli X to Y" oraz arytmetyka, ale implementacja tego wszystkiego tak, aby było transakcyjnie, wydajnie, a jednocześnie elastyczne i dawało się rozbudować zajęła trochę czasu.
A chyba najciekawszym projektem w mojej karierze było tworzenie systemu obsługi SMS dla banku. Wyglądało to tak, że szef zespołu zaprojektował architekturę, przydzielił zadania, ustalił zasady pracy i pisaliśmy razem z nim. Cel był prosty, system przyjmuje dane od użytkownika, zapisuje je do bazy, a poza tym buduje PDU i wysyła do SMSC. Do tego oczywiście obsługa odpowiedzi, raportów doręczenia (a w przypadku braku np. ponowienie wysyłki), długich SMSów (ponieważ wysyłane są faktycznie jako klika pojedynczych wiadomości, to każda z nich ma niezależne raporty). Oczywiście system musiał byś stabilny, umieć się podnieść, nie gubić danych (także w przypadku awarii), buforować wszystko w rozsądny sposób nie ze względów wydajnościowych, ale i np. na czas padnięcia sieci. W zasadzie norma dla czegoś, co ma działać i służyć praktycznym celom. System musiał być praktycznie bezbłędny, bo np. ponowne wysyłanie już dostarczonych wiadomości nie tylko wkurza klientów, ale przede wszystkim kosztuje.
Ja zajmowałem się głównie zagadnieniami najbliżej sieci, czyli przetworzeniem tekstu do wysłania na ramki SMS. Po kolei trzeba było: usunąć polskie znaki, skonwertować do siedmiobitowego kodowania GSM, umieścić te siedmiobitowe znaki w tablicy zwykłych bajtów, zbudować nagłówki i ramki, oraz wysłać po sieci. A potem odebrać odpowiedzi i przetworzyć w drugą stronę, zaś jeszcze wcześniej testy do tego wszystkiego.
Cóż, można tym gardzić, wszakże nie jest to nauka, ale implementacja była wyzwaniem.
Jedni wolą wymyślać i rozwiązywać problemy naukowe, inni wolą robić coś, z czego korzystają ludzie. To i to wymaga myślenia, to i to można robić dobrze i źle. Więc w zasadzie czemu ma służyć jakieś wywyższanie?
Wibowit napisał(a)
Było już pierdyliard takich wątków jak ten i w każdym somekind się wypowiadał
Zazwyczaj, zamiast zapamiętywać kto się gdzie wypowiada, warto skupić się na przyswojeniu treści. :)
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.
To trzeba było sobie zaimplementować uczący się algorytm wykrywający zmiany w systemie, jak na naukowca przystało, a nie wykonywać małpią robotę. ;P
Somekind pewnie napisze, że mogę sobie algorytmy w rzyć wstawić, bo jemu to się nie przydaje.
Ależ proszę Cię bardzo, nie krępuj się, jeśli sprawia Ci to przyjemność. :) Ja tylko mogę potwierdzić, że jeszcze żadna rzecz, którą włożyłeś sobie w zad mi się nie przydała. ;P
Jak rozumiem pijesz do moich poglądów odnośnie bezsensownie zorganizowanego nauczania informatyki w Polsce. Ja sobie takie wyrobiłem bazując z jednej strony na doświadczeniu swoim i swoich znajomych, a z drugiej na analizie sytuacji na rynku pracy oraz w szkolnictwie wyższym. Uważam, że uczelnie w Polsce nie produkują ani pracowników ani naukowców. Swój pogląd opieram na następujących (uogólnionych) kwestiach:
- Podczas pierwszych semestrów studiów studenci mają kursy poszczególnych działów matematyki.
- Studenci ostatnich lat czy też absolwenci nie pamiętają już tego, czego byli wówczas uczeni. Nic w tym dziwnego, ludzki mózg zapomina rzeczy których nie używa.
- Matematyka jest nauczana dość słabo, głównie przez to, że wielu wykładowców uprawia bełkot i ma tendencje do maksymalnego komplikowania nawet prostych spraw. Ponadto jest uczona "na sucho", bez odniesień do zastosowań w informatyce.
- Powyższe punkty sprawiają, że głównym efektem (chociaż może raczej jest to cel?) nauczania matematyki jest skreślenie części roku z listy studentów (Pytanie filozoficzne - czy królowa powinna zajmować się sprzątaniem?).
- Matematyka jest podstawą algorytmów oraz zagadnień związanych z modelowaniem, prognozowaniem, symulacją, optymalizacją, przetwarzaniem sygnałów, wnioskowaniem, sztuczną inteligencją, itd.
- 90% (tak strzelam, nie prowadziłem badań statystycznych) tychże studentów nie będzie potrzebowało w życiu rozbudowanego aparatu matematycznego ani też zagadnień wymienionych w poprzednim punkcie, bo będzie zajmowało się tworzeniem praktycznych rozwiązań, przy użyciu gotowych elementów (języków, frameworków, bibliotek).
- Pracodawcy potrzebują fachowców, którzy znają konkretne technologie i są ogólnie rozgarnięci, potrafią coś konkretnego zrobić.
- Uczelnie w efekcie nadmiaru teorii i niedoboru praktyki często produkują absolwentów niedostosowanych do rynku pracy.
- Ilość (i jakość) teorii wykładanej na uczelniach i tak nie powoduje, że studenci wybierają karierę naukową.
Ten sposób nauczania informatyki, a zwłaszcza udziału matematyki w niej jest bardzo nieefektywny i na pewno nieoptymalny.
IMHO rozwiązanie tych problemów jest dość łatwe - oddzielenie w pewnym zakresie edukacji pracowników od naukowców, tzn.:
- Około trzyletnie studia nastawione na naukę programowania, baz danych, inżynierii oprogramowania, sieci, technologii WWW, a ponadto kładące nacisk na praktykę (dużo wymaganych praktyk, np. 3 miesiące robocze, bez których studiów się nie zaliczy), projekty zespołowe, zagadnienia bezpieczeństwa i wydajności. Tak, aby student po ich ukończeniu nie tworzył baz danych bez kluczy i indeksów, nie trzymał w nich haseł plaintextem i nie używał notacji węgierskiej. Do tego ograniczenie matematyki i "przedmiotów pochodnych".
- Dalej ewentualne również około trzyletnie studia "naukowe", podczas nich reszta matematyki, zaawansowane algorytmy, optymalizacje, badania operacyjne, metody numeryczne, symulacje, eksploracja danych, metody SI, gry, itd.
Zalety takiego systemu byłyby takie, że ludzie, którzy nie będą czegoś potrzebowali nie byliby tego uczeni, za to byliby lepszymi potencjalnymi pracownikami, ale jeśli zechcieliby jednak pójść w kierunku nauki, to nie byłoby z tym problemu.
Natomiast na studiach naukowych również będzie łatwiej, chociażby dlatego, że wiedza matematyczna będzie świeższa i nauczana w konkretnych celach.
To tylko mój pomysł na rozwiązanie pewnych problemów, bazujący na moich osobistych doświadczeniach i obserwacjach, nikt się z nim zgadzać nie musi. Nie mam żadnego wpływu na szkolnictwo wyższe w Polsce, więc nie trzeba się obawiać jego wprowadzania. ;)
Może w takim razie niech się pochwali swoimi osiągnięciami, zainteresowaniami i np o czym pisze pracę magisterską.
Ostatnio pytałeś mnie o zarobki, teraz o zainteresowania, ciekawe kiedy poprosisz o zdjęcie...
Ja nie mam potrzeby się chwalić, w zasadzie nie lubię tego robić, poza tym pisanie drugiej pracy dyplomowej nie jara mnie już tak jak pierwszej, trochę wydoroślałem przez te dwa lata. Ale skoro jesteś taki ciekawy, to mogę Ci powiedzieć, że moja praca magisterska dotyczy prognozowania stanu organizmów żywych przy użyciu modeli procesów biologicznych opracowanych na podstawie niepełnych danych opisanych rozmytym, wielowymiarowym szeregiem czasowym.
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.
Z kompresją danych mam akurat tyle wspólnego, że kiedyś na projekt na studiach musiałem zaimplementować kompresję LZ77 (było to jeszcze w czasach, gdy informacje o algorytmach były w niekoniecznie łatwych do zdobycia książkach, a nie na Wikipedii). I nawet mi się udało, chociaż za jakość kodu i wydajność (a w zasadzie jej brak) nie powinienem zaliczyć. :D Ale całkiem ciekawa zabawa z tym była.
Wybacz laickie pytanie, ale gdzie w Twojej pracy magisterskiej jest nauka? Bo widzę raczej jedynie (niewątpliwie trudne i ciekawe) kwestie implementacyjne.
Tyle, żebym zawarł to to chcę zawrzeć. Lanie wody czy rozwlekłe powtarzanie znanych teorii jest bez sensu.
Pozytywnie mnie rozczarowałeś tym stwierdzeniem, bo byłem niemalże pewien, że skoro tak się chwalisz swoimi osiągnięciami i tematyką pracy, to należysz do tej grupy, dla której 200 stron to minimum przyzwoitości. :)
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ę.
Jako, że pracowałem w niezbyt dużej firmie, to w zasadzie moja praca wyglądała tak, że dostawałem (niezbyt jasną) specyfikację od gościa z działu handlowego i implementowałem ją od bazy danych po GUI, wcześniej oczywiście projektując wszystko. Czasem efekty były takie, że po paru miesiącach kierownik projektu (który zajmował się przez ten czas innym projektem) pytał mnie czemu w bazie jest dwa razy więcej tabel niż było ostatnim razem, a połowa opcji w menu jest mu nieznana. W zasadzie można (prawie bez naciągania) powiedzieć, że byłem analitykiem, projektantem, programistą i testerem. (I grafikiem czasami. :D) Nie nudziłem się raczej. A jeśli mi coś w projekcie nie pasowało, to pisałem maila do ludzi odpowiedzialnych za projekt, że jeśli nie przeprowadzimy refaktoryzacji, nie zaczniemy używać jakichś technologi/bibliotek i nie pozbędziemy się pewnych zaszłości jeszcze z czasów prototypu, to projekt nie osiągnie założeń jakościowych (ten zwrot działa na handlowców ;)) i wolałbym go dalej nie rozwijać, żeby nie było na mnie. I jakoś większość moich postulatów przechodziła.
Na razie tyle. ;)