Computer Science

I never took a computer science course in college, because then it was a thing you just learned on your own.

~ Mitchel Resnick

Osohozi?

Dawno, dawno temu za siedmioma firewallami, za siedmioma serwerami, żył sobie człowiek o imieniu John Washam. John był webdevem i chciał zostać inżynierem oprogramowania w Google'u. Nie pykło. Został inżynierem oprogramowania w Amazonie. Jak to zrobił? John wziął sobie na rok wolne od pracy i kodził. Kodził Computer Science. Swoje notatki opisał w tym repo.

Idąc w jego ślady, zgłębiamy tajniki computer science.

Jak to działa?

Ideą nie jest przerabianie kursu Johna na spotkaniach, ale omawianie swoich rozwiązań i wyjaśnianie problemów, które napotkaliśmy. A więc nie przychodzimy po to, żeby zostać nauczonym, ale po to, żeby uczyć się od siebie. Dzielimy się swoimi pomysłami i trudnościami, wymieniamy rozwiązania. Na spotkania przynosimy swoje implementacje, tutaj bez kodu to jak bez ręki.

Wymagania

  • umiejętność programowania w dowolnym języku
  • czas
  • samozaparcie

Z racji, że programujemy w C i C++ to umiejętność programowania w tych językach będzie pomocna, ale jeżeli programowałeś w czymkolwiek to szybko załapiesz ^^

Kiedy mogę dołączyć?

  • Od najbliższego rozdziału, jeżeli nie czujesz się pewnie w naszym obecnym temacie
  • Na konkretny rozdział, jeżeli interesuje Cię tylko jeden konkretny temat
  • Kiedy chcesz, to nie są studia, lol

Jak dołączyć?

  1. Wybierz co najmniej jeden:
    1. Obczaj co będziemy robić na najbliższym spotkaniu (wielokrotnie wspominany tutaj kanał #computerscience)
    2. Wybierz jeden z tematów już przerobionych
  2. Znajdź instrukcje w kursie
  3. Obejrzyj filmiki (jeśli są)
  4. Przeczytaj zasoby tekstowe (jeśli są)
  5. Zakodź to co pisze, żeby zakodzić w:
    • C, z testami
    • C++, z testami
    • C++ korzystając z biblioteki standardowej lub boost, z testami
  6. Umieść swój kod pod kontrolą wersji
  7. Wyciągnij wnioski (co było dla Ciebie trudne? co zostało rozwiązane w ciekawy sposób?)
  8. Sprawdź czy masz napisany kod pod kontrolą wersji, jeśli nie masz to przyps - wróć na początek
  9. Przyjdź na spotkanie i podziel się kodem i wnioskami!

Kurczaczki, wkęciłem/am się, co dalej?

  1. Zforkuj jedno z poniższych repo:
  2. Uporządkuj swój dotychczasowy kod i zarejestruj swoje postępy (oba powyższe repa podchodzą inaczej do tego tematu, wybierz to, które Ci najbardziej pasuje)
  3. Uśmiechnij się, jesteś na dobrej drodze!
  4. Powtarzaj co tydzień kroki z pierwszej sekcji korzystając z właśnie sforkowanego repa

Cykliczność

Spotykamy się co Piątek, w każdy Piątek o 19:00.

Obsługa wyjątków

Jeżeli będą jakieś zmiany (godziny, odwołanie wydarzenia w dany Piątek) to informacja na pewno pojawi się na #computerscience na Slacku. Postaram się, żeby pojawiła się pod wydarzeniem na Meetupie, ale nie obiecuję.

FAQ

Czemu akurat C i C++? Przecież X też jest świetnym językiem!

C jest:

  • prosty
  • kompilowany bezpośrednio do kodu maszynowego
  • ciągle szeroko wykorzystywany

Dzięki temu możemy łatwo wnioskować na temat algorytmów, które kodujemy. Bez warstw pośrednich, maszyn wirtualnych i interpreterów języka.

C++ dodaje do C mechanizmy języków wysokopoziomowych, zachowując pozostałe 2 cechy C. Dzięki temu możemy w trakcie kursu uczyć się dobrych praktyk i konceptów, których nie odnajdziemy w C.

Jeżeli X nie jest jakimś wykręconym, ezoterycznym lub zapomnianym językiem to Twoja implementacja będzie mile widziana jako dodatek.

Czemu 3 implementacje per temat?

Czaj to.

Uważam, że Y w tym kursie jest do dupy, co robić?

Nie rób tego. Zrób to inaczej. Zforku. Zrób pull requesta. Wymuś force pusha na upstreamie. Jesteś piękną, kreatywną istotą, kod jest na otwartej licencji, a źródła na Githubie.

Czy te testy są serio takie ważne?

Czaj to.

Nie mam kodu, co robić?

Ja rozumiem, zdarza się. Sam miałem taką sytuację po tym jak w święta padł mi dysk i jednocześnie zaczynałem pracę na full-time. Postaraj być pomocny/a dla tych, co kod mają, analizuj wnikliwie, zadawaj pytania. Ekstra punkty jak znajdziesz i pomożesz naprawić buga!

Jeżeli to się zdarza któryś raz z rzędu to ten kurs nie jest dla Ciebie. Uszanuj pozostałych uczestników i bez kodu się nie pokazuj. Ewentualnie zmień meetup. W Twoim przypadku proponuję dżudo. Jakieś łatwe dżudo.

Mała dygresja na temat nazwy

Kiedyś wydarzenie i kanał nosiły nazwę "Coding Interview University", natomiast doszliśmy do wniosku, że więcej lajków na mordoknidze i lepszą rozpoznawalność zapewni nam nazwa "Computer Science". Może i głupie, ale działa.

Repozytoria uczestników

  • computerscience.txt
  • ostatnio zmienione: 2020/09/24 20:27
  • (edycja zewnętrzna)