Ukryty pod warstwą kodu język słabnie i pragnie się go nauczyć.
W chwili pisania tego tekstu zapytanie „programowanie, którego języka uczyć się najpierw” zwraca 517 milionów wyników wyszukiwania. Każda z tych witryn będzie chwalić jeden konkretny język, a 90% z nich ostatecznie poleci Pythona lub JavaScript.
Bez zbędnych ceregieli chciałbym oficjalnie powiedzieć, że wszystkie z tych 517 milionów stron internetowych są błędne i że językiem, którego powinieneś się najpierw nauczyć, jest podstawowa logika.
Sama umiejętność kodowania nie wystarczy. Rynek jest tak nasycony absolwentami instytutów i kierunków, że pozycja juniora praktycznie przestała istnieć*. Aby odnieść sukces w dzisiejszym świecie, musisz zarówno programować, jak i posiadać zaawansowane podstawowe logiczne myślenie.
*dalej proszę pamiętać, że jest to tłumaczenie i sytuacja na rynku pracy autora i w Twoim kraju może być odmienna (i inne niuanse), co jednak samo w sobie nie pogarsza oryginału - około. tłumaczenie
Moja pierwsza lekcja informatyki
Mój pierwszy kontakt z informatyką miał miejsce w 10. klasie. Już pierwszego dnia, wchodząc do klasy, z radością zobaczyłam przed sobą dużą liczbę wiaderek z lodami i różnymi dodatkami. Gdy wszyscy zajęli miejsca, nauczyciel oznajmił:
„Dzisiaj będziemy degustować samodzielnie przygotowane lody. Ale pod jednym warunkiem: musisz sporządzić listę konkretnych instrukcji, jak przygotować deser, a ja się do nich zastosuję.
„Nie ma problemu” – pomyślałem. „Ta lekcja nie będzie długa”. W ciągu minuty zapisałem idealny przepis na lody moich marzeń:
- Łyżką i włóż do miski trzy gałki lodów malinowych
- Otwórz sos czekoladowy i dodaj dwie łyżki do tej samej miski
- Do miski dodaj bitą śmietanę
- Całość posypujemy cukrem i na wierzchu układamy wisienkę
Mój nauczyciel – „komputer” w tej uroczej metaforze – dał bardziej sarkastyczny, dosłowny występ, niż kiedykolwiek wcześniej widziałem. Zaczęła gorliwie szturchać wiadro z lodami łyżką, nawet nie dotykając pokrywki.
„OK, OK, ale najpierw musisz to otworzyć!” – wykrzyknąłem, starając się jak najszybciej zdobyć smakołyk.
„Nie napisałeś tego w instrukcji, a ja nie mogłem zrobić ci lodów. NASTĘPNY!"
Przejdźmy szybko do próby nr 2
- Otwórz lody malinowe, zdejmując pokrywkę
- Łyżką i włóż do miski trzy gałki lodów malinowych
- Otwórz sos czekoladowy i dodaj dwie łyżki do tej samej miski
- Do miski dodaj bitą śmietanę
- Całość posyp cukrem i połóż na wierzchu wisienkę
Cóż, teraz zdecydowanie nie powinno być żadnych problemów. Na wszelki wypadek upewniłam się, że wszystkie składniki potrzebne do zrobienia mojego kulinarnego arcydzieła są otwarte.
Nauczycielka zdjęła pokrywkę, nabrała i włożyła do miski trzy gałki lodów. „Wreszcie moje piękne lody zaczęły się spełniać!” Następnie otworzyła sos czekoladowy i dodała do miski dwie łyżki. Nie „dodawała sosu czekoladowego z dwóch łyżek” – nie myśl – sama oczywiście włożyła łyżki do miski. Nie ma w nich sosu. Znowu nie zadałem sobie trudu, żeby wszystko dokładnie zapisać. Gdy reszta została wykonana w tym samym duchu, otrzymałam miskę lodów i dwie łyżki ledwo zauważalne pod morzem bitej śmietany. Na wierzchu leżały dwie laski cukru.
Wydaje się, że w tym momencie wreszcie do mnie dotarło: komputer to logika w próżni. Nie jest świadomy otaczających okoliczności i nie przyjmuje żadnych założeń. Wykonuje tylko jasno sformułowane instrukcje i trzyma się ich słowo po słowie.
Mój ostateczny wynik był wynikiem długiej, ale koniecznej serii prób i błędów:
- Jeśli jeszcze tego nie zrobiłeś, otwórz każde z następujących opakowań: lody malinowe, sos czekoladowy, bita śmietana, cukier w paluszkach.
- Wyjmij miskę i postaw ją przed sobą
- Weź łyżkę lodów i włóż do miski po trzy gałki lodów malinowych. Odłóż gałkę lodów z powrotem na miejsce.
- Weź słoik sosu czekoladowego, zbierz sos i wlej zawartość łyżki do miski. Powtórzyć proces nabierania i nalewania jeszcze raz. Odłóż łyżkę i słoik z powrotem na miejsce.
- Weź opakowanie bitej śmietany do góry nogami i trzymając je nad miską, polej nią lody na 3 sekundy, po czym odłóż opakowanie na miejsce.
- Weź słoik pałeczek cukru, wsyp do miski około czterdziestu pałeczek i odłóż słój z powrotem.
- Z miski wiśni wyjmij jedną wiśnię i połóż ją na lodach.
- Daj uczniowi miskę z gotowymi lodami i łyżką.
Ostatni punkt był szczególnie ważny, bo bez niego przedostatni raz nauczycielka po prostu zaczęła jeść moje lody.
Ale to jest programowanie. Stres związany z tworzeniem starannego zestawu instrukcji dla komputera. Zasadniczo do tego sprowadza się każdy język programowania – pisanie instrukcji.
Kariera w programowaniu
Programowanie osiągnęło punkt, w którym trudno jest mówić o jednej branży, tak jak trudno jest używać jednego słowa „programista” jako opisu stanowiska. Równie poszukiwanych na rynku może być dwóch programistów, znających zupełnie różne języki, co oznacza, że umiejętność rozwoju jest ważniejsza niż znajomość konkretnego języka. Uniwersalną cechą wspólną dla wszystkich odnoszących sukcesy programistów jest podstawowa logika.
Najlepszy programista to ten, który potrafi spojrzeć na kod z nowej perspektywy. Ma to fundamentalne znaczenie, ponieważ większość oprogramowania to zbiór nieudokumentowanych fragmentów złego kodu. Należy je stale łączyć, w razie potrzeby wypełniając luki. Ludzie, którzy nie potrafią połączyć różnych punktów jedną linią, będą musieli na zawsze pozostać na uboczu.
Wszystko to prowadzi mnie do kolejnej deklaracji, tym razem pogrubioną: Podstawowa wiedza zawsze była i będzie najważniejsza dla programisty.
Języki przychodzą i odchodzą. Ramy stają się przestarzałe, a firmy reagują na popyt, zmieniając stos technologii, z którego korzystają. Czy jest jedna rzecz, która nigdy się nie zmieni? Tak – wiedza fundamentalna, którą nazywa się fundamentalną, bo leży u podstaw wszystkiego!
Jak doskonalić wiedzę podstawową
Zdjęcie autorstwa Krzysztofa
Jeśli szukasz punktu wyjścia do poprawy swojego podstawowego logicznego myślenia, spróbuj zacząć tutaj:
Poznaj złożoność swojego programu
Nazywane również Big O „złożoność algorytmu” odnosi się do zależności czasu potrzebnego na wykonanie programu od rozmiaru jego danych wejściowych (n). Trzymanie ręki na pulsie stosowanych algorytmów to ważny krok.
Poznaj swoje struktury danych
Struktury danych stanowią serce każdego nowoczesnego programu. Wiedza o tym, jakiej struktury użyć w jakim przypadku, jest dyscypliną samą w sobie. Struktury danych są bezpośrednio powiązane ze złożonością środowiska wykonawczego, a wybór niewłaściwej struktury może prowadzić do zasadniczych problemów z wydajnością. Znalezienie elementu w tablicy to Na), co wskazuje na wysoki koszt wykorzystania tablic jako danych wejściowych. Wyszukiwanie tablicy mieszającej − O (1), co oznacza, że w tym przypadku czas poszukiwania wartości nie zależy od liczby elementów.
Ludzie przychodzili do mnie na rozmowę kwalifikacyjną i twierdzili, że przeszukiwanie tablicy jest szybsze niż przeszukiwanie tablicy mieszającej. To był najpewniejszy znak, że nie powinieneś ich zatrudniać – poznaj swoje struktury danych.
Czytaj / oglądaj / słuchaj
Witryny typu
Ćwiczyć!
Nie da się ugotować jajecznicy bez rozbijania jajek. Witryny typu
Przeczytaj kod innych osób
Największym błędem, jaki możesz popełnić, podążając ścieżką rozwoju, jest podążanie nią samotnie. Tworzenie oprogramowania to w dużej mierze wysiłek zespołowy. Razem tworzymy standardy, wspólnie popełniamy błędy i mimo wszelkich niepowodzeń wspólnie stajemy się lepsi. Czas spędzony na czytaniu kodu innych osób z pewnością się opłaci. Tylko upewnij się, że to dobry kod.
Cóż, najlepsza rada, jaką mogę dać, to nigdy nie wstydzić się, że czegoś jeszcze nie wiesz. Jak już powiedziano, nasza branża jest ogromna, a ilość technologii nieograniczona. Zbudowanie ogólnego obrazu zajmuje dużo czasu i wysiłku, jeszcze więcej, aby stać się profesjonalistą w jakiejś konkretnej dziedzinie, i o rząd wielkości więcej, aby doskonalić swoje umiejętności w swojej dziedzinie. Dam ci znać, kiedy sam to osiągnę.
Źródło: www.habr.com