Maria napisal(a): Wg mnie porównywanie osiągnięć indywidualnych z grupowymi jest nie bardzo uprawnione.
Nie ma osiągnięć indywidualnych, nawet te które się takimi wydają są grupowe. Na nagrodę Nobla latami pracuje cały uniwersytet i państwo (i dlatego Polacy jej nie dostaną, choć zadziwiająco wielu się należy jak psu zupa).
Maria napisal(a): A po drugie - czy problem dotyczy ostatniego półwiecza, czy "od Połtawy"?
Odwoływanie się do etosu przedwojennego, jest równie zasadne jak odwoływanie się przez współczesnych Włochów do Rzymian. Pisać możemy o ostatnich sześćdziesięciu latach.
1.Ile % społeczeństwa powinno mieć wyższe wykształcenie? 2. Studia to : a) zaawansowane przygotowanie do bardziej wymagających zawodów b) miejsce formowania przyszłych elit c) podaj własną definicję ( punkty a i b są rozłączne)
yusek napisal(a): Już mówiłem, studia otwierają szufladki mózgu. Poszerzają możliwości.
Mało uprawniona generalizacja. Czasem otwierają, czasem zamykają, a czasem wręcz upośledzają. Odniosę się do informatyki, gdzie ludzie zaraz po studiach mają tak fatalne nawyki, że przez 3 do 6 miesięcy mają ujemną przydatność (statystycznie, czyli od 80% i nie uwzględniam tych, którzy łączą pracę ze studiami).
No bo informatyka nie jest działalnością teoretyczną a profesorowie niestety lubią poteoretyzować. Studia informatyczne powinny być krótkie i polegać wyłącznie na nauce języków programowania.
Informatyka, to obecnie pojęcie równie pojemne jak medycyna. Ja skłaniam się do uznania, że istnieje pewien wspólny rdzeń, tak na jeden rok nauki, a później powinny byś specjalizacje, tak na 2 lata. Część teoretyczna w informatyce istnieje, ale w Polsce jest kompletnie wtórna (tak było 10 lat temu, może obecnie się coś zmieniło). A no i informatyka to działanie zespołowe, bo potrzebujesz specjalistów z kilku obszarów. Czy odnosimy w niej sukcesy? Tak ale dominanta kapitału powoduje, że się nie rozwijamy samodzielnie (czyli wielcy gracze kupują nasze fajne biznesy i ... dzieje się różnie). Co do odnoszenia sukcesów, to generalnie przewrażliwienie na krytykę, za chwilę, uniemożliwi odnoszenie sukcesów z obawy przed porażką.
A co do studiów i zatrudniania w latach dziewięćdziesiątych i początkach tego tysiąclecia, to brano ogarniętych ludzi po adekwatnej filologii, bo zakładano, że ich się odpowiednio przeszkoli biznesowo. U wyższej kadry zarządzającej jakiś mało praktyczny kierunek studiów (filozofia, teologia, socjologia) był dużym plusem do kariery.
Maria napisal(a): A po drugie - czy problem dotyczy ostatniego półwiecza, czy "od Połtawy"?
Odwoływanie się do etosu przedwojennego, jest równie zasadne jak odwoływanie się przez współczesnych Włochów do Rzymian. Pisać możemy o ostatnich sześćdziesięciu latach.
Ekhm,... bezedura, Szanowny Kolego. Nie odwoływałam się do nawet do Kazia Wielkiego, co zastał Polskę drewnianą. A początek owych ostatnich lat sześćdziesięciu tworzyło jeszcze pokolenie przedwojenne i tuż powojenne. Inna mentalność, inna kultura, inna hierarchia wartości. Dlatego mógł do niego trafić i trafił przekaz Kardynała Wyszyńskiego.
Zaprotestowałam, bo zdanie
los napisal(a): Polacy nie zdają sobie sprawy, że zanim nastąpi sukces trzeba 10 lat zapierdalać w dzień i w nocy bez nadziei jakiejkolwiek nagrody.
jest na tyle ogólne, że nie wiadomo jakiego okresu i jakiej dziedziny życia dotyczy.
los napisal(a): Najgorzej jest ze współdziałaniem.
Międzywojnie, odbudowa kraju po wojnie, a potem wszelkie przerwy na wolność dobitnie temu przeczą. Nawet obserwacje ostatnich lat temu przeczą. Chyba, że ograniczymy się do sukcesów w nauce na miarę Nobla - tu faktycznie nie możemy się pochwalić. I trudno się dziwić. Napisałam o tym w poprzednim poście, nie mam zamiaru się powtarzać.
los napisal(a): No bo informatyka nie jest działalnością teoretyczną a profesorowie niestety lubią poteoretyzować. Studia informatyczne powinny być krótkie i polegać wyłącznie na nauce języków programowania.
Aaa, ratunku… I po takich studiach nie umieć policzyć złożoności obliczeniowej algorytmu? Nie znać algebry i matematyki dyskretnej, przez co nie rozumiejąc kompletnie współczesnej kryptografii sadzić takie dziury, żeby każdy hakier mógł wchodzić na oślep? Nie mieć podstaw algebry liniowej, bez której nie da się zrobić czegokolwiek w grafice komputerowej? Mogę tak do jutra wymieniać…
Maria napisal(a): Wg mnie porównywanie osiągnięć indywidualnych z grupowymi jest nie bardzo uprawnione.
Nie ma osiągnięć indywidualnych, nawet te które się takimi wydają są grupowe. Na nagrodę Nobla latami pracuje cały uniwersytet i państwo (i dlatego Polacy jej nie dostaną, choć zadziwiająco wielu się należy jak psu zupa).
No i owszem. Wcale mnie to nie dziwi. Lata całe walczyłam z postępującą degrengoladą edukacji i obserwowałam jeszcze większą degrengoladę polskich uczelni. A od wielu już lat, niestety, obserwuję skutki.
"Mnie uczyli jeszcze przedwojenni nauczyciele" - zdanie, którego już się prawie nie słyszy to synonim określenia - miałam szczęście trafić w dobre ręce. Mnie akurat uczyli Obecnie na ogół uczeń ma szczęście, jeśli trafi na dwa-trzy rodzynki w zakalcowatym cieście kadry nauczycielskiej. Zatem skąd niby miałyby być te sukcesy w nauce. Tylko że to nie świadczy o tym, że "Polacy ... itd."
A nt. zdemoralizowania środowiska naukowego można długie eseje pisać. Szkoda czasu. Na koniec zwrócę ponownie uwagę, z może zadam pytanie - od ilu to lat Polska jest krajem niepodległym i w pełni suwerennym?
polmisiek napisal(a): Nie znać algebry i matematyki dyskretnej [...]? Nie mieć podstaw algebry liniowej, bez której nie da się zrobić czegokolwiek w grafice komputerowej?
Moja edukacja w zakresie algebry trwała rok w wymiarze 2h wykładu i 2h ćwiczeń tygodniowo, matematyki dyskretnej był tylko semestr. Algebrą liniową posługuję się nieustannie (w odróżnieniu od jakiś 100% społeczeństwa) i nie odczuwam luk edukacyjnych.
polmisiek napisal(a): I po takich studiach nie umieć policzyć złożoności obliczeniowej algorytmu?
A ktoś kiedyś liczył (teoretyczną) złożoność obliczeniową algorytmu? To raczej tak jest, że jak chodzi szybko, to wszyscy się cieszą, nie?
ms.wygnaniec napisal(a):Część teoretyczna w informatyce istnieje, ale w Polsce jest kompletnie wtórna (tak było 10 lat temu, może obecnie się coś zmieniło)
Pan ode mnie z wydziału wymyślił poniższe ok.10 lat temu, użyte zostało m.in. w AV1, ale zasadniczo wszystko się na to przenosi.
Ja bym raczej powiedział, informatyka teoretyczna w Polsce od lat jest silna, UW + UWr + UJ przez ostatnie 20 lat naprodukował masę informatykow-teoretyków najwyższej klasy. Problem sprawić, żeby nie uciekli do USA, ale i tak część zostaje albo wraca.
los napisal(a): Moja edukacja w zakresie algebry trwała rok w wymiarze 2h wykładu i 2h ćwiczeń tygodniowo, matematyki dyskretnej był tylko semestr. Algebrą liniową posługuję się nieustannie (w odróżnieniu od jakiś 100% społeczeństwa) i nie odczuwam luk edukacyjnych.
Tyle wg mnie powinno wystarczyć. A algebra liniowa to ogólnie wszędzie w informatyce wyłazi, od grafiki po ten cały maszyn lerning.
Są też dziwne teoretyczne przedmioty o których mało kto słyszał wśród nie-informatyków a są bardzo przydatne w praktyce, jak teoria systemów rozproszonych albo teoria języków formalnych.
A ktoś kiedyś liczył (teoretyczną) złożoność obliczeniową algorytmu? To raczej tak jest, że jak chodzi szybko, to wszyscy się cieszą, nie?
Oczywiście, że tak. Dla małego zestawu danych może być szybkie, a jak później dostanie coś większego, to się zatka. A jak już się zatka, a autor nie wie, co to ta złożoność, to daremnie spędzi pół roku na jakichś mikrooptymalizacjach.
Można tez od razu rozpoznać znany problem NP-zupełny i wiedzieć, żeby od razu iść w heurystykę (chyba, że wiadomo, że N to co najwyżej 5).
I tak dalej. To są codzienne problemy programistów. Bez opanowania tego ciężko programować większe systemy. Jak zajrzysz do biblioteki standardowej dowolnego języka programowania to każdy algorytm albo struktura danych będzie miała podane złożoności. Dzięki temu można sobie policzyć, ile będzie miał nasz algorytm (ja zawsze w głowie z grubsza rachuję i wiem, kiedy coś muszę zmienić - tak, żeby trzeba było aż sięgać po kartkę to rzadko się zdarza).
A nawet nie tylko programistów. Z działki MSa, czyli baz danych: jak wiem, że indeks w bazie używa tablicy haszujacej, to wyszukiwanie pojedynczego elementu będzie szybkie (średnio czas stały), ale już zakresu (np. przez operator WHERE z nierównością) to będzie liniowo. A jak użyję indeksu z B-drzewem (lub jakiejś odmiany), to dla pojedynczego elementu będzie wolniej, bo logarytmiczne, ale dla zakresu będzie szybciej.
Głęboki OFF, ale tu jest odrobina braku precyzji, moje uwagi dotyczą MS SQL Server:
polmisiek napisal(a): Z działki MSa, czyli baz danych: jak wiem, że indeks w bazie używa tablicy haszujacej, to wyszukiwanie pojedynczego elementu będzie szybkie (średnio czas stały),
Dlaczego średnio? funkcja haszująca zwraca jednoznaczne (oczywiście, że prawie, bo dla takiej samej wartości klucza zwraca mapowanie pierwszego elementu listy) mapowanie do adresu przechowywania tego elementu (Dotyczy In Memory Objects, które mogą być materializowane na dysku również)
polmisiek napisal(a): A jak użyję indeksu z B-drzewem (lub jakiejś odmiany), to dla pojedynczego elementu będzie wolniej, bo logarytmiczne, ale dla zakresu będzie szybciej.
W przypadku MS SQL Server, koszt jest liczony dla ilości koniecznych odczytów mierzonych w stronach (8 kb), więc determinantą jest głębokość drzewa, która wynika z rozmiaru klucza. Wynika to z 2 powodów: - nazwa B-tree jest kompletnym oszustwem, bo to jest balanced search trees, a tak na prawdę to elementy każdego poziomu wskazują na swojego następnika i poprzednika (a nie tylko relacja rodzic-dziecko), czyli jest to graf! Elementy na 8 kb stronie są ułożone przypadkowo (kłamię, ale w dość subtelny sposób, więc przybliżenie jest wystarczające), a ich kolejność determinuje pomocniczy obiekt zlokalizowany na końcu strony. - operacje I/O (nawet wykonywane na pamięci) są dużo bardziej kosztowne niż operacje CPU dlatego dla szacowania kosztów wykorzystuje się odczyty, a złożoność algorytmu w mniejszym stopniu (to co napisałem, dla programistów, to jakieś herezje) Na koniec: SQL, w dowolnej implementacji, to algebra zbiorów i macierzy.
Co do informatyki teoretycznej sprzed 10 lat, to muszę uzupełnić wiedzę, bo może faktycznie błądzę (co by było miłe).
TecumSeh napisal(a): Dlaczego studia prawnicze cofają w rozwoju?
Bo żeby zaliczyć niektóre przedmioty musisz opanować bardzo duży materiał pamięciowo. A skoro musisz go opanować pamięciowo, to poświęcasz na to czas, a jak poświęcasz czas, to zakładając jakąś minimalną rezerwę na życie osobiste czy rozrywkę, nie masz czasu na ogólny rozwój.
A czy samo opanowanie tych przedmiotów nie rozwija? Nie rozwija, bo często po prostu musisz opanować na dużym stopniu szczegółowości jakieś przepisy, które do czasu aż zaczniesz samodzielnie zajmować się prawem to minie kilka dobrych lat i nawet jak nie zapomnisz, to wejdą jakieś nowelizacje.
"Cofają", tu Ignac wspomniał, że zależy z czego się startuje. Porównuję to właśnie z liceum, po pierwsze masz bardzo szeroki zakres przedmiotów, po drugie na opanowanie minimum programowego nie potrzebujesz aż tyle czasu, więc masz czas na samodzielne rozwijanie zainteresowań. Dam to na konkretnym przykładzie - w liceum czytałem 2-3 książki miesięcznie, na studiach max. kilkanaście rocznie (czyli średnio 1-1,5 / mies.), a i tak głównie w wakacje.
ms.wygnaniec napisal(a): 1.Ile % społeczeństwa powinno mieć wyższe wykształcenie? 2. Studia to : a) zaawansowane przygotowanie do bardziej wymagających zawodów b) miejsce formowania przyszłych elit c) podaj własną definicję ( punkty a i b są rozłączne)
c) wymóg formalny do niewymagających zawodów
W okolicach 2010 r. wprowadzono wymóg, by sekretarki i protokolantki w sądach miały studia. Jest to praca, w której wymaga się jakiego-takiego ogarnięcia biurowego, pisania na komputerze, obsługi raczej prostych wewn. systemów informatycznych i tyle. W księgach wieczystych trzeba obsługiwać nieco bardziej zaawansowany system, oczywiście na żadnych studiach i ta tego nie nauczą.
Maria napisal(a): A po drugie - czy problem dotyczy ostatniego półwiecza, czy "od Połtawy"?
Odwoływanie się do etosu przedwojennego, jest równie zasadne jak odwoływanie się przez współczesnych Włochów do Rzymian. Pisać możemy o ostatnich sześćdziesięciu latach.
Ekhm,... bezedura, Szanowny Kolego. Nie odwoływałam się do nawet do Kazia Wielkiego, co zastał Polskę drewnianą. A początek owych ostatnich lat sześćdziesięciu tworzyło jeszcze pokolenie przedwojenne i tuż powojenne. Inna mentalność, inna kultura, inna hierarchia wartości. Dlatego mógł do niego trafić i trafił przekaz Kardynała Wyszyńskiego Dlatego zadałem pytanie, bo wpływ ludzi ukształtowanych w przedwojennym etosie zanika w funkcji czasu (biologia plus dostosowywanie się do systemu). Ja, milcząco i może błędnie, założyłem, że los pisze o 'czasie współczesnym' .
Dla tablic haszujacych czas jest stały jedynie srednio bo jak będziesz miał same konflikty i wszystko wpadnie do jednego kubełka, to się zrobi liniowo. Żeby tak się stało oczywiście musiałbyś mieć albo pecha, albo ktoś złośliwy musiałby produkować dane (przed tym zabezpiecza się dodając randomizowany parametr do samej funkcji haszujacej).
Co do drzew: to, że elementy wskazują na następnika to tylko optymalizacja bez wpływu na zlozonosc. Bez takiego wskaźnika i tak łatwo przeiterowac po kluczach rosnąco, zwykle przeglądanie drzew in-order to robi. Wysokość drzewa zbalansowanego jest logarytmiczna, w bazach danych tylko podstawa logarytmu jest spora (dla złożoności znowu bez znaczenia) bo z dysku wypada czytać w blokach.
A ktoś kiedyś liczył (teoretyczną) złożoność obliczeniową algorytmu? To raczej tak jest, że jak chodzi szybko, to wszyscy się cieszą, nie?
Oczywiście, że tak. Dla małego zestawu danych może być szybkie, a jak później dostanie coś większego, to się zatka. A jak już się zatka, a autor nie wie, co to ta złożoność, to daremnie spędzi pół roku na jakichś mikrooptymalizacjach.
Akurat. Nikt nie liczy tylko bardziej światli zdają sobie sprawę z istnienia pojęcia i starają się używać algorytmów, których złożoność obliczeniowa wydaje im się mniejsza. Policzyć złożoność obliczeniową algorytmu to tak na oko tysiąc razy więcej pracy niż napisanie go. Żadna komercyjna firma na taką głupotę się nie zdecyduje.
@los Jak ktoś programuje bazy danych, systemy operacyjne, kodeki video to sensowne Big-Oh jest w stanie podać dla każdego napisanego fragmentu. Ale Big-Theta już nie trzeba.
A jak się robi stronki internetowe to zazwyczaj faktycznie, nie trzeba nic wiedzieć o złożoności. U nas w firmie sam się taki podział zrobił, ze na frontendzie są doszkoleni absolwenci różnych kierunków po kursie JavaScripta, a na backendzie 100% to ludzie po infie (ale widziałem w życiu wyjątki od tej reguły oczywiście).
Dla tablic haszujacych czas jest stały jedynie srednio bo jak będziesz miał same konflikty i wszystko wpadnie do jednego kubełka, to się zrobi liniowo. Żeby tak się stało oczywiście musiałbyś mieć albo pecha, albo ktoś złośliwy musiałby produkować dane (przed tym zabezpiecza się dodając randomizowany parametr do samej funkcji haszujacej).
1. No nie, jak wszystko wpada do jednego kubełka, to on staje się listą, więc jeżeli selektor wskazuje na indeks, to wszystkie elementy kubełka spełniają warunek, więc się kwalifikują, co zwiększa jedynie ilość odczytów, a nie koszt wyszukania, bo on pozostaje stały.
polmisiek napisal(a):Co do drzew: to, że elementy wskazują na następnika to tylko optymalizacja bez wpływu na zlozonosc.
Z olbrzymim wpływem, bo nierówności są zastępowane (warunek dotyczy wiodącej kolumny w indeksie) obszarowym skanem (np. like 'A%' jest zamieniane na >='A' AND < 'B') czyli znacząco redukujemy ilość odczytów, bo przechodzimy przez kolejne strony z poziomu liścia. Aby nie było, złożoność pozostaje taka sama, natomiast realny czas wykonania jest drastycznie inny.(pamietaj, że ja piszę o konkretnej implementacji SQL)
polmisiek napisal(a): Wysokość drzewa zbalansowanego jest logarytmiczna, w bazach danych tylko podstawa logarytmu jest spora (dla złożoności znowu bez znaczenia) bo z dysku wypada czytać w blokach.
No nie, sposób implementacji (bloki 8kb, bo węzły też są trzymane w taki sposób) powoduje, że to nie jest logarytmiczne (a dodatkowo trzeba uwzględniać narzut metadanych na każdy rekord, co dla 'krótkich' kluczy ma znaczenie, a dla 'długich' już mniejsze). Kolejne zaburzenie, to możliwość występowania kluczy na polach o zmiennej długości. Reasumując, teoretyczne wyliczenie nie ma kompletnie realnego znaczenia i raczej zaciemnia obraz niż go porządkuje. Co do twierdzenia losa, to nie tak, estymuje się kosztowność elementów (w bazach danych raczej nie złożonością) i na tej podstawie dokonuje się optymalizacji.
polmisiek napisal(a): @los Jak ktoś programuje bazy danych, systemy operacyjne, kodeki video to sensowne Big-Oh jest w stanie podać dla każdego napisanego fragmentu.
Ale na zasadzie "wydaje-mi-się" a nie licząc w sposób formalny złożoność obliczeniową. Sam jakiś czas temu sporo liczyłem numerycznie i zawsze wolałem algorytm rzędu N od N^2 a jak coś było e^N, to starałem się problem obejść. Niemniej w formalne dowody się nie bawiłem z obawy przez zwolnieniem z pracy i zostaniem uznanym za niepoczytalnego.
polmisiek napisal(a): @los Jak ktoś programuje bazy danych, systemy operacyjne, kodeki video to sensowne Big-Oh jest w stanie podać dla każdego napisanego fragmentu.
Ale na zasadzie "wydaje-mi-się" a nie licząc w sposób formalny złożoność obliczeniową. Sam jakiś czas temu sporo liczyłem numerycznie i zawsze wolałem algorytm rzędu N od N^2 a jak coś było e^N, to starałem się problem obejść. Niemniej w formalne dowody się nie bawiłem z obawy przez zwolnieniem z pracy i zostania uznanym za niepoczytalnego.
No to się zgadzam, ale żeby takie rozumowanie przeprowadzić to przedłużony kurs języka programowania nie wystarczy
Komentarz
Pisać możemy o ostatnich sześćdziesięciu latach.
2. Studia to :
a) zaawansowane przygotowanie do bardziej wymagających zawodów
b) miejsce formowania przyszłych elit
c) podaj własną definicję
( punkty a i b są rozłączne)
Odniosę się do informatyki, gdzie ludzie zaraz po studiach mają tak fatalne nawyki, że przez 3 do 6 miesięcy mają ujemną przydatność (statystycznie, czyli od 80% i nie uwzględniam tych, którzy łączą pracę ze studiami).
Część teoretyczna w informatyce istnieje, ale w Polsce jest kompletnie wtórna (tak było 10 lat temu, może obecnie się coś zmieniło).
A no i informatyka to działanie zespołowe, bo potrzebujesz specjalistów z kilku obszarów. Czy odnosimy w niej sukcesy? Tak ale dominanta kapitału powoduje, że się nie rozwijamy samodzielnie (czyli wielcy gracze kupują nasze fajne biznesy i ... dzieje się różnie).
Co do odnoszenia sukcesów, to generalnie przewrażliwienie na krytykę, za chwilę, uniemożliwi odnoszenie sukcesów z obawy przed porażką.
U wyższej kadry zarządzającej jakiś mało praktyczny kierunek studiów (filozofia, teologia, socjologia) był dużym plusem do kariery.
bezedura, Szanowny Kolego.
Nie odwoływałam się do nawet do Kazia Wielkiego, co zastał Polskę drewnianą.
A początek owych ostatnich lat sześćdziesięciu tworzyło jeszcze pokolenie przedwojenne i tuż powojenne.
Inna mentalność, inna kultura, inna hierarchia wartości.
Dlatego mógł do niego trafić i trafił przekaz Kardynała Wyszyńskiego.
Zaprotestowałam, bo zdanie jest na tyle ogólne, że nie wiadomo jakiego okresu i jakiej dziedziny życia dotyczy. Międzywojnie, odbudowa kraju po wojnie, a potem wszelkie przerwy na wolność dobitnie temu przeczą.
Nawet obserwacje ostatnich lat temu przeczą.
Chyba, że ograniczymy się do sukcesów w nauce na miarę Nobla - tu faktycznie nie możemy się pochwalić.
I trudno się dziwić. Napisałam o tym w poprzednim poście, nie mam zamiaru się powtarzać.
Aaa, ratunku… I po takich studiach nie umieć policzyć złożoności obliczeniowej algorytmu? Nie znać algebry i matematyki dyskretnej, przez co nie rozumiejąc kompletnie współczesnej kryptografii sadzić takie dziury, żeby każdy hakier mógł wchodzić na oślep? Nie mieć podstaw algebry liniowej, bez której nie da się zrobić czegokolwiek w grafice komputerowej? Mogę tak do jutra wymieniać…
Wcale mnie to nie dziwi. Lata całe walczyłam z postępującą degrengoladą edukacji i obserwowałam jeszcze większą degrengoladę polskich uczelni.
A od wielu już lat, niestety, obserwuję skutki.
"Mnie uczyli jeszcze przedwojenni nauczyciele" - zdanie, którego już się prawie nie słyszy to synonim określenia - miałam szczęście trafić w dobre ręce. Mnie akurat uczyli
Obecnie na ogół uczeń ma szczęście, jeśli trafi na dwa-trzy rodzynki w zakalcowatym cieście kadry nauczycielskiej.
Zatem skąd niby miałyby być te sukcesy w nauce.
Tylko że to nie świadczy o tym, że "Polacy ... itd."
A nt. zdemoralizowania środowiska naukowego można długie eseje pisać. Szkoda czasu.
Na koniec zwrócę ponownie uwagę, z może zadam pytanie - od ilu to lat Polska jest krajem niepodległym i w pełni suwerennym?
https://pl.m.wikipedia.org/wiki/Asymmetric_Numeral_Systems
Ja bym raczej powiedział, informatyka teoretyczna w Polsce od lat jest silna, UW + UWr + UJ przez ostatnie 20 lat naprodukował masę informatykow-teoretyków najwyższej klasy. Problem sprawić, żeby nie uciekli do USA, ale i tak część zostaje albo wraca.
Są też dziwne teoretyczne przedmioty o których mało kto słyszał wśród nie-informatyków a są bardzo przydatne w praktyce, jak teoria systemów rozproszonych albo teoria języków formalnych. Oczywiście, że tak. Dla małego zestawu danych może być szybkie, a jak później dostanie coś większego, to się zatka. A jak już się zatka, a autor nie wie, co to ta złożoność, to daremnie spędzi pół roku na jakichś mikrooptymalizacjach.
Można tez od razu rozpoznać znany problem NP-zupełny i wiedzieć, żeby od razu iść w heurystykę (chyba, że wiadomo, że N to co najwyżej 5).
I tak dalej. To są codzienne problemy programistów. Bez opanowania tego ciężko programować większe systemy. Jak zajrzysz do biblioteki standardowej dowolnego języka programowania to każdy algorytm albo struktura danych będzie miała podane złożoności. Dzięki temu można sobie policzyć, ile będzie miał nasz algorytm (ja zawsze w głowie z grubsza rachuję i wiem, kiedy coś muszę zmienić - tak, żeby trzeba było aż sięgać po kartkę to rzadko się zdarza).
A nawet nie tylko programistów. Z działki MSa, czyli baz danych: jak wiem, że indeks w bazie używa tablicy haszujacej, to wyszukiwanie pojedynczego elementu będzie szybkie (średnio czas stały), ale już zakresu (np. przez operator WHERE z nierównością) to będzie liniowo. A jak użyję indeksu z B-drzewem (lub jakiejś odmiany), to dla pojedynczego elementu będzie wolniej, bo logarytmiczne, ale dla zakresu będzie szybciej.
- nazwa B-tree jest kompletnym oszustwem, bo to jest balanced search trees, a tak na prawdę to elementy każdego poziomu wskazują na swojego następnika i poprzednika (a nie tylko relacja rodzic-dziecko), czyli jest to graf! Elementy na 8 kb stronie są ułożone przypadkowo (kłamię, ale w dość subtelny sposób, więc przybliżenie jest wystarczające), a ich kolejność determinuje pomocniczy obiekt zlokalizowany na końcu strony.
- operacje I/O (nawet wykonywane na pamięci) są dużo bardziej kosztowne niż operacje CPU dlatego dla szacowania kosztów wykorzystuje się odczyty, a złożoność algorytmu w mniejszym stopniu (to co napisałem, dla programistów, to jakieś herezje)
Na koniec: SQL, w dowolnej implementacji, to algebra zbiorów i macierzy.
Co do informatyki teoretycznej sprzed 10 lat, to muszę uzupełnić wiedzę, bo może faktycznie błądzę (co by było miłe).
A czy samo opanowanie tych przedmiotów nie rozwija? Nie rozwija, bo często po prostu musisz opanować na dużym stopniu szczegółowości jakieś przepisy, które do czasu aż zaczniesz samodzielnie zajmować się prawem to minie kilka dobrych lat i nawet jak nie zapomnisz, to wejdą jakieś nowelizacje.
"Cofają", tu Ignac wspomniał, że zależy z czego się startuje. Porównuję to właśnie z liceum, po pierwsze masz bardzo szeroki zakres przedmiotów, po drugie na opanowanie minimum programowego nie potrzebujesz aż tyle czasu, więc masz czas na samodzielne rozwijanie zainteresowań.
Dam to na konkretnym przykładzie - w liceum czytałem 2-3 książki miesięcznie, na studiach max. kilkanaście rocznie (czyli średnio 1-1,5 / mies.), a i tak głównie w wakacje.
W okolicach 2010 r. wprowadzono wymóg, by sekretarki i protokolantki w sądach miały studia. Jest to praca, w której wymaga się jakiego-takiego ogarnięcia biurowego, pisania na komputerze, obsługi raczej prostych wewn. systemów informatycznych i tyle. W księgach wieczystych trzeba obsługiwać nieco bardziej zaawansowany system, oczywiście na żadnych studiach i ta tego nie nauczą.
bezedura, Szanowny Kolego.
Nie odwoływałam się do nawet do Kazia Wielkiego, co zastał Polskę drewnianą.
A początek owych ostatnich lat sześćdziesięciu tworzyło jeszcze pokolenie przedwojenne i tuż powojenne.
Inna mentalność, inna kultura, inna hierarchia wartości.
Dlatego mógł do niego trafić i trafił przekaz Kardynała Wyszyńskiego Dlatego zadałem pytanie, bo wpływ ludzi ukształtowanych w przedwojennym etosie zanika w funkcji czasu (biologia plus dostosowywanie się do systemu).
Ja, milcząco i może błędnie, założyłem, że los pisze o 'czasie współczesnym' .
Dla tablic haszujacych czas jest stały jedynie srednio bo jak będziesz miał same konflikty i wszystko wpadnie do jednego kubełka, to się zrobi liniowo. Żeby tak się stało oczywiście musiałbyś mieć albo pecha, albo ktoś złośliwy musiałby produkować dane (przed tym zabezpiecza się dodając randomizowany parametr do samej funkcji haszujacej).
Co do drzew: to, że elementy wskazują na następnika to tylko optymalizacja bez wpływu na zlozonosc. Bez takiego wskaźnika i tak łatwo przeiterowac po kluczach rosnąco, zwykle przeglądanie drzew in-order to robi. Wysokość drzewa zbalansowanego jest logarytmiczna, w bazach danych tylko podstawa logarytmu jest spora (dla złożoności znowu bez znaczenia) bo z dysku wypada czytać w blokach.
A jak się robi stronki internetowe to zazwyczaj faktycznie, nie trzeba nic wiedzieć o złożoności. U nas w firmie sam się taki podział zrobił, ze na frontendzie są doszkoleni absolwenci różnych kierunków po kursie JavaScripta, a na backendzie 100% to ludzie po infie (ale widziałem w życiu wyjątki od tej reguły oczywiście).
Co do twierdzenia losa, to nie tak, estymuje się kosztowność elementów (w bazach danych raczej nie złożonością) i na tej podstawie dokonuje się optymalizacji.