język programowania

POIT #024: Wybór pierwszego języka programowania

Witam w dwudziestym czwartym odcinku podcastu „Porozmawiajmy o IT”. Tematem dzisiejszej rozmowy jest wybór pierwszego języka programowania.

Dziś moimi gościem jest Paweł Dąbrowski, programista i team leader specjalizujący się w technologii Ruby on Rails. Obecnie pracuje w firmie iRonin. Prowadzi dwa blogi, jeden technologiczny a drugi o ludzkiej twarzy IT. Pasjonuje się rozwojem osobisty i dbaniem o jakość. W swojej historii współtworzył kilka startupów i restaurację. Miał okazję występować w zagranicznych podcastach więc teraz pora na nasz rodzimy 🙂

W tym odcinku o pierwszym języku programowania opowiemy w następujących kontekstach:

  • dlaczego tylu ludzi spędza mnóstwo czasu zastanawiając się nad jego wyborem?
  • co biorą wówczas pod uwagę?
  • i jakie obawy mają?
  • czy formalne wykształcenie jest niezbędne i potrzebne w programowaniu?
  • że wybierając go należy kierować się wizją końca
  • jak do tego wszystkiego ma się pasja?
  • czy ludzi boją się tego, że raz wybrana technologia szybko przestanie funkcjonować i ich umiejętności się zdezaktualizują?
  • czy programiści wolą być ekspertami w jednym czy też ciągle poszerzać swoje horyzonty?
  • czy jego wybór jest odwracalny?
  • jak go wybrać gdy w danej kategorii jest kilka możliwości?
  • jaka wiedza czy umiejętności nigdy się nie dezaktualizują?
  • dlaczego warto znać język angielski?


Subskrypcja podcastu:

Linki:

Pozostańmy w kontakcie:

 

Muzyka użyta w podcaście: „Endless Inspiration” Alex Stoner  (posłuchaj)

Transkrypcja podcastu

To jest 24. odcinek podcastu Porozmawiajmy o IT, w którym z moim gościem rozmawiam o wyborze pierwszego języka programowanie. Przypominam, że w poprzednim odcinku rozmawiałem o marketingu w IT.

Dziś temat, który na forach i grupach Facebookowych pojawia się dość często. Postaramy się pomóc i pocieszyć tych, którzy rozważają jaki język programowania wybrać jako pierwszy w swojej karierze. Ja się nazywam Krzysztof Kempiński i życzę Ci miłego słuchania.

Odpalamy!

Krzysztof: Cześć! Mój dzisiejszy gość, to programista i team leader specjalizujący się w technologii Ruby on Rails. Obecnie pracuje w firmie Ironin, prowadzi dwa blogi, jeden technologiczny, a drugi o ludzkiej twarzy IT. Pasjonuje się rozwojem osobistym i dbaniem o jakość. W swojej historii współtworzył kilka start upów, a nawet restaurację. Miał okazję występować w zagranicznych podcastach, więc teraz pora na nasz rodzimy. Moim i Waszym gościem, jest dzisiaj Paweł Dąbrowski. Cześć Paweł! Cieszę się, że zgodziłeś się przyjąć zaproszenie i, że będziemy mieli okazję porozmawiać.

Paweł: Cześć Krzysztof! Dziękuję bardzo za zaproszenie i to jest całkiem fajne doświadczenie móc być po tej stronie podcastu, bo zazwyczaj jestem jako twój słuchacz, a dzisiaj mam przyjemność wystąpienia jako gość i mam nadzieję, że udostępnimy twoim słuchaczom masę dobrej treści i będą mogli wynieść dużo nowej wiedzy z tego odcinka.

Krzysztof: Dokładnie tak. Przyjemność po mojej stronie, a dzisiaj z Pawłem poruszymy temat, który nierzadko mam okazję widzieć gdzieś tam na różnych grupach Facebookowych czy forach. Temat, czy pytanie poruszane przez osoby, które dopiero myślą o wejściu do branży IT, do zostania programistą, mianowicie: jaki pierwszy język, czy jaką technologię wybrać na początek? Ten temat właśnie dziś poruszymy, a ja standardowo rozpoczynam od zadania tematu, pytania takiego trochę rozluźniającego, na wprowadzenie: Paweł, czy słuchasz podcastów i jeśli tak, to jakich najczęściej?

Paweł: Słucham jak najbardziej. Miałem taki okres w swoim życiu, że szukałem ich bardzo dużo, szczególnie podcastu Radosława Bonickiego „Lepiej teraz”. Dzisiaj już trochę mniej ich słucham, ponieważ wolę ten czas przeznaczyć na relaks, kiedy chodzę z psem na dłuższy spacer czy podróżuję autem, ale słucham. Jest to oczywiście świetna forma pozyskiwania wiedzy. Słucham twojego podcastu, innych podcastów słucham sporadycznie, kiedy pojawi się  jakiś ciekawy odcinek, ale mam oczywiście w planach powrócenie do tego, ponieważ przyznam, że to jest jedna z lepszych form pozyskiwania wiedzy, szczególnie dzięki temu, że można ją pobierać robią całkowicie co innego i to jest bardzo efektywne.

Krzysztof: Dokładnie. Cieszę się, że też masz takie zdanie, bo według mnie to jest bardzo fajny sposób i rozrywki, i nauki, i spędzania czasu. Także jak najbardziej też staram się właśnie tą formę promować. Ok. Paweł, to przejdźmy do meritum naszej rozmowy. Dlaczego według ciebie tyle młodych programistów czy też osób prosperujących do bycia programistom, spędza mnóstwo czasu na analizowanie, na myślenie, na zastanawianie się, który język programowania wybrać?

Paweł: Myślę, że dzieje się tak po prostu, bo nie wiemy jak zacząć. Ja też byłem na początku swojej drogi, też zastanawiałem się nad tym i często korzystamy z takich źródeł, które może nie są odpowiednie dla nas na tym poziomie, na starcie naszej drogi i oczywiście chcemy wybrać taką technologię, która będzie popularna, dzięki której dużo zarobimy i najlepiej by było, jeżeli nie musielibyśmy dużo się uczyć, podążać codziennie za nową wiedzą, bo wiadomo, że to nie jest komfortowa rzecz i brak tej stabilizacji, o której tak wiele osób mówi i myślę, że dzisiaj to jest duży problem i media powinny częściej poruszać ten temat i pokazywać go całkiem z innej strony, niż bombardować nas raportami dotyczącymi zarobków, bo to jednak kreuje taki obraz, który zniekształca rzeczywistość tym osobom i wtedy zaczynają swoją przygodę od niewłaściwego pytania, a powinny się po prostu zapytać same siebie, co chcą osiągnąć, a później zapytać się jak.

Krzysztof: Dokładnie. To jest jeden z mitów, które krążą. Mitów dotyczących branży IT. A ja chciałbym jeszcze ten temat trochę właśnie po drążyć związany z wyborem nie tej technologii. Wspomniałeś, że to może być jedna z przyczyn, dlaczego tyle czasu młodzi programiści spędzają właśnie na roztrząsanie tego tematu. Jakie obawy najczęściej mają młodzi programiści właśnie związane z wyborem nie tej technologii? Czego się boją?

Paweł: Myślę, że przede wszystkim zmarnują czas, ponieważ poświęcą go na uczenie się jakiejś technologii, która później może okazać się niedobra, w sensie może wysokości zarobków lub ich osobistych preferencji, choć moim zdaniem to jest naturalne, że czasami wybieramy takie drogi, które potem okazują się nieodpowiednie dla nas, ale to zawsze daje nam jakieś doświadczenie. Myślę, że obawiają się też tego wyboru, ponieważ dopiero zaczynają, a chcą uniknąć błędów, a myśl, że błędy są nieuniknione zwłaszcza na naszej drodze programistów i myślę, że, to powiedział akurat twórca IBM, że jeżeli chcemy zwiększyć naszą szansę na sukces, to powinniśmy podwoić ilość naszych porażek, bo dzięki porażką uczymy się jeszcze więcej i to są po prostu czyste doświadczenia.

Krzysztof: Zgadzam się. Oczywiście. To jest jak najbardziej słuszna prawda, że trzeba się uczyć na swoich porażkach, ale mam tylko też takie trochę ambiwalentne podejście, bo wydaje mi się, że w dzisiejszym świecie, dużo się właśnie mówi o tym, że porażki są ważne, że każdy powinien przejść przez jakieś błędy, żeby się wiele nowych rzeczy nauczyć, ale właśnie wydaje mi się, że troszeczkę gloryfikuje się samą porażkę, a nie mówi się o tym, że najistotniejsze jest wyciągnięcie jakichś wniosków z porażki i, żeby po prostu w przyszłość tych porażek nie powielać, ale to jest osobny temat, trochę off topic w tej chwili. Przejdźmy może do naszego głównego tematu. Co według ciebie jest brane pod uwagę przy wyborze języka programowania? Jakie kwestie mogą gdzieś tam wpływać na to, że taki albo inny język zostanie wybrany? Czy tylko chwilowa popularność danej technologii ma tutaj znaczenie? Jak to według ciebie wygląda?

Paweł: Jeżeli mówimy o takich osobach, które przebranżawiają się na przykład, przechodzą do IT z innych zawodów, to myślę, że takim głównym czynnikiem jest właśnie wysokość tych zarobków, bo one tak naprawdę nie mają dostępu do innych informacji. Nie wiedzą jak się obracać w tym świecie. A jeżeli chodzi o takie osoby, które np. miały styczność z komputerami, są bardzo młode, interesują się komputerami i zaczynają dopiero swoją karierę zawodową, to myślę, że kieruje nimi chęć robienia danej rzeczy, czyli tworzenia aplikacji mobilnych, więc wtedy bardziej kierują się w inne technologie. Te osoby, które np. chcą tworzyć gry też kierują się w inne technologie i tu jest taka granica, bo tu mamy do czynienia tak jakby z dwoma pokoleniami, dwoma różnymi sferami i jednak to jest znacząca różnica, bo obie te grupy kierują się myślę czymś innym i dopiero gdzieś tam trochę dalej one schodzą na ten sam tor i mają szansę skorygować swoje błędy czy jakieś błędne decyzje, które podjęły wcześniej i wtedy zmienić tą technologię i myślę, że im więcej będziemy mówić o tym, jak wybrać język oprogramowania, czyli najpierw zastanowić się co chcą robić, a wiedząc co chcą robić, można się wtedy pytać jaką technologię wybrać, tym więcej osób zaoszczędzi sobie czasu i na pewno ta ich kariera będzie szczęśliwsza i będą o wiele efektywniejsze w swojej pracy.

Krzysztof: Myślę, że jest naprawdę dużo słuszności w tym, co powiedziałeś, bo to według mnie jest troszeczkę tak jak ze studiami, z wyborem np. studiów, gdzie często podejmujemy taką decyzją na podstawie chwilowego trendu na rynku pracy, chwilowej popularności, dlatego, że inni akurat wybierają taki kierunek. Nie zastanawiamy się, po co nam to będzie w przyszłości, albo jaki jest nasz taki cel długofalowy i później okazuje się, że ten czas jest trochę zmarnowany i tak może być też z tym pierwszym językiem programowania, że bez tego zastanowienia, o którym wspomniałeś, beż tego przemyślenia, po co tak naprawdę chcemy wejść w daną technologię, ryzykujemy czas, który zmarnujemy i nic z tego nie wyjdzie a w najgorszym wypadku możemy się zrazić, ale myślę, że do tego jeszcze za chwilę wrócimy. Natomiast teraz chciałbym cię zapytać o kwestię następującą, obecnie do IT, do branży w szczególności programistycznej przechodzi sporo ludzi z innych branż, tu na to może mieć wpływ dosyć specyficzna sytuacja na rynku pracy, którą mamy okazję obserwować, natomiast faktycznie co raz więcej ludzi się przebranżawia i często mają oni takie przeświadczenie, że nie mają wystarczających kompetencji, nie mają takiego backgroundu akademickiego, nie znają jakichś teorii itd. Zastanawiam się jak to faktycznie jest, bo twój przykład faktycznie wskazuje, że poprzez taki upór, pracę, wytrwałość, da się osiągnąć swoje zamierzenia, a przynajmniej jakoś się zbliżyć do tych naszych zamierzeń. Mógłbyś o tym opowiedzieć jak to wyglądało w twoim przypadku?

Paweł: Tak, oczywiście. Ja sam wpadłem w taką samą pułapkę tej myśli, że jeżeli nie mam wykształcenia informatycznego, to po prostu nie mogę być programistą. To nie było oczywiście jeszcze w czasach tych, kiedy była taka popularność IT, ale myślę, że teraz edukacja, jako taka formalna, zdobywanie tytułów, jest mało ważna, pod tym względem, że bez względu na to czy jesteśmy na studiach, bez względu na to czy jesteśmy w technikum informatycznym, czy uczestniczymy w dwutygodniowym bootcampie, która ma nas nauczyć jak najwięcej, to wszystko zależy od nas. Jeżeli my nie będziemy mieli takiego nastawienia, aby jak najwięcej się nauczyć, być proaktywnymi i sami szukać tej wiedzy na podstawie tych wskazówek, które dostajemy na tych studiach czy jakimś innym kursie, to nic z tego nie wyjdzie i spotykam na swojej drodze wielu specjalistów świetnych, którzy nie mieli wykształcenia, i spotykałem także osoby po studiach informatycznych z wieloma tytułami, które naprawdę nie odnajdywały się w IT i oczywiście było także na odwrót. Także myślę, że tutaj edukacja nie jest wymagana, oczywiście nie przeszkadza w niczym i zawsze to będzie dużym plusem myślę, ale ona nie determinuje tego, czy osiągniemy w przyszłości sukces w IT. Ja akurat także byłam na studiach informatycznych i po dwóch latach zrezygnowałem, bo po prostu zauważyłem, że ta wiedza, którą oni tam przekazują nie będzie odpowiednia dla mnie w tym momencie, w którym się znajdywałem wtedy i myślę, że to wyszło mi po prostu na dobre. Choć pewnie w przyszłości parę razy odczuję, że jednak te studia by się przydały, także myślę, że to kwestia osobistych preferencji, ale jak najbardziej zapewniam te osoby, które nie mają wykształcenia, że nie ma żadnych przeszkód ,aby stały się świetnymi specjalistami i pracowały na równi z tymi osobami, które posiadają taki tytuł.

Krzysztof: Steven Covey w swojej najbardziej znanej książce mówi o zaczynaniu z wizją końca. Mówiliśmy, że wybór tego pierwszego języka programowania jest często kierowany być może jego popularnością, być może potencjalnymi zarobkami. To są takie motywacje krótkoterminowe. Wiem, że ty jesteś fanem nieco innego podejścia i patrzenia na ten wybór przez pryzmat celu, który chcemy osiągnąć, do zastosowania w branży w której chcemy pracować. Mógłbyś tą myśl szerzej rozwinąć?

Paweł: Jasne, jak najbardziej. Myślę, że ta sprawa dzieli się na dwie grupy. Pierwsza rzecz, to taka, że jednak obojętnie jaki język programowania wybierzemy czy technologie, to w większości podstawy będą te same i myślę, że to jest też dobra wiadomość dla tych, którzy boją się zmiany języka. Zmiana języka nie oznacza zaczynania czegoś całkowicie od nowa. My już mamy solidne podstawy programowania, więc to jest po prostu skok na coś, co trochę inaczej wygląda i musimy przyswoić trochę nowej wiedzy, ale mamy już jakieś podstawy. A druga sprawa jest taka, że bycie programistą nie sprowadza się tylko do programowania, jest tu jakaś część tego zawodu. Druga część, to na pewno komunikacja z ludźmi, uczestniczenie w różnych projektach i masa innych umiejętności, które nie wiążą się z programowaniem. I nawet zmieniając tą naszą ścieżkę zawodową zmieniając technologię, mamy nadal te umiejętności już pozyskane, które przydadzą nam się w dalszej drodze i to dotyczy także tych osób, które się przebranżawiają. Na przykład przechodząc z innych zawodów, one już mają pewne umiejętności komunikacyjne, czy umiejętności miękkie, które pozwolą im lepiej odnaleźć się w tym zawodzie, bo myślę, że się ze mną zgodzisz, że panuje teraz takie przekonanie, że programiści słabo się komunikują i w większości przypadków mają słabe umiejętności techniczne, a te osoby, które przechodzą z innych zawodów pokazują jednak, że ta branża może się jednak zmieniać i, że mimo to, że nie miały wcześniej styczności z programowaniem, to one są wartościowe, ponieważ wnoszą do IT inne swoje doświadczenia, które się przydadzą i nie zawsze chodzi o doświadczenia techniczne.

Krzysztof:  Zgadzam się z tym. Jak najbardziej. A właśnie, wspomniałeś tutaj o przekonaniach, powszechne jest też przekonanie bazujące na takim powiedzeniu czy przysłowiu, że jeśli będzie pracował z pasją, to nie przepracujesz ani jednego dnia i często właśnie też może tą pasją kierujemy się w wyborze technologii czy języka. Jak to jest z tą pasją, to wiemy, dzisiaj jest, jutro nie ma, do wypalenia jeden krok, jeżeli za bardzo z pasją chcemy się też pracy zawodowej oddać. Czy pasja jest według ciebie dobrym kryterium wyboru albo jedynym, którym powinniśmy się kierować?

Paweł: Ja myślę, że to zależy od tego, jak kto postrzega pojęcie pasji. W naszym społeczeństwie myślę, że pasja jest postrzegana jako hobby, coś, co bardzo się lubi robić, a dla mnie bardziej pasja oznacza taki cel nadrzędny dla którego jest się w stanie wiele poświęcić. Np., jeżeli pasją jest moją programowanie, to ja jestem w stanie poświęcić się na tyle, by zaniechać kontaktów towarzyskich, porzucić inne rzeczy i o wiele więcej programować, np. wstawać wcześnie rano, by tylko mieć więcej czasu na programowanie. Zauważam także, że w naszym środowisku jest trochę taka walka o tą pasję, bo ci bardziej doświadczeni programiści, którzy komputerami może interesowali się od dzieciństwa, często mają taki dosyć ambiwalentny stosunek do tych osób, które wchodzą na rynek pracy przez to, że rynek IT jest tak popularny i twierdzą, że bez pasji nie da się pracować. Myślę, że jak najbardziej da się pracować, tylko zawsze ten programista z pasją będzie czerpał o wiele więcej przyjemności i myślę, że będzie bardziej efektywny w swojej pracy, ponieważ IT jest tak specyficzne, że tą wiedzę trzeba pozyskiwać codziennie, a osoba która przychodzi do pracy tylko od 9 do 17 na przykład, owszem będzie solidnym pracownikiem, będzie tworzyła dobre rozwiązania, ale nie będzie żyła tą całą otoczką ani tą wiedzą, którą zdobywa, więc z tą pasją jest tak różnie. To zależy myślę od osoby, ale jak najbardziej bez pasji da się pracować w IT i to nikogo nie przekreśla, myślę.

Krzysztof: Absolutnie się da. Ja myślę sobie, że różne są też motywacje. Niektórzy mają takie podejście typowo rzemieślnicze, że przychodzą, wykonują swoją pracę w ustalonych godzinach, w określonym zakresie i to powiedzmy im wystarcza, nie potrzebują niczego więcej, realizują się być może jeszcze gdzieś w innych sferach. Dla niektórych być może też na jakimś etapie życia takie właśnie poświęcenie z pasją, czyli kosztem czegoś czasami jest potrzebne, jest niezbędne, jest być może jakoś tam nurtujące i przyciągające, więc ciężko jedną miarą wszystkich mierzyć albo mówić, że jakiś styl życia jest lepszy od innego, bo to tutaj mocno zależy. Natomiast myślę sobie jeszcze nawiązując do tej pasji, że czasem, tak zgadzam się z tobą absolutnie, może ona nam pomóc, jeśli właśnie potrzebujemy szybkiego rozwoju albo zmagamy się z rzeczami, które mogą być jakoś nudne czy powtarzalne w pracy. Natomiast trzeba też zdawać sobie sprawę, że w dłuższej perspektywie może się ona w znaczący sposób przyczynić do wypalenia zawodowego. To jest taka choroba, która co raz częściej, przynajmniej gdzieś tam się o niej słyszy, co raz więcej przypadków się ujawnia i wydaje mi się, że trzeba tak z głową do tego podejść właśnie, żeby nie otrzeć się o wypalenie zawodowe, ale to też jest pewnie temat na kolejny podcast. Dziwi mnie trochę takie namaszczenie tego wyboru pierwszego języka, o którym rozmawiamy. Zwłaszcza, że żyjemy w takich czasach właśnie niesamowitego postępu i pewnie za kilka lat pojawią się nowe technologie, nowe języki, które wyprą obecne, o frameworkach już nie mówiąc. Ja osobiście też zaczynałem chyba z 14 czy 15 lat temu od C++ na studiach, później był PHP, Rubby, teraz Elixir i zastanawiam się, czy nie wydaje ci się, że ludzie boją się, że z góry wybiorą złą technologię, gdy to zrobią, to za pewien czas, ta technologia po prostu przestanie być już używana, to nie będzie już dla nich pracy. Czy myślisz, że to jest taka realna obawa?

Paweł: Myślę, że jak najbardziej jest to obawa, ponieważ ludzie z zasady boją się utraty jakiejś tam swojej komfortowej pozycji, ale myślę, że to namaszczenie wyboru pierwszego języka wynika z tego, że ludzie teraz nie mają po prostu czasu, aby eksperymentować lub po prostu nie chcą eksperymentować. Pamiętajmy, że wielu z nich się przebranżawia, ma już swoje rodziny, obowiązki, zobowiązania i nie jest to możliwe, aby bawić się tą technologią, testować ją, tworzyć różne projekty hobbystyczne tak jak niektórzy mieli to w zasadzie robić. Ja na przykład zaczynałem właśnie od takich rzeczy, kiedy jako nastolatek testowałem różne technologie. Budowałem jakieś swoje rzeczy, a dzisiaj w wielu przypadkach nie jest to po prostu możliwe. Ten przeskok musi być jak najbardziej dynamiczny i płynny i najlepiej właśnie, żeby to było bez uszczerbku dla finansów, dlatego właśnie przykłada się tak dużą wagę do pierwszego języka, aby nie przestrzelić, bo wtedy szkoda czasu i jest to przekonanie, że jednak popełnił ten błąd i teraz będą w tyle do kogoś, a ludzie, mamy taką naturę, że nie lubimy być w błędzie i nie lubimy tych porażek i jednak chcielibyśmy dokonać pierwszego wyboru jak najlepiej to się da.

Krzysztof: Wspomnieliśmy już o tym, że ludzie się przebranżawiają, przechodzą do IT będąc też na różnym etapie swojego życia. Tak jak właśnie mówiłeś, że być może są to osoby, które mają już rodziny, które myślą o rodzinach, ale to się tyczy też młodych ludzi, bo mamy taką pewną wrodzoną chęć do osiągnięcia tej mitycznej stabilizacji tak też mam wrażenie, że jest z tym wyborem pierwszego języka programowania. Chcielibyśmy się już takiego jednego języka nauczyć i już do końca życia doskonalić tylko powiedzmy ten warsztaty i żeby w tej sferze komfortu jakoś tam się poruszać. Tymczasem, tak jak wiemy, wtedy może niewiele się wydarzyć, kiedy w tej strefie komfortu przebywamy. Tam się po prostu może mało zmienić. Tak jak mówił Jacek Walkiewicz: „Stabilizacja motylka to szpilka.” Jak to jest z tymi programistami według ciebie? Chcą ciągle poznawać nowe technologie czy też może chcą być ekspertami w jednej i chcą się dobrze czuć w jednej technologii?

Paweł: Myślę, że to zależy od człowieka, bo ja miałem doświadczenie z takimi osobami, które chętnie poznawały nowe technologie, chciałby się dokształcać, a miałem do czynienia z takimi, które mówiły tylko, że chcą się specjalizować w backendzie, w jakimś jednym języku programowania i w ogóle nie chcą ruszać tego frontendowego kodu, tych popularnych frameworków Java Scriptowych i na samą myśl o tym terminie fullstuck, po prostu dostawały białej gorączki, bo to oznaczały, że będą musiały poznać wiele nowych obszarów, ale prawda jest taka, że w dzisiejszych czasach, myślę, że dobry programista, to ekspert w swojej dziedzinie, ale taki ekspert, który potrafi także posługiwać się innymi technologiami, bo trudno ukryć, że w większości przypadków jesteśmy zaangażowani w wiele procesów tworzenia jakiejś aplikacji czy rozwiązania i wymagane jest od nas byśmy znali się po prostu na różnych aspektach począwszy od architektury, po bazy danych, backend, frontend, a nawet zarządzanie serwerami, więc myślę, że jak najbardziej warto, ale część osób po prostu nie chce i chcą się zawęzić z danej technologii i myślę, że to jest trochę taki ślepy zaułek w IT, bo to wszystko tak szybko się zmienia, że jedyny sposób, aby być na bieżąco, to po prostu być elastycznym i nie zamykać się na nic nowego i wychodzić często poza te ramy komfortu i uczyć się nowych rzeczy, poznawać nowe rzeczy, testować i może okazać się tak, że całkowicie zmienimy technologię i nie dość, że wyjdzie nam to na dobre finansowo, to także rozpali na nowo płomień naszego zainteresowania samym programowaniem.

Krzysztof: Nawiążę trochę do tej elastyczności, o której wspomniałeś, czy wybór języka jest według ciebie odwracalny? Chodzi mi o to, jak stwierdzić, że to, co wybrałem mi pasuje? Jak długo trwać w tym wyborze, żeby nie było to za krótko na poznanie danego języka? Mówię tu o tych przysłowiowych 10 tysiącach godzin, które trzeba poświęcić w danej branży, żeby zostać ekspertem, czyli, żeby z jednej strony nie za szybko skreślić daną technologię, ale z drugiej strony nie siedzieć w niej na tyle długo, żeby popaść w stagnację. Czy według ciebie istnieje jakaś miara albo jakiś wyznacznik właśnie takiego rozumienia?

Paweł: To jest bardzo trudne pytanie i myślę, że to jest bardzo indywidualna kwestia. Ja na przykład zaczynałem od PHP i po jakichś 3 latach przeszedłem na Rubby, bo po prostu nie odpowiadała mi składnia PHP. Nie lubiłem tej składni, a Rubby jednak wydawał mi się bardzo atrakcyjny i po prostu dawał i przyjemność samego pisania kodu. Z drugiej strony, osoby zmieniają ce technologię mogą się kierować np. tym, że dana technologia w czymś ich ogranicza i myślę, że tu trudno jakoś jednoznacznie określić, po ilu latach powinno się przechodzić na inny język, czy w ogóle powinno się przechodzić. Myślę, że miarą naszych takich wyborów technologicznych jest nasza skuteczność i to także Jacek Walkiewicz powiedział, że jeżeli nie jesteśmy skuteczni, to przychodzi taki czas, kiedy jednak musimy zmienić te nasze wybory, zmienić to nasze podejście do życia i tak samo myślę jest z technologią. Jeżeli ona nas w jakiś sposób ogranicza, a nawet, jeżeli daje nam wszystkie możliwości, ale już nie daje nam satysfakcji z samego tworzenia, pisania, denerwuje nas środowisko, czy osoby, które tworzą daną społeczność, to jak najbardziej myślę powinniśmy zmienić tą technologię. Często wiąże to się ze zmianą pracy. Oczywiście fajnie jest, jeżeli możemy się rozwijać w ramach jednej firmy nawet w dwóch różnych technologiach, ale myślę, że to nie jest koniec świata. To jest po prostu początek czegoś nowego i nie powinniśmy się czuć źle, niezależnie od tego czy tkwimy 10 lat w jednej technologii, czy zmieniamy tą technologię co dwa, trzy lata. Myślę, że to jest jak najbardziej ok i to świadczy tylko o naszym rozwoju.

Krzysztof: Tak. Bardzo podoba mi się to podejście, które opisałeś, bo to jest ogólnie taka uniwersalna zasada, która powinna być wszędzie w IT, a także poza tą branżą stosowana, że powinno się dobierać rozwiązanie do problemu, a nie próbować naginać problem do tego, żeby się wpasował w nasze rozwiązanie i tutaj w tym przypadku rozwiązanie to jest oczywiście język programowania. Musimy pamiętać, że informatyka, programowanie jako taka dziedzina bardzo utylitarna, ma po prostu służyć rozwiązaniu danego problemu i naszą odpowiedzialnością, naszą rolą jako programistów, jest dobranie rozwiązania do danego problemu. W takim rozumieniu, język programowania jest tylko narzędziem, więc tutaj zgodzę się z tobą absolutnie, że powinniśmy być skuteczni w takim rozumieniu, że narzędzia, których używamy, pomagają nam w taki skuteczny sposób rozwiązywać problemy, więc to może też być jakiś po prostu wyznacznik tego, czy dany język jest już dla nas trochę passee i powinniśmy spróbować czegoś innego. A czy, Paweł, znasz jakiś sposób, żeby wybrać dla siebie konkretny język? Nie chodzi mi tutaj o kategorie języków. Aby osiągnąć jakiś swój cel przykładowo chcę robić aplikację na iPhone’a, to wybieram Swift. Chodzi mi raczej o sytuacje, gdy mamy wiele języków do jakiegoś zastosowania. Czy masz jakieś kryteria według których wtedy można dokonać wyboru?

Paweł: Jeżeli chodzi o języki i one są np. takie same w sensie spełniania tych kryteriów, wtedy wybór należy już tylko do nas i opiera się na naszych osobistych preferencjach. Może to dziwnie zabrzmi, ale myślę, że powinniśmy zaufać naszej intuicji i zobaczyć w której technologii tak naprawdę najlepiej nam się tworzy, najprzyjemniej nam się tworzy, w której technologii społeczność jest na tyle przyjazna, że chcemy być jej częścią, bo to bardzo ważna rzecz i nie zapominajmy, że jeżeli sama społeczność jest dla nas przyjazna, to my chętnie w niej uczestniczymy, a to oznacza rozbudowywanie jej i uposażanie tego języka w nowe rozwiązania. Także na siłę nie starałbym się wybierać jakiegoś języka, tylko po prostu dać sobie czas przetestować dane rozwiązania, które spełniają nasze oczekiwania dla rozwiązań danego problemu i wtedy po prostu intuicyjnie wybrać ten, z którym nam się lepiej pracuje. Bo jeżeli z czymś się nam dobrze pracuje, to i będziemy bardziej efektywniejsi, bo będziemy odczuwać więcej szczęścia. Jeżeli będziemy efektywniejsi, to z pewnością dany problem uda nam się szybko rozwiązać i benefity z tego będą czerpać także inne osoby i myślę, że to jest główny cel zawsze.

Krzysztof: Niekiedy piszą do mnie młode osoby, które albo nic, albo bardzo mało w życiu programowały, z takim dosyć konkretnym pytaniem typu, czy mają wybrać kurs Java czy może C Sharp? Bardzo konkretne pytanie. Co byś na takie pytanie odpowiedział? Nie chodzi mi tutaj oczywiście o wybór między Java a C Sharpem, ale co odpowiedzieć takiej osobie, która mało jeszcze programowała, ale już bardzo konkretnie myśli o wyborze jakiejś technologii, języka programowania.

Paweł: To jest bardzo trudne pytanie. W sumie cieszę się, że ja na co dzień nie dostaję takich pytań, bo szczerze mówiąc nie wiedziałbym, co odpowiedzieć. Na pewno bym się zapytał, czemu akurat wybór padł akurat na te dwie technologie i co motywuje tego człowieka np. danego do stawiania tych dwóch technologii obok siebie i jaki jest po prostu jego cel nadrzędny i czym się kieruje, bo jeżeli się kieruje zarobkami, to wiadomo, że odpowiedź będzie inna. Jeżeli kieruje się chęcią wykonania czegoś specyficznego, danego projektu, to także odpowiedź będzie jeszcze inna. Ale przede wszystkim myślę, że taka osoba powinna sama siebie zapytać, co ona chce osiągnąć i wiedząc, co ona chce osiągnąć, powinna zapytać jakich narzędzi powinna użyć wtedy i myślę, że to będzie takie pytanie, na które każdy będzie potrafił odpowiedzieć, ale ta odpowiedź też dużo da tej osobie i pozwoli ruszyć jej z miejsca i osiągnąć jakieś rezultaty na których jej zależy.

Krzysztof: Właśnie ja też mniej więcej w ten sposób odpisuję. Na początku pytam, czy też polecam zadać sobie pytanie o własną motywację, to, co Tony Robins często wspomina, żeby zadawać sobie różne pytania, bo nieraz odpowiedzi mogą nas zaskoczyć i skierować w różne niespotykane, niespodziewane miejsca, więc pytanie o motywację, a też często radzę, żeby wybrać cokolwiek i spróbować, albo spróbować i tego, i tego, żeby zobaczyć co lepiej pasuje, w czym się lepiej odnajduje, gdzie społeczność mi bardziej pasuje, bo to jest taki wybór bardzo abstrakcyjny w momencie, gdy nie mamy za bardzo do czynienia z praktyką, a tylko gdzieś tam czytam na forach czym się charakteryzuje dany język albo z czym się go je. Języka programowania trzeba po prostu doświadczyć i zobaczyć jak nam będzie leżał. Ok, a jeśli założymy, że postęp technologiczny będzie tylko przyspieszał i każdy programista, który pozostanie w branży prawdopodobnie jeszcze kilka razy zmieni język programowania, to czy jest coś takiego uniwersalnego, co warto by było wiedzieć czy potrafić, co przyda nam się w każdym języku programowania?

Paweł: Myślę, że trzeba mieć tzw. mindset, czyli wiedzieć, że zmiany są nieuniknione, po prostu cały czas się uczymy i zmiana jakiejś technologii, w których jesteśmy długo i może jesteśmy w niej ekspertami, nie oznacza końca świata. Jeżeli wykształcimy w sobie taką umiejętność odporności na błędy, bo jeżeli próbujemy nowej technologii, to będzie naturalne, że będziemy robili w niej błędy i nie będzie nam wychodziło. Jeżeli wykształcimy w sobie taką odporność, nie będziemy się tym zrażali, to tak naprawdę będziemy w stanie nadążyć za tym postępem technologicznym, ponieważ będziemy reagować na zmiany, będziemy wiedzieli jak się uczyć nowych rzeczy a przede wszystkim nie będziemy się obawiać tego, bo te obawy hamują nasz rozwój i w pewnym momencie bojąc się stracić naszą obecną pozycję, zyskamy jeszcze mniej, ponieważ zostaniemy daleko w tyle, będziemy znali jakieś przestarzałe technologie i myślę, że właśnie taki mindset, to powinna być taka totalna podstawa każdego programisty, tak jak np. umiejętności miękkie, takie jak komunikacja, czy zarządzanie zespołem, ponieważ one taka naprawdę nigdy się nie przeterminują. Narzędzia mogą się zmieniać, ale to w jaki sposób na nie patrzymy i podchodzimy do nich, nie będzie się zmieniało i zawsze będzie bardzo wartościowe bez względu na to, jako kto będziemy pracować i gdzie będziemy pracować.

Krzysztof: Myślę, że to jest też bardzo ważna sprawa, to narzędzie, o którym wspomniałeś, bo język programowania to jest jakieś narzędzie i jeśli się bardzo mocno utożsamiamy właśnie z narzędziem, to w pewnym momencie możemy się obudzić w takiej rzeczywistości, kiedy tego narzędzia się już za bardzo nie stosuje, albo kiedy ono odchodzi do lamusa, a całość naszych umiejętności, czy naszej wiedzy była związana właśnie z tym narzędziem, więc tak jak powiedziałeś, warto inwestować swój czas w poszerzanie wiedzy, kompetencji z tych obszarów, które, tak jak mówiłeś, po prostu się nie przeterminują i obojętnie co będziemy robić, w jakiej może innej branży pracować, to i tak nam się to przyda, ta wiedza nam się po prostu nie przeterminuje. Tak, to jest już tak sobie myślę teraz, jakiś rodzaj wyświechtanego banału, ale na pytanie jaki język wybrać, najczęstszą odpowiedź, którą znajduję, to język angielski. Niby oczywiste w programowaniu, jako doświadczony programista możesz pewnie potwierdzić, że bez znajomości angielskiego bardzo trudno byłoby się poruszać, chociażby poszerzając swoją wiedzę, ale także pracując często z klientami zagranicznymi, bo to jest już taki chleb powszedni, ale nie dla wszystkich jest to takie oczywiste. W jakim stopniu według ciebie programista powinien poznać język angielski, żeby się komfortowo poruszać w świecie właśnie klientów i też dokumentacji, poszerzania swojej wiedzy?

Paweł: Myślę, że w jak najlepszym stopniu, jednak nieznajomość tego języka wcale nie przekreśla szans na zostanie programistą, bo ja sam zacząłem programować, kiedy ten angielski trochę traktowałem po macoszemu i właśnie dzięki programowaniu zostałem wręcz zmuszony do tego, aby pochylić się nad tym angielskim, ponieważ doświadczałem różnych barier, szczególnie, jeżeli chodzi o dokumentacje, bo te dokumentacje w języku polskim często nie są aktualne i trzeba sięgać do anglojęzycznych źródeł i właśnie dzięki programowaniu nauczyłem się angielskiego dobrze, co jest zaskakujące na pewno, to wielu programistów dzisiaj dobrze programuje a nadal stoi kiepsko z językiem, szczególnie, jeżeli chodzi o taką komunikację ustną. Natomiast dobrze czytają dokumentacje. Jeżeli chodzi o poziom samego angielskiego, to jeżeli chcę się rozwijać w kierunku np. zarządzania zespołem czy kontaktowania z klientem, to jak najbardziej trzeba się pochylić nad kwestią tego języka i tutaj mocno przycisnąć, ale tak jak mówiłem, wielu programistów funkcjonuje teraz bez dobrej znajomości i jest to możliwe, chociaż ich rozwój strasznie by przyspieszył, gdyby też mieli tą dobrą znajomość. Więc jeżeli chodzi o mnie, to bardzo rekomenduje to, aby uczyć się angielskiego, ale, żeby myśleć, że nie jest wymagana znajomość i można ją nabywać w miarę tego jak się nabywa wiedzę o programowaniu i to też bardzo ciekawy rozwój dwóch cennych umiejętności będzie wtedy.

Krzysztof: Bardzo dobra rada, zwłaszcza, że w takim układzie w którym powiedziałeś, ten rozwój angielskiego jest o tyle sensowniejszy, że pomaga nam jeszcze w innej dziedzinie, więc kiedy widzimy sens pracy, to mam wrażenie, że łatwiej nam ten czas poświęcić zaangażować. A mam też wrażenie, że niektórzy mogą czuć pewien niedosyt, bo nie powiedzieliśmy czegoś w stylu: „Idź na kurs Java, a twoje życie będzie piękne.”, albo „Wybierz Pythona, bo to jest najlepszy język programowania”. Nie daliśmy tutaj na tacy takiego bardzo gotowego rozwiązania. Jak to w IT, wiele zależy, nie ma jednej drogi do zrealizowania celu. Gdybyś mógł podsumować kilka takich najistotniejszych punktów, z którymi chcielibyśmy zostawić wszystkich tych, którzy nie mogą spać, bo nie wiedzą na jaki język programowania się zdecydować, to co by to było?

Paweł: Myślę, że na początku na pewno dana osoba powinna się zastanowić, czemu w ogóle chce wejść do IT, jakie są jej motywacje. Później powinna zrozumieć, że wybranie jednego języka programowania nie przekreśla jej szansy na zrobienie kariery w innych sferach IT czy w innych technologiach i na pewno powinna zrozumieć, że każdy programista ma jedną podstawę i nie chodzi tu wcale o język dany programowania, ale jako taką wiedzę o programowaniu np. obiektowym, czy bazy danych, czy gicie i chodzi także o samo podejście do pracy, komunikację, i mając tak solidne podstawy można stać się ekspertem w każdym języku programowania i to zależy tylko od nakładu pracy, który włożymy w poznanie danego języka. I myślę też, że od początku powinni dbać o swoją markę osobistą. To jest to, o czym mówiłeś w drugim odcinku o budowaniu własnej marki i jak najbardziej nie powinni się tego obawiać. Powinni zacząć pisać bloga od samego początku, nie po to, żeby zdobywać jakąś popularność czytelników, co oczywiście jest fajne i każdy chciałby mieć wielu czytelników, ale przede wszystkim po to, żeby dokumentować własny rozwój, aby samemu się motywować oraz aby pomagać innym, bo często wpadamy w taką pułapkę, że my nie mamy o czym pisać, bo wszystko już zostało napisane, ale powinniśmy bardziej pisać dlatego, aby sami się rozwijać, bo wiedza którą przekażemy w jakiś sposób, jeszcze bardziej się w nas utrwala, więc jak najbardziej nie powinniśmy się tego bać i myślę, że kolejną taką radą jest to, aby nie zrażać się tym, jeżeli nie mamy żadnego doświadczenia, jeżeli chodzi o edukację, jeżeli nie urodziliśmy się z klawiaturą w ręce, od małego nie siedzieliśmy przy komputerze, to nie przekreśla naszych szans, co więcej, umiejętności nabyte w innych zawodach i branżach, mogą nam bardzo pomóc w IT, bo tak jak mówiłem, programowanie to tylko część pracy programisty, a reszta to jest po prostu nastawienie, umiejętności miękkie komunikacja i bardzo wiele rzeczy w okół, o których na początku najczęściej się nie myśli, ale które z czasem stają się bardzo ważne.

Krzysztof: Tak, bardzo dobre zestaw ciekawych porad. Absolutnie się pod tym podpisuję, nic dodać, nic ująć. Ja tobie Paweł bardzo dziękuję. Jestem przekonany, że ten odcinek podcastu pomoże wielu osobom, które stoją gdzieś tam na rozdrożu i nie wiedzą w którym kierunku mają pójść. Myślę, że troszeczkę je pocieszyliśmy i odczarowaliśmy pewne mity, które właśnie krążą. Także z mojej strony wielkie dzięki i na koniec powiedz proszę, gdzie cię można znaleźć w Internecie?

Paweł: Jeżeli chodzi o moje blogi, o których wcześniej wspominałeś, to prowadzę dwa blogi, jeden w języku angielskim, drugi po polsku. Ten po angielsku jest czysto techniczny i można mnie znaleźć pod adresem pdabrowski.com, a jeżeli chodzi o ten po polsku, to znajduje się on pod adresem ludzkastrona.it i tam możecie znaleźć mam nadzieję wiele przydatnych informacji właśnie o takich umiejętnościach miękkich w IT, choć przyznam się, że pojawią się także techniczne sprawy tam i oczywiście także bardzo tobie dziękuję Krzysztof za dzisiejszą rozmowę. Mam nadzieję, że twoi słuchacze wyniosą wiele ciekawych informacji z dzisiejszego odcinka.

Krzysztof: Dzięki wielkie. Wszystkie te linki, o których powiedział Paweł, oczywiście zawrę w notatce tego podcastu i jeszcze raz dzięki tobie Paweł. Do usłyszenia. Cześć!

Paweł: Cześć!

Krzysztof: I to na tyle z tego, co przygotowałem dla Ciebie na dzisiaj. Nie martw się pierwszym językiem programowania, któremu chcesz poświęcić swoją uwagę. Najpewniej i tak go niedługo zmienisz. Nie prokastrynuj, nie odkładaj. Lepiej na tym wyjdziesz, gdy zaczniesz w praktyce już dziś działać z jedną wybraną technologią. Podcastów znacznie wygodniej słucha się w aplikacjach do tego przeznaczonych. Aby nie przegapić kolejnych ciekawych odcinków, zasubskrybuj Porozmawiajmy o IT już teraz. Ocena czy recenzja podcastu w iTunes lub w innej aplikacji, w której teraz słuchasz tego, co mówię, będzie dla mnie najlepszym prezentem. Jeżeli masz jakieś pytania, pisz śmiało na krzysztof@porozmawiajmyoit.pl. Ja się nazywam Krzysztof Kempiński, a to był odcinek podcastu Porozmawiajmy o IT, o pierwszym języku programowania. Zapraszam do kolejnego odcinka już za dwa tygodnie

Cześć.

mm
Krzysztof Kempiński
krzysztof@porozmawiajmyoit.pl

Jestem ekspertem w branży IT, w której działam od 2005 roku. Zawodowo zajmuję się web-developmentem i zarządzaniem działami IT. Dodatkowo prowadzę podcast, kanał na YouTube i blog programistyczny. Moją misją jest inspirowanie ludzi do poszerzania swoich horyzontów poprzez publikowanie wywiadów o trendach, technologiach i zjawiskach występujących w IT.