Studia po raz drugi - dylemat co wybrać

Studia po raz drugi - dylemat co wybrać
A7
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:6
0

Maturę zdałem rok temu dosyć przeciętnie Matematyka (94% podst 50% rozsz) Angielski (94% podst, 64% rozsz) zacząłem studia na AGHu kierunek mechanika i budowa maszyn totalnie nie przypadł mi do gustu (poszedłem ślepo za renomą wydziału i tym że kierunek ten zajmuje 1 miejsce w swojej tematyce w Polsce) i stwierdziłem że w tym roku pójdę za swoimi zainteresowaniami (od dziecka interesuję się komputerami zaczynając od ich składania, potem było modowanie telefonów a teraz podstawy programowania w C++. Na swoim kierunku byłem najlepszą osobą z informatyki więc myślę że ten kierunek kształcenia będzie słuszny.

Na chwilę obecną najbardziej rozważam :
Informatyka Stosowana wydział zarządzania - Uniwersytet Ekonomiczny w Krakowie (w rankingach niżej niż AGH, PK studia licencjacki nie inżynierskie aczkolwiek prawdopodobnie będą to studia dające mi największą swobodę w dokształcaniu się na własną rękę plus zdecydowanie preferuję finanse, ekonomię niż fizykę i chemie.

  • AGH IMIP Informatyka Stosowana lub GGiOŚ ( w rankingach najwyżej, raczej wątpliwe możliwości rozwoju na własną rękę, z racji chorych wymagań panujących na AGHu, studia inżynierskie
  • PK wydział Mechaniczny - (w rankingach cudu nie ma, studia inżynierskie mocna obawa że studia będą jak moje poprzednie zbyt mocno nastawione na mechanike)
  • Politechnika Rzeszowska Wydział Elektrotechniki i Informatyki - (o tej uczelni wiem najmniej niższe progi punktowe, studia inżynierskie na ciekawym wydziale)

I teraz pytania :

  1. Czy lepiej wybrać bardziej prestiżowy AGH i liczyć na to że wszystkiego co potrzebne nauczę się podczas studiów?
  2. Czy pracodawcy aż tak zwracają uwagę na prestiż ukończonej uczelni?
  3. Czy to prawda że podczas rozmowy o prace w większej renomowanej firmie jest się poddawanym serii testów które mają na celu sprawdzić posiadaną wiedzę?
  4. Czy różnica pomiędzy studiami inżynierskimi a licencjackimi będzie odczuwalna podczas poszukiwania praktyk/zatrudnienia po studiach?
  5. Co byście wybrali z tej listy?
  6. Jakieś dobre rady na co szczególnie położyć nacisk zwrócić uwagę przy studiowaniu informatyki?
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1
  1. Studia to nie szkoła podstawowa i uczysz się na nich sam. Co wiecej studia nauczą cie w dość szerokim zakresie różnych aspektów informatyki. Jeśli sam czegoś nie zgłębisz, to niewiele ponad te podstawy będziesz umiał. No i jeszcze raz podkreślam, mowa tu cały czas o studiach z nauki o przetwarzaniu informacji, a nie z inżynierii oprogramowania.
  2. Generalnie nie.
  3. A jak inaczej o_O Mają na wiarę przyjmować że będziesz dobrym pracownikiem?

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1
a7am napisał(a):
  1. Czy to prawda że podczas rozmowy o prace w większej renomowanej firmie jest się poddawanym serii testów które mają na celu sprawdzić posiadaną wiedzę?

Nie, mówiąc że umiesz biegle Jave, bazy danych, frameworki i od razu podpisują umowę na 15k
PS
To prawda :)


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
V-2
  • Rejestracja:prawie 8 lat
  • Ostatnio:9 miesięcy
  • Postów:671
0

Czy to prawda że podczas rozmowy o prace w większej renomowanej firmie jest się poddawanym serii testów które mają na celu sprawdzić posiadaną wiedzę?

Niestety. Na szczęście w firmach małych i średnich, o mniejszej renomie, nikt nie wpadł jeszcze na tak szatański pomysł.


Nie ma najmniejszego powodu, aby w CV pisać "email" przed swoim adresem mailowym, "imię i nazwisko" przed imieniem i nazwiskiem, ani "zdjęcie mojej głowy od przedniej strony" obok ewentualnego zdjęcia. W drugiej firmie której już pracuję mam palących marihuanę programistów [...] piszą kod "leniwie", często nie wysilając się, rozwlekając ten kod, unikając np. programowania funkcyjnego (mówię tutaj o lambdach w javie).
0
a7am napisał(a):
  1. Czy to prawda że podczas rozmowy o prace w większej renomowanej firmie jest się poddawanym serii testów które mają na celu sprawdzić posiadaną wiedzę?

Na internecie krążą ponure legendy że tak jest, ale nikt nie ma stuprocentowej pewności że to prawda. Trzeba się mieć na baczności.

Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
0
a7am napisał(a):
  1. Czy lepiej wybrać bardziej prestiżowy AGH i liczyć na to że wszystkiego co potrzebne nauczę się podczas studiów?
  2. Czy pracodawcy aż tak zwracają uwagę na prestiż ukończonej uczelni?
  3. Czy to prawda że podczas rozmowy o prace w większej renomowanej firmie jest się poddawanym serii testów które mają na celu sprawdzić posiadaną wiedzę?
  4. Czy różnica pomiędzy studiami inżynierskimi a licencjackimi będzie odczuwalna podczas poszukiwania praktyk/zatrudnienia po studiach?
  5. Co byście wybrali z tej listy?
  6. Jakieś dobre rady na co szczególnie położyć nacisk zwrócić uwagę przy studiowaniu informatyki?
  1. Wybierz uczelnię, której program bardziej ci odpowiada.
  2. Renoma skończonej uczelni może mieć jakieś znaczenie przy poszukiwaniu pierwszej pracy, ale przy każdej kolejnej liczy się przede wszystkim doświadczenie zawodowe i wiedza. W związku z tym na dłuższą metę to nieistotne jaką uczelnie skończysz, ani czy w ogóle skończysz.
  3. Tak, w większości firm dostajesz test lub wiele testów do zrobienia. Zazwyczaj są to testy związane z programowaniem, ale zdarzyło mi się również wypełniać testy na inteligencję i oceniające znajomość języka angielskiego. Są również firmy gdzie rekrutacja opiera się na rozmowie i/lub rekomendacjom. W trakcie rozmowy również może być weryfikowana wiedza.
  4. Może mieć to jakieś znaczenie dla niektórych osób, ale wątpię aby różnica była odczuwalna.
  5. Połóż nacisk na przedmioty nie związane z informatyką, ponieważ zazwyczaj tylko one stwarzają jakieś trudności.

Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
0
Haskell napisał(a):
  1. W związku z tym na dłuższą metę to nieistotne jaką uczelnie skończysz, ani czy w ogóle skończysz.

Bez ukończenia nie ma wykształcenia. Najgorsza Wyższa Gotowania na Gazie w Wąchocku ukończona da wyższe wykształcenie.

Sens wykształcenia negują tylko ci którzy go nie mają.

LG
Ja mam wykształcenie zdobyte na jednej z lepszych uczelni w kraju. Cenię sobie wykształcenie, jednak nie ma ono nic do rzeczy podczas szukania pracy. Wiem bo sam rekrutuję.
Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
0
Bury Jeż napisał(a):

Najgorsza Wyższa Gotowania na Gazie w Wąchocku ukończona da wyższe wykształcenie.

pracodawca tylko się zaśmieje, o ile zwróci w ogóle uwagę...

Bury Jeż napisał(a):

Sens wykształcenia negują tylko ci którzy go nie mają.

Współczuje absolwentowi Wyższej Szkoły Gotowania na Gazie w Wąchocku, że musi codziennie powtarzać sobie, że ta nauka miała jakiś sens.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
edytowany 1x, ostatnio: Haskell
mechanix
  • Rejestracja:około 9 lat
  • Ostatnio:19 dni
  • Postów:501
0
a7am napisał(a):

Na swoim kierunku byłem najlepszą osobą z informatyki więc myślę że ten kierunek kształcenia będzie słuszny.

Jestem na 3. roku MiBM@AGH i z tego co pamiętam na zaliczenie trzeba było np. napisać funkcję w C która liczy pole jakiegoś wielościanu, więc żadne to osiągnięcie. Na twoim miejscu poszedłbym na infe, mechanika to dosyć ciężki i zajmujący mnóstwo czasu kierunek. Ja dopiero na dziekance miałem czas na kodowanie i znalezienie pracy :D

edytowany 1x, ostatnio: mechanix
A7
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:6
0

Z mechaniki zrezygnowałem początkiem stycznia bo po prostu ten kierunek to nie było to teraz myślę co wybrać w tym roku

ZO
a mogłeś podejść do sesji kursy matematyczne byś przynajmniej miał zdane
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
2
Bury Jeż napisał(a):

Sens wykształcenia negują tylko ci którzy go nie mają.

Wiele wpisów na tym forum przeczy tej tezie.

0

Kiedy decydowałem się iść na studia i na stałe wyjechac do dużego miasta wielu kumpli w miasteczku pytało po co mi to.

Wyjechałem. Zmieniło się otoczenie i zmieniły się opinie.

0

Ziomeczki z wioski maja zawsze inne spojrzenie na swiat. Jak ja wyjechalem to mi nie wierzyli, ze poszedlem na studia, dla nich to byla abstrakcja, bo w wiosce byly 3 zaklady pracy i bylo wiadomo, ze trafia sie do jednego i tam jebie do smierci. Niestety, takie miejsca w Polsce sa. Wszyscy mieszkali w domach rodzicow, wiec kasa typu 2-2.5 koła na rękę za 10-11 godzin zapierniczania to byla spoko sytuacja, remont sie zrobi i osobne pieterko bedzie. Do dzisiaj pamietam zdziwienie kolegi, ktoremu odmowilem jak mi zalatwil robote (nie prosilem go o to) za 1850 netto na poczatek...

LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
2

Czy lepiej wybrać bardziej prestiżowy AGH i liczyć na to że wszystkiego co potrzebne nauczę się podczas studiów?

Nie ma znaczenia uczelnia, bo jak wspomnieli koledzy to jest Informatyka, a nie Frameworktyka. Generalnie programowanie zawiera się w informatyce, jednak informatyka to szerszy przedmiot niż pisanie oprogramowania. Jeśli chcesz studiować Informatykę to zachęcam, a jeśli chcesz po prostu pisać programy i znaleźć pracę, to nie warto iść na studia.

Czy pracodawcy aż tak zwracają uwagę na prestiż ukończonej uczelni?

W ogóle nie zwraca się. Ja rekrutuję na późniejszych etapach (przesiew beznadziejczaków robią HR-równy), Jak gość ma wykształcenie to spoko. Jak nie to też spoko - dlaczego no to czytaj niżej.

Czy to prawda że podczas rozmowy o prace w większej renomowanej firmie jest się poddawanym serii testów które mają na celu sprawdzić posiadaną wiedzę?

Tak, wynika to głównie z tego, że studia kończą lebiegi i sam dyplom nie oznacza jakości absolwenta i jego umiejętności. Często daje się też "zadanie" domowe. Jak ktoś ma GitHuba to to też jest wyznacznik, bo można ocenić jego pracę, aczkolwiek po obejrzeniu paru githubów "programistów", odrzuciłem ich kandydaturę.

Czy różnica pomiędzy studiami inżynierskimi a licencjackimi będzie odczuwalna podczas poszukiwania praktyk/zatrudnienia po studiach?

Jakieś dobre rady na co szczególnie położyć nacisk zwrócić uwagę przy studiowaniu informatyki?

Ucz się informatyki, a nie samego kodowania na pałkę. Potem przychodzą ludzie co piszą serio gówniany kod, a Inżynieria Oprogramowania kojarzy im się z rysowaniem UML i "po co to komu", natomiast drzewa i lasy kojarzą im się jedynie z harcerstwem (jedna babka, dostała zadanko, po czym jak je przeczytała, spytała się, czy my serio używamy drzew w pracy, po czym wstała i wyszła... )

Shalom
Generalnie programowanie zawiera się w informatyce programowanie może i tak, ale już inżynieria oprogramowania nie ;)
Sceptyczny Dinozaur
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:390
0
a7am napisał(a):

Widzę, że Kraków, więc bierz w ciemno KSW Majchrowskiego na jakiejś europeistyce czy czymś takim. Tysiące głupiutkich laseczek do wyboru do koloru, będziesz miał jak w raju na tej uczelni. Jakbym miał 25 lat mniej tak właśnie bym wybrał w ciemno.

Zobacz pozostałe 5 komentarzy
Ursu
Heh, przypomniał mi się temat 'Kobieta w branży IT', w którym paru samców alfa, podobnie jak Ty, interesowało się wyłącznie głupimi laskami (bo ponoć takie są prawa natury :D), a potem biadolili, że wszystkie laski są głupie, puste, bierne, miłych facetów friendzonują, a przy pierwszej możliwej okazji uciekną do dupka który ma je gdzieś :D
Sceptyczny Dinozaur
@Ursu to się logicznie kupy nie trzyma co piszesz, samiec alfa nigdy nie będzie biadolił, nie będzie miłym facetem, i nie da się sfriendzonować, więc tych samców alfa to mieliście jakichś gamma conajwyżej [może nawet lambda ;)]
Ursu
"samiec alfa nigdy nie będzie biadolił" - ROTFL
somekind
@Sceptyczny Dinozaur: mamy nadzieję, że jak będą się zbliżały następne walentynki, to weźmiesz udział w forumowej paradzie samców alfa. :)
Sceptyczny Dinozaur
@somekind e, nie interesuje mnie, za stary jestem - mogę wziąć udział w paradzie smoków, bo dinozaury to takie smoki w sumie :D
0
lukas_gab napisał(a):

(jedna babka, dostała zadanko, po czym jak je przeczytała, spytała się, czy my serio używamy drzew w pracy, po czym wstała i wyszła... )

Nie wiem czy kumam, ale, ona zczaiła że chodzi o drzewa jako struktury czy myslała o lesie :D?
w pierwszym przypadku jak faktycznie tego używacie to spoko, jak nie to zadanie z tyłka.

LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
1

Tam było bezpośrednio napisane, że chodzi o drzewo, więc nie było co czaić. Tak, używamy drzew jako struktur - w zasadzie to nie wiem, czy istnieje jakaś przyzwoita firma IT co tego nie robi ;) Z tym zaczajaniem to mamy też zadanko pod drzewa, ale nie jest tam napisane bezpośrednio, że to drzewo, i mniej niż połowa się orientuje, że to ma być na drzewie, a połowa z tych co się zorientują, to robi to nieoptymalnie typu obliczają wysokość drzewa dla każdego węzła nawet jak przez jakiś węzeł szła już droga oraz nie składują wyliczonych wartości ...

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8410
0

Tak, używamy drzew jako struktur - w zasadzie to nie wiem, czy istnieje jakaś przyzwoita firma IT co tego nie robi

Wydaje mi się, że tam gdzie się tylko klepie bez myślenia, o drzewach się nawet nie myśli XD Czasem się spotykam z poglądami programistów, którzy jak piszą już ileś lat pracują w zawodzie i chwalą się tym, że jeszcze nigdy nie musieli korzystać ani z drzew, ani z matematyki większej niż 2 + 2, i że w ogóle cała ta teoria jest do kosza, bo wg nich programista ma do wszystkiego gotowe frameworki i nic już nie musi więcej robić, tylko nauczyć się API frameworków.

Tak więc jak widać, można być bezmózgim klepaczem i się utrzymać ileś lat w zawodzie (szczerze mówiąc nie chciałbym pracować z takimi ludźmi, bo tacy ludzie zwykle sami nic nie potrafią zaimplementować, a ich kod zwykle jest nadmuchany, bo do prostych rzeczy ściągają tonę pluginów, frameworków itp. bo praktycznie nie umieją w ogóle programować, a jedynie potrafią wywoływać gotowe funkcje bibliotek/frameworków, czy dołączać gotowe pluginy).


edytowany 2x, ostatnio: LukeJL
LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
0

Racja, ale ja bym ich nie nazwał programistą czy informatykiem ;) Prawda, ze robi się frameworki, które wiele ułatwiają, ale my właśnie takie frameworki piszemy więc siłą rzeczy wymagamy więcej od kandydatów - wyobraź sobie framework, który jest pisany przez gościa, który trzęsie się na myśl o obliczaniu wysokości w drzewie ;) To ciekawe zjawisko, z nadmuchiwaniem programów, od jednego z partnerów mamy soft do monitorowania stacji - napisany w Ruby, plik binarny ma kilkadziesiąt MB, a wysyłanie sygnały keepAlive do serwera trwa ok 30 sekund i wsiada na 100% rdzenia w i5...

PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 6 lat
  • Postów:339
1

Wcześniej się nie podpisałem :)

Obaj macie rację, ale zważcie też kto co robi. Jeden faktycznie może klepać crudy- no i w sumie projektować zaawansowaną logikę biznesową bez potrzeby ruszania w ogóle drzew czy innych skomplikowanych struktur (jak by nie patrzył drzewo jest dużo bardziej skomplikowane niż np tablica), a drugi może używać tego do jakiś tam obliczeń. @lukas_gab powiedz mi ile webowców wykorzystuje drzewa itp? bierzesz framework, zaklepujesz co trzeba, oddajesz klientowi (pomijam oczywiście czy jest to robione zgodnie ze sztuką (testy itd ) czy nie). Powiedz teraz, że to nie są programiści, bo nie znają-nie korzystają z drzew?
Nawiązuje tu do webu bo to taka specyficzna i rozrośnięta odnoga programowania. Zapewne przy programowaniu gier itd algorytmy to podstawa.

@LukeJL, ale co w tym dziwnego skoro klepią większość tych samych rzeczy co miesiąc? no chyba, że mają styczność z takimi strukturami a sami robią to w jakiś dziwaczny sposób zrozumiały dla siebie.

Trzeba zrozumieć, że jeden woli klepać produkty wykorzystując pracę innych (biblioteki, frameworki itd) a inny woli robić te narzędzia i jedni i drudzy są potrzebni.

edytowany 1x, ostatnio: Pabloss
LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
2

Ok, ale np. w naszym systemie, korzystając z naszego frameworka, mechanizmy biznesowe tez są robione na drzewach. Np. zamówienia, gdzie zawierają się tam zestawy, komplety, produkty, a i same zamówienia mogą mieć wersje, korekty jak już była akceptacja etc. no i de facto mimo, że to na tabelkach jest to jest w strukturze drzewa. Webowcy powinni mieć to w paluszku, przecież tam wszystko kręci się wokół drzewa DOM ...też mamy wersje JS klienta systemu i tam też pisaliśmy sporo z drzewami, chociażby system filtrowania.

V-2
  • Rejestracja:prawie 8 lat
  • Ostatnio:9 miesięcy
  • Postów:671
0

Gadanie, że kandydata na programistę nie powinno się przepytywać z drzew, bo nie są stosowane w codziennej pracy to tak samo, jakby powiedzieć, że robienie testów sprawnościowych kandydatom do policji czy jednostek specjalnych jest bez sensu, bo na służbie nie robi się pompek ani przysiadów.

Nie robi się, ale trzeba być sprawnym fizycznie. I podobnie, abstrakcyjne zadania rekrutacyjne to takie pompki czy skoki przez skrzynię dla umysłu.


Nie ma najmniejszego powodu, aby w CV pisać "email" przed swoim adresem mailowym, "imię i nazwisko" przed imieniem i nazwiskiem, ani "zdjęcie mojej głowy od przedniej strony" obok ewentualnego zdjęcia. W drugiej firmie której już pracuję mam palących marihuanę programistów [...] piszą kod "leniwie", często nie wysilając się, rozwlekając ten kod, unikając np. programowania funkcyjnego (mówię tutaj o lambdach w javie).
edytowany 1x, ostatnio: V-2
LG
Wszystko prawda, tyle, że zadanka nie są abstrakcyjne, tylko realne przypadki aplikacji, a że idealnie pasują tam drzewa to inna sprawa. Tak naprawdę otaczają nas drzewa i często po nich chodzimy. Zobacz, np. strukturę stanowisk w korpo - czy to nie drzewo ?
V-2
No tak mówię trochę w uproszczeniu. Oczywiście całkiem realistyczna jest sytuacja, w której musimy obkodować sobie trawersowanie drzewa, ale np. z tym, żeby trzeba było od podstaw napisać algorytm sortujący to się nie spotkałem, zawsze załatwiają to biblioteki, co nie zmienia faktu że zawodowy programista powinien umieć to zrobić.
LG
No i drzewa są tak proste, że nie ufał bym w poprawność kodu osoby która nie potrafi na nich operować. Tak samo nie pozwolił bym operować siebie chirurgowi, który nie potrafi wkłuć wenflonu, bo normalnie tego nie robi tylko pielęgniarka.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
0

Bardzo lubię obserwować tych wszystkich kozaków i megawymiataczy algorytmów, z których większość mogłaby się zabić spadając ze swojego ego na swoje IQ.

Zwłaszcza lubię patrzeć na ich kod, złożony zazwyczaj z jednej funkcji na setki linijek, pełnej ifów, odpowiedzialnej zarówno za obliczanie, interakcje z użytkownikiem, jak i parę innych rzeczy. No, ale cóż, ważne, że jest dżewo, architektura przecież to bzdura.

Z drugiej strony, jakby takim pokazać definicję dżewa w takim Ocamlu, to by go nawet nie zrozumieli. No bo jak to, bez klamerek i wskaźników, to pewno nie ma prawa działać. :D

LG
Architektura to dodatkowe punkty, bo jednak zaczynamy oceniać zadanie, czy jest dobrana odpowiednia struktura i czy rozwiązanie jest w okolicach referencyjnego jeśli chodzi o złożoność, czy wykładniczo ta złożoność poleciała.... Jak zadanie prawidłowo się liczy, oraz wydajnościowo jest spoko to dochodzą też punkty za to, czy wydzielił warstwy, czy odpowiedzialności pozamykał w klasach etc. Szczerze to idzie troszkę w parze - jak ktoś zauważył, że to drzewo i prawidłowo po nim chodzi to i zazwyczaj kod w miarę ogarnięty, a jak syf algorytmie to i często w kodzie z 2 klasami
somekind
Syf w kodzie to często dzieło takich "algorytmików", co to zamiast użyć biblioteki sami napiszą swoją implementację każdej struktury danych, ale na sensowny podział na warstwy (a nawet na klasy i metody) nie ma co liczyć. I cały myk jest w tym, że jak mamy dobrą architekturę, ale zły algorytm, to bez problemu podmienimy algorytm na lepszy. Jak architektura jest do kitu, to niczego nie zmienimy, wszystko trzeba przepisywać. Dlatego taki zabawny jest ten dendrocentryzm. Optymalizowanie ma sens wtedy, gdy wydajność jest niezadowalająca, nie robi się tego na wszelki wypadek.
TD
@somekind: ale czy jedno wyklucza drugie? Co za problem umieć pisać dobrze kod a jednocześnie ogarniać chociaż te podstawy informatyki?
LG
Żeby użyć biblioteki to trzeba jeszcze wiedzieć jakiej i dlaczego. Jak ktoś użyje biblioteki która implementuje drzewa generycznie i potrafi po nich chodzić to jak najbardziej jest to prawidłowe rozwiązanie. Gorzej jak nie zauważy drzewa, wpieprzy wszystko do listy w jakikolwiek sposób nie łącząc a potem iteruje po niej 100 milionów razy. Ale rozumiem, że @somekind woli mieć program podzielony na warstwy i kiepsko spełnione zadanie programu... Z drugiej strony serio nie wyobrażam sobie człowieka co zrobi dobrą architekturę a nie zna drzew. Czepiasz się jak zawsze.
somekind
@tdudzik: myślę, że to jednak problem, bo niewiele jest takich osób. Z drugiej strony, tacy ludzie raczej nie mają problemu z ego, i nie muszą się przechwalać umiejętnością implementacji drzewa.
somekind
@lukas_gab - nie rozumiesz, po prostu algorytmika jest potrzebna w może 1% prac na rynku, a sensowna architektura w 100% zadań. A mikrooptymalizacje nie rozwiązują problemów nigdy, bo co z tego, że jakiś miszcz algorytmów przyspieszy przetwarzanie danych o 10ms, skoro problemem będzie komunikacja z bazą?
TD
@somekind: większość programistów kończy studia informatyczne, więc jakieś te podstawy powinni mieć, a jeżeli nie mają to niekoniecznie dobrze to o nich świadczy.
LG
Nie wiem, skąd masz dane na temat tego, że wiedza o algorytmach przydaje się w 1% prac. W zasadzie to mogę się jedynie uśmiechnąć. Niemniej od mida czy seniora z adekwatną pensją oczekuję, że będzie znał strukturę drzewa, w ogóle moim zdaniem to taka podstawa podstaw, że dziwię się, że o tym dyskutujemy. W moim zadaniach o wiele częściej wykorzystujemy wiedzę nt. struktur niż ten 1% całości i nadal uważam, ze powinno się sprawdzać tego typu rzeczy. Nie jest tez prawdą, że skupiamy się na mikro optymalizacjach - to Ty wciskasz takie coś w usta.
LG
A jeśli sądzisz, że gość, który nie zaimplementuje drzewa jest na tyle inteligenty, żeby zaprojektować redundantną architekturę, która może być dowolnie skalowana przez powielanie instancji aplikacji, czy będzie się martwił o wydajność bazy danych i czy nie jeździmy tam po naturalu to jesteś w błędzie. Jak ktoś nie jest wstanie wykazać się minimum inteligencji, żeby zrobić coś więcej ponad strukturę tablicy lub Listy na pałkę bo jest gotowe w c# to architektura to kojarzy mu się z ładnymi fasadami budynków.
somekind
@tdudzik, masz rację, podstawy trzeba mieć. Dlatego zabawni są ci wszyscy kozacy od algorytmów, którzy na co dzień mówią o "relacjach między tabelami". :)
somekind
@lukas_gab: wiem po prostu jak wygląda ta branża. W mobilkach, webówce, tworzeniu GUI, integracji i typowych biznesowych krowach, algorytmika na poziomie akademickim się nie przydaje, więc rozsądne firmy z niej nie pytają, bo zwyczajnie nie ma po co. Dobry programista- czyli taki, który poprawnie strukturyzuje kod, dba o jakość i wydajność, to jak będzie miał powód, to sobie wiedzę ze studiów przypomni i bez problemu to arcytrudne drzewo zaimplementuje. Twierdzenie, że jeśli ktoś nie pamięta czegoś, czego nie używał przez 10 lat, to jest głupi, jest mocno naiwne.
LG
Twierdzenie, że dobry specjalista ostatni raz spotkał się z drzewem 10 lat temu na studia jest naiwne, tyle w temacie.
TD
@lukas_gab myślę, że w tym też jest trochę racji, bo branża IT jest na tyle rozległa że można być specjalistą w bardzo wielu dziedzinach. I osobiście uważam, że powinno te podstawy sie znać, ale ważniejsza jest umiejętnośc pisania po prostu dobrego kodu. Myślę, że bardzo dużo projektów pisanych w nieodpowiedni sposób bardzo szybko zdaje się "unmaintainable". I to nie ze względów wydajnościowych a po prostu nikt nie wie co się w nich dzieje i dlaczego nie działa. Nie mam jakiegoś dużego doświadczenia, ale po rozmowie ze znajomymi widzę co się u nich w projektach dzieje
TD
Mój jest dopiero w początkowej fazie więc nie ma jeszcze tego problemu. Ale z drugiej strony słyszałem też o projekcie w którym dzieje się sporo obliczeń i tam rzeczywiście jest problem z wydajnością. Cechą wspólną tych projektów są seniorzy z trzema latami doświadczenia ;)
LukeJL
Zależy od języka. W wysokopoziomowych językach programowania jak JS czy Python, implementacja drzewa może być banalna, nic nie trzeba implementować, po prostu tworzy się obiekty czy tablice/listy (w Pythonie proste drzewo może wyglądać np. tak ('+', 20, ('*, 30, ('+',10, 20)) - kiedyś w kilka linijek kodu zrobiłem kalkulator w Pythonie (co świadczy o wysokopoziomowości tego języka). Mam wrażenie, że cała ta gadka o chwaleniu się umiejętnością implementacji drzew raczej dotyczy tylko C/C++, gdzie faktycznie implementacja samej struktury jest trudna.
LukeJL
No i drzewa mogą oznaczać bardzo wiele. Od prostego deep-first search do jakichś cudów (szczerze mówiąc ja np. tylko te proste rzeczy z drzew ogarniam, ale nie studiowałem żadnej informatyki czy nic takiego). W każdym razie nie chodzi (mnie przynajmniej) o znajomość drzew dla znajomości, tylko po to, że to się przydaje, tak samo jak wszystko inne - drzewa to narzędzia, czemu więc z nich nie korzystać w sytuacjach, gdzie mogą znaleźć zastosowanie? Takie hipsterstwo? ;) )
LukeJL
bo będę hipsterem i wyświetlając np. hierarchiczną strukturę (np. drzewko kategorii) na stronie internetowej w ReactJS nie będę używał drzewa. Mimo, że nawet od strony GUI to wygląda jak drzewo XD albo będę analizował statycznie kod nie korzystając z AST, bo korzystanie z drzew to tylko zawyżanie sobie ego :) Albo mając nieefektywne wyszukiwanie na liście z kilkudziesięciu tysięcy elementów, nie będę nawet próbować poeksperymentować czy zrobienie tego na jakimś b-tree nie byłoby dobrym pomysłem - bo przecież drzewa są tylko do podbicia ego ;)
LG
Jak będziesz miał dobra architekturę to nawet sortowanie bombelkowe jest jezzy. Tu nawet nie chodzi o jaranie się implementacja drzewa na wskaźnikach w C bo to się robi na pierwszym roku. Można używać drzew tak jak napisałeś w pythonie ale trzeba wiedzieć kiedy. Jak masz hierarchie i stosujesz listę i ja przeszukujeaz to nie oznaka skromności tylko brak znajomosci elementarnych struktur a na zadanie jest tydzień ... Jak masz stworzyć parser albo klasyfikator i zamiast drzewa jedziesz ifami to żadna architektura nie zaprzeczy ze jesteś imbecylem.
LukeJL
Ja tam właśnie od kiedy zacząłem się interesować analizą AST, bardzo często korzystam z ifów, ponieważ bardzo często chcę sprawdzić czy dany węzeł drzewa spełnia jakiś warunek (np. czy string oznaczający typ jest równy XYZ, jeśli tak to wywołaj funkcję taką).
LukeJL
ale: z drugiej strony np. boli mnie jak ludzie pisząc w ReactJS czy w Angularze piszą piramidki ifów do warunkowego wyświetlania komponentów w zależności od warunku - jak można zrobić proste drzewo decyzyjne (i nie mówię o niczym skomplikowanym, to jest do zrobienia w 15 minut, a do wytłumaczenia może w 3 minuty), i decydować bardziej automatycznie co ma się wyświetlić (a naprawdę, zawsze mnie wkurza pełno ifowej logiki w komponentach Reactowych czy Angular).
LukeJL
w sensie, że to nawet nie muszą być skomplikowane rozwiązania od strony algorytmów, ale coś super prymitywnego i prostego, a jednak coś co ułatwia pracę (przysłowiowy "jeden dziwny trick").
somekind
Twierdzenie, że dobry specjalista ostatni raz spotkał się z drzewem 10 lat temu na studia jest naiwne, tyle w temacie. - ja tak nigdzie nie stwierdziłem. Twierdzę jedynie, że dobry specjalista to osoba o wiedzy wykraczającej nieco poza jego specjalizację, otwartym umyśle oraz rozwiniętym myśleniu abstrakcyjnym, której nie trzeba godzinami tłumaczyć, że inne specjalizacje wyglądają inaczej niż jego, i że nie może doświadczenia zawodowego ze swojej branży przekładać na wszystkie inne branże, bo zapewne wyglądają one zgoła odmiennie.
somekind
@LukeJL: tu nie chodzi o nieużywanie drzew w ogóle, tylko o nadawanie im przesadnego znaczenia, dobieranie odpowiedniego narzędzia do celu, niewynajdowanie koła na nowo i brak mikrooptymalizacji.
LukeJL
Racja, zgadzam się. Nic nie powinno być cargo cultem, ani technologie, ani wzorce projektowe ani algorytmy... Myślę, że nie jest problem w stosowaniu pewnych praktyk, tylko w mózgach ludzi. Zresztą większość problemów w IT w ogóle to nie są problemy techniczne tylko problemy ludzkie, wynikające z postaw ludzi, a nie z tego, czy umieją coś zaimplementować.
LG
Dałem się złapać w pułapkę niebezpiecznych chorych ludzi, którzy w pierwszej kolejności sprowadzają rozmówcę do swojego poziomu a potem ... EOT zatem.
somekind
ROTFL :D :D :D Egocentryczny foch z przytupem. :D
Julian_
@somekind: ile najwięcej linijek liczyła taka funkcja makaronowa? w Mojej firmie ktoś pisał funkcje po kilka tysięcy linijek i jak miałem coś tam zmienić to wolałem napisać od nowa... a najgorsze, że odkrywał na nowo Amerykę prawie bez bibliotek. A w SQL robią skrypty na 3000 linijek zamiast podzielić na osobne procedury.
somekind
Obawiam się, że górny limit zależy tylko od "umiejętności" autora. ;) Znany mi rekord dla jednej funkcji to ok. 2kloc.
Julian_
2kloc czyli 2000 ?
Julian_
ha! :D mam gorzej :(
somekind
Masz Hindusów w projekcie?
Julian_
matematyków po doktoratach.
somekind
Wszyscy mają jeden? Jakie to hinduskie... ;)
Julian_
2 doktoraty na 4 przypadły
LukeJL
Tacy ludzie w ogóle nie powinni programować za pieniądze. Ale z drugiej strony jeśli każdy by siedział w swojej piwnicy i pisałby sobie tam spaghetti kod, możliwe, że nigdy nie nauczyłby się normalnie programować. Więc takie osoby (a myślę, że spora część programistów produkuje tego rodzaju spaghetti kod) zatrudniają się w firmach, żeby się uczyć programować już na żywych organizmach, i robią syf wokół siebie - ale za to może sami się czegoś nauczą i np. taki matematyk po doktoracie już w kolejnej firmie będzie pisał ładniejszy kod...
LukeJL
(może trochę zamotane, ale chodziło mi o to, że pisanie spaghetti kodu na produkcji wydaje mi się po prostu koniecznym etapem nauki wielu programistów, którzy wchodzą na rynek pracy)
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)