Idea Szczecińska Grupa Użytkowników Linuksa / Uniksa oraz Szczecińskia Grupy Użytkowników Javy zaprasza na warsztaty przyszłych profesjonalistów branży informatycznej. Warsztaty będą prowadzone przez zawodowych programistów i są całkowicie darmowe. Mają na celu symulację pracy nad rzeczywistymi projektami programistycznymi. Warsztaty Zapraszamy na cykl warszatów wprowadzających do programowania aplikacji Wolnego i Otwartego Oprogramowania (WiOO); z użyciem systemu operacyjnego Linux i licznych narzędzi wspomagających, w wieloosobowym środowisku i kulturze WiOO. Mamy nadzieję, że każdy znajdzie coś interesującego dla siebie. 1. Warsztat 1 - praktyczny kurs Gita oraz GitHuba. Git będzie używany jako system kontroli wersji we wszystkich następnych warsztatach. Prowadzący: Tomasz Muras. Czas trwania: 3 godziny (w przeciągu jednego dnia). Plan: 40 minutowy wykład, dwugodzinna praktyczna sesja. 2. Warsztat 2 C pod Linux: Tworzenie filtrów graficznych dla programu graficznego TuxPaint Prowadzący: Adam Rakowski. Czas trwania: Wykład : 1 godzina 20 minut, spotkania praktyczne: 1.5 h + 1 h (dwa różne dni) 3. Warsztat 3 - PHP, Moodle. Prowadzący: Tomasz Muras. Czas trwania: 3 tygodnie Plan: 3 spotkania, zadania realizowane w formie pracy zdalnej 4. Warsztat 4 - Java, Jenkins. Prowadzący: Marcin Kawelski & JUG Czas trwania: 6 tygodni
Wymagania wspólne Praktyczne warsztaty programistyczne O ile to możliwe, każdy z uczestników powinien posiadać własnego laptopa z modułem sieci bezprzewodowej i zainstalowanym systemem Linux (może być wirtualizacja). Organizator dostarczy dostęp do sieci bezprzewodowej. Dowolna, w miarę nowoczesna dystrybucja będzie odpowiednia. Jeżeli posiadasz własnego laptopa, ale potrzebujesz pomocy w instalacji Linuksa, zarejestruj się na liście SzLUUGa ( http:/ /lists.szluug.org/listinfo/szluug ) i napisz do nas. Wystarczy, że przyjdziesz spotkanie SzLUUGa, a pomożemy Ci z instalacją. Jeżeli nie posiadasz własnego sprzętu - daj nam znać. Wymagana jest co najmniej średniozaawansowana znajomość języka programowania, w którym realizowane są wybrane przez Ciebie warsztaty. Żadne spotkanie nie będzie kursem języka programowania. Narzędzia używane przy budowaniu aplikacji, interfejs programisty (API) i sposób konfiguracji środowiska programistycznego będzie omawiany podczas wykładów i ćwiczeń praktycznych. Jak dołączyć Wyślij e-mail na warsztaty@szluug.org i napisz nam: Imię i nazwisko Czy jesteś w stanie przyjść na warsztat z własnym laptopem, z zainstalowanym systemem Linux? Jeżeli nie, napisz z czym możemy Ci pomóc.
Warsztat 1 - git Opis Celem pierwszego warsztatu będzie zapoznanie się z systemem kontroli wersji Git oraz serwisem GitHub. Git będzie używany jako system kontroli wersji w pozostałych spotkaniach. Warsztat koncentruje się na praktycznym wykorzystaniu Gita. Plan Spotkanie zacznie się od 40-minutowego wykładu. Po krótkiej przerwie przejdziemy do części praktycznej z użyciem komputerów.
Warsztat 2 - C Opis Praktyczne warsztaty programistyczne Wykład wprowadza do programowania w Linux z użyciem języka C. Celem jest skonfigurowanie środowiska programistycznego programu TuxPaint, zapoznanie z bibliotekami i API używanymi w projekcie, przedstawienie sposobu dokumentowania projektu i zasad komunikacji ze społecznością. Pobocznym celem jest zapoznanie z podstawowymi narzędziami programistycznymi dla języka C, które są używane w świecie Wolnego i Otwartego Oprogramowania. W efekcie zostanie utworzony zestaw niewielkich wtyczek-filtrów graficznych rozszerzających możliwości TuxPainta. O prowadzącym Adam jest programistą zaangażowanym w rozwój Wolnego i Otwartego Oprogramowania. Na codzień pisze w C++ i Python. Zawodowo zajmuje się integracją aplikacji i szkoleniami. TuxPaint Program TuxPaint jest prostym programem graficznym dla dzieci tworzonym przez wolontariuszy organizacji Tux4Kids. Inspiracją Tux4Kids jest utworzenie darmowej, otwartej i wolnej platformy programów edukacyjnych dla dzieci, która wspiera kreatywność, zdolności językowe i uczy interakcji z komputerem. Aplikacje tworzone przez Tux4Kids są wieloplatformowe a dodatkowo spełniają bardzo restrykcyjne wymogi szybkości działania, przez co mogą być używane nawet na bardzo starym sprzęcie. Wymagania Wykład opiera się na wiedzy przekazanej podczas szkolenia z GitHub. Wymagana jest co najmniej średniozaawansowana znajomość języka C (wskaźniki są koniecznością).
Ramy czasowe Praktyczne warsztaty programistyczne Wykład planowany jest na 80 minut. Po krótkiej przerwie przejdziemy do pierwszej części praktycznej (1.5 h). Na zakończenie uczestnicy otrzymają zadanie do wykonania samodzielnego + zdalne wsparcie. Podczas drugiego, jednogodzinnego spotkania, dokonany zostanie przegląd utworzonych przez uczestników kodów, wykonane zostaną testy, a kod utworzony przez uczestników zostanie zgłoszony do organizacji Tux4Kids, opiekuna projektu TuxPaint. Agenda wykładu Hello Linux! - czyli jak to skompilować? Makefile - dlaczego kompilacja z ręki nie jest dobra Skąd się biorą Makefile - czym jest Autotools i bootstrap Narzędzia niezbędne do kompilacji, uruchomienia i testowanie Bibloteka SDL Zarządzanie zależnościami pkg-config oraz apt-get Tworzenie lokalnego repozytorium kodu i kompilacja Wstęp do TuxPaint, czyli narysuj mi Kłapouszka TuxPaint architektura, modularność, API pluginów Jak napisać prosty filtr moje pierwsze narzędzie dla TuxPaint Testowanie i kontrola pamięci Społeczność TuxPaint gdzie zgłaszać błędy, skąd brać wsparcie
Warsztat 3 - PHP Opis Praktyczne warsztaty programistyczne Celem tej serii warsztatów jest symulacja prawdziwej programistycznej roboty - zbliżonej do pierwszej pracy w IT. Pracując jako zawodowy programista będziesz miał do czynienia z wyzwaniami, których nie miałeś okazji rozwiązywać podczas studiów. Chcemy zapoznać Ciebie z powszechnie stosowanymi narzędziami i technikami pracy. Omówimy między innymi: systemy kontroli wersji workflow (tryb pracy) wspópraca z licznym zespołem programistów recenzje/przeglądy kodu kolegów praca z testerami standardy jakości Nie będzie to projekt typu hello world. Dołączysz do projektu który: posiada ponad 1 milion linii kodu jest współtworzony przez ponad 300 programistów posiada zdefiniowane standardykodu oraz cykl życia Projekt Moodle (http://moodle.org) jest aplikacją typu LMS (Learning Management System) z otwartym kodem źródłowem. Warsztat jest dla Ciebie, nawet jeżeli nie jesteś zainteresowany systemami typu LMS - skupimy się na technicznej stronie programowania. Nauczysz się jak: rozpocząć pracę nad dużym projektem pisać wysokiej jakości kod używać systemu Git do zarządzania kodem używać bugtrackera Pokażemy Ci w jaki sposób przebiega praca nad dużym projektem od momentu zgłoszenia błędu, poprzez programowanie, testowanie, QA oraz integrację. Będziemy pracować nad małymi błędami i poprawkami, które to poprawki pod koniec warsztatów zostaną włączone do głównego projektu (a Ty zostaniesz jednym z współtwórców aplikacji i zaistniejesz na stronie https://moodle.org/dev). Technologie, którymi będziemy się posługiwać to: Linux, Apache, MySQL, PHP Netbeans Git
Jira Warsztaty będą trwały 3 tygodnie, w tym czasie spotkamy się 2 razy na zajeciach praktycznych. Poza tym będziesz musiał wykonać zadania w ramach pracy zdalnej, we własnym czasie. Warsztat jest przeznaczony dla programistów ale zadania programistyczne będą proste - studenci wszelkich specjalizacji są mile widziani. Przez cały czas trwania warsztatu będziemy Ci udzielać wszelkiej niezbędnej pomocy. O prowadzącym Tomek Muras jest jednym z developerów Moodla oraz fanem Linuksa, Otwartego Oprogramowania i Otwartych Standardów. Zawodowo pracuje jako lider grupy programistów. Wymagania Linux z zainstalowanym Apachem, PHP oraz MySQLem - przyjdź na spotkanie SzLUUGa ze swoim laptopem jeżeli potrzebujesz pomocy w instalacji systemu. Agenda Warsztat 1 Na pierwszych zajęciach przedstawimy Ci podstawy aplikacji, nad którą będziesz pracował, ustawimy środowisko programistyczne i rozwiążemy pierwszy problem. Zadanie 1 Po pierwszych zajęciach otrzymasz do rozwiązania pierwszy problem (małe usprawnienie albo błąd). Będziesz miał 2 tygodnie na imlpementację oraz zatwierdzenie Twojego kodu. Warsztat 2 Na drugim warsztacie nauczymy się używać Gita oraz Githuba wg procedur projektu. Porozmawiamy również o tworzeniu kodu wysokiej jakości. Zadanie 2 Pod koniec drugiego warsztatu otrzymasz kolejne zadanie. Kod, który napiszesz, samodzielnie wyślesz do projektu. Będziesz wpółpracował z testerami oraz innymi programistami. Będziesz miał 3 tygodnie na wykonanie zadania.
Warsztat 4 - Java Cel: 1. poszerzenie horyzontów młodych ludzi (studentów) uczących się programowania poza wiedzę akademicką, w szczególności o wiedzę praktyczną jaką mogą spotkać w pracy komercyjnej i niekomercyjnej, 2. promocja szczecińskich organizacji non-profit JUG i Szluug wśród młodych ludzi. Założenia: 1. Organizacja 4-6 tyg intensywnych (2x w tyg po min 2h) warsztatów z zakresu: 1. rozwój istniejącego projektu (jenkins.org) opartego o technologie java, 2. narzędzia do wersjonowania - cvs/svn/git, 3. narzędzia i podejście do budowania (CI), 4. narzędzia do testowania, 5. narzędzia do zarządzania zadaniami i workflow (jira / github), 6. metodyki kooperacji (agile/scrum)? 1. Przynajmniej jedno spotkanie się w ramach regularnych spotkań JUG i Szluug aby umożliwić zapoznanie się uczestników warsztatów z członkami naszych organizacji i klimatem spotkań. 2. Zapisanie do listy dyskusyjnej w celu uzyskania pomocy. 3. Konkurs w trakcie kursu z nagrodami: np. książki, bilety na konferencje, może staże w firmach sponsorujących w przerwie wakacyjnej? (do tej części przydałby się sponsoring firm). 4. Promocja warsztatów poprzez akcje wewnątrz uczelni (np kilka krótkich prezentacji podczas wykładów) oraz na zewnątrz przy wsparciu mediów i social marketing. 5. Warsztaty prawie dla każdego. Wymagana minimalna wiedza o inżynierii oprogramowania i technikach programowania jako takich. Warsztaty mają na celu zaciekawić, pokazać narzędzia, sposoby i drogi do samokształcenia. Start na konferencji DevCrowd 20.04.2013 r Plan warsztatów: 1) Wykład wprowadzający - workflow 1-2h - omówienie czym będziemy się zajmować na warsztatach - omówienie jak wygląda potencjalny workflow w projekcie - omówienie http://jenkins-ci.org/ i ogólnie CI - omówienie JIRA - omówienie GitHub - omówienie Git-a - omówienie metodologi Scrum
2) warsztat 1 - szybki skok do kodu - 2h - tworzymy backlog - planujemy sprint - zakładamy konto na jenkins jira - szukamy i przypisujemy buga - zakładamy konto na GitHub - fork-ujemy projekt Jenkins - checkout projektu do workspace - instalujemy Eclipse/Intelij Idea - importujemy projekt - zadanie - poczytać kod i spróbować zlokalizować buga 3) wykład / warsztat 2 - uczymy się narzędzi - 2h - scrum i aktualizujemy backlog - JIRA - zmiana statusu buga - omówienie narzędzia eclipse/intelij Idea - kilka przydatnych skrótów/opcji - wstęp do Software Crafmanship i code refactoring - maven - podstawy używania - budujemy Jenkins i odpalamy testy - próbujemy odpalić Budowanie Jenkins jako Job Jenkins na własnej maszynie - zadanie - sciągnąc dowolny mavenowy projekt i dodać job-a do jenkins 4) warsztat 3 - uczymy się rozwiązywać problemy używając TDD - 2h - scrum i backlog - uczymy sie TDD i pracy w parach - poznajemy mock-i - próbujemy napisać test dla buga - poprawiamy buga - budujemy Jenkins i odpalamy testy 5) wykład - spotkanie w ramach Szczecin JUG 6) wykład / warsztat 4 - wypychamy zmiany - scrum i backlog - przypominamy sobie GIT-a - uczymy sie cvs/svn, porównanie z GIT - commit/push - pull request - omówienie github code review - zadanie - zrobić odgałęzienie branch projektu, zrobić zmiany, łączenie z HEAD 6) warsztat i konkurs - scrum i backlog - kończymy sprint - konkurs niespodzianka - rozdanie nagród - pożegnanie