Materiały do nauki programowania

Tutaj będziemy zamieszczać materiały przydatne do nauki programowania - zarówno w celu rozwiązywania naszych zadań, jak i pisania aplikacji na własny użytek.

Pomocne przy zadaniu nr 1

Spis przydatnych komend, czyli krótka ściągawka;)

  • # -> Znak '#' rozpoczyna komentarz (program go nie wykonuje)
  • print() -> Wypisuje na konsolę swój argument (tekst lub zmienną)
  • zmienna1 = "Napis" -> Tworzy zmienną typu string o nazwie zmienna1
  • zmienna2 = 123 -> Tworzy zmienną typu całkowitego o nazwie zmienna2 i wartości 123
  • tablica = ["a", "b", "c"] -> Tworzy zmienną zawierającą tablicę z trzema stringami
  • len(zmienna1) -> Zwraca długość zmiennej tekstowej zmienna1 (w tym wypadku 5)
  • zmienna1[początek:koniec] -> Zwraca fragment stringu pomiędzy literami na pozycjach wyznaczonych przez indeksy początek i koniec (np.zmienna1[1:3] da “api”).
  • zmienna1.lower() -> Zwraca string napisany małymi literami (“napis”)
  • zmienna1.upper() -> Zwraca string napisany dużymi literami (“NAPIS)
  • W języku Python blok instrukcji, który ma być traktowany przez program jako pewna całość, należy oznaczyć za pomocą tabulacji (wcięcia)
  • for x in tablica: -> Wykona blok instrukcji dla każdego elementu tablicy (więc 3 razy)
  • while warunek: -> Wykona blok instrukcji do czasu, tak długo jak warunek logiczny będzie spełniony

Pomocne przy zadaniu nr 2

W tym zadaniu przyda Ci się zrozumienie, czym są i jak działają funkcje. Całkiem nieźle tłumaczy to ten fragment kursu (po polsku): https://www.learnpython.org/pl/Funkcje - może po jego przeczytaniu coś będzie jaśniejsze?

Jeśli nie, to zachęcamy Cię do przerobienia rozdziału 4 tego interaktywnego kursu: https://www.codecademy.com/learn/learn-python. Kurs jest w języku angielskim, ale nie martw się - znajomość angielskiego na poziomie 7. klasy powinna Ci tu wystarczyć.

Pomocne przy zadaniu nr 3

W zadaniu nr 3 pojawia się kilka nowych zagadnień. Bardzo przyda Ci się ich dogłębne zrozumienie - w którym pomóc Ci mogą poniższe materiały.

Tablice (czyli listy)

W tym kursie http://www.learnpython.org/pl/Tablice całkiem nieźle tłumaczą, o co w nich chodzi. Dodatkowo tutaj https://tutorial.djangogirls.org/pl/python_introduction/#listy znajdziesz kilka przykładów działania tablic. Polecamy też interaktywny kurs (po angielsku): https://www.codecademy.com/courses/learn-python/lessons/python-lists-and-dictionaries

Instrukcja if...else

Chyba najbardziej przystępnie wyjaśniona jest tu: https://tutorial.djangogirls.org/pl/python_introduction/#ifelifelse, ewentualnie w interaktywnym kursie (po angielsku): https://www.codecademy.com/courses/learn-python/lessons/conditionals--control-flow/

Pętla for

Proponujemy zajrzeć tu: https://tutorial.djangogirls.org/pl/python_introduction/#p%C4%99tle lub - uwaga, niespodzianka ;) - do interaktywnego kursu (po angielsku): https://www.codecademy.com/courses/learn-python/lessons/loops

Pomocne przy zadaniu nr 5

Listy składane

To dość ciekawa konstrukcja dostępna w języku Python - naszym zdaniem warto ją znać. Nie jest niezbędna do zrobienia zadania nr 5, ale jest w tym zadaniu kilka miejsc, w których można ją wykorzystać, bo świetnie się tam sprawdzi.

O listach składanych możesz przeczytać tu: https://www.learnpython.org/pl/Listy_skladane

Słowniki

Kolejną pomocną strukturą danych, która występuje w zadaniu są słowniki. Umożliwiają one przechowywanie różnych wartości dla różnych kluczy (np. różna częstość wystąpień dla każdej z liter w alfabecie). Więcej o słownikach możesz przeczytać tu: https://www.learnpython.org/pl/Slowniki

Operacje na tekście

Pomocną stroną może też się okazać lista metod do operacji na zmiennych tekstowych, można tam znaleźć bardzo ciekawe funkcje :), tutaj:  https://pl.python.org/docs/lib/string-methods.html

Pomocne przy zadaniu nr 6

Klasy

Klasy to jedna z podstawowych konstrukcji używanych w języku Python. 

O klasach możesz przeczytać tu:

W razie pytań zawsze możesz napisać maila na adres dresscode-pl@google.com – armia naszych programistów czeka aby odpowiedzieć na każde Twoje pytanie :)

Chcesz zobaczyć, co jeszcze potrafi Python?

Spodobało Ci się programowanie? Chcesz się rozwijać w tym kierunku? Poniżej zebraliśmy dla Ciebie materiały, które pozwolą Ci rozwijać umiejętności zdobyte w czasie rozwiązywania zadań DressCode. Pogrupowaliśmy linki tematycznie, według możliwych kierunków rozwoju.

W miarę możliwości staraliśmy się zebrać materiały napisane w języku polskim, ale niestety bardzo duża część kursów, samouczków i opisów jest dostępna tylko w języku angielskim. Zachęcamy Cię jednak do zajrzenia także i do nich - pamiętaj, że wcale nie musisz znać angielskiego perfekcyjnie, aby z nich skorzystać, wystarczy średni poziom :) Bardzo wielu programistów znało język angielski średnio lub całkiem słabo (zwłaszcza na początku przygody z programowaniem), a jednak korzystanie z anglojęzycznych materiałów daje od razu dwa efekty: pozwala zdobyć wiedzę dotyczącą programowania, a jednocześnie rozwija znajomość języka.

Zacznijmy od Pythona. Poniżej trzy świetne kursy z podstaw tego języka:

http://www.learnpython.org/pl - bezpłatny, częściowo interaktywny kurs w języku polskim

https://tutorial.djangogirls.org/pl/python_introduction/ - bezpłatny kurs tworzenia stron WWW z wykorzystaniem Pythona, w języku polskim 

https://www.codecademy.com/learn/learn-python - w większości bezpłatny, interaktywny kurs w języku angielskim

Kanały na Youtube o programowaniu stron www w Pythonie: https://www.youtube.com/user/dekoza https://www.youtube.com/user/PjakProgramowanie

Python ma też wiele innych zastosowań - na przykład jeżeli zamiast tworzenia stron WWW wolisz napisać jakąś grę, polecamy:
http://programarcadegames.com/
https://inventwithpython.com/chapters/ 

Tworzenie stron WWW

Kursy HTML i CSS

Jeżeli interesuje Cię tworzenie stron WWW i chcesz pogłębić wiedzę zdobytą w zadaniach konkursowych, polecamy zapoznanie się z poniższymi kursami. Opisują one wszystkie elementy, jakie mogą być użyte do stworzenia strony, wraz z prostymi przykładami:
http://www.kurshtml.edu.pl/html/zielony.html
http://www.kurshtmlcss.pl/kurs-html/

Kompendium wiedzy o wszystkich możliwych stylach CSS:
http://kodcss.pl/

Projektowanie stron:
http://webdesign.tutsplus.com/series/web-design-for-kids--cms-823

Interaktywny kurs HTML i CSS w języku polskim, przeznaczony szczególnie dla młodzieży:
https://pl.khanacademy.org/computing/computer-programming/html-css

JavaScript

HTML i CSS stanowią szkielet stron WWW, ale większość programistów chce, aby ich strony były bardziej dynamiczne i oferowały więcej funkcji. Do tego celu używany jest język programowania JavaScript - umożliwia on pisanie instrukcji programu, które wykonają się w przeglądarce internetowej użytkownika i w dynamiczny sposób zmodyfikują stronę www (na przykład wyświetlą coś dopiero po kliknięciu na przycisk na stronie, pobiorą dane z serwera i wyświetlą je użytkownikowi).

Poniżej znajduje się kilka kursów JavaScript:
http://shebang.pl/kursy/wszystko-jasne/
http://www.poradnik-webmastera.com/kursy/javascript/
https://pl.khanacademy.org/computing/computer-programming/programming
https://pl.khanacademy.org/computing/computer-programming/html-css-js

Kanał Youtube:
http://miroslawzelent.pl/

Polecamy także przejrzenie kursów dostępnych na CodeAcademy i SnoopCode. Kursy te są interaktywne i pozwalają na żywo przetestować to, co się pisze; są jednak prowadzone w języku angielskim:
http://www.codecademy.com
http://www.snoopcode.com/
https://www.udacity.com/ 

Tworzenie stron WWW - dalsze kroki

Jeżeli masz już opanowane podstawy HTML, CSS i JavaScript, być może zainteresują Cię poniższe materiały:

Bootstrap

Bootstrap to darmowy framework, czyli zestaw gotowych elementów i kawałków programów, wykorzystywany przez programistów do łatwiejszego tworzenia stron WWW. Dzięki niemu nie trzeba pisać podstawowych elementów (np. ładnie wyglądających przycisków, najczęściej spotykanych układów strony) od zera, ale można wykorzystać gotowe elementy.
http://getbootstrap.com/getting-started/
http://www.w3schools.com/bootstrap/

jQuery

jQuery to biblioteka do języka JavaScript (czyli zestaw różnych przydatnych małych funkcji, programów) ułatwiająca wykonywanie wielu rzeczy przy pomocy JavaScript
https://learn.jquery.com/
http://www.w3schools.com/jquery/