
Zostań programistą-samoukiem
Znajomi często mnie pytają co zrobić by zostać programistą. Jakie studia skończyć, do jakiej szkoły pójść czy też nieśmiertelne “skąd ty to wszystko wiesz?”. Nie ma pewnie idealnej recepty na sukces. W tym artykule zamierzam podzielić się moją.
Wybierz język
Możesz zacząć przygodę z dowolnym językiem programowania. Dobrze, żeby Twój wybór odpowiadał mniej więcej temu czym chciałbyś się zajmować w przyszłości. Stracisz mniej czasu.
- gry komputerowe i na konsole: C, C++
- gry i aplikacje mobilne: Objective C i Swift2 (iOS), Java (Android)
- aplikacje webowe: Javascript, PHP, Python, Ruby — do tego przyda się też znajomość HTML i CSS
Rozwiąż swój problem
W swoim otoczeniu na pewno znajdziesz proces, który można by usprawnić jakimś programem komputerowym. Pożyczasz dużo książek? Napisz program do rejestrowania wypożyczeń. Prowadzisz bloga? Stwórz prosty CMS, który pozwoli Ci tego bloga poprowadzić tak jak chcesz. Nie lubisz biegać po markecie bez sensu? Stwórz wygodną appkę z listą zakupów. Na pewno wpadniesz na jakiś lepszy pomysł.
Ważne abyś wybrał temat, który dobrze znasz i rozumiesz, wtedy projektowanie interakcji zajmie dużo mniej czasu i będzie mniej frustrujące.
Pierwszy problem, który rozwiązywałem w ten sposób to było katalogowanie i przeszukiwanie zawartości wielkiej kolekcji płyt CD bez potrzeby wyciągania ich z półki (program napisany w C++, WinApi) — miałem kiedyś ponad 600 sztuk płyt CD. Było to w epoce internetu, którego prędkość liczyło się w kilobodach i połączeniu towarzyszyły dziwne piski.
Książki
Czy warto kupić książkę? Chyba tak. Pierwsza i jedna z niewielu jakie kupiłem była o programowaniu w Perlu. Świetny wybór, tyle teraz serwisów internetowych w tym się pisze… No ale nie było wtedy nikogo kto by mi powiedział, że PHP do tego celu jest zdecydowanie lepszy i łatwiejszy. Na książkę i Perla zmarnowałem ponad pół roku.
Kolejnych języków przydatnych w pisaniu stron / aplikacji webowych już nauczyłem się z Internetu. Tak było z PHP, Pythonem i JavaScriptem.
Internet i język angielski
Mnóstwo darmowych i świetnych materiałów można znaleźć w sieci. Jeżeli jeszcze nie umiesz języka angielskiego na poziomie pozwalającym na swobodne czytanie technicznych artykułów, a masz tylko jakieś podstawy angielskiego, to zmuś się do czytania i korzystania z takich tekstów. Zasoby anglojęzyczne są nieporównywalnie bogatsze, więc łatwiej trafić na dobre materiały.
Jeżeli znasz angielski przynajmniej na podstawowym poziomie polecam freecodecamp.com. Świetnie przygotowane, interaktywne kursy HTML, CSS, Javascript, Bootstrap — jest tego mnóstwo. Mój dziewięcioletni syn w jeden dzień nauczył się z nich podstaw HTML/CSS i Bootstrap’a.
We're an open source community of busy people who learn to code and build projects for nonprofits. Build your full…freecodecamp.com
Moja pomoc w podjęciu decyzji
Jeżeli po przeczytaniu powyższych porad dalej nie wiesz od czego zacząć to skorzystaj z mojego doświadczenia. Moim zdaniem, jeżeli interesuje cię programowanie aplikacji webowych, to warto zainteresować się Javascript. Pozwoli Ci to w przyszłości zrealizować wszystko od prostych stron www, rozbudowanych serwisów internetowych, przez aplikacje realizujące konkretne zadania po proste gry online). No i przede wszystkim zagwarantuje ciekawą i dobrze płatną pracę.
Programiści aplikacji webowych próbują się dzielić na frontendowców i backendowców. Frontend to ta część widoczna dla użytkownika, działająca w przeglądarce komputera lub telefonu, prezentująca dane, animująca interakcje z użytkownikiem. Backend zwykle odpowiada za przechowywanie danych i komunikację z dostarczaną usługą.
Jest jeszcze inne podejście, Full Stack Developer. Ktoś, kto potrafi zająć się aplikacją kompleksowo, zarówno od strony frontendu i backendu. I takie podejście mi osobiście bardziej odpowiada.
Oczywiście już teraz nikt nie pisze “gołego” JavaScript aby stworzyć interakcje w przeglądarce czy zrealizować jakąś funkcję na serwerze. Jest cała masa gotowych rozwiązań z których, w zależności od konkretnego zastosowania, warto skorzystać. Node.js, mySQL, Postgress, GraphQL, MongoDB po stronie serwera (backendu) i Angular, React lub Blaze po stronie klienta (frontendu). Do tego cała masa technologi i gotowych rozwiązań takich jak NPM, jQuery, LESS, underscore.js, express, Bootstrap, które ułatwiają życie współczesnego developera.
Jeżeli interesuje cię Javascript to polecam tą pozycję:
cena 79.00 JavaScript i jQuery. Interaktywne strony WWW dla każdego, ISBN 9788328301269, Jon Duckett, W trakcie lektury…helion.pl
Jest bardzo przystępnie napisana i porządnie wydana. Warto wziąć wersję papierową. Nie uczy zbędnych rzeczy. Idealna jeżeli choć trochę chcesz poznać programowanie frontendu.
Jeżeli interesują Cię tematy związane z programowaniem, serwerami (dev ops) i IT w ogóle — zapraszam do obserwowania mojego profilu.