JavaRush /Blog Java /Random-PL /10 artykułów, które każdy programista powinien przeczytać...
Shoggy
Poziom 32
Санкт-Петербург

10 artykułów, które każdy programista powinien przeczytać

Opublikowano w grupie Random-PL
Będąc programistą Java i twórcą oprogramowania, wiele się nauczyłem z wielu artykułów zatytułowanych „ Co każdy programista powinien wiedzieć o…” . Dostarczają one zazwyczaj wielu przydatnych i wyczerpujących informacji na konkretny temat, który w przeciwnym razie byłby trudny do zrozumienia. odkryć. W moim poszukiwaniu wiedzy natknąłem się na kilka bardzo przydatnych artykułów, które dodałem do zakładek jako informacje referencyjne do ponownego przeczytania. Pomysł, że wielu programistów mogłoby odnieść korzyść z przeczytania tego zbioru, skłonił mnie do napisania tego posta i podzielenia się z wami wszystkimi artykułami „Co każdy programista powinien wiedzieć”. 10 artykułów, które każdy programista powinien przeczytać - 1W tym artykule zapoznasz się z klasycznym zestawem wiedzy potrzebnej każdemu programiście, z tematów takich jak pamięć , Unicode , arytmetyka zmiennoprzecinkowa , sieci , projektowanie obiektowe), czas , kodowanie URL , ciągi znaków i wiele innych. Ta lista jest bardzo ważna dla początkujących i nowicjuszy, ponieważ często brakuje im wiedzy praktycznej. Ponieważ większość artykułów opiera się na przykładach z życia wziętych, początkujący i średniozaawansowani programiści mogą się z nich wiele nauczyć. Ponadto poznanie podstaw na początku kariery pomoże Ci uniknąć błędów, które inni programiści i twórcy oprogramowania popełnili już na swojej ścieżce edukacyjnej. Niestety, nie wszystkie informacje zawarte w opisywanych artykułach są łatwo przyswajalne od pierwszego czytania. Możliwe, że nie od razu zrozumiesz niektóre szczegóły dotyczące liczb zmiennoprzecinkowych lub możesz być zdezorientowany zawiłościami pamięci, ale ważne jest, aby mieć ten zbiór pod ręką i od czasu do czasu do niego zaglądać w celu wyjaśnienia. Życzę zatem powodzenia i miłej lektury tych wspaniałych artykułów. Przy okazji, nie zapomnij udostępnić innych artykułów z serii „Co każdy programista powinien wiedzieć”, jeśli nie ma ich jeszcze na naszej liście.

Co każdy programista powinien wiedzieć o pamięci

tłumaczenie na język rosyjski Jest to jeden z klasycznych artykułów, który poprowadzi Cię przez cechy pamięci, niektóre z nich są stare, niektóre nowe, niektóre znane, a niektóre mniej. Pomimo roli menadżerskiej i wszechobecności, nie każdy programista posiada wystarczający poziom wiedzy o Pamięci. Znaczenie zaznajomienia się z pamięcią w nowoczesnych systemach wzrasta, jeśli zajmujesz się pisaniem aplikacji o wysokiej wydajności. Projektanci sprzętu wymyślają bardziej złożone modele zarządzania pamięcią i techniki akceleracji, takie jak pamięci podręczne procesora, ale nie mogą one działać optymalnie bez pomocy programistów. Wciąż czytam ten artykuł i nie mogę powiedzieć, ile się z niego dowiedziałem o pamięci RAM, pamięciach podręcznych procesora, takich jak pamięć podręczna L1 i L2, różnych typach pamięci, bezpośrednim dostępie do pamięci, konstrukcji kontrolera pamięci i pamięci w ogóle . Krótko mówiąc, lektura obowiązkowa dla programistów na każdym poziomie.

Co każdy naukowiec powinien wiedzieć o arytmetyce zmiennoprzecinkowej

Temat arytmetyki zmiennoprzecinkowej jest trudny i niełatwy do opanowania. Wielu programistów Java nawet nie wie, co może pójść nie tak przy porównywaniu wartości z typem float/ doubleoperatorem ==. Wielu z nas często popełnia błędy podczas wykonywania obliczeń pieniężnych w typach floati double. Ten artykuł jest kolejną perełką tej serii i jest lekturą obowiązkową dla wszystkich twórców oprogramowania i programistów. W miarę zdobywania doświadczenia powinieneś zagłębiać się w zawiłości tematów ogólnych, a arytmetyka zmiennoprzecinkowa jest jednym z nich. Jako starszy programista Java powinieneś wiedzieć, jak wykonywać obliczenia pieniężne, kiedy używać języka float, doublejak BigDecimalzaokrąglać liczby zmiennoprzecinkowe i wiele więcej. Nawet jeśli masz solidną wiedzę na ten temat, po przeczytaniu artykułu możesz odkryć coś nowego na temat operacji zmiennoprzecinkowych.

Co każdy programista powinien wiedzieć o Unicode

Kodowanie znaków to kolejny obszar, z którym zmaga się wielu programistów, a „Absolutne minimum, które każdy programista powinien bezwzględnie wiedzieć o Unicode i zestawach znaków (bez wymówek!)” ma na celu wypełnienie tej luki. Dla jasności: tak, to pełny tytuł tego artykułu. Jej autorem jest Joel Spolsky, jeden z założycieli https://stackoverflow.com . Joel napisał ten artykuł na swoim blogu prawie 10 lat temu, ale nie stracił on na aktualności we współczesnym świecie. W artykule wyjaśniono, czym jest Unicode, czym jest kodowanie, w jaki sposób znaki są reprezentowane za pomocą bajtów i wiele więcej. Jedną z najlepszych rzeczy w tym artykule jest język i metoda prezentacji. Nawet jeśli nie wiesz nic o Unicode, nie będziesz miał żadnego problemu ze zrozumieniem go. Krótko mówiąc, kolejna lektura obowiązkowa dla wszystkich programistów, programistów i inżynierów oprogramowania.

Co każdy programista powinien wiedzieć o czasie

Oprócz kodowania znaków, godzina i daty ( Timei Date) to kolejny obszar, w którym wielu programistów, w tym ja, ma trudności. Nawet starsi programiści gubią się w GMT, UTC, czasie letnim i sekundach przestępnych. Szczerze mówiąc, nie jest łatwo poradzić sobie ze strefami czasowymi bez popełniania błędów, a zastosowanie czasu letniego jeszcze bardziej to utrudnia. Problemy się pogłębiają, jeśli zastosujesz metodę prób i błędów, ponieważ w ten sposób nigdy nie będziesz w stanie rozwiązać swojego problemu. Istnieje ogromna liczba rzeczy, które mogą pójść nie tak, i taka sama liczba błędnych przekonań. Rzeczy takie jak to, czy data zawiera strefę czasową, czy nie, mogą cię dezorientować, konwersja czasu UNIX na inne strefy czasowe może cię irytować i możesz łatwo zapomnieć o synchronizacji zegarów i opóźnień. Mam nadzieję, że po przeczytaniu tego artykułu wiele z Twoich błędnych wyobrażeń na temat czasu zniknie i osiągniesz pełne zrozumienie czasu.

Co każdy programista stron internetowych powinien wiedzieć o kodowaniu adresów URL

W tym artykule opisano typowe błędne przekonania na temat kodowania Uniform Resource Locator (URL), następnie podjęto próbę wyjaśnienia kodowania URL dla protokołu HTTP, a następnie przedstawiono typowe problemy i rozwiązania. Chociaż ten artykuł nie jest specyficzny dla żadnego języka programowania, ilustruje problemy w Javie) i kończy się wyjaśnieniami, jak rozwiązać problemy z kodowaniem adresów URL w Javie i aplikacjach internetowych na kilku poziomach. Poznasz podstawową gramatykę URL, ogólną składnię URL w HTTP i innych protokołach. W tym artykule omówiono także typowe pułapki związane z adresami URL, takie jak kodowanie znaków, znaki specjalne w różnych częściach adresu URL oraz problemy z kodowaniem/dekodowaniem adresu URL. Jeśli jesteś programistą Java, dowiesz się również, jak prawidłowo zarządzać adresami URL w aplikacji Java. Jak zbudować adres URL i korzystać z biblioteki klienta HTTP Apache Commons. Na koniec oferuje także najlepsze praktyki i sugestie dotyczące pracy z adresami URL, takie jak sposób kodowania adresu URL podczas jego tworzenia, upewnianie się, że filtry przepisywania adresów URL poprawnie obsługują adresy URL i nie tylko. Krótko mówiąc, lektura obowiązkowa dla każdego programisty i programisty stron internetowych.

Co każdy programista wie o tworzeniu stron internetowych?

Ten interesujący artykuł od programrsStackExchange dotyczy tego, co każdy programista wdrażający szczegóły techniczne aplikacji internetowej powinien wziąć pod uwagę przed udostępnieniem witryny publicznie. Obejmuje zagadnienia z obszarów projektowania interfejsu i doświadczenia użytkownika, bezpieczeństwa, standardów sieciowych, wydajności, optymalizacji pod kątem wyszukiwarek (SEO), używanych technologii i niektórych ważnych zasobów. Dzisiejszy świat jest w dużej mierze zależny od Internetu i dość często zdarza się, że programista posiada własną stronę internetową lub blog. Doświadczenie zdobyte w tym artykule przyda się nie tylko w Twojej działalności zawodowej, ale także we własnych projektach. Dowiesz się o wszystkich kluczowych technologiach, takich jak HTTP, HTML, XML, CSS, JavaScript, kompatybilność przeglądarek, wskazówki dotyczące skrócenia czasu ładowania Twojej witryny, mapy witryn XML, specyfikacje W3C i kilka innych kluczowych punktów.

Co każdy programista powinien wiedzieć o SEO

To kolejny artykuł, który będzie bardzo przydatny dla twórców stron internetowych, programistów i blogerów. SEO jest zbyt ważne, aby je ignorować, dlatego dla wielu programistów i blogerów ważna jest znajomość podstaw optymalizacji wyszukiwarek, aby pomóc Google znaleźć ich treść i pokazać ją innym programistom. Ponieważ w dzisiejszym połączonym świecie żadna firma nie może przetrwać bez obecności w Internecie, SEO staje się jeszcze ważniejsze. Jeśli masz startup sprzedający jakikolwiek produkt, SEO jest czymś, o co powinieneś zadbać. Wszyscy programiści, zwłaszcza twórcy stron internetowych, mogą wiele zyskać na tym artykule. Pamiętaj, że optymalizacja wyszukiwarek jest zjawiskiem szerokim i bardzo dynamicznym oraz różni się w zależności od wyszukiwarek, takich jak Google, Yahoo i innych. Aby więc opanować ten temat, należy zawsze aktualizować swoją wiedzę.

Co każdy programista C powinien wiedzieć o niezdefiniowanym zachowaniu #1/3

Język programowania C ma koncepcję „nieokreślonego zachowania”. Niezdefiniowane zachowanie to szeroki temat z wieloma niuansami i jest to jeden z powodów, dla których kocham Javę: mniej nieokreślonych zachowań, mniej zamieszania, więcej stabilności i więcej spokoju. Wiele pozornie rozsądnych rzeczy w C ma w rzeczywistości niezdefiniowane zachowanie i jest to częste źródło błędów w programach. Dodatkowo każde niezdefiniowane zachowanie w C daje pozwolenie implementacjom (kompilatora i środowiska wykonawczego) na generowanie kodu, który formatuje dysk twardy, wykonując zupełnie nieoczekiwane rzeczy lub coś gorszego. Przeczytaj ten doskonały artykuł, aby głęboko zanurzyć się w morzu nieprzewidywalnych zachowań.

Co każdy programista powinien wiedzieć o sieciach

Z samego artykułu „Jesteś programistą. Czy zastanawiałeś się kiedyś, jak działają gry wieloosobowe? Z zewnątrz wydaje się to magiczne: dwóch lub więcej graczy dzieli się doświadczeniami online, tak jakby faktycznie istnieli razem w tym samym wirtualnym świecie. Ale jak „My znamy prawdę, programiści, że to, co faktycznie się dzieje, jest zupełnie inne od tego, co widzisz. Okazuje się, że to wszystko iluzja”. To bardzo ciekawy artykuł o networkingu napisany z myślą o programistach gier, ale myślę, że każdy programista i deweloper może z niego skorzystać.

Co każdy programista Java powinien wiedzieć o ciągach znaków

To jest mój artykuł na ten temat java.lang.Stringi osobiście uważam, że każdy programista Java powinien o tym wiedzieć. Ciągi znaków są bardzo ważne w codziennym programowaniu w języku Java i dlatego dobra wiedza jest koniecznością dla każdego programisty Java. W tym artykule omówiono wiele ważnych aspektów ciągów, w tym pulę ciągów, literały ciągów, porównywanie ciągów za pomocą ==vs equals(), konwertowanie bajtów na ciąg, dlaczego ciąg jest niezmienny, prawidłowe łączenie ciągów i wiele więcej. Zaawansowany programista może już znać wszystkie te funkcje, ale mimo to dobrym pomysłem byłoby ich przejrzenie.

Co każdy programista powinien wiedzieć o bezpieczeństwie?

To pytanie zostało zadane przez programistę-studenta na StackOverflow. Tak jak wiemy dużo o ogólnych koncepcjach programowania, takich jak system operacyjny, algorytmy, struktury danych, architektura komputera i inne rzeczy, ważna jest również wiedza o bezpieczeństwie. Chociaż temat Bezpieczeństwa jest dość szeroki i obejmuje obszary szyfrowania/deszyfrowania, SSL, bezpieczeństwa sieci, zaciemniania, uwierzytelniania, autoryzacji itp., od każdego programisty wymagane jest podstawowe minimum wiedzy. Osobiście na początku mojej kariery nie wiedziałem zbyt wiele o bezpieczeństwie, kiedy zacząłem pisać aplikację internetową w języku Java opartą na Servlet/JSP, dowiedziałem się o bezpieczeństwie sieci i szeregu zagrożeń bezpieczeństwa, takich jak SQL Injection, Denial of Service, XML Wstrzykiwanie, skrypty między witrynami i inne. Jako programista Java stosuję obecnie praktyki bezpiecznego programowania w języku Java dostarczane przez Fortify, PMP i innych dostawców analizatorów kodu statycznego. Ten artykuł zawiera bardzo duży wybór tematów i łączy dotyczących bezpieczeństwa, więc niezależnie od tego, czy kodujesz, czy nie, z pewnością skorzystasz z tego zasobu.

Liczby opóźnień, które powinien znać każdy programista

Ten artykuł jest dodatkiem, niemniej jednak lekturą obowiązkową dla każdego programisty. Aby napisać aplikację o wysokiej wydajności w dowolnym języku programowania, czy to w Java, czy C++, musisz znać podstawowe wartości opóźnień, na przykład, ile czasu zajmie odczytanie zmiennej z pamięci, z pamięci podręcznej L1, z pamięci podręcznej L2, dla losowy odczyt z dysku SSD i z dysku. Ile czasu zajmuje zablokowanie/odblokowanie muteksu w celu wysłania pakietu danych z jednego miasta do drugiego lub wykonania podróży w obie strony w obrębie jednego centrum danych. Te wartości opóźnień są niezależne od języka programowania i stanowią część podstawowej wiedzy, jaką musi posiadać programista, aby pisać aplikacje o dużym obciążeniu i niskim opóźnieniu. Pozytywną rzeczą w tym powiązaniu jest to, że zapewnia analizę porównawczą ewolucji tych wartości na przestrzeni lat. Można zobaczyć jakie były wartości w 2006 roku i jakie są teraz. To wszystko, jeśli chodzi o listę artykułów, które każdy programista powinien przeczytać. Czytając artykuły takie jak Co każdy programista lub programista powinien wiedzieć, pogłębiasz swoją wiedzę na konkretny temat. Szczerze mówiąc, programiści muszą się nauczyć zbyt wielu rzeczy, a nauka języka programowania takiego jak Java to tylko wierzchołek góry lodowej, ale czy większość z nas nie ma pasji do nauki. Programowanie to zawód, który wymaga ciągłego rozwoju, a jedyne rzeczy, które przydadzą się każdemu programiście przez całą jego karierę to podstawowa wiedza z takich rzeczy jak pamięć , Unicode , liczby zmiennoprzecinkowe , czas , bezpieczeństwo (bezpieczeństwo) . Niektóre rzeczy są specyficzne dla języka, jak mój post na temat String w Javie i Co każdy programista C powinien wiedzieć o niezdefiniowanym zachowaniu, ale warto się ich nauczyć dla wielu początkujących i programistów.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION