JavaRush /Blog Java /Random-PL /Jeden język, aby wszystkimi rządzić

Jeden język, aby wszystkimi rządzić

Opublikowano w grupie Random-PL
W każdym języku programowania kryje się język ukryty pod każdą warstwą kodu. I czeka, aż go odkryją... Tłumaczenie i adaptacja artykułu Erica Giroisa ze społeczności programistów Better na Medium. Jeden język, aby wszystkimi rządzić - 1Kiedy pisałem ten artykuł, liczba zapytań w stylu „jakiego języka programowania się uczyć” przekroczyła 517 milionów (!). Każda strona z listy wyników wyszukiwania mówi o przewadze danego języka nad innymi i w 90% przypadków zostanie Ci polecone to samo, na przykład Python, JavaSctipt (lub coś z 3 najlepszych wiarygodnych ocen języków językowych. The aktualna ocena za lipiec już jest ;) Pozwolę sobie odważyć się i oficjalnie nie zgodzić się ze wszystkimi 517 milionami wyników i stwierdzić, że pierwszym językiem programowania, którego powinieneś się nauczyć, jest logika . Nie wystarczy po prostu wiedzieć, jak napisać kod. Rynek jest przepełniony absolwentami różnych kierunków, dlatego pozycja młodszego programisty w zasadzie przestała istnieć. Aby odnieść sukces w tych realiach, trzeba nie tylko pisać kod, ale także mieć logiczny umysł.

Moja pierwsza lekcja informatyki

Mój pierwszy kontakt z informatyką miał miejsce na zajęciach fakultatywnych w dziesiątej klasie. Przyszłam na zajęcia i poczułam zachwyt: w klasie było pełno pudełek lodów i słoiczków syropów. Kiedy zajęliśmy miejsca, nauczyciel oznajmił: „Dzisiaj będziemy robić niedziele ( deser z lodów i syropów – przyp. red. ). Ale pod jednym warunkiem: musisz napisać dokładną instrukcję przygotowania deseru, a ja się do niej zastosuję.” „ Nie ma wątpliwości ” – pomyślałem – „ będzie łatwo ”. W ciągu minuty zapisałam idealną instrukcję: Do filiżanki włóż trzy gałki lodów malinowych. Do filiżanki wlej dwie łyżki syropu czekoladowego. Do filiżanki dodaj bitą śmietanę. Na wierzch niedzielnej posypki dodaj posypkę i wisienkę. Następnie moje nauczycielka – pełniąca rolę „komputera” – postępowała dokładnie zgodnie z instrukcjami, wykonała najbardziej żrący występ, jaki kiedykolwiek widziałem. Zaczęła wściekle „atakować” kartonowe pudełko lodów, ale trwałe wieczko pozostało nienaruszone. „OK, najpierw zdejmij pokrywkę” – powiedziałem, mając nadzieję, że szybko dostanę deser. „Nie napisałeś dla mnie poprawnie instrukcji, więc niestety nie mogłem przygotować dla Ciebie Sunday NEXT!”

Przejdź szybko do próby nr 2

Otwórz karton lodów malinowych zdejmując pokrywkę Włóż trzy gałki lodów malinowych do kubka Otwórz syrop czekoladowy i dodaj do tego kubka dwie łyżki Otwórz bitą śmietanę i dodaj trochę do kubka Dodaj posypkę i wisienkę na wierzch niedzieli byłem pewien, że raz mi się to udało. Nauczycielka zdjęła pokrywkę, nabrała trzy gałki lodów i włożyła je do filiżanki. Wreszcie moja niedziela jest gotowa! Następnie otworzyła syrop czekoladowy i wsypała do filiżanki dwie łyżki. Ale nie dwie łyżki syropu - tylko łyżki, bez niego! Moje instrukcje znów nie były wystarczająco dokładne. Gdy było już po wszystkim, otrzymałem kubek lodów, dwie metalowe łyżki, tonę bitej śmietany i około 300 gałek posypki. Wydaje się, że w tym momencie wszystko stało się dla mnie jasne: komputer to byt, którym kieruje się czysta logika. Nie rozumie kontekstu i nie wyciąga żadnych wniosków. Przestrzega ścisłego zestawu instrukcji i przestrzega ich co do joty. Końcowa instrukcja przygotowania niedzieli była strasznie rozwleczona, ale była konieczna: Jeśli nie zostało już otwarte, otwórz opakowania wszystkich następujących pozycji: Lody Malinowe, Syrop Czekoladowy, Polewy i Bita Śmietana Weź kubek z półkę i umieść ją przed sobą. Weź gałkę lodów i, jedną po drugiej, nabieraj ją i włóż trzy gałki lodów do filiżanki. Gdy wszystko będzie gotowe, połóż łyżkę na stole. Weź łyżkę syropu czekoladowego, jeśli jeszcze jej nie masz. Następnie weź łyżkę syropu czekoladowego i wlej ją do filiżanki. Wykonaj tę czynność dwa razy. Gotowy syrop czekoladowy odłóż na półkę. Odwróć butelkę z bitą śmietaną do góry nogami i naciśnij palcem przycisk obok dziobka butelki przez trzy sekundy, a następnie przywróć butelkę do pierwotnej pozycji. Posyp 40 granulkami posypki lody i syrop czekoladowy w filiżance, a następnie umieść wytrząsarkę w pierwotnym położeniu. Wyjmij jedną wiśnię ze słoika z wiśniami i ostrożnie połóż ją na wierzchu niedzieli. Daj uczniowi niedzielną i łyżkę deserową. Ostatnie polecenie w instrukcji było bardzo ważne, bo bez niego nauczycielka sama zaczęła jeść niedzielę. Taka jest rzeczywistość programowania – trzeba wydać komputerowi jak najdokładniejsze instrukcje. Zasadniczo wszystkie języki programowania składają się z instrukcji.

Kariera w tworzeniu oprogramowania

Tworzenie oprogramowania jest na takim etapie rozwoju, że mówienie o nim jako o odrębnej branży wydaje się zbyt ogólne. A stanowisko „programista” brzmi w tym kontekście niejasno. Dwóch programistów o różnych zestawach umiejętności może być równie poszukiwanych na rynku pracy, co sugeruje, że udana kariera w dziale rozwoju wymaga czegoś więcej niż tylko umiejętności programowania. Doświadczeni programiści mają wspólną cechę, odrębną od programowania – logikę . Najlepsi programiści są silni w krytycznym myśleniu. Jest to istotne, ponieważ większość projektów rozwoju oprogramowania to słabo udokumentowane, patchworkowe koszmary. Zebranie wszystkich danych i uzupełnienie luk będzie wymagało kogoś, kto potrafi krytycznie myśleć. Dlatego też ci specjaliści, którzy nie potrafią połączyć faktów w jedną całość, pozostają w tyle. Wszystko to prowadzi do kolejnego bardzo ważnego stwierdzenia: Podstawy informatyki – zarówno teraz, jak i w przyszłości – są najważniejsze. Są ważniejsze niż umiejętność pisania kodu. Popularne języki przychodzą i odchodzą. Frameworki stają się przestarzałe, a firmy odpowiadają na zmieniające się wymagania rynku, łącząc stos wykorzystywanych technologii. Co pozostaje niezmienione? Podstawy podstaw.

Jak rozwijać logiczne myślenie

Logikę i krytyczne myślenie można i należy rozwijać. Radzę zwrócić uwagę na następujące kwestie:

1. Badanie efektywności algorytmów w środowiskach wykonawczych

Do opisu złożoności algorytmów używana jest notacja Big-O. Jeśli jesteś w stanie ocenić swój kod w kategoriach Big O i przeanalizować liczbę wykonanych kroków w porównaniu do poświęconego czasu, uznaj, że wykonałeś pierwszy krok we właściwym kierunku.

2. Poznaj struktury danych

Struktura danych jest podstawą każdego złożonego programu. Wiedza o tym, jakiego typu najlepiej użyć w jakim przypadku, jest ważną umiejętnością. Struktury danych są bezpośrednio związane ze złożonością algorytmów, ponieważ wybranie niewłaściwej struktury może zabić program.

3. Czytaj/oglądaj/słuchaj

Cóż, aby zrozumieć podstawy, przeczytaj książki o koncepcjach projektowych, najlepszych praktykach i stylu kodowania. Osobom uczącym się programowania gorąco polecamy przeczytanie:
  • „Techniki projektowania obiektowego. Wzorce projektowe” (E. Gamma R. Helm R. Johnson J. Vlissides),
  • „Refaktoryzacja. Udoskonalanie istniejącego kodu” (M. Fowler),
  • „Doskonały kod” (S. McConnell)
  • „Czysty kod” (B. Martin)
  • „Pragmatyczny programista” (E. Hunt)
  • „Algorytmy: konstrukcja i analiza” (T. Cormen, C. Leiserson, R. Rivest i K. Stein)

4. Ćwicz!

Nie można zostać dobrym wiolonczelistą bez setek godzin ćwiczeń. Codzienna praktyka jest kluczem do sukcesu w programowaniu. Obecnie istnieje wiele platform internetowych, na których można znaleźć tysiące zadań wymagających zrozumienia struktur danych i algorytmów (HackerRank, LeetCode, CodeWars i inne).
Problemy z programowaniem w języku Java, od prostych po złożone, są dostępne w JavaRush. W kursie jest ich ponad 1200. A także miniprojekty i gry zadaniowe .
Dla mnie najskuteczniejszym sposobem pracy z takimi platformami jest wymyślenie unikalnego podejścia do problemu i opublikowanie rozwiązania na Githubie. Następnie przyjrzyj się najlepszym rozwiązaniom podobnego problemu i przeanalizuj podejście innych programistów. To prowadzi nas do ostatniej wskazówki:

5. Analizuj kod innych osób

Głównym błędem w nauce programowania i na początkowych etapach pracy jest samoizolacja. Tworzenie oprogramowania to dziedzina, która w dużej mierze zależy od pracy zespołowej. Wspólnie tworzymy standardy, popełniamy błędy i z biegiem czasu (znowu metodą prób i błędów) odkrywamy, co działa najlepiej. Poświęcenie czasu na przeczytanie kodu doświadczonych programistów opłaci się. Tylko upewnij się, że kod jest rzeczywiście dobry.

Wniosek

Osobista rada: nigdy nie wstydź się tego, czego (jeszcze) nie wiesz. Jak wspomniano powyżej, branża ta jest ogromna, liczba języków jest niesamowita i istnieje morze informacji. Stworzenie choćby ogólnego pojęcia o programowaniu zajmuje dużo czasu i wysiłku, jeszcze więcej, aby zdobyć doświadczenie, a wiele razy więcej, aby stać się prawdziwym profesjonalistą. Kiedy w końcu mi się uda, dam znać :)
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION