Struktury danych i algorytmy w Pythonie, które trzeba znać
What you'll learn
- Myślenie algorytmiczne
- Struktury danych i ich zastosowanie do określonych sytuacji
- Algorytmy sortujące
- Algorytmy wyszukujące
- Algorytmy wyszukujące wzorca w napisie
- Techniki programowania: naiwna, greedy (zachłanna) i dynamiczna
- Przyśpieszanie programów przez memoryzację i tabulację
Requirements
- Podstawowa znajomość programowania w Pythonie
- Ścisły umysł, logiczne myślenie
- Komputer (jeśli chcesz testować kod na własną rękę)
- Chęć do poznawania nieoczywistych tematów
Description
Ten kurs wchodzi w skład serii kursów o Pythonie. Wybierz właściwy, zależnie od stopnia znajomości Pythona i zainteresowań.
Od znajomości słówek, do opanowania języka obcego jest długa droga. Podobnie jest z programowaniem. Znajomość instrukcji języka, a znajomość algorytmów to dwie różne rzeczy.
Ale właściwie, dlaczego wmawia się nam, że trzeba znać algorytmy? Komputery są coraz szybsze, pamięci mamy coraz więcej, a programiści mają do dyspozycji cały arsenał gotowych funkcji i często wcale nie muszą pisać własnych implementacji złożonych obliczeń.
Tak? To powiedz to w Google, Microsoft, IBM albo w innej firmie, która na poważnie podchodzi do tworzenia oprogramowania, sama tworzy innowacyjne rozwiązania, sztuczną inteligencję i narzędzia do pracy z Big Data. Dla takich firm tworzenie nowych algorytmów to konkretne pieniądze zaoszczędzone na mocy obliczeniowej, to otwarcie zupełnie nowych możliwości biznesowych, które bez odpowiednich algorytmów byłyby poza ich zasięgiem. Tam nie tylko tworzy się algorytmy, ale jeszcze je patentuje! Takie firmy zatrudniając programistów, chcą, aby znali oni algorytmikę, wiedzieli na jakie pułapki trzeba być uczulonym, a w jakich przypadkach można skorzystać z już gotowych rozwiązań. Nie dziwi więc, że od kandydatów oczekuje się rozwiązania zagadek programistycznych, czasami nawet na kilka sposobów i porównanie, który z nich i dlaczego jest lepszy.
Znając algorytmy – to chyba najważniejsze – poradzisz sobie z nietrywialnymi problemami, napiszesz efektywniejszy kod, który zadziała nawet na słabszym sprzęcie. Modyfikując algorytmy stajesz się naukowcem, rozbudujesz swoje portfolio i zwiększasz szanse na lepszą pracę. Na dodatek algorytmy się nie starzeją. Pojawi się nowa generacja komputerów, nowe języki programowania, ale algorytmy będą te same. No i wreszcie, argument nie do zbicia – algorytmy są po prostu fajne. To taka forma rozrywki umysłowej dla zaawansowanych. Nie krzyżówka, nie sudoku, ale myślenie algorytmiczne. Steve Jobs, chociaż nie jest dla mnie idolem, powiedział kiedyś „Każdy powinien umieć programować, bo to uczy myślenia”. Z tym zdaniem się zgadzam.
Ten kurs jest przeznaczony dla tych, co lubią pomyśleć, na poważnie biorą się za programowanie, znają już podstawy Pythona. Znajdziesz tu opis około dwudziestu algorytmów i powiązanych z nimi struktur danych. Zwykle zaczynamy od omówienia teorii stojącej za danym algorytmem, a potem przechodzimy do implementacji w Pythonie. Do kursu jest dołączony PDF z notatkami do każdej lekcji i zadaniami do samodzielnego oprogramowania oraz z rozwiązaniami tych zadań.
Kurs jest dynamiczny, może nawet czasami za bardzo, ale gdy korzysta się z e-learningu, nie powinien to być problem. Można zatrzymać, przewinąć, spowolnić lub przyśpieszyć.
Chcesz zająć się programowaniem na poważnie – to musisz znać algorytmy. Zapraszam na kurs!
Who this course is for:
- Studenci kierunków informatycznych i pokrewnych: matematyka, fizyka itd.
- Uczniowie szkół średnich zainteresowani informatyką
- Maturzyści zdający egzamin z informatyki
- Starzy wyjadacze IT, którzy chcą uporządkować wiedzę z podstaw działania algorytmów
- Wszyscy zainteresowani rozrywką logiczną, jaką są algorytmy
Instructors
EN
Microsoft Certified Trainer. Programmer, database administrator, trainer and consultant. The main areas of interest are database administration and design, automation with PowerShell ,Python and Bash, machine learning, analysis and presentation of data.
Experienced e-learning and distance learning tutor. Mentor of e-learning programs. Blogger.
Worked with, or teached for such companies as ING, Intel, Cadbury, Bank PeKaO, Volvo, UPC, ZUS, Polish Post and many more...
PL
Microsoft Certified Trainer. Programista, administrator baz danych, trener i konsultant. Główne specjalności to administracja i programowanie baz danych, automatyzacja z wykorzystaniem PowerShell, Python, Bash oraz machine learning, analiza i prezentacja danych.
Doświadczony trener szkoleń e-learning. Mentor wdrażania programów e-learning.
Pracował/pracuje/prowadził szkolenia dla takich firm i instytucji jak ING, Intel, Cadbury, Bank PeKaO, Volvo, UPC, ZUS, Poczta Polska i wiele innych...
Rafal is a Microsoft Certified Trainer, he has worked for well known institutions like banks, insurance, public and commercials. His main specialty is database management and programming, automation and integration with cloud.
Linux, Windows, Azure, programming languages like Python, C Sharp, scripting languages like BASH or PowerShell. Database and SQL expert on comercial and open source database systems, both as administrator and designer/developer. Experience on implementation of IT solutions for multiple huge companies in Poland and Europe.
Great experience on training delivery for class room trainings and e-learning. Supported e-learning implementation projects as content designer and teachers mentor.
Currently working on cloud, data science projects, building and automating infrastructure for finances.