8:10
21/7/2021

Chcesz być lepszym prawnikiem? Naucz się programować. Chcesz więcej zarabiać jako handlowiec? Naucz się programować. Jeśli nie czujesz się przekonany do tej porady, poświęć kilka minut na przeczytanie tego tekstu. Zrozumiesz, że programowanie jest dla Ciebie niezależnie od tego czym się zajmujesz.

UMIESZ JUŻ TROCHĘ PROGRAMOWAĆ?
To zagraj w Decode IT 2.0: Codebreaker i zgarnij atrakcyjne nagrody!Decode IT 2.0 to gra przygotowana przez Pracuj.pl i skierowana do ludzi z IT. Wcielasz się w robota, którego celem jest kradzież Matrycy z Ośrodka Badawczego.Każdy poziom gry to zagadka wymagająca różnych umiejętności programistycznych lub matematycznych (ale jest też typowo zręcznościowy level endless). Grając zdobywasz punkty i rywalizujesz z innymi. Najlepsi otrzymują nagrody!Aby rozpocząć grę 🕹 KLIKNIJ TUTAJ 🕹.

 

Znam wielu programistów, którzy nie są informatykami…

Nazywam się Marcin, pracuję w Niebezpieczniku i szkolę ludzi z OSINT-u, w Polsce często znanego pod nazwą Biały Wywiad. Na moje szkolenia przychodzą: handlowcy, rekruterzy, bankowcy, adwokaci, radcowie, komornicy, notariusze, detektywi, policjanci, wojskowi. Wszystkim powtarzam to samo:

nauczycie się programować!

Znam wielu programistów, którzy nie są informatykami. Jednym z nich jest Tomasz, mikrobiolog. Pracuje na cenionej zagranicznej uczelni i publikuje w pierwszorzędnych czasopismach naukowych. Tomasz zna języki R i Perl, świetnie radzi sobie z Bashem, a obecnie uczy się Pythona. Powtarzam – jest biologiem i to biologiem praktykiem z dużym doświadczeniem laboratoryjnym. Znajomość programowania pozwala mu szybciej i sprawniej analizować dane pochodzące z eksperymentów. To tylko tyle i aż tyle.

Inny mój znajomy, Krystian, pracuje w kancelarii prawnej. Nigdy nie kończył informatyki, ale nieźle radzi sobie z Bashem, JavaScriptem i Pythonem. Ta wiedza pozwala mu znacznie szybciej wykonywać zadania związane z pozyskiwaniem danych z internetu i opracowywaniem raportów na temat wiarygodności gospodarczej firm. Nie każda osoba w tej branży zna się na programowaniu, dzięki czemu Krystian może być szybszy i bardziej wydajny od innych.

Podobnych przykładów mógłbym podać więcej. Znam programujących detektywów, lingwistów czy handlowców i żaden z nich nie żałuje tego, że nauczył się programować. Mówi się, że programowanie to “alfabetyzacja naszych czasów”. Kiedyś sama umiejętność czytania i pisania mogła dać człowiekowi lepszą pracę. Potem te czasy się skończyły i znaczenia nabrały języki obce i “obsługa komputera”. Teraz “obsługa” nie wystarczy. To programowanie wbija pracownika na wyższy poziom kompetencji.

Błędne wyobrażenia

Wydaje mi się, że wielu ludzi nie uczy się programować z powodu kilku błędnych przekonań. Oto one.

  1. Programowanie to zajęcie dla informatyków i tylko studia informatyczne pozwalają je zrozumieć.
  2. Humanista nie jest w stanie nauczyć się programowania.
  3. Programować uczysz się po to, aby tworzyć rozbudowane programy (gry komputerowe, albo coś równie wielkiego).
  4. Nie-informatyk zwyczajnie nie ma czasu na naukę programowania.

Wyjaśnijmy sobie teraz, dlaczego każde z tych zdań jest błędne.

To naprawdę jest dla każdego

Zacznijmy od tego, że “informatyk” to pojęcie, które już niewiele znaczy. Możemy raczej powiedzieć, że istnieje grupa zawodów informatycznych, do których zaliczymy programistów, administratorów baz danych, administratorów sieci, data scientist’ów i wielu, wielu innych. Wiele osób dziwi się gdy słyszy, że wielu spośród przedstawicieli tych zawodów programuje mało albo słabo, gdyż wcale się od nich tego nie wymaga. Jednocześnie wielu świetnych programistów nie ukończyło informatyki (ani nawet żadnych innych studiów). Dziwne? Niekoniecznie zważywszy na to, że programowanie to umiejętność, a nie tylko wiedza. Analogicznie, ukończenie studiów na kierunku “budowa i eksploatacja samochodów” nie uczyni z nikogo dobrego kierowcy. Ukończenie politologii nie czyni z nikogo polityka, tak jak ukończenie zoologii nie czyni z nikogo małpy.

Owszem, wielu programistów kończyło informatykę i te studia niewątpliwie dają mnóstwo potrzebnej wiedzy aby być programistą zawodowym. Takim, który żyje wyłącznie z rozwijania aplikacji. Ty jednak wcale nie musisz zaczynać nauki programowania od zmiany branży. Możesz być nadal programującym handlowcem albo prawnikiem (co nie wyklucza przejścia na etat programisty później, bo takie rzeczy też się zdarzają).

Niektórzy z was powiedzą: “no dobrze, ale mi jest trudniej bo jestem humanistą”. Dla osób, które tak myślą mam dobrą wiadomość. Nie jesteście żadnymi humanistami. Podział na “humanistów” i “ścisłowców” jest sztuczny, a utwierdzanie ludzi w tym podziale jest jedną z największych krzywd wyrządzanych setkom ludzi przez polski system edukacji. Prawdopodobnie nie tyle “jesteś humanistą” co raczej… matma ciężko Ci w szkole szła i nazwano Cię “humanistą” dla ratowania Twojego ego. Jeśli tak faktycznie było, weź się do roboty i nadrób tę matmę, a ucząc się programowania będziesz musiał ogarnąć wiele rzeczy od nowa. To jest do zrobienia.

Co można zrobić pisząc 3 polecenia?

Kolejne błędne wyobrażenie – uczysz się programować by pisać wielkie programy spędzając przy komputerze całe godziny. Owszem, tak może być, ale nie musi. Osoby podane jako przykłady na początku tego tekstu (biolog, prawnik, handlowiec) wcale nie tworzą wielkich programów.

Podajmy przykład. Mateusz, pracownik firmy handlującej elektroniką, dostaje od szefa polecenie by poukładaćdokumentację według miesięcy i lat. Najlepiej aby powrzucać pliki do katalogów o nazwie “rok-miesiąc”. Mateusz chce sobie przyspieszyć ten proces, więc na swoim komputerze z systemem Linux otwiera konsolę i wydaje trzy polecenia:

$mkdir Docs
$cd Pics
$mkdir {2015..2021}-0{1..0} {2015..2021}-{10..12}

Dzięki temu na komputerze Mateusz automatycznie tworzy się zestaw katalogów, które posłużą do porządkowania dokumentów.

Wyobrażacie sobie jak uciążliwym zajęciem byłoby tworzenie tych katalogów ręcznie? Krystian załatwił sprawę trzema poleceniami, co wiele osób uzna za bardzo efektowne. Informatycy powiedzieliby, że… to nawet nie było programowanie. Ot, użycie trzech poleceń w konsoli.

A gdyby napisać 9 linijek kodu?

Inny przykład. Krystian, wspomniany pracownik kancelarii prawnej, otrzymuje polecenie utrwalenia treści wszystkich 300 wpisów ze strony pewnego blogera. Będzie to potrzebne w celu przygotowania dokumentacji do sprawy sądowej dotyczącej naruszenia dóbr osobistych. Wskazane jest utrwalenie tych wpisów szybko, bo bloger może coś pozmieniać. Krystian wchodzi na bloga i zauważa, że strona działa on na systemie Drupal, a wszystkie wpisy mają adresy w formacie:

www.stronazlosliwegoblogera.pl/node/XXX

gdzie XXX to cyfry w zakresie od 1 do 300. Krystian postanawia pobrać treści wpisów pisząc prosty skrypt w język Python.

import requests
id = 1

for i in range(300):
  nazwapliku = str(id) + '.html'
  strona_do_pobrania = "http://www.stronazlosliwegoblogera.pl/node/" + str(id)

  with open(nazwapliku, "w") as plikhtml:
   tresc = requests.get(strona_do_pobrania)
   plikhtml.write(tresc.text)

  id += 1

To zaledwie 9 linijek kodu, a jednak po uruchomieniu tego skryptu Krystian ma na swoim komputerze 300 plików HTML z wpisami blogera, poukładanych nazwami od 1.html do 300.html. Oczywiście teraz Krystian może podjąć dodatkowe czynności np. może wśród tych plików szybko wyszukać takie, które zawierają różne formy nazwy firmy klienta kancelarii prawnej, którego dobre imię mogło zostać naruszone.

Celowo powyżej pokazałem dwa, bardzo proste przykłady. Skrypt taki jak powyżej mogłaby napisać osoba, która uczy się języka Python zaledwie od kilku miesięcy albo nawet tygodni, ale taki jest właśnie prawdziwy sens uczenia się programowania. Nie musisz od razu zostawać zawodowym deweloperem aplikacji. Programowanie może służyć Ci do tego, że od czasu do czasu napiszesz prosty skrypt rozwiązujący jakiś Twój problem. Nie musisz poznawać wszystkich tajników danego języka, wystarczą te, które są Ci potrzebne. Na język programowania możesz patrzeć jak na potężny program użytkowy, z którego wybierasz potrzebne Ci funkcje w takim zakresie, w jakim są Ci potrzebne. Przyznaj wprost – nie znasz całego Excela, ale prawdopodobnie używasz jakiejś jego części by coś zrobić. Z programowaniem może byćpodobnie.

A gdyby tak jeszcze użyć API?

Programowanie wyda się jeszcze potężniejszym narzędziem jeśli weźmiesz pod uwagę, że wiele informacji w internecie udostępnia się nie przez strony internetowe, ale przez tzw. API. Mówiąc prosto API jest mechanizmem, który umożliwia pozyskiwanie informacji z jakiegoś zbioru danych w sposób “programistyczny”. Nie wchodzisz na żadną stronę, ale po prostu wysyłasz do API odpowiednie polecenia i w zamian dostajesz informacje. Mnóstwo informacji – same konkrety, bez reklam, bez udziwnień.

Pewne API możesz wypróbować nawet jeśli nie umiesz programować. Przykładowo polska Centralna Ewidencja Pojazdów i Kierowców ma swoje API. Możesz je wypróbować nawet nie umiejąc programować, wpisując do przeglądarki ten adres:

https://api.cepik.gov.pl/pojazdy?wojewodztwo=30&data-od=20190101&data-do=20191231

W przeglądarce wyświetlą Ci się informacje o pojazdach zarejestrowanych od 1 stycznia 2010 do 31 grudnia 2019 w województwie mazowieckim. W formacie tekstowym. Same konkrety.

 

 

W adresie widzisz parametr “wojewodztwo=30”. Widzisz też daty od i do (np. data-do=20191231)Jeśli zmienisz 30 na 14, zobaczysz dane pojazdów z Wielkopolski. A gdybyś chciał pojazdy z dolnego śląska, zarejestrowane w pierwszej połowie 2018 r., robisz to tak:

https://api.cepik.gov.pl/pojazdy?wojewodztwo=02&data-od=20180101&data-do=20180615

To API pozwala również sprawdzać informacje na temat konkretnych pojazdów np.

 

 

Wyobraź sobie teraz połączenie tych dwóch kompetencji. Pracujesz w firmie handlującej pojazdami, a może w agencji detektywistycznej? Mniejsza z tym gdzie. Twój szef kazał Ci zorientować się, ile pojazdów określonej marki i typu zostało zarejestrowanych w Polsce w I kwartale 2020 roku. Znając trochę Pythona i mając dostęp do API CEPIK możesz szybko napisać skrypt pobierający z API dane tych pojazdów, które spełniają określone warunki. Jeśli Ty umiesz takie rzeczy, a Twoi koledzy nie, stajesz się bardzo konkurencyjny na rynku pracy.

No i pamiętaj, że w internecie są tysiące różnych ciekawych API.

Podsumujmy:

  1. Programowanie może się przydać jeśli wykonujesz dowolny zawód umysłowy wymagający przetwarzania informacji.
  2. Nie musisz być informatykiem by się tego nauczyć.
  3. Nie musisz zostawać guru programowania. Wystarczy, że ogarniesz to co jest Ci potrzebne.
  4. Dasz radę nauczyć się programować, choć to wcale nie oznacza, że będzie całkiem łatwo. Umiejętność programowania jest cenna, a cenne rzeczy zawsze wymagają wysiłku. Niemniej warto!

No dobrze, ale od czego zacząć?

Niestety rozwój technologiczny wcale nie ułatwia uczenia się programowania. Istnieją dziesiątki językówpocząwszy od dobrze znanych takich jak Java, JavaScript, PHP, Python, C++ czy Ruby, skończywszy na bardzo egzotycznych czy specjalistycznych jak Cryptol albo OmniMark. Już sam wybór pierwszego języka jest trudną sprawą tym bardziej, że czym innym jest uczenie się programowania, a czym innym uczenie konkretnego języka.

Programowanie jest tak naprawdę umiejętnością zmuszania komputera do złożonych zachowań poprzez wydawanie mu serii prostych poleceń. To trochę tak jak z samochodem lub zegarem. To złożone mechanizmy, ale składają się na nie proste części takie jak śrubki, zębatki, nakrętki. Proste części tworzą bardziej złożone podzespoły, a z nich tworzy się skomplikowane maszyny.

Programista w pewnym sensie też korzysta ze śrubek i zębatek, którymi są podstawowe funkcje języka. Te funkcje łączy się w pętle, wyrażenia warunkowe, bardziej złożone funkcje, obiekty czy struktury złożone z wielu obiektów. Ucząc się programowania musisz się nauczyć jak budować te mechanizmy i struktury danych, natomiast później można je tworzyć za pomocą różnych języków.

 

Język nie ma znaczenia!

Nie jest ważne od jakiego języka zaczniesz, ale ważne by Twoje początki były skupione na nauce programowania, a nie tylko języka. Na uczelniach amerykańskich pierwszym językiem często jest Python, gdyż eliminuje on wiele niepotrzebnych naleciałości historycznych, jest przejrzysty i sprzyja uczeniu podstawowych koncepcji programowania. Wiele osób na pierwszy język wybiera JavaScript. Moim zdaniem to nieco zbyt “zabałaganiony” język dla początkującego, ale niejednemu się udało. Znam też ludzi, którzy z sukcesem zaczęli od Javy. Jest jeszcze Ruby, podobno fajny.

Moja (subiektywna) rada jest następująca. Wybierz na początek taki język, który pozwoli Ci coś zrobić. Dużo siedzisz przy stronach internetowych? Poznaj JavaScript. Robisz dużo statystyki lub analizy danych? Naucz się R. Marzy Ci się zrobienie aplikacji mobilnej? Zacznij od Javy. Jednak przede wszystkim pamiętaj, że język to tylko narzędzie i z każdym z nich możesz zetknąć się tylko na chwilę, po to by potem używać czegoś innego. Ja zacząłem naukę programowania od zabawnego Basica C64, którego nikt dziś nie używa. Potem był TurboPascal, trochę Delphi/Kylix, C, JavaScript, Python, powrót do JavaScriptu, znów Python. Większości tych języków już nie używam, ale poświęcony na nie czas nigdy nie był stracony. Pamiętam, że dawno temu, ucząc się TurboPascala, nie mogłem zrozumieć koncepcji programowania obiektowego. Zrozumiałem ją dopiero zmieniając język na Delphi, ale potem mogłem wrócić do wcześniejszego języka i już w nim tę koncepcję zastosować. Czasem bywa i tak.

Napisanie przez nas tego artykułu było możliwe dzięki sponsorowi, firmie Pracuj.pl, która chciałaby Cię zaprosić do odwiedzenia it.pracuj.pl, czyli dedykowanej zakładki gdzie umieszczone są ogłoszenia z branży IT. Jest ich bardzo dużo, więc na pewno coś tam dla siebie znajdziesz. To co ważne — ogłoszenia mają dużo filtrów po których można wyszukiwać, np.:

  • języki programowania
  • specjalizacje (backend, frontend, fullstack, mobile, tech lead, architect, devOps, game dev i wiele innych)
  • poziom zaawansowania (trainee, junior, mid, senior)
  • można też sortować po ogłoszeniach z widełkami wynagrodzenia
  • sortowanie po ogłoszeniach z pracą zdalną

Przejrzyj te ogłoszenia. Wiele firm szuka do pracy osób, które nie tyle potrafią “superprogramować”, co po prostu mają zapał i chęci do szybkiej nauki programowania.

Tak! Dobrze odczytałeś moją intencję. Chcę Ci powiedzieć, że nawet sama lektura tego artykułu i przyjęcie zaprezentowanego w nim podejścia do programowania może być wystarczające, żeby Ci się udało zmienić pracę! :-)

Nauka nie zawsze będzie łatwa. Wiem nawet, że momentami będzie wysoce frustrująca, ale po każdej porażce warto spróbować jeszcze raz. To zadziwiające gdy próbujesz coś zrobić, nie wychodzi Ci dziesiątki razy, aż nagle zaczynasz rozumieć i robisz to z łatwością. Ta nauka nie będzie przyjemna, ale korzystanie z nabytej przez nią umiejętności może dawać mnóstwo satysfakcji. Spróbuj.

PS. W grę Decode IT – Codebraker też spróbuj zagrać, wystarczy przeglądarka :)


Przeczytaj także:

61 komentarzy

Dodaj komentarz
  1. LOL, ja też poległem na OOP w TurboPascalu. Zrozumiałem je 20 lat później, kiedy na stare lata zabrałem się za Javę. Teraz czasem za nim tęsknię, pisząc w Go.

  2. A ja z kolei odradzam naukę programowania wszystkim osobom, które nie zamierzają się temu poświęcić, przede wszystkim dlatego, że programowanie wymaga ciągłego rozwijania tych umiejętności, a większość osób chciałaby się nauczyć i na tym pozostać.
    Tak się nie da, to co dziś wydaje się wygodne i efektywne (nie efektowne – autor użył błędnego słowa, chyba że faktycznie dla niego efektownym jest utworzenie kilkunastu katalogów), za kilka lat okaże się niedostosowane do bieżących wymogów, a może nawet niewydajne.
    Inna sprawa, że dobrego programistę można poznać też po prawidłowej pisowni w ojczystym języku. Gdy programista pisze z błędami ortograficznymi lub nie umie zastosować przecinków, można się spodziewać, iż w kodzie będzie “sadzić” równie ciekawe “byki”, czy stosować niekonsekwentną składnię.

    • lintery dla języków programowania są nieco skuteczniejsze, niż dla języków naturalnych
      a w programowaniu chodzi głównie o sposób myślenia i umiejętność rozwiązywania problemów, nikt nie mówi, że za 10 lat napiszesz dokładnie ten sam kod, tylko że będziesz potrafił z użyciem wyszukiwarki i odrobiny dokumentacji poradzić sobie z problemem, na który trafisz

    • Dla większości osób języki skryptowe będą narzędziem automatyzującym pewne czynności. W wielu przypadkach nie ma tutaj żadnej finezji i to co w bashu działało 10 lat temu, za kolejne 10 będzie tak samo działać.

      Programowanie to narzędzie jak każde inne. Jak się jeździ na wózku widłowym, to nie trzeba być maniakiem wózków widłowych, żeby je sprawnie obsługiwać. Jak się przesiądzie na nowy model, to wystarczy zorientować się co i gdzie ma i przyzwyczaić jak jeździ.

      Środowiska typu Matlab, Mathematica, Statistica, R, Octave i wiele innych podobnych, to są narzędzia, a nie kodowanie samo w sobie. Chcę uzyskać wyniki konkretnych obliczeń, a nie spuszczać się nad technikami programowania. Techniki mogą ułatwić zaprogramowanie, przyśpieszyć obliczenia, poprawić dokładność ale nie są celem nauki takich środowisk i języków.

      Pełne poświęcenie, ciągły rozwój programowania, to domena ścisłych koderów. Te branże, gdzie programowanie jest sednem pracy, gdzie wytwarza się oprogramowanie, tworzy interfejsy itp.

    • LoL :)

    • Do tego o czym pisze author nie trzeba, ani znac najnowszych technologii, ani byc mistrzem optymalizacji. Rozumiem ze dla ciebie pisanie idealnego kodu to sens życia, ale nie zawsze wszystko trzeba robić perfekcyjnie. To tak jak, z wiedza z innych dziedzin. Czasem wystarcza ci podstawy mechaniki by samemu naprawic jakas prosta usterke, zamiast isc od razu do mechanika. Czasem wystarcza podstawy gotowania zeby sie na jesc np. na biwaku. Z programowaniem jest tak samo. Czasem prosty skrypt oszczedzi pare godzin zmudnej pracy. I o tym jest ten artykul.

    • Tedy napisałem, że odradzam. Zdarzało się, że po takich wannabe skryptach musiałem naprawiać system, bo ktoś popełnił prosty, acz nieoczywisty błąd. Niestety, programowanie może być równie delikatne jak buldożer, a jednak bez uprawnień można jeździć co najwyżej rowerem, czy skuterem.

    • Ja znałem programiste który walił byki ortograficzne ale pisał wysoce optymalny kod i był ogólnie mega kumaty.

    • Przecież nikt tutaj nie namawia do tego żeby ‘ludzie z łapanki’ nagle zaczęli tworzyć jakieś ‘systemy’, tylko żeby niezwiązany z IT pracownik potrafił napisać sobie (dla SIEBIE) jakiś prosty skrypcik analizujący dane albo automatyzujący jakieś monotonne, powtarzalne zajęcie.

    • @Kenjiro “Zdarzało się, że po takich wannabe skryptach musiałem naprawiać system, bo ktoś popełnił prosty, acz nieoczywisty błąd”. Znowu piszesz nie o tym o czym piszą autorzy. Nie chodzi o pisanie skryptów do zarządzania systemem. Chodzi o to żeby sobie np zdjęcia ponumerować od 1.jpg do 300.jpg, nie robiąc tego ręcznie. Tak są ludzie którzy będą siedzieć godzinę i zmieniać ręcznie każde zdjęcie. Trochę szkoda czasu, nie?

    • Jestem administratorem, Byłem programistą a do tego jestem nogą z języka polskiego i nie tylko !!, ale opanowałem go na tyle, że umiem coś napisać oraz przeczytać i zrozumieć dokumentację! Pomimo zmiany profesji nadal “programuję”. Bardziej trafne będzie pojęcie “AUTOMATYZUJĘ” procesy administracyjne. Język nie ma znaczenia, ale doświadczenie zawodowe (pewnie nie tylko moje) podpowiada, że do tego są najskuteczniejsze rozwiązania “archaiczne”, czyli wiersz poleceń w DOS, Bash w Linux itd. W zależności co chcę zrobić używam innego języka. Jak mam zautomatyzować liczenie w Excelu to robię co Vba – nadal działa i to SKUTECZNIE! Nieznajomość języka nie utrudnia programowania, bo w tej chwili praktycznie każde trochę zaawansowane narzędzie do kodowania podpowiada składnię więc i o pomyłkę trudno w kodzie. Gorzej jeśli popełni się błąd logiczny w myśleniu, ale to już nie jest przypadłość znajomości jakiegokolwiek języka, tylko braków w umiejętności prawidłowego przeanalizowania problemu!

  3. chociażby podstawowa obsługa komputera staje się znacznie łatwiejsza
    ile się nakombinowałem z szukaniem programu do układania przychodzących plików właśnie po datach… w końcu napisałem skrypt w deno i chodzi

    mówi się,że programista musi być leniwy, ale niestety większość użytkowników jest “niepraktycznie leniwa”: nie chce im się zainwestować odrobiny czasu i wysiłku aby w przyszłości było im łatwiej, nawet zajrzenie do ustawień dla wielu jest wyzwaniem nie do przeskoczenia z psychologicznego punktu widzenia, a jeszcze automatyzować coś? przecież to takie trudne! i w ogóle po co? przecież mogę klikać!

  4. > $mkdir {2015..2021}-0{1..0} {2015..2021}-{10..12}

    tam nie miało być {1..9}?

    • Pewnie tak. Jeszcze prościej: mkdir {2015..2021}-{01..12}

      Oprócz tego:
      $ mkdir Docs
      $ cd Pics

      chyba miało być
      $ cd Docs

    • Trzy linijki i dwa błędy. Ciekawe jak długo Mateusz pisał i poprawiał kod.

    • Tak długo aż w ostatnim zdaniu stał się Krystianem xD

  5. Ja się bawię hobbystycznie w elektronikę i programowanie w C i ASM . Wykształcenie średnie techniczne, z zawodu operator CNC. I muszę przyznać, że wiedza programistyczna bardzo ułatwiła pisanie nawet skomplikowanych programów na maszyny CNC w systemie Heidenhain. Zwłaszcza, że w programach ‘z ręki’ można używać zmiennych, funkcji matematycznych, instrukcji warunkowych, tworzyć podprogramy, moduły, funkcje. Dzięki temu można samemu stworzyć fajne, modularne programy do operacji najczęściej wykonywanych na frezarkach w firmie. Do dzisiaj używamy moich uniwersalnych programów do pewnych obróbek, gdzie operator wpisuje niezbędne dane, a program sam wylicza niezbędne ścieżki, wymiary etc. etc. Nawet oferuję współpracownikom wsparcie w razie problemów, lub gdybym coś namieszał w przypadku aktualizacji programów do nowszej wersji . Dzięki temu uzyskałem dość szybko status lidera CNC co przełożyło się na poprawę zarobków i ogólny prestiż w firmie. Także, ze swojej strony polecam naukę programowania pomimo tego iż jest to hobby bardzo czasochłonne i wymagające stale nauki i aktualizowania wiedzy.

  6. czy ktoś tą “gierkę” w ogóle testował? sama rozgrywka jest strasznie nieintuicyjna i oporna w sterowaniu. kilka razy postać przeleciała przez ściany, kilka razy losowo wygenerowane przeszkody były niemożliwe do przeskoczenia bo zaraz za dziurą była ściana a kody w zadaniach są zapisane… w kolumnach? plus przy zadaniu gdzie w kodzie są listy, wsadzenie “markera” do odpowiedzi w formie [1] i [2] nie jest zbyt dobrym pomysłem :)
    oprócz programistów w świecie IT potrzeba jeszcze testerów, pracuj.pl nie może o tym zapominać :)

  7. Hello World potrafię w przynajmniej parunastu językach. A FizzBuzz w przynajmniej trzech. Wystarczy.

  8. Te trzy polecenia, które wydał Mateusz vel Krystian można zawęzić do jednego:

    mkdir -p Pics/20{15..21}-{01..12}

    W przykładzie z pythonem zmienna id jest całkowicie nadmiarowa, wystarczy użyć i.

    Jak się chce uczyć innych, to warto najpierw samemu dobrze znać temat.

    • No i co z tego? czy po twoich “poprawkach” polecenia lub kod robią zwracają inny rezultat? Z tego co zrozumiałem to w artykule właśnie chodzi o to, że wcale nie trzeba wszystko pisać optymalnie, najlepiej, najładniej. Chodzi o to żeby uzyskać zamierzony cel i ułatwić sobie zadanie, a to że będzie gdzieś jakaś nadmiarowa zmienna w malutkim skrypcie to kogo niby interesuje?

  9. Zamiast JavaScript chyba lepiej nauczyć się jego ulepszonej wersji, czyli TypeScript.

  10. Jestem lekarką i naukowczynią, umiem trochę w R, pythona i w skrypty w bashu. To trochę wystarczy, żeby zautomatyzować wyciąganie regexem konkretnych danych z wielu plików tekstowych, zrobić ładną heatmapę z klasteryzacją czy zastosować metody analizy których nie ogarniają podstawowe pakiety statystyczne. Jeśli ma się konkretne zadanie do wykonania i nie dość cierpliwości żeby wyklikać to ręcznie, nauka idzie całkiem przyjemnie:)

    • Gdzie/jak uczyłaś się R? Kto Ci polecił właśnie ten język?(i czy polecał inne?)

    • Niezmiernie mnie uradowałaś tą wiadomością. Jest duch w narodzie i nadzieja dla ludzkości :-)
      Duży szacun!

    • Nigdy o tym nie wspominałem, ale tak naprawde jestem wyjatkowo uroczym chomikiem (piszac to nawet poruszylem noskiem – wszyscy wiedza jak, niestety ciezko to uchwycic slowem pisanym bez humanistycznego wyksztalcenia na poziomie conajmniej doktora) ktorego interesuje bezpieczenstwo systemow IT i ktory od czasu do czasu programuje.
      Dodatkowo z zawodu jestem nianiEM (chomiczenta, z oczywistych powodow – kto to widzial zeby chomik opiekowal sie dzieckiem).

      Normalnie sie z tym nie obnosze – ale skoro inni moga, to tez bym prosil o jakies komplementy (mysle ze nie musze przypominac, ze te odnoszace sie do futerka sa mocno nie na miejscu) :p

    • Ps. Wiem wiem, chomik z nickiem “BiałyMiś”, pewnie jeszcze w czerwonym sportowym kabriolecie xD
      Prawda jest taka ze jako prawdziwy facet mierze swoj wzrost sam i pare centymetrow bledu pomiarowego w jedna albo druga stone moze sie zdarzyc – nim sie zorientowalem poszlo w swiat i glupio bylo poprawiac :)

    • R nie tyle ktoś mi polecał, co narzędzia których używam sa w R. Uczyłam się głównie z webinarów i konferencji branżowych, typu BioC

  11. Codebreaker FAQ:
    Q: Dlaczego nie mogę zalogować się inaczej niż przez Facebooka?
    A: […] oraz dodatkowo zabezpiecza dane osobowe.
    Raczej nie założę konta na FB żeby w to pograć.
    Ale patent dobry, oddaj wszystkie dane aby je zabezpieczyć.
    Nice try FB, nice try ;)

  12. Z całym szacunkiem dla autora ale dawno takich bzdur nie czytałem. Naucz się naprawy samochodu, wykonania instalacji elektrycznej, tapetowania, latania samolotem… Wszystko jest dla ludzi, może będzie trochę trudno, ale im więcej kwalifikacji, tym łatwiej o lepszą pracę. No nie.

    • Nie trzeba być hydraulikiem żeby syfon w umywalce wyczyścić, czy elektrykiem żeby gniazdko dokręcić jak je odkurzaczem wyrwiesz :) Tutaj podobnie, mówimy o amatorskim wykorzystaniu programowania do ułatwiania sobie pracy zawodowej.
      Dostałem kiedyś w marketingu do zespołu dziewczynę, która robiła raporty w Excelu ślęcząc godzinami nad cyferkami. Zdziwiło mnie co ona tak dłubie i po krótkiej rozmowie pokazałem jej, że to co robi cały dzień można tabelą przestawną zrobić w minutę. Zbladła, bo dotarło do niej że ostatnich kilka lat robiła to bez sensu. A, że Excel wydawał jej się czarną magią (bo przecież humanistka! ;) to robiła na piechotę i nikogo życzliwego nie spotkała.
      Pivoty w Excelu to oczywiście jeszcze nie programowanie, ale ten przykład ze zrzucaniem setek stron z bloga jest bardzo dobry i życiowy.

    • @Jacek
      Ja spotkałem gościa, który wpisywał dane do excella, potem je przeliczał na kalkulatorze i wstawiał dane do kolejnej komórki. I wiedział, że można lepiej, ale nie wytłumaczył mi czemu tak robi.

    • @ jacek
      Znałem kolesia co wiersze w excellu sumował na kalkulatorze. Inteligentny facet z konkretną wiedzą z mechaniki. Plik był wspólnym “dzieckiem” jego i i jego zmienników. Nawet po zwróceniu im uwagi jeszcze kilka tygodni tak robili.

  13. Cyfry nie mogą mieć zakresu od 1 do 300.
    Nie mylmy cyfr z LICZBAMI, to nie wypada!

    • Zależy jaki system liczbowy :D

    • @Szeryf: jedna cyfra to jeden znak. “300” to trzy znaki, niezależnie od systemu liczbowego.

  14. Czy rzeczywiście jest sens teraz uczyć się programować?

    https://copilot.github.com/

    Czy nie będzie tak, że zanim nasz przykładowy pracownik firmy handlującej elektroniką nauczy się programować, to umiejętność ta stanie się zbędna do zadania poukładania dokumentacji według miesięcy i lat, ponieważ będzie można powiedzieć komputerowi w języku naturalnym(!) “Poukładaj dokumentację według miesięcy i lat, wrzucając ją do katalogów z datą miesięczną” i zadanie zostanie wykonane? Nie tylko potworzą się katalogi, ale jeszcze odpowiednie pliki natychmiast do nich wpadną, czego już nie robią 3 polecenia z przykładu.

    Analogicznie z pobraniem wpisów złośliwego blogera.

    Niezależnie od wszystkiego czy ten skrypt Pythonowy pobierający 300 wpisów zadziała? Strzelam, że pobierze 10 wpisów, a następnie zacznie walić błędami, ponieważ serwer blogera zbanuje naszego prawnika za zbyt wiele requestów w zbyt krótkim czasie.

    • to chyba oporny jesteś skoro myślisz, że zanim nauczysz się PODSTAW Pythona już się upowszechni programowanie w języku naturalnym

  15. Am, nie? Programowanie nie jest jakąś mistyczną umiejętnością ani umiejętnością na skalę języka mówionego, tylko rzemiosłem jak każdym innym. Tym tokiem rozumowania równie dobrze każdy powinien uczyć się grafiki komputerowej, stolarki, elektroniki, wstaw cokolwiek. I tak, ułatwi to w pewnych sytuacjach życie, tylko pytanie ile takich sytuacji będzie? Oraz fakt, że pomijając proste skrypty takie osoby wywalą się na potężnych brakach w wiedzy.

    • Po co takie akcje są organizowane? Ten artykuł jest artykułem sponsorowanym. Formy organizują tego typu marketing tylko po to aby wytworzyć wśród ludzi zainteresowanie tematem, wmawiając im, że programistą każdy być może (nie, nie może, bo nie każdy ma tyle samo zaparcia i predyspozycji). Kończy się to zawodem ludzi który myślą, że będą zarabiać kokosy, a przy ich umiejętnościach na juniorze w webdevie mają problem zrobić coś w miarę zgrabnego i działającego. Drugim problemem jest fakt, że biorą się zwykle za języki skryptowe, więc jak wezmą Pythona i JSa (Node) i będą sobie coś tam pisać, co gorsza publikując to na pip-ie lub npm-ie całe repozytorium powoli przekształca się w jeden, wielki, śmietnik

  16. Nawet najlepszy programista, ale oderwany od rzeczywistości nie napisze kodu przydatnego komukolwiek poza nim samym. Żaden “humanista” czy nawet “ścisłowiec” nie mający bladego pojęcia o programowaniu nie będzie w stanie zlecić “informatykowi” oprogramowania jakiegoś zadania, bo się zwyczajnie nie dogadają.
    Generalnie to przewagę na rynku pracy daje posiadanie dodatkowych umiejętności oprócz tej, w której jesteśmy specjalistami. W sumie to obojętnie jakich, liczy się ciekawe, nieoczywiste połączenie, które może trafić w niszę rynkową. Przykładowo w firmach budujących i obsługujących sieci komórkowe występuje zdecydowana nadreprezentacja ludzi, którzy w Akademiach Morskich przygotowywali się do zawodu radiooficera okrętowego – a to ze względu na szereg kompetencji nie koniecznie z dziedziny radiokomunikacji, których nie posiadają zwykle absolwenci Politechniki. Czy z tego wynika, że drogą do dobrej pracy w branży telefonii komórkowej jest ukończenie elektroniki morskiej? Bynajmniej! Drogą do sukcesu zawodowego jest robienie tego, co nas autentycznie kręci, bo tylko wtedy mamy szansę być w tym naprawdę dobrzy. Choćby było to przysłowiowe “plucie do sitka” jak tu: https://www.youtube.com/watch?v=aSw6aa29AwU

  17. Zacząłem naukę programowania od C# z powodu… gry :D Taki minecraft tylko w kosmosie, są w niej programowalne bloki. Da się bez tego grać, ale z programowaniem jest ciekawiej.

    Potem odkryłem arduino i od tamtej pory jest to moje hobby.

    Niestety, choć bardzo bym chciał, nie udało mi się jeszcze wykorzystać tych umiejętności w pracy :(

  18. Ja bym zaliczyl takie uzytkowe programowanie do nauki obslugi komputera raczej, podobnie jak konsole. Owszem, jest podstawowa czesc wspolna ale rozwoj idzie w zupelnie innych kierunkach – bo co z tego ze moge cos zrobic wzglednie szybko w konsoli kiedy wsrod podstawowych komponentow systemu od dekad jest narzedzie ktore pozwala to zrobic duzo szybciej i latwiej wizualizujac efekt w trakcie co pozwala uniknac literowek, zachodzacych nazw plikow etc.
    Ksiegowemu bardziej przyda sie excel (z jego makrami), fizykowi python i jakies biblioteki zalezne od tego w czym sie specjalizuje, grafikowi pomoga jeszcze inne narzedzia (moze tez skryptowalne) – ale to jednak cos troche innego niz czym zajmuje sie starszy developer supportujacy jakies programy w javie, bo cel programow ktore pisze moze byc (i najczesciej jest) zupelnie inny niz zwiekszanie swojej efektywnosci w pracy.

    Ps. Tak, maszyny zwiekszaja efektownosc pracy w olbrzymiej wiekszosci zawodow, umiejetnosc poprawnej ich obslugi ma duzy wplyw na efektywnosc. Komputery nie sa specjalnie inne…

  19. “*Jeśli po raz pierwszy wysyłasz wynik, zaloguj się przez Facebook”

    Przez Facebook?!
    A co mają zrobić introwertycy z alergią na takie serwisy?

    Mam to gdzieś! Idę zdobyć władzę nad światem!
    Albo popracuję w ogródku.

  20. Jaki to ma związek z tematyką niebezpiecznika?

  21. Pozwólcie że odlurkuję na chwilę.

    Jestem przykładem takiego gościa z artykułu, bo wykonuję zawód z p. 1 podsumowania. Zajmuję się optymalizacją procesów i ciągłym doskonaleniem. Często potrzebna jest tutaj analiza danych. W firmach produkcyjnych zwykle stosuje się oprogramowanie minitab, którego nie miałem wówczas do dyspozycji, szukałem alternatyw. Stosuje się też Excela, ale spróbujcie zrobić serię histogramów w Excelu. W końcu znalazłem, że istnieje coś takiego jak “R”.

    I powiem Wam, że z rok albo dwa się zbierałem do tego, żeby poznać to narzędzie. Odstraszało mnie podawane wszem i wobec “steep learning curve” (prawda). Na codzień używam jednak linuksa i w życiu napisałem hello world w wielu językach, ale niewiele ponad to. Pomimo że nie jestem w żadnym razie informatykiem, to nie jestem też tzw. humanistą i jakieś przygotowanie zapewne mi pomogło.

    Gdy w końcu “znalazłem trochę czasu” (a “czas się robi”, więc to zależy od priorytetów), to okazało się, że bardzo szybko można zbierać tego owoce. Napisałem wiele koślawych skryptów i skrypcików, także na prywatny użytek. Z czasem nauczyłem się kilku rzeczy, które pozwalają żeby moje skrypty były bardziej ogólne. Rozwinąłem się w Pythonie, SQL-u, zrobiłem podyplomówkę data science itd. Mam jednak swoje ograniczenia, zdecydowanie nie zostałem guru programowania, ale cała moja pisanina zbiega do jednego.

    Potwierdzam, że żadna sekunda poświęcona na to nie została zmarnowana. Zwrot z inwestycji (czasowej) jest niesamowity. Polecam nie wahać się, jeśli tylko widzicie potencjał i wiecie co chcielibyście osiągnąć i jest to w zasięgu młokosa. W innym przypadku nie polecam. Rozpoznanie bojem, zamiast gromadzenia wiedzy.

    Wyszło przydługo, kończę, a tych co dotarli do końca pozdrawiam :-)

  22. Przepraszam, że się czepiam, ja wiem że miało być zabawnie, ale skoro “programowanie to umiejętność” zatem “studiowanie zoologii nie czyni z ciebie małpy” – to dość mało logiczna hiperbola. Autor lekko popłynął, przez co w sumie jest zabawnie, ale nie wiem czy w zamierzony sposób :b

  23. “To naprawdę jest dla każdego” – jest to BZDURA! Faktycznie wykształcenie nie ma znaczenia, ale POTRZEBNE SĄ WRODZONE ZDOLNOŚCI! Konkretnie to zdolność algorytmicznego myślenia – umiejętność rozpisania rozwiązania problemu na proste jednostkowe procesy. Jest to umiejętność WRODZONA, KTÓRĄ MA GÓRA 5% POPULACJI! Uczenie reszty programowania to strata czasu – tak jak uczenie komponowania muzyki nie zrobi z osoby bez “iskry Bożej” w tym kierunku kompozytora (taki Mozart czy Morricone komponowali już w wieku paru lat bez żadnej nauki w tym kierunku!) bez względu na czas na to poświęcony! Nauka może poprawić wykorzystanie wrodzonych umiejętności ALE ICH NIE ZASTĄPI I NIE BĘDZIE ICH PROTEZĄ! Zwróćcie uwagę ile osób nie potrafi dyskutować – przestawić logicznie swoich myśli, oczekiwań i uzasadnienia (teza, antyteza, synteza itp.), wnioskować logicznie itp. – te osoby NIGDY nie nauczą się programowania, nawet jako na wylot poznają słowa kluczowe i składnię jakiegoś języka programowania, bo jak nie potrafią ułożyć swoich myśli w głowie, to nie napiszą programu na ekranie! Dlatego w świecie IT są takie zarobki – bo podaż specjalistów jest ograniczona i choćby stworzyć system oświatowy, gdzie pół dniówki przez 16 lat edukacji poświęcić na nauczanie programowania, to i tak specjalistów IT ilościowo zauważalnie nie przybędzie, choć oczywiście ci, którzy będą, będą mieć lepsze kwalifikacje z uwagi na lepsze kształcenie!

    • Bzdura.. czyli wszyscy programiści stanowią ok 5% populacji? Logiczne dyskusje.. więc po czym wniskujesz te 5% populacji? Sprawdzałeś stosunek programistów do reszty pracującej populacji w Polsce i w innych rozwiniętych państwach? A inne zawody wymagające inteligencji? Np medycyna, prawo, matematyka, fizyka, astrofizyka,chemia itp? A całe działy R&D? Rozkładania kazdego zadania uczą nawet w internetowych poradnikach dla leniwych czy proktastynacji…typu “jak nie chce ci się czegoś robić albo ciezko ci się za coś zabrac to daną czynność rozłóż na mniejsze czynności, mniejsze etapy, wtedy nie będziesz myślał o przerastajacym cię zadaniu tylko o jej poszczególnych etapach, które wykonywane po kolei doprowadza Cię do zakończenia całego zadania” coś w tym stylu. Sam od dłuższego czasu stosuje te metode jak naprawdę nie chce mi się czegoś zrobić, tzn nie myślę o całym przerastającym mnie zadaniu, tylko rozkładam na mniejsze zadania i po kolei je realizuje. Wnioskując po tym jak radze sobie w życiu to albo należę do tej wybitnych 5% albo jestem idiotą, który nie potrafi czegoś ogarnąć, tylko musi właśnie rozkładać na czynniki pierwsze

    • Istnieje też coś takiego jak neuroplastycznosc mózgu. Można nauczyć się prawie wszystkiego. Tylko im młodszy tym lepiej. Programowanie nie jest jakimś cudem, na potrzeby ok 90%rynku prawie każdy jest w stanie się nauczyć. To nie prawo, ze tylko wybitne jednostki to kończą;) pdk;)

    • A teraz podaj cokolwiek co popiera Twoje tezy…

  24. Uczyć to się powinno od ASM – wiedzą to autorzy gier o programowaniu.Dopiszcie żeby artykuł nie ograniczał się do HLL.

  25. Jeśli masz w swoim otoczeniu Krystiana i Tomasza, programujących “humanistów”, to wiedz, że jesteś w bańce.
    I nie dlatego, że jest taki klimat, tylko dlatego, że to jednak jest trudne. Wygląda łatwo tylko jak robisz copy-paste podczas szkolenia.

  26. Dzięki za wskazanie API do CEPIKu. Z ciekawości próbowałem namierzyć własny samochód i nie znalazłem. Jeżeli to jest rzeczywista baza CEPIK to chyba brakuje tam sporo wpisów .
    (zwłaszcza z 2021 r. – sprawdzałem ilości wpisów dla powiatu rejestracji).
    I takie kwiatki: rok-produkcji: FABRYCZNY, data-pierwszej-rejestracji: 2020… data-pierwszej-rejestracji-za granicą: 2011…
    :(

  27. Warto by dodać że umiejętność programowania umiejętnością wspaniałą ale w zakładach pracy należy podchodzić do tego bezpiecznie i z umiarem, gdyż chcąc nie chcąc dokładamy się do Shadow IT.

    Szkoda że redakcja Niebezpiecznika nie proszuła ważnej kwestii, aby w pracy tworzyć takie optymizatory za zgodą przełożonego i zgodnie z polityką bezpieczeństwa.

    ShadowIT to plaga w niektórych firmach.

  28. “Podział na “humanistów” i “ścisłowców” jest sztuczny” nie zgadzam się z tym zdaniem, nawet nie chce mi się uzasadniać

  29. Bzdury.

    Nakład pracy jest nieadekwatny do zysku. Równie dobrze można napisać – uczcie się rozwiazywać całki i równania rózniczkowe bo raz w życiu może tego użyjesz…

    W programowaniu ważniejsza niż sama nauka jest jego bieżące wykorzystywanie. Inaczej się zapomina.

    Już widzę jak księgowy poświęci 100 godz w C++ aby następnie napisać program który utworzy mu 300 katalogów, po czym odłoży programowanie na półkę. Wolne żarty.

    Autor żyje w świecie wirtualnym.

    To już lepiej i korzystniej jest uczyć się zaawansowanej obsługi Worda/Excela. Więcej osób na tym skorzysta.

    • do utworzenia 300 katalogów nie potrzebujesz ani C ani 100 godzin, jeśli umiesz w miarę myśleć to będzie kilka minut w skrypcie wsadowym windowsa czy powershellu, które masz na pewno, w deno czy PHP mniej pisania, ale trzeba zainstalować interpreter

  30. zapomniałem o takiej prostej rzeczy jak AHK: osobiście używam go do chowania i pokazywania okien programów rezydentnych (typu komunikator czy terminal), bo obecnie wszystko się zdegradowało i mało co obsługuje to samo z siebie
    trochę grzebania po dokumentacji to zajęło, ale o ile łatwiejsze jest życie gdy takie rzeczy nie wiszą niepotrzebnie na taskbarze, a nadal sa pod ręką!

  31. Autor opisał temat najlepiej jak się da. Na szczęście sekcja komentarzy nie dała się zwieść jego intencjom i zrozumiała po swojemu.

    Tak – warto umieć programować! Pisać proste automatyzujące skrypty. Nauka nie zajmnie aż tak dużo czasu a często skróci dupogodziny.

    Automatyzacja nudnych zadań w Pythonie jest książką dla ludzi, którzy chcą by komputer wykonał za nich pracę a nie zostać zawodowym programistą. Jest tam świetny wstęp w tym guście.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: