Czy jest jedna słuszna droga – od czego zacząć naukę programowania? Wbrew temu, co możemy czasem przeczytać od osób zafascynowanych ich „jedynym słusznym” rozwiązaniem, ten wybór nie jest wcale taki oczywisty – a przecież każdy z nas jest przynajmniej odrobinę inny. 🙂
Jeżeli interesuje Cię, jaka jest moja teoria, na temat tego Jak wybrać język programowania – to zapraszam do lektury podlinkowanego wpisu.
Jeżeli jednak interesują Cię prawdziwe historie programistów z krwi i kości, którzy ten wybór mają już za sobą, to poniżej znajdziesz całą ich masę.
Spis treści
Jaki język programowania
Dzięki pomocy zaprzyjaźnionych blogerów mamy możliwość prześledzić jak ten proces wyglądał u nich w praktyce. Jak to zwykle w życiu bywa, nie zawsze wszystko idzie tak gładko i po naszej myśli. Gorąca zapraszam do dalszej lektury, a później podzielenia się również swoją historią.
[jak-zostac-programista-linki]Od czego zacząłeś naukę programowania? Jakiego języka się uczyłeś?
Zobaczmy teraz, co na ten temat myślą inni praktycy i jak to wyglądało w ich przypadku.
[author name=”Olga Stefaniuk” image=”olga-stefaniuk.jpg” url=”http://sowaprogramuje.pl/”] [/author]Zaczęłam od nauki JavaScript, poznałam koncepcje takie jak funkcje, pętle, zdania warunkowe. Prawdziwa zabawa zaczęła się, jak zaczęłam korzystać z DOM. Miałam już podstawy HTML i CSS, stąd mogłam eksperymentować, a najbardziej cieszyło mnie, że mogę zobaczyć efekty swojej pracy.
[author name=”Piotr Nalepa” image=”piotr-nalepa.jpg” url=”https://blog.piotrnalepa.pl/”] [/author]Tak jak wspomniałem wcześniej, do momentu podjęcia świadomej decyzji liznąłem kilka języków programowania. C++ był dla mnie trudny do pojęcia (te wskaźniki!). Natomiast C# i PHP wydawały się fajnymi językami do tworzenia stron i aplikacji internetowych.
Dlatego zacząłem od nich, a potem stopniowo poznawałem coraz lepiej HTML, CSS i JS. Dużo pomogło mi obcowanie z budowaniem szablonów dla Joomla! Które łączyło ze sobą korzystanie z tych trzech ostatnich języków programowania.
Programowanie gier w Basicu z książki „Programowanie gier – Paweł Pięciak.” 🙂 Jeszcze w czasach, gdy nie miałem w domu internetu. Później zachciało mi się stworzenia własnej strony www i zabrałem się za podstawy webdevu.
[author name=”Maciej Aniserowicz” image=”maciej-aniserowicz.jpg” url=”https://devstyle.pl/”] [/author]Na studiach był Turbo Pascal, C, Java, C++… Ja poza uczelnią zacząłem od JavaScript i C# i tak już zostało.
[author name=”Mariusz Bugajski” image=”mariusz-bugajski.jpg” url=”https://bugajsky.pl/”] [/author]Jak już wcześniej wspomniałem, w podjęciu decyzji o specjalizacji duży udział miała szkoła średnia, do której chodziłem, gdzie na zajęciach miałem język Pascal oraz C++. To właśnie od tych języków zaczynałem swoją przygodę z programowaniem. Z perspektywy czasu myślę, że rozpoczęcie swojej przygody od Pascala było dobre, nauczył mnie odpowiedniego sposobu myślenia, a sam w sobie ma prostą składnię, dlatego pisanie w nim nie stanowiło problemu.
Prawdą jest, że od pierwszej myśli o zostaniu informatykiem minęło bardzo dużo czasu. Przez ten czas uczyłem się wielu przydatnych rzeczy. Jeszcze w szkole podstawowej poznałem język znaczników, jakim jest HTML, a także CSSa, tworząc z pomocą tej wiedzy proste strony internetowe do szkoły. Później przyszedł czas liceum, gdzie jak już mówiłem, miałem na zajęciach Pascala oraz C++. Na studiach doszedł nowy język, tym razem była to Java, którą bardzo polubiłem. Były także zajęcia z SQLa oraz PHP. Obecnie skupiam się na dokończeniu projektu konkursowego pisanego w Javie oraz na poszerzaniu swojej wiedzy z webdevu. Zawodowo celuję w tworzenie stron internetowych, a zajęciem hobbistycznym jest pisanie prostych gier.
Na początku zaczynałem od HTMLa i robiłem sobie stronki na tabelkach, ładnie kolorując wszystko za pomocą starych znaczników HTMLa 4.01 😉 Pamiętam, że pewnego dnia moją uwagę przykuła w kiosku książeczka czasopisma „Komputer Świat” o programowaniu w PHP i zakupiłem ją z czystej ciekawości. Tak zaczęła się moja przygoda z językiem PHP, a rozwinęła się ona poprzez poznawanie różnych systemów CMS takich jak np. Joomla/Mambo, PHP Nuke, phpBB czy PHP Fusion. To były czasy, kiedy bawiłem się w „klan” w różnych grach sieciowych, stąd też stronka klanu z komponentem punktacji meczów napawała mnie ogromną dumą 😉 Naturalnie musiałem również poznać MySQLa, ale w grę wchodziły jedynie proste zapytania, czy modyfikacja już istniejących. Na studiach poznałem Pascala, C++, Jave i był nawet epizod z Prologiem, ale żaden z tych języków nie przykuł mnie na dłużej. Potem był już JavaScript i czasem wydaje mi się, że jestem już zbyt leniwy, by sięgać po coś innego.
[author name=”Dawid Sibiński” image=”dawid-sibinski.jpg” url=”http://www.dsibinski.pl/”] [/author]Zacząłem od tego, co na studiach (głównie C/C++, Java), no a tak „na poważnie” to .NET/C# czyli to, co w pracy.
[author name=”Jakub Gutkowski” image=”jakub-gutkowski.png” url=”https://blog.gutek.pl”] [/author] Od Pascala, jednym z pierwszych zadań było: stworzenie choinki. [author name=”Szymon Sieciński” image=”szymon-siecinski.jpg” url=”https://szymonsiecinski.wordpress.com”] [/author] Najpierw próbowałem uczyć się programowania na własną rękę, zachęcony tym, jak się tworzy algorytmy na szkolnych zajęciach z informatyki. Korzystaliśmy z programu Raptor Flowchart Interpreter (jeszcze jest rozwijany). Zauważyłem, że można wygenerować kod z takiego schematu i próbowałem go doprowadzić do stanu używalności (żeby działał zgodnie ze schematem). Przy okazji miałem dosyć intensywny romans z chemią (w liceum) i zdecydowałem się na studiowanie inżynierii biomedycznej, aby połączyć moje doświadczenia z chemią i informatyką. Zachęcony zajęciami z programowania, zacząłem myśleć o rozpoczęciu kariery programistycznej. [author name=”Szymon Siarkiewicz” image=”szymon-siarkiewicz.jpg” url=”http://szymonsiarkiewicz.pl”] [/author]Pierwszy język jest tym tradycyjnym, a więc C++, który szlifowałem bazując na wiedzy z cpp0x, a później własnych eksperymentach, które polegały na uruchomieniu kodu, zrozumieniu dlaczego działa, a potem zepsuciu go i sprawdzeniu, czy zepsuł się wg moich oczekiwań (z tego, co widzę to mam tendencje do psucia cudzych kodów od samego początku). Pierwszy duży projekt-gra powstał po około roku takich zabaw (lib to Dell).
[author name=”Arkadiusz Mierzwa” image=”arkadiusz-mierzwa.jpg” url=”http://arkadiuszm.pl”] [/author]W swoim dotychczasowym życiu przeszedłem przez wiele języków programowania, aby stanąć ostatecznie – przynajmniej mam taką nadzieję – na JavaScripcie. Zaczynałem w szkole od Pascala, później C++. Miałem też epizod z Javą w technikum, a także PHP. PHP wydawał się spoko, aczkolwiek materiały, które znajdowałem w necie, nie zachęcały do nauki tego języka. Na studiach ponownie wróciłem do C, za którym po dziś dzień nie przepadam. W międzyczasie uczyłem się Pythona oraz Rubyego, ale były to tylko pojedyncze kursy bez jakiegoś konkretnego samodzielnie wykonanego projektu. Wróciłem do Javy, w której nauczyłem się myślenia obiektowego. Traf chciał, że zająłem się front endem, na początku tylko HTML/CSS jednak im dalej w las, tym więcej JSa. Takim sposobem zacząłem uczyć się składni i trochę za szybko przeskoczyłem do jQuery. Po jakimś czasie wróciłem do czystego JavaScriptu i po zrozumieniu go zacząłem uczyć się w frameworków. Gdzieś w trakcie pierwszej pracy zainteresowałem się PHP i Laravelem, ale stwierdziłem, że nie chcę rozdrabniać się na inne języki. Napisałem też 2 proste aplikacje w Androidzie. Generalnie sądzę, że jeżeli ogarniemy myślenie programistyczne, to im więcej będziemy się uczyć czegoś nowego, tym bardziej zauważymy, że wszystko to składa się z bloków powtarzających się niezależnie od języka. Po jakimś czasie uczenie się nowej technologii to tylko poznawanie składni oraz kruczków języka.
[author name=”Łukasz Monkiewicz” image=”lukasz-monkiewicz.jpg” url=”https://lmonkiewicz.com”] [/author]Myślę, że prawdziwa nauka, to był PHP, Javascript i SQL – z uwagi na to, że robiłem jakieś drobne strony internetowe po znajomości. Później, tak na poważnie pojawiła się Java na studiach oraz trochę C++ i C#, ale zostałem przy Javie, bo mi się spodobała 🙂
[author name=”Rafal Hryniewski” image=”rafal-hryniewski.jpg” url=”http://hryniewski.net/”] [/author]Dawno temu bawiłem się trochę Pascalem, trochę później odbiłem się od Javy i C++. Gdy już stwierdziłem, że trzeba podejść do sprawy na poważnie rozważałem Ruby, Pythona lub C#. Poczytałem trochę o każdym z nich, pobawiłem się jakimiś Hello Worldami i zdecydowałem się na C#. Poszukałem dobrze ocenianych książek, poczytałem oferty pracy pod kątem tego czego oczekuje się od programistów w tej technologii i równolegle przewalałem kolejne rozdziały oraz realizowałem własne, proste projekty. Był to niecały rok pracy na etat i nauki wieczorami po 3-4h dziennie. Dodam, że było warto.
[author name=”Mateusz Maciaszek” image=”mateusz-maciaszek.jpg” url=”http://speedcom.github.io”] [/author]Od C/Asm. Ja mam tendencję do stalkowania ludzi w sieci i szukania role-model człowieka, który mógłby stanowić dla mnie przykład poziomu, który chciałbym osiągnąć. Przed pójściem na studia znalazłem blog Gynvaela Coldiwnda. Robił i wciąż robi na mnie piorunujące wrażenie swoją wiedzą i umiejętnościami. Gyn na swoim blogu również posiada FAQ dla osób startujących w tej ścieżce, na podstawie którego odpowiedziałem sobie na wiele pytań, czy doszedłem do pewnych refleksji jak się tego wszystkiego uczyć.
[author name=”Paweł Strejczek” image=”pawel-strejczek.jpg” url=”http://strejczek.com/”] [/author]Pierwszy odpowiednik „Hello world” napisałem w wieku bodajże 6 lat w języku Basic dla komputerów ZX Spectrum. Mój Tato był w tym czasie nauczycielem informatyki w szkole i to jemu zawdzięczam pierwsze lekcje z programowania. Kiedy miałem 9-10 lat mieliśmy w domu taki dość abstrakcyjny komputer MSX Spectravideo i zawsze jak chciałem pograć w gry, to najpierw przez ok. 30 minut pisaliśmy razem jakiś prosty program w Basic-u, a dopiero potem mogłem grać. Nauczyłem się więc, co to jest pętla, instrukcje warunkowe itp. Później, w czasach PC był Pascal, C (w nieśmiertelnym kompilatorze Borland-a Turbo C), C++, Assembler, PHP, Delphi i ostatecznie C#, któremu jestem od kilku lat wierny, eksperymentując czasem jednak z różnymi innymi językami. Zawsze lubiłem eksperymentować i tworzyłem przeróżne projekty. Muszę natomiast z przykrością stwierdzić, że bardzo mało o programowaniu nauczyłem się na studiach.
[author name=”Przemysław Juśkiewicz” image=”przemyslaw-juskiewicz.jpg” url=”http://blog.pjuskiewicz.com”] [/author]Naukę programowania rozpocząłem na I roku studiów był to język Ada, później C, C++ i aż w końcu trafiłem na C# co było moją symfonią dla uszu :). Wcześniej nigdy nie programowałem i nie miałem pojęcia, czym programowanie jest. Co do procesu uczenia, na uczelni podczas zajęć z programowania w ramach ćwiczeń, trzeba było napisać kolejki, stosy, coś w stylu mamy listę z 10 elementami i mamy ją posortować rosnąco, albo ustawić, że 3 takie same cyfry mają być na początku programu a pozostałe po tych trzech cyfrach. Nie można było używać gotowych metod, czy funkcji. Wszystko trzeba było zaimplementować samemu. Gdybym miał komuś podpowiedzieć jak zacząć programować, to dla mnie najlepszym sposobem byłby zakup książki z danej technologii, który oprócz opisu samej technologii przedstawia proces tworzenia małej aplikacji na rzecz nauki. Dla mnie jest to najlepsza forma uczenia się czegoś nowego.
[author name=”Dominik Pawlik” image=”dominik-pawlik.jpg” url=”https://b00stiandroid.wordpress.com”] [/author]Poznawanie programowania rozpocząłem z książką „Symfonia C++” w ręku. Szczerze mówiąc, wtedy jeszcze nie robiłem zbyt dużego rozeznania a propos języków programowania, czy moich potencjalnych zainteresowań. Po prostu czytałem, próbowałem zrozumieć i przepisać kod do IDE, zazwyczaj dodając coś do niego, albo zmieniając z ciekawością obserwując co się stanie. Z czasem próbowałem innych technologii, aż wreszcie trafiłem na Javę i Androida, które są ze mną do dziś.
[author name=”Marcin Pietraszek” image=”marcin-pietraszek.jpg” url=”http://www.samouczekprogramisty.pl”] [/author]Zacząłem od języka C, kolejnym była Java. Później przyszedł czas na Rubiego i Pythona a teraz planuję zacząć uczyć się Go. C i Javy uczyłem się na wykładach i laboratoriach, uzupełniając tę wiedzę w domu. Rubiego nauczyłem się wieczorami po pracy. Z Pythonem to zupełnie inna historia. Dostałem propozycję pracy jako programista Pythona. Nie znałem wówczas tego języka, jednak udało mi się tę pracę dostać mimo tego, że otwarcie na rozmowie mówiłem, że Pythona dopiero się uczę i nie znam nic ponad podstawowy tutorial.
[author name=”Michal Dymel” image=”michal-dymel.jpg” url=”https://devblog.dymel.pl”] [/author]Pierwsze programy pisałem mając jakieś 10 lat na ZX Spectrum (Basic). Potem w czasie liceum to był Visual Basic i Pascal. Na studiach C, a strony w PHP 🙂
[author name=”Pawel Skaruz” image=”pawel-skaruz.jpg” url=”https://pawelskaruz.pl”] [/author]Był to Turbo Pascal. W liceum uczyliśmy się właśnie tego języka. Pamiętam, że kupiłem sobie wielką książkę o Turbo Pascalu i doszkalałem się po szkole. 🙂
[author name=”KrzaQ” image=”krzaq.jpg” url=”https://dev.krzaq.cc”] [/author]Nie wiem, czy to się liczy, ale jak miałem 11-12 lat w CD-Action był krótki kurs Pascala. Przerobiłem go, napisałem też kilkanaście tasiemcowych programów zaprzeczających wszelkim dobrym praktykom, obyczajom i zdrowemu rozsądkowi. Ale działały. Potem do programowania wróciłem pod koniec liceum, tym razem przysiadając do C++ i PHP. Starałem się nabywaną wiedzę od razu zaaplikować praktycznie. Nie było to łatwe, szczególnie na początku.
[author name=”Wojciech Mioduszewski” image=”wojciech-mioduszewski.jpg” url=”http://www.codinghappiness.com”] [/author]Pomijając tę niewiele wnoszącą (poza frajdą) przygodą z BASICiem, to programowanie, w które ja miałem realny wkład, to Pascal. W trzeciej klasie gimnazjum nauczyciel od informatyki postanowił przedstawić nam podstawy tego języka i na przykładzie prostego programu zademonstrował, co możemy tworzyć. Rzeczywiście wtedy zafascynowałem się tematem i weekendy zdarzyło mi się przesiedzieć na robieniu dodatkowych zadań. Pierwszy mój program to obliczanie pola trapezu. Konsola sczytywała odpowiednie dane (dwie podstawy, wysokość), by potem wydrukować pole figury.
[author name=”Arkadiusz Benedykt” image=”arkadiusz-benedykt.jpg” url=”http://www.benedykt.net/”] [/author]Wtedy oczywiste było, że do nauki używa się Pascala, więc właśnie od niego zaczynałem. Prosty fajny język, nastawiony na dobre praktyki – zresztą był projektowany właśnie jako język do uczenia programowania. Potem było Delphi w wersji 1.0 Kosmiczny skok do przodu, bo można było robić okienka i takie wypasione aplikacje. Po prostu cuda. Gdzieś wtedy też próbowałem rozpocząć przygodę z Javą, bo to było To. Nowy język, w pełni obiektowy, ą ę. W zagranicznej prasie sporo o tym pisali – tak, prasie, bo to były czasy przed internetowe 🙂 Niestety mój komputer nie bardzo dawał sobie radę z Javą i ciężko było cokolwiek mi w tym zrobić.
[author name=”Paweł Bulwan” image=”pawel-bulwan.jpg” url=”https://przedczasem.taurit.pl/”] [/author]Szczęśliwie zacząłem od tworzenia własnych stron, a więc technologii webowych. Myślę, że webdeveloperka uczy nas wiele na temat sposobu działania Internetu, a to uniwersalna i niezbędna wiedza, którą można wykorzystać także po przejściu na inne technologie.
[author name=”Mateusz Cholewka” image=”mateusz-cholewka.jpg” url=”https://webmtkblog.wordpress.com”] [/author]Naukę zacząłem od HTML, chociaż każdy ma inne zdanie na temat tego, czy jest to język programowania. Potem bardzo zainteresowałem się PHP, najbardziej jarało mnie to, że na statycznych stronach, które już potrafiłem tworzyć, coś się w końcu dzieje. Z PHP tak się zaprzyjaźniłem, że jestem z nim do dziś. Tak naprawdę język nie ma znaczenia, one wszystkie są podobne i jeśli umiemy jeden popularny język, to nauka podstaw nowego języka jest kwestią kilku dni, albo nawet godzin. Najważniejsza w nauce jest motywacja.
[author name=”Marek Zając” image=”marek-zajac.png” url=”http://zajacmarek.com”] [/author]Naukę zacząłem od książeczki wydawanej przez Komputer Świat, która uczyła podstaw języka C++. Kupił mi ją tata właśnie wtedy, jak zacząłem pytać, jak to wszystko działa. 14 lat temu nie było tylu dostępnych książek do programowania, wiele z języków, które używamy teraz, albo nie było jeszcze zbyt znane albo nawet nie istniały więc wtedy wybór C++ nie był taki zły, po prostu to był język, który już był dobrze znany i wywodził się z języka C, który mój tata kojarzył. Przez długi czas opierałem się tylko na tej książeczce, wtedy jeszcze nie miałem internetu w domu. Jakoś może po 2 latach dostałem kolejną książkę, już „dużą”, która uczyła środowiska Borland C++.
[author name=”Łukasz Tomaszkiewicz” image=”lukasz-tomaszkiewicz.jpg” url=”http://luktom.net/”] [/author]Jak już pisałem pierwszy kontakt z programowaniem miałem dzięki blogowi Maćka Aniserowicza. Więc siłą rzeczy zacząłem się uczyć C# na własną rękę. Nawet nie wiedziałem o istnieniu innych technologii. Później w szkole był C++. Następnie na studiach C i Java.
[author name=”Artur Dębkowski” image=”artur-debkowski.jpg” url=”http://ekhart.pl/”] [/author]Pierwszym językiem, z jakim miałem do czynienia był Pascal. Na informatyce w liceum. Potem zaczęliśmy też nieco pracować z C, C++, ale Pascala z tamtego okresu pamiętałem najlepiej. Turbo Pascal pozostanie na długo w mojej głowie. Potem sporo czasu nie programowałem jakoś intensywniej. Nieco na studiach, na których zaczęliśmy od C, potem Java. Było też trochę JavaScript, HTML, CSS i PHP, i nieco też Pythona. Na praktykach zetknąłem się z Objective-C na Macintoshu. A w swojej pierwszej pracy i potem, głównie programowałem w C#, SQL, ASP.NET choć sam dla siebie wypróbowywałem mnóstwo innych technologii (z czego tylko część jest na moim LinkedIn). Najbardziej polubiłem programowanie funkcyjne i języki z rodziny Lispa (głównie Clojure) zainspirowany artykułem How to Become a Hacker. Jestem, więc można powiedzieć, poliglotą samoukiem)
[author name=”Tomasz Woliński” image=”tomasz-wolinski.jpg” url=”https://stormit.pl/”] [/author]Pierwsze linijki napisanego przeze mnie kodu były w Pascalu i PHP. Nie nazwałbym jednak tego programowaniem, bo prawdę mówiąc, niewiele jeszcze z tego wszystkiego rozumiałem.
Początki prawdziwego programowania przyszły dopiero na studiach. Wtedy był to dla mnie prawdziwy szok. Wszystko było nowe i dziwnym trafem nigdy nic nie chciało mi działać. Jednak po wielu nockach spędzonych przed monitorem nawet zaczęło mi się to podobać 🙂 Do dziś pamiętam niektóre zadania ze spoja, nad którymi siedziałem nawet po kilka dni.
Największą pracę, jeżeli chodzi o podstawy programowania, zrobiłem w C/C++. Potem był epizod z PHP, by ostatecznie zatrzymać się przy Javie, gdzie jestem do tej pory.
[fbLikePage][/fbLikePage]Jak zacząć programować – wnioski
Nie ma jednej słusznej drogi, lub takiej, która zaprowadzi Cię na skróty do „bycia programistą”. Każdy musi też swoje przejść, bo umiejętność programowania bardzo często zdobywa się w bólach.
Pamiętaj jednak, że nigdy nie jest za późno, by zrobić ten pierwszy krok. Potem jest już dużo łatwiej. Na koniec życzę Ci wytrwałości i wielu przyjemnych chwil w poszukiwaniu swojej ścieżki.
- Jak wybrać język programowania? (pierwszy i nie tylko)
- Jak zostać programistą – historia prawdziwa
- Nauka programowania – jak się uczyć programowania, mimo braku czasu i motywacji
20+ BONUSOWYCH materiałów z programowania
e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!