Aktywne Wpisy
Kodzirasek +141
Zobaczcie co mi koleżanka napisała.To w końcu chodzi o wygląd faceta czy o to czy jest miły lub nie?Polki mają tak zryty beret social mediami,że już nie ma ratunku… ja często jestem dla niej bezpośredni i pisze wprost,żeby zeszła na ziemię,bo życie to nie film a ta pisze że jestem chamski XD.
#rozowepaski #niebieskiepaski #pieklokobiet #pieklomezczyzn #zwiazki #tinder #badoo #hipergamia #blackpill #p0lka #przegryw
#rozowepaski #niebieskiepaski #pieklokobiet #pieklomezczyzn #zwiazki #tinder #badoo #hipergamia #blackpill #p0lka #przegryw
Atypical +11
Mirki jak widzicie osobę, która zarabia 4k netto, kupuje za wszystkie oszczędności plus zadłużenie kredytem jakąś hondę Civic TypeR z 2007 roku za 50k, a potem ładuje w nią kolejne 30k też w kredyt czyli felgi, pełne zabezpieczenie antykorozyjne, remont silnika i inne tego typu duperele i naciska mnie żebym zrobił tak samo, tylko poszedł w coś za +100k japońskiego bo przecież mam odłożone. Teraz jeżdżę ha tfu starą audi tt (o
###################
# WSTĘP
###################
Pod wpisem o C++ część osób życzyła sobie podobnego wpisu o tematyce Pythona. Niniejszym więc, prośbę tą spełniam.
Disclaimer - W tym wpisie NIE poruszam tematyki tworzenia aplikacji internetowych, bo najpierw się trzeba nauczyć samego języka.
###################
# JAK SIĘ NIE UCZYĆ
###################
Nie korzystać z materiałów które dotyczą wyłącznie pythona 2.5 lub wersji poprzednich
Ostrożnie korzystać z materiałów które dotyczą tylko pythona 2.6
###################
# TYLE PYTHONÓW
###################
Zanim przejdę do materiałów trzeba sobie kilka rzeczy uświadomić.
1. Istnieje wiele wersji Pythona
2. Najnowsze wersje Pythona (z serii 3.x) nie są kompatybilne wstecznie z serią 2.x
3. Seria 2.x jest ciągle popularniejsza niż 3.x
4. Część biblioteki standardowej jest wspólna, nowe części są dodawane tylko do serii 3.x
6. Część bibliotek dodatkowych działa tylko na 2.x, część działa na obu wersjach, a część tylko na 3.x
Teraz trochę wyjaśnień. Na czas pisania tego wpisu istnieją dwie główne wersje pythona:
2.7.8 i 3.4.2. Stało się tak dlatego, że pewnego pięknego dnia deweloperzy postanowili usunąć funkcje i elementy, które od dawna uznane były jako szkodliwe. Zreorganizować część biblioteki standardowej w pewnych miejscach, ujednolicić jej działanie w innych. Ogarnąć mnogość kodowań tekstu i wymusić na programiście dobre praktyki w przetwarzaniu właśnie takiego tekstu. I pozmieniać wszystkie rzeczy które sekretnie chcieli pozmieniać, ale wcześniej się bali.
To był pamiętny dzień 3 grudnia 2008 roku w którym…
WAIT...
WAIT...
WAT? ( http://img4.wikia.nocookie.net/__cb20140501150431/walkingdead/images/3/3d/Wat.jpeg )
Tak. Od 6 lat jest problem z której wersji korzystać i jeszcze nie minął. To powiedziawszy, wtedy było znacznie gorzej niż jest teraz.
Obecnie problem ten jest wyolbrzymiany ponad wszelkie granice godności.
Na dzień 14 października 2014 roku 165 z pośród 200 najpopularniejszych bibliotek do pythona wspiera Pythona 3. Z pozostałych 35, część nie jest już rozwijana bardzo długo (nie żyją) więc i tak nie należy ich używać, część ma lepsze zamienniki (które wspierają Pythona 3), więc należy używać tych zamienników, a część po prostu nie ma zamiaru nigdy przejść na Pythona 3, bo nie.
Liczba bibliotek wspierających Pythona 3 przekroczyła 4000, więc śmiało można mówić, że sytuacja z bibliotekami do Pythona jest już bardzo dobra.
Python 3 ma też bardzo wiele usprawnień, drobnych zmian zwiększających przyjemność kodowania każdego dnia oraz nowych bibliotek otwierających nowe możliwości.
A będzie tylko lepiej.
TLDR Jeżeli jeszcze się nie zorientowaliście - jeżeli ktoś teraz zaczyna naukę Pythona, powinien zdecydowanie zaczynać od wersji 3.4.2
Ewentualne przejście z wersji 3 na 2 (jeżeli ktoś by was kiedyś zmusił) nie będzie wcale tak strasznie bolesne. Są biblioteki (nawet takie wbudowane w wersję 2.7.8) które pomagają pisać kod bardziej kompatybilny i podobny do wersji 3. Na dzień dzisiejszy trzeba (w pracy) znać i wersję 2.7 i 3.4, ale możliwe, że gdy dojdziecie do tego etapu rozwoju/kariery to takiego wymagania już w ogóle nie będzie.
###################
# JAK SIĘ UCZYĆ
###################
W C++ był generalnie wybór i jak ktoś się bardzo uparł to mógł uczyć się tylko po polsku. W Pythonie teoretycznie taki wybór istnieje, ale robisz sobie jeszcze większą krzywdę ucząc się po polsku niż w przypadku C++. Więc albo uczysz się po angielsku, albo strzelasz sobie w stopę. Jak również w drugą stopę, kolana i lewy łokieć.
Chciałbym również napisać na początku, bo co mniej ogarnięci gubili się chyba w poprzednim wpisie (o C++) i zarzucali mi rzeczy które nie były prawdą:
Samo czytanie książek i oglądanie screencastów nie uczyni z nikogo programisty, a nawet nie nauczy dobrze składni. Trzeba, absolutnie i kategorycznie, dużo programować (przeklajanie kodu się nie liczy). Trzeba realizować swoje projekty i analizować kod napisany przez innych programistów.
1. Zacznijmy od podstaw:
Wybór pierwszej książki:
http://www.amazon.com/Learning-Python-Edition-Mark-Lutz/dp/1449355730/
to podstawowa pozycja, dobra, do nauki Pythona. Jednocześnie uczy/pokazuje Pythona 2 jak i 3. Jeżeli ktoś chce mieć, w miarę, wszystko w jednym miejscu, to warto się w tą książkę zaopatrzyć. Ważne żeby to było wydanie 5, a nie wcześniejsze.
http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282418/
Ci którzy znają już jakiś język bardzo dobrze lub studiują informatykę mogą chcieć zamiast książki Lutza wybrać tą pozycję. Jest krótsza, zwięźlejsza i tłumaczy znacznie mniej, szczególnie rzeczy podstawowych. Wydanie drugie zostało zaktualizowane na potrzeby Pythona 3.
http://inventwithpython.com/
Jeżeli jesteś #cebula i nie chcesz wydać ani złotówki na pierwszą książkę, jest dla ciebie nadzieja. Al Sweigart napisał książki uczące programować w Pythonie przy okazji tworzenia prostych gier lub poznawania podstaw kryptografii. Oprócz sprzedawania ich na Amazonie, udostępnia je też za darmo na swojej stronie.
Pozycje obowiązkowe (numer 2, 3 i 4):
http://www.amazon.com/Python-Cookbook-David-Beazley/dp/1449340377/
To jest książka która powinna się znaleźć u każdego na półce niezależnie od obranej drogi nauki. Pozycja absolutnie obowiązkowa. Zawiera tonę (kilkaset?) gotowców, podzielonych na kategorię z wyjaśnieniem jaki problem rozwiązują oraz dlaczego tak a nie inaczej. Wydanie trzecie, wspiera oczywiście Pythona 3.
https://www.jeffknupp.com/writing-idiomatic-python-ebook/
Ebook z kategorii obowiązkowych. Uczy jak pisać kod uważany za Pythonowy i unikać szkodliwych kalek np. z C++. Jest wersja dla Pythona 3.
http://www.amazon.com/Python-Practice-Concurrency-Libraries-Developers/dp/0321905636/
Dobre praktyki, wzorce projektowe, programowanie współbieżne. Warta każdej złotówki.
Tyle jeżeli chodzi o pozycje obowiązkowe, jest jednak jeszcze parę ciekawych pozycji, które mogę polecić:
http://learnpythonthehardway.org/book/ - darmowa wersja książki złożonej z praktycznie samych ćwiczeń
http://anandology.com/python-practice-book/index.html - jeszcze więcej ćwiczeń
http://www.amazon.com/Python-3-Object-Oriented-Programming/dp/1849511268/ - książka ucząca (i skupiająca się tylko na tym) koncepcji programowania obiektowego na konkretnych przykładach Pythona 3
http://shop.oreilly.com/product/0636920032519.do - pozycja w trakcie tworzenia, zapowiada się na dobrą książkę o zaawansowanym pythonie.
Znajomość języka to jednak nie wszystko i jeżeli chcesz być ogólnie kompetentnym programistą polecam poniższe książki:
Algorytmy:
http://www.amazon.com/Introduction-Algorithms-Edition-Thomas-Cormen/dp/0262033844/
http://www.amazon.com/Algorithms-4th-Edition-Robert-Sedgewick/dp/032157351X/
Wzorce obiektowe:
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/
Bazy danych:
http://www.amazon.com/Database-Design-Mere-Mortals-Hands-/dp/0321884493/
http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557/
Pozycje nieobowiązkowe, ale najdogłębniejsze - http://www.amazon.com/C.-J.-Date/e/B000AQ6OJA/
Dobre praktyki i inne:
http://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/
http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/
http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/
http://www.amazon.com/The-Mythical-Man-Month-Engineering-Anniversary/dp/0201835959/
Nie trzeba przeczytać wszystkiego (ale MOŻNA), niemniej należałoby przeczytać przynajmniej po jednej książce z każdej grupy.
2. Video (i inne):
Screencasty / kursy video potrafią sporo pomóc, nie korzystaj wyłącznie z nich, to po prostu kolejna pomoc naukowa.
http://shop.oreilly.com/product/110000448.do - Dobra seria filmów dla bardzo początkujących, świetny materiał do oglądania na zmianę z czytaniem pierwszej książki i eksperymentowaniem z pierwszymi programami.
http://learnpythonthehardway.org/ - jest książka złożona z praktycznie samych ćwiczeń oraz seria screencastów pokazujących rozwiązania tych ćwiczeń.
http://shop.oreilly.com/product/110000667.do - wstęp do algorytmów z użyciem pythona, należy uważać - prezenter pisze sporo kodu który jest uważany za nie-pythoniczny
http://www.pluralsight.com/tag/python - wiele godnych uwagi serii screencastów ( między innymi uczących podstawowego i zaawansowanego pythona, pisania aplikacji GUI w Qt), ale najważniejsza z nich:
http://www.pluralsight.com/courses/python-developers-toolkit - to bardzo krótka seria uczący najważniejszych i niemal niezbędnych każdemu programiście pythona narzędzi
Filmy z ostatnich konferencji (dużo tego, każdy znajdzie coś dla siebie)
https://www.youtube.com/playlist?list=PLBGl1tVyiWQSVwxne3yOH79uaSqgbnCqL - Kiwi Pycon 2014
https://www.youtube.com/playlist?list=PLE7tQUdRKcybbNiuhLcc3h6WzmZGVBMr3 - Filmy z DjangoCon 2014
https://www.youtube.com/channel/UC45KSayx_kwQAnhpaPAuVkw/videos - Filmy z PyGotham 2014
http://pyvideo.org/category/56/pycon-australia-2014
http://pyvideo.org/category/55/pydata-berlin-2014
http://pyvideo.org/category/54/europython-2014
http://pyvideo.org/category/52/pyohio-2014
http://pyvideo.org/category/51/scipy-2014
http://www.codecademy.com/en/tracks/python - to interaktywny kurs pythona w przeglądarcę, nie trzeba nic instalować, wystarczy wykonywać polecenia. Jest całkiem w porządku, ale nie polecam go jako “jedynego” źródła wiedzy o Pythonie, oraz (ostatnio gdy sprawdzałem) nie wspierał Pythona 3.
3. Wyzwania i potyczki
TO SUPER WAŻNE żebyś podczas czytania i oglądania programował i nie kopiował gotowego kodu z paczek źródłowych do książek tylko ręcznie pisał, starając się zrozumieć co piszesz. Musisz eksperymentować, wprowadzać własne zmiany, pisać własne projekty i realizować własne pomysły.
https://warosu.org/data/g/img/0441/94/1410874830625.png - zbiór 100 pomysłów na projekty treningowe aby nauczyć się na nich programowania
Strony z zadaniami i zagadkami algorytmicznymi, poćwiczą twoje myślenie i niejednokrotnie optymalizację kodu. Miłe oderwanie od innej nauki. Uwaga - nie przesadzać, bo wpadniesz w złe praktyki i spiralę przedwczesnej optymalizacji.
http://pl.spoj.com/
http://codeeval.com/
https://www.hackerrank.com/
http://www.codechef.com/
https://www.reddit.com/r/dailyprogrammer
4. Pozostałe
Korzystaj z dobrego IDE (lub edytora):
W kategorii IDE jest PyCharm i później długo długo nic. Należy się z tym pogodzić i nie zaprzeczać rzeczywistości, ponieważ ani Wingware ani Komodo IDE (konkurencja) nie grają w tej samej lidze. Darmowa wersja “Community Edition” powinna jak najbardziej wystarczyć do nauki Pythona.
Jeżeli IDE uważasz za coś potwornego i zbędnego - to się mylisz, ale nie mam zamiaru cię w tym miejscu przekonywać. Dla takich ludzi jak ty też jest nadzieja. Zarówno dobrze skonfigurowany vim jak i Sublime Text 3 mogą posłużyć za dobry edytor do nauki Pythona.
Korzystaj z dobrego interpretera:
Pobierz najnowszą wersję z serii 3 (w tej chwili to 3.4.2) bezpośrednio z:
https://www.python.org/downloads/
Znaj narzędzia potrzebne do pracy w dobrym środowisku pythona:
(uczy tego wyżej już wymienione http://www.pluralsight.com/courses/python-developers-toolkit )
Pomocny może okazać się też taki podręcznik:
http://docs.python-guide.org/en/latest/
Pip - http://pip.readthedocs.org/en/latest/index.html
Virtualenv - http://virtualenv.readthedocs.org/en/latest/
Debugger - http://pymotw.com/2/pdb/
Nauczyć się ładnego formatowania kodu i odpowiedzi na najczęściej zadawane pytania:
To niezmiernie ważne, szacuje się że ponad 80% kodu napisanego w Pythonie stosuje się do poniższych zasad.
http://legacy.python.org/dev/peps/pep-0008/
https://code.google.com/p/google-styleguide/
Poznaj filozofię Pythona:
http://legacy.python.org/dev/peps/pep-0020/
https://gist.github.com/evandrix/2030615
Naucz się GITa (system kontroli wersji):
http://git-scm.com/book
https://try.github.io/
https://www.atlassian.com/git/
http://www.git-tower.com/learn/ebook/command-line/introduction
Publikuj swój kod i czytaj kod innych:
https://github.com/
https://bitbucket.org/
Naucz się języka SQL i opanuj przynajmniej jeden system zarządzania bazą danych:
O SQL jest 4 tony całkiem niezłych książek, kursów i tutoriali, łatwo znaleźć więc nic konkretnego nie podam.
PostgreSQL - gorąco polecam - http://www.postgresql.org/
MySQL (MariaDB) - https://www.mysql.com/
Oracle - http://www.oracle.com/pl/products/database/overview/index.html
Interesuj się i bądź na bieżąco:
https://www.reddit.com/r/learnpython
https://www.reddit.com/r/python
https://www.reddit.com/r/learnprogramming
https://www.reddit.com/r/programming
Jeżeli prosisz kogoś o pomoc pamiętaj żeby:
- Wkleić kod na jakieś pastie - np. http://dpaste.com/ , http://hastebin.com/
- Sprawdzić czy kod faktycznie nie działa -u siebie i np na http://ideone.com/
- Wklejając fragmenty kodu na wykop używać http://wykop-code.appspot.com/ w celu zachowania czytelności i wcięć
- Opisać zrozumiale z czym masz problem i czego już probowałeś żeby temu zaradzić
- Wkleić pełną treść błędu (jeżeli jest długo to na pastie) jeżeli takowy wystąpił
###################
# WOŁAM
###################
Bo zaplusowaliści komentarz o planowaniu tego wpisu
A do tego niejako zniechęcasz do wybierania Pythona 3! A przecież prawda jest taka, że i tak najwięcej człowiek się uczy w pracy, więc znając pythona 3, w pierwszej pracy się może dostosować do 2, jeżeli tylko będzie taka potrzeba.
Uważam, że najlepiej uczyć się 3.x, ale jednocześnie zdawać sobie sprawę z różnic, żeby w razie potrzeby (a kodu pod 2.x jest jeszcze całe mnóstwo) umieć sobie poradzić. Dziękuję za uwagę :)
Sorry, ze tak wcinam we wpisie dot. Pythona, ale jezeli kiedykolwiek zdecydowalbys sie na chociaz male "rozwiniecie" poprzedniego wpisu z C++ o jezyk C, to bylbym bardzo tym zainteresowany, zapewne jak czesc info-Mirkow majacych na pierwszych semestrach wlasnie ten jezyk.
Mam nadzieje, ze polecana kiedys na mirku ponizsza ksiazka jest dobra do nauki od zera:
Początkujący powinien na początku korzystać wyłącznie z kursów. Na początku oczywiście trzeba skorzystać z codecademy.com, żeby nauczyć się składni. Dzięki Coursera.com złapałem mocne podstawy, a także nauczyłem się pisać aplikacje okienkowe i Udacity, które jest bardzo przydatne, bo nauczyło mnie podstawy programowania obiektowego - lepiej wytłumaczone niż na codecademy.com.
Z książek na razie przeczytałem najwyżej
Moja przygoda z programowaniem zaczęła się od Pythona, no znałem podstawy JS, a raczej jQuery. Wybrałem Pythona bo Django, znalazłem poradnik
Komentarz usunięty przez autora
Komentarz usunięty przez autora
@moon5: moja dziewczyna działa w PyLadies: https://www.facebook.com/pyladiespl
może Cię to zainteresuje :)
@Sudokuu: Nie ma nic gorszego niż na samym początku siąść do nauki wraz z internetem. Nawet nie chodzi i motywację. Tylko książka.