Czy trudno zostać programistą?

Nasz czytelnik-programista stworzył dość nietypowy kurs programowania, który wyróżnia się na tle innych podejściem do tematu. Jeśli ktoś chciałby zacząć, temat go ciekawi, ale też chciałby poprawić swoje schematy myślenia to można pomyśleć właśnie o takim kursie. Praktycznie każdy chciałby zarabiać dużo, czy też chciałby mieć partnera, który zarabia dużo, chciałby zapewnić bezpieczeństwo, a czasem i jakieś większe przyjemności, a to jest branża rozwojowa. Na naszej stronie cenimy logiczne myślenie, które pomaga w programowaniu, dlatego właśnie warto się tym zainteresować.

Poniżej kilka słów od twórcy kursu.

Zapoznanie

kurs programowania

Cześć, nazywam się Nawrot Marcin i dzięki uprzejmości Świadomość-Związków mogę z wami się podzielić ciekawostkami oraz mitami związanymi z programowaniem. Na początek coś o mnie i nie odbierzcie tego proszę jako przechwałki. W wieku 15 lat zainteresowałem się programowaniem, właściwie przez przypadek spotkałem się z tym zagadnieniem. Od tamtego czasu moje życie zawodowe kręci się wokół programowania. Dziś jestem programistą z prawie 15 letnim doświadczeniem i dzięki temu mogę przybliżyć Wam ten świat. Na co dzień pracuję dla firmy Neonet (tak, tej od sklepów z elektroniką) oraz firmą zajmującą się wymianą walut i zarabiającą w ten sposób.

Początki programowania

Mało znaną ciekawostką jest to, że za pierwszą programowalną maszynę uznano maszynę tkacką, która rozwiązywała palący wtedy temat cen tkanin, a co za tym idzie ubrań. Maszyny w tamtych czasach były tworzone pod jeden wzór. By stworzyć inny należało przebudować maszynę, lub też stworzyć kolejną. Historycznie, wszędzie tam gdzie pojawiała się możliwość zdobycia większych pieniędzy (oszczędność) lub większej władzy (wojny) pojawiała się także innowacja. Innowacją była więc na początku programowalna maszyna do tkania. Programowalna, to znaczy, że mogła zmieniać swoje działanie (plecenie tkaniny << wzór >>) bez potrzeby mechanicznej interwencji w maszynę. O jakich czasach mówimy? O 1805 roku. Dla zlokalizowania tego momentu w historii ludzkości pierwszy silnik elektryczny zbudowano 29 lat później, a pierwszy komputer (a raczej maszyna uznawana dziś za komputer) pojawił się w 1883 roku. To nie programowanie było odpowiedzią na powstanie komputerów, lecz komputery mogły powstać dzięki programowaniu.

Czym jest programowanie? W wielkim skrócie programowanie to możliwość ustawienia określonej sekwencji działań dla urządzenia od chwili jego uruchomienia, lub też możliwość ustalenia określonej sekwencji działań jako reakcji na działanie zewnętrzne. Programowanie ma także drugie znaczenie oznaczające zaplanowanie. Niektórzy w ten sposób próbują sobie trochę poszydzić:

„Kobieta programuje…pfff…chyba pralkę”.

Jak w każdym stereotypie jest ziarenko prawdy i kobiety zwykle nie wybierają programowania jako swojego zawodu, gdzie codziennością jest bardzo logiczne myślenie.

Może któraś z kobiet czytająca ten wpis jednak spróbuje?

Czy programowanie jest trudne?

To jest bardzo często powtarzany mit. Programowanie nie jest trudne! Trudniejsze jest prowadzenie auta, a mimo to niemal każdy potrafi prowadzić. Wpisywanie wyuczonych formułek nie jest specjalnie trudne.

Każdy może być programistą, wystarczą trzy rzeczy: znajomość logiki, znajomość języka programowania, oraz umiejętność rozbijania rozwiązań problemów na malutkie części. Mit ten powstał z pewnością z powodu wrzucania początkującego na głęboką wodę, ogromu dostępnych za darmo kursów, które niczego nie uczą. To jest niczym przysłowiowe wrzucenie dziecka na środek rzeki i uczenie w taki sposób pływania. W przypadku programowania utonięć jest o wiele wiele więcej.

Powodem jest to, że programowanie składa się z dwóch elementów : odpowiedniego myślenia, oraz znajomości języka programowania. Nawet małe dziecko wie gdzie jest kierownica, gdzie hamulec, a nawet gdzie się zapala samochód jak mu się to wskaże, ale by prowadzić i robić to bezpiecznie potrzebna jest wiedza. Podobnie jest z programowaniem. Pokazanie elementów języka nie sprawi, że ktoś będzie umiał w głowie poukładać co połączyć z czym, który element z kolejnym.

Mogę Cię tego nauczyć.

Podsumowując. Programowanie jest proste, jednak jest wysoki próg wejścia ze względu na częste, zbyt małe skupienie się na zrozumieniu i zostawianie każdej osoby samej z zagadnieniem.

Skąd ciągły niedobór programistów?

Ciekawym faktem jest, że jest jednocześnie przesyt i niedobór programistów. W mediach usłyszymy, że jest niedobór programistów, że jest coraz więcej ofert pracy i mimo że już prawie 5 lat minęło od pierwszych takich sensacji nadal brakuje programistów. Politechniki i uniwersytety masowo produkują większą ilość programistów, niż jest zapotrzebowanie, a rynek nadal nie nasycony.

Prawdą jest, że powstaje coraz więcej stanowisk pracy dla programistów, żyjemy w erze gdzie każde urządzenie jest programowane, oprogramowanie w komputerze, w smartfonie a nawet w lodówce pozwala na ich działanie i instalowanie dodatkowych aplikacji. Tych stanowisk dodatkowo nie jest tyle ile się tworzyło kiedy w Polsce królowała nasza klasa, a nie facebook. Dziś stanowiska tworzą przede wszystkim zagraniczne firmy szukające oszczędności w taniej sile roboczej. Tu dochodzimy do rozwiązania niedoboru, firmy non stop szukają programistów, ponieważ wytwarzane przez politechniki i uniwersytety osoby są niezdolne do utrzymania się na swoim stanowisku. Chcą zarabiać zbyt dużo względem swoich umiejętności, przez co odchodzą gdy pracodawca im tego nie chce zaoferować, po czym albo przenoszą się do innego pracodawcy i ponownie tracą kontrakt.

Większość ogłoszeń, które widzą parę lat to poszukiwania programisty z wysokimi umiejętnościami, a tych jest mniej. Jeżeli pracodawca już takiego znajdzie to zaoferuje mu o wiele więcej niż innym pracownikom w swojej firmie, darmowe obiady – nie ma problemu, godziny pracy nie odpowiadają – w porządku, kiedy chcesz pracować. W przypadku słabych i średnich programistów nadal trwa rotacja, jest ona tak duża, że media gubią się i twierdzą, że pracy jest dużo. Łatwo jest zdobyć pracę juniora programisty, jednak trzeba wykazać się chęcią rozwoju by zostać na dłużej i swoją pensję z czasem podwyższać. W przypadku dobrych i bardzo dobrych programistów jest to wręcz na zasadzie „kradzieży’, jeden pracodawca zwraca się samodzielnie do konkretnej osoby, oferuje warunki i czeka na reakcje takiego programisty. Na tym poziomie nie ma za bardzo znaczenia dla kogo pracujesz, a mając ofertę w dłoni na o wiele lepsze warunki to już kwestia indywidualna czy się odrzuci te warunki bo nie chce się zmieniać pracy, czy też może zmieni się pracę informując o tym obecnego, albo też rozmowa z aktualnym pracodawcą, że ma się lepszą ofertę i czy ma on do zaoferowania coś więcej by zostać.

„Programista 15k”

Od 2017 roku utworzyło się wewnątrz programistycznego światka pojęcie „Programista 15k”, gdzie 15k oznacza w tym wypadku 15 tys. zł. Jest to określenie dla osób co świeżo co rozpoczęły swoją przygodę z programowaniem, nie zrobili nic komercyjnie a już chcą otrzymywać pensje 15 tysięcy zł na rękę – gdy takie pieniądze są zarezerwowane dla bardzo dobrych programistów. Jest możliwe, że ktoś w pół roku komercyjnej pracy otrzyma kontrakt na taką kwotę, ale szansa jest jak jeden do miliona, programista bez doświadczenia jeżeli otrzyma coś blisko średniej krajowej powinien się cieszyć, bo dostał bardzo dobrą ofertę jak na jego doświadczenie i umiejętności, szczególnie gdy nie miał projektów niekomercyjnych, ani w żaden sposób nie mógł się przedstawić jako dobry programista.

Pracodawca zatrudniając na junior programistę (początkujący) ponosi bardzo dużo ryzyko, że ten nowy pracownik sobie nie poradzi a dodatkowo obciąży swoimi problemami pozostałych pracujących u niego programistów. Niektórzy rzucają na początek kwotami, które nie mają pokrycia w ich udziale w tworzeniu zysku w firmie, a podstawowa zasada biznesu – by pobierać pensje w wysokości X zł, należy przynosić firmie co najmniej X+1 zł. Jeżeli jest tutaj ktoś kto zaczyna swoją pracę jako programista, to górnym celem powinna być średnia krajowa, a negocjacje pensji są na porządku dziennym i nie masz co się obawiać, że zostaniesz z nią na dłużej jeżeli będziesz się rozwijał lub rozwijała.

Logika złotem, a myślenie platyną

Kolejny fakt. W programowaniu nie ma znaczenia praktycznie w ogóle jakim językiem programowania się posługujesz, bez problemu można przeskoczyć z jednego na drugi. Ja C# poznałem pół roku przed rozpoczęciem pracy na stałe z tym językiem, wcześniej programowałem w bardzo podobnym języku Java. Znając podstawy języka można zrobić wszystko, a żadna poważna firma nie blokuje internetu programistom i sporo wiedzy można znaleźć poprzez Google lub Stack Overflow. Kluczowe więc stają się pozostałe atrybuty programisty, jego sposób rozumienia logicznego i przyczynowo-skutkowego. Programista musi znać pełną logikę i nie chodzi tu o logiczne myślenie a dziedzinę matematyki. Posługiwanie się wartościami prawda i fałsz (jedyne wartości w logice) jest bardzo istotne, by sprawdzać jak reagować na działania użytkownika. Jeżeli programista miałby zrobić prosty kalkulator to musi wiedzieć, że po wciśnięciu „+” ma wykonać dodawanie a nie odejmowanie, w takim wypadku zachodzi sprawdzenie czy wciśnięty klawisz to „+” co tworzy użyteczną wartość logiczną. Bo klawisz nie może być jednocześnie plusem, a jednocześnie nim nie być.

Najważniejsze jednak jest odpowiednie myślenie przyczynowo-skutkowe. Jeżeli należałoby stworzyć kalkulator to po wciśnięciu „2+2” nie można dać użytkownikowi aplikacji odpowiedzi „okoń” bo to nie jest to co użytkownik by oczekiwał. Człowiek chce by aplikacja wykonała dokładnie to co on oczekuje. Na przykład wciskając pedał hamulca oczekiwaną reakcją jest hamowanie – to interesuje użytkownika, a czym zajmuje się programista? Programista zajmuje się posługując się tym przykładem całą otoczką, tym że pedał hamulca ma stawiać opór, że siła nacisku ma być przekazana do komputera, który wyliczy na ile docisnąć klocki hamulcowe do tarczy. Wszystkie te działania musi rozbić na jak najmniejsze elementy, które pozwolą odpowiednio reagować na to co kierowca miał na myśli. Jak powoli przesuwasz palcem po smartfonie to tekst zmienia się powoli, jednak gdy zrobisz to szybko to tekst przesunie się o wiele dalej niż gdybyś robił to powoli. Celem programisty jest więc odczytanie danych od użytkownika, odpowiednie ich przetworzenie i odpowiednia reakcja.

Czy by być programistą trzeba umieć matematykę? Język angielski? Zarówno matematyka jak i angielski jest zbędny, ale pomagają. W Polsce wiele firm stosuje zapis kodu aplikacji w języku polskim oraz jeżeli sam przygotowujesz aplikację możesz także pisać po polsku. Zalecany jest jednak język angielski, poziom nie jest jakoś wybitnie trudny. Zawsze można się posłużyć tłumaczem on-line, a publikowany kod przez innych często jest wystarczającą podpowiedzią do rozwiązania problemu. Im lepiej znasz język angielski tym więcej drzwi sobie otworzysz i tym szybciej możesz znaleźć odpowiedź lub podpowiedź na napotkany błąd, lub problem z którym sobie nie radzisz. Natomiast matematyka jest potrzebna jeżeli chodzi o logikę, w nocy o północy programista powinien wiedzieć jaki wynik da działanie logiczne, jednak nie koniecznie musi wiedzieć ile wynosi 1320 do potęgi drugiej albo ile wynosi sinus 30 stopni. Zależnie od branży dla której pracuje programista matematyka może stawać się istotna. Na przykład tworzenie gier z pewnością geometria jest wymagana, natomiast pisanie stron www już z matematyką ma niewiele wspólnego. Programowanie przenika przez wszystkie branże i jeżeli nie leży danemu programiście matematyka, może skupić się na pracy dla takiej, która tego nie wymaga.

Jestem za stary(a) na programowanie

Choć sam bardzo wcześnie zacząłem programować to nikt w branży nie może powiedzieć, że tylko zaczynając młodo da się dużo zarabiać i być w tym dobrym. Znane są przypadki gdzie 60 latek został programistą i potroił swoją pensję zanim odszedł na emeryturę. Tak dobry był. Z programowaniem jest troszkę jak z jedzeniem, coś może wyglądać mało zachęcająco przez co sobie wmawiasz, że to nie smakuje najlepiej, a wystarczy spróbować a może się okazać najlepszym co jadłeś. W dobie kiedy od mężczyzny oczekuje się nadal bycia lepiej zarabiającym od kobiet, branża IT bardzo to ułatwia, a szczególnie właśnie programowanie. Każdy może się nauczyć programowania, trzeba samozaparcia i chęć nauki, a zdobędzie się umiejętności wymagane w tej pracy. Uczyć programowania można się jednocześnie do aktualnie wykonywanej pracy, zdobywać doświadczenie, sprawdzić się i zmienić pracę. Jest niewiele zawodów, które pozwalają jednocześnie być pracownikiem etatowym w dowolnej branży, nauczycielem, wolnym strzelcem lub sobie dorabiać, a nawet tworzyć biznes z pasywnym dochodem. Raz napisana aplikacja może dawać zarobek wiele lat bez dodatkowego wysiłku.

Programista zombie – praca po godzinach?

Kiedyś kiedy programowanie nie było tak znanym pojęciem społecznym, a programistę nazywano nerdem, który siedział skulony przed komputerem – powstał mit, że programista pracuje non stop, a na pewno więcej niż 40h w tygodniu. Dziś programista to bardzo dobrze sytuowana osoba (o ile jest dobra w tym co robi), jeździ dobrym autem i po przedstawieniu czym się zajmuje może pojawiać się nadal u niektórych szok. Programista także w tych czasach rzadko pracuje 40h tygodniowo, swobodnie można skorzystać z różnych benefitów oferowanych programistom, które także zajmują czas. Prędzej będzie to 7h dziennie niż 8, a najlepsi programiści mogą negocjować nawet dzień wolny w tygodniu i nadal zarabiać 10 krotność minimalnej krajowej. Dobre zarobki to także możliwość zakupu jedzenia na mieście, zatrudnienia sprzątaczki, więc jeżeli nie chce się realizować swoich własnych projektów obok pracy na etacie można uznać, że 40h tygodniowo i czas dojazdu to obciążenie programisty, resztę to czas wolny, a mając pieniądze może być on aktywny lub pasywny. Można zwiedzać, co weekend być w innym miejscu, można też grać w najnowsze gry komputerowe lub na konsoli bez obciążenia dla budżetu i mieć na to czas, a można także odkładać i inwestować pieniądze.

Czy warto zacząć programować?

Biorąc pod uwagę rosnącą hipergamię wśród kobiet, mężczyzna mógłby wybierać zawody w których łatwo mieć duże pieniądze a z odrobiną wysiłku bardzo duże. Programowanie jest jednym z tych zawodów, lecz nie jedynym. Jest także zawodem, który nie wymaga „papierku”, samouk często jest lepiej widziany niż człowiek po studiach, ponieważ liczą się umiejętności. Praca jest bezpieczna dla zdrowia gdy wprowadzi się trochę ruchu, ale też wszyscy wiedzą, by nie naciskać na programistów bo w stresie gorzej pracują.

Jeśli polubi się programowanie to wtedy jest to praca marzenie, hobby co daje ogromne pieniądze, bo nie da się jednocześnie bardzo lubić czegoś i być w tym słabym.

Start w programowanie wygląda rzeczywiście tak: nauczenie się programowania, robienie własnych prostych aplikacji lub stron WWW (zależnie od obranego kierunku), po zrobieniu ich kilku rozpoczęcie wysyłania CV, podjęcie pracy jako junior programista ze stawką około 3500 zł na rękę, zdobycie doświadczenia dwu letniego i jednoczesne pogłębianie swojej wiedzy i umiejętności. Rozpoczęcie pracy jako programista w innej firmie lub po negocjacjach z obecnym pracodawcą za około 6000 zł na rękę. Kwoty jakie podaje są średnimi z raportów co do pensji programistów i mogą być mniejsze lub większe zależnie od miejsca w którym chcesz pracować. Pamiętaj zawsze możesz się przeprowadzić i jednocześnie negocjować, że ok. te 3500 zł tylko dodajcie też co miesiąc 1000 zł na mieszkanie lub 1500 zł zależnie od miasta. Wiele osób będzie mówić, że konkurencja jest duża, jednak wiele osób, które chcą otrzymać pracę junior programisty nic nie robi, nie pokazuje, że coś potrafi, że mu się chciało poświęcić czas by przygotować coś małego. Czasem wystarczy pokazać jeden projekt, by przeskoczyć 50% kandydatów.

W sieci można znaleźć mnóstwo kursów, które częściej znajdziesz w języku angielskim niż w polskim, ale i takowe znajdziesz. W przypadku najbardziej popularnych Python, Java oraz C# z pewnością znajdziesz kursy w języku polskim za darmo lub płatne. Z pewnością warto się zastanowić nad zakupem płatnych. W przypadku płatnych mamy dwie lampki ostrzegawcze. Pierwsza to gdy kurs jest prowadzony przez osoby młode, ich firma powstała niedawno i zajmują się tylko tym. W każdej profesji mówi się jak ktoś nie radzi sobie to uczy, na szczęście to się trochę zmienia ale nadal na uczelniach biznesu uczyć może ktoś kto biznesu nigdy nie prowadził, a uczyć programowania może ktoś to ledwie sam je poznał. Druga lampa ostrzegawcza, gdy ktoś obiecuje pracę od razu po zakończeniu kursu, jest to oszustwo lub dogadanie z jakąś firmą, która zatrudni osoby po kursie po czym szybko zwolni. Nauczenie się pozwala na dalszą naukę, przygotowanie własnych projektów i dopiero poszukiwanie pracy, od zakończenia kursu do podjęcia pracy może być kilka miesięcy intensywnej (co najmniej po 10h tygodniowo) pracy nad małymi projektami by podjąć pracę. Im bardziej intensywnie się podejdzie do tematu tym szybciej się ją znajdzie – stąd przewaga osób niepracujących.

Podsumowując

W tym miejscu chciałbym przede wszystkim zachęcić do podjęcia wyzwania, zobaczenia czy programowanie może Cię ucieszyć, ponieważ na rynku wciąż są ogromne braki dobrych programistów. Mówię to przez pryzmat patrzenia na to jakie ja otrzymuje propozycje zmiany pracy jak i skierowania swojej kariery w tym kierunku.

Ja przygotowałem przede wszystkim kurs programowania w języku C# dla osób, które próbowały już programowania i się zniechęciły, bo nie zrozumiały kursu lub programowania. Jednak jeżeli chcesz bardzo łagodnie i z dobrymi nawykami wejść w świat programowania również zachęcam do zakupu.

Zajmuje się programowaniem już 14 lat, komercyjnie dwanaście. Firmę założyłem wraz z wymogiem takiej formy przez firmę Neonet, dla której pracuje przy logistyce (planowanie przywozu przez dostawców towaru, przyjmowanie tego towaru, składowanie na magazynach oraz wysyłka tego towaru) – jeżeli kupowałeś coś od Neonet to wysyłka mogła być obsłużona dzięki systemowi za który to ja odpowiadam. Zatrudniam 7 osób i średnio na miesiąc mam przychody 22-23 tys zł. Żyje oszczędnie co pozwala mi rozwijać firmę. Aktualnie mam 4 formy przychodu: praca na etacie, przychody z licencji na wytworzone oprogramowanie, dochody ze szkoleń (teraz zmieniłem na kurs który oferuje) oraz dochody ze zleceń wykonywanych przez pracowników. Ponadto pracujemy teraz nad grą platformową, która mam nadzieję ukaże się w lutym 2020. Jeżeli uważasz mnie za osobę od której warto się uczyć zapraszam do zapisów, jeżeli nie, zachęcam do skorzystania z ofert konkurencji lub darmowych. Programowanie daje ogromne możliwości i można się tego nauczyć w domowym zaciszu, a wręcz tak jak mój jeden kursant, który szkolił się u mnie na programistę, ale… tak by żona nie wiedziała 😉 Chciał zobaczyć czy podoła, pracował na kasie w znanym supermarkecie (by nie robić zbędnej reklamy ), od tego czasu minęło półtorej roku – dziś pracuje jako programista, chyba jest zadowolony bo ostatnio zmienił auto. Z pewnością warto, kwestia czy dasz sobie szansę i poświęcisz czas ?

Spodobał Ci się mój artykuł, moja praca, może cała idea i działalność? Jesteś za tym, by strona nie zniknęła z internetu przez brak wsparcia czytelników? Spójrz poniżej w jaki sposób możesz to zrobić! Tylko dzięki wpłatom można ocenić, czy moja praca się przydaje i jest wartościowa. To wszystko co widzisz (ale i to co niewidoczne) jest pracą, poświęconym czasem i moimi inwestycjami. Nie zwlekaj z decyzją 🙂

Karta płatnicza - konto bankowe. Warto ustawić comiesięczne zlecenie wpłaty.

wpłata na konto bankowe

Nr konta: 20 1870 1045 2078 1033 2145 0001

Tytułem (wymagane!): Bezinteresowna darowizna

Nie są to pożyczki, nie są to usługi. Jest to bezzwrotne wsparcie ogólne, czy też podziękowanie.

Odbiorca: SW

Paypal - darowizna jednorazowa (kliknij w dany obrazek)

paypal wpłata

matrixpoland@o2.pl

Paypal - darowizna cykliczna (comiesięczna)

darowizna paypal

wpłata bitcoin

Adres portfela: 1BTR3p6kxRd7LKLMGvsT78kYk5DpmgHu9E

Czytaj więcej o podejmowanych działaniach i o samych darowiznach.