/manhattan

Strona pomocy projektu nauki programowania Manhattan

Primary LanguagePython

image3344

Manhattan Project

Strona pomocy projektu nauki programowania Manhattan

Czym jest Projekt Manhattan?

Projekt Manhattan jest to projekt w którym bardziej doświadczeni programiści pomagają osobom bez doświadczenia programistycznego lub z bardzo małym doświadczeniem (ale za to z wielkimi chęciami) nauczyć się fachu programisty.

Jakie są założenia Projektu Manhattan?

  • Nie ma głupich pytań - drążymy temat dopóki go nie zrozumiemy
  • Najważniejsze jest zrozumienie - projektu, wymagań, innych ludzi
  • Najważniejsza jest komunikacja - dobra komunikacja jest podstawą zrozumienia
  • Najważniejsza jest współpraca - razem dojdziemy dalej
  • Wszyscy się uczymy

Jak się uczyć?

Nauka programowania to skomplikowany proces. W tym projekcie (jakkolwiek banalnie by to nie brzmiało) skupimy się na praktycznym aspekcie pracy programisty. Nie oczekuj jednak że wszystko zrozumiesz od samego początku - jest wiele rzeczy których będziemy się uczyć, nad wieloma tematami będziemy pracować równolegle, co (przynajmniej na początku) może nastręczać trudności. Dlatego ważne jest aby poruszać problemy w grupie i razem starać się rozwiązywać problemy które napotkamy na swojej drodze.

Również nazewnictwo może być trudne do ogarnięcia jeżeli jakaś nazwa sprawia ci problem pytaj w grupe lub sprawdź w google.

Narzędzia komunikacyjne z których korzystamy w projekcie

Poniższa lista nie wyczerpuje tematu są to narzędzia z których niektóre firmy obecnie korzystają do pracy na projektami programistycznymi (sam korzystam z nich w codziennej pracy)

Komunikator

Jest wiele komunikatorów dostępnych obecnie na rynku. My bedziemy korzystać ze Slack do wymiany wiadomości tekstowych i bierzącej komunikacji. Do wspólnych sesji online będziemy korzystać z Zoom

Narzędzie zarządzania projektem

Zarządzanie projektami nad którymi będziemy pracować powierzymy Trello. Obsługuje się go z poziomu przeglądarki internetowej. Trzeba wejść na tę stronę i się zalogować.

Pisząc projekt mam na myśli bardzo szerokie pojęcie projektu. Projektem może być równie dobrze nauka jakiegoś języka programowania jak i projekt stworzenia bloga.

Narzędzia pracy programisty

Nie jest to lista całkowita - od tego zaczniemy.

System operacyjny

Z założenia nie chcemy aby z projektu ktokolwiek czuł się wykluczony. Zalecanymi systemami operacyjnymi są albo systemy uniksowe (np. ubuntu linux) albo Mac OSX (np. macOS sierra).

Praca pod Windowsem może okazać się trudniejsza i sprawiać nieoczekiwane problemy które będą trudne do rozwiązania. Pewnym sposobem ominięcia tych problemów jest próba instalacji np. Linuksa korzystając z jakiegoś narzędzia wirtualizacji np. VirtualBOX nawet i w takim przypadku mogą pojawić się niespodziewane problemy. Można również próbować pracować bezpośrednio pod Windowsem, i ryzykować pojawienie się problemów których rozwiązanie będzie niezwykle czasochłonne. Nie zniechęcam jednak do korzystania z Windowsa w tym projekcie - owszem można i wręcz należy spróbować pracy pod Windowsem jeżeli nie ma innego wyjścia.

Edytor tekstu

Praca programisty to głównie praca z plikami tekstowymi. W tychże plikach tekstowych wpisujemy polecenia które później komputer dla nas wykona.

Dobry edytor tekstu to podstawa. Dobry to przede wszystkim taki który oferuje kolorowanie składni oraz znacząco ułatwia wyszukiwanie i zamianę tekstu. Polecam jeden z czterech edytorów (nie jest to pełna lista, a raczej lista bardzo krótka, jeżeli znacie inny w którym będziecie czuć się dobrze, to proszę śmiało z niego korzystać):

  • VIM - świetny edytor tekstu, pierwsze kroki z tym edytorem są wyjątkowo trudne i całkowicie nieprzyjemne. Ogromną zaletą tego edytora jest to, że jest dostępny na każdą platformę oraz możliwości jego konfiguracji są praktycznie nieograniczone. Czas poświęcony na naukę tego edytora tekstu na pewno nie pójdzie w las.
  • EMACS - świetny edytor tekstu, pierwsze kroki z tym edytorem są wyjątkowo trudne i całkowicie nieprzyjemne. Ogromną zaletą tego edytora jest to, że jest dostępny na każdą platformę oraz możliwości jego konfiguracji są praktycznie nieograniczone. To jest edytor którego sam obecnie używam
  • Sublimetext - początki pracy z tym edytorem są znacznie łatwiejsze w porównaniu do dwóch pierwszych. Sam znam dwóch świetnych programistów którzy z powodzeniem korzystają z tego narzędzia
  • ATOM - z tym edytorem również łatwiej zacząć. Znam przynajmniej kilku dobrych programistów którzy z niego korzystają

Narzędzie kontroli wersji

Narzędzie kontroli wersji jest to narzędzie które pozwala na wspólną pracę nad tymi samymi plikami w grupie. Bez tego narzędzia współpraca byłaby praktycznie niemożliwa.

  • Github - jeżeli nie masz konta na github to sobie załóż - to konto jest bezpłatne.
  • GIT - z tego narzędzia będziemy korzystać lokalnie.

Języki programowania z których będziemy korzystać w projekcie

Nie od razu będziemy korzystać ze wszystkich wymienionych poniżej, w przypadku tworzenia aplikacji webowych są to technologie z których korzystać będziemy najczęściej:

  • Ruby - interpretowany język programowania wykorzystywany do pisania serwerów na przykład w opraciu o framework Rails
  • Elixir - kompilowany język programowania napisany w Erlang, który oferuje bardzo wysoką stabilność i może być wykorzystywany do pisania serwerów na przykład w oparciu o framework Phoenix
  • EcmaScript, np. javascript - trudno tutaj mówić o jednym języku, raczej jest to rodzina języków programowania, którą kiedyś zaczęto wykorzystywać jako interpretowany język programowania wykorzystywany w przeglądarkach internetowych. Obecnie sytuacja jest bardziej skomplikowana, ale możemy uznać że będzie to język programowania który ułatwi nam pracę z użytkownikiem strony internetowej.
  • HTML, CSS - Jest to jeden ze standardów wyświetlania dokumentów np. online użytkownikowi
  • Bash - język skryptowy niezwykle pomocny przy manipulacji plików oraz wielu innych czynności związanych z wyszukiwaniem tekstu oraz ogólnie pracy z komputerem.
  • Postgres - rozwiązanie bazodnowe pierwszego wyboru.

Nie jest to lista kompletna lecz jest to coś co pozwoli nam zacząć Projekt Manhattan.

Powodzenia Radek Molenda