Kod

Listopad 2024: Przegląd IT, wiadomości i najważniejsze wydarzenia

Listopad 2024: Przegląd IT, wiadomości i najważniejsze wydarzenia / Skillbox Media

Szkolenie z gwarancją pracy: program dla programistów internetowych

Dowiedz się więcej

Pewnego dnia ChatGPT, Claude i Gemini spotkali się w wirtualnym barze. ChatGPT z dumą oznajmił: „Stałem się o wiele lepszym programistą niż początkujący programiści!” Na to Claude odpowiedział: „A ja mogę zastąpić średniego szczebla!”. Gemini, nie chcąc być gorszym, pochwalił się: „Jestem już na poziomie seniorskim!”. W tym momencie zza baru wyłonił się stary znajomy ze Stack Overflow i z uśmiechem zapytał: „Chłopaki, kto napisze te niezręczne odpowiedzi, na których się szkoliliście?”.

Natknęliśmy się na ten żart na Reddicie miesiąc temu. Pomimo jego komicznego charakteru, warto zauważyć, że sieci neuronowe rzeczywiście stają się coraz bardziej zdolne do konkurowania z programistami o wolne stanowiska. Przyjrzyjmy się, jak można się do tego dostosować, a także omówmy inne ważne wydarzenia listopada.

Spis treści

  • Wraz z szybkim rozwojem technologii, a zwłaszcza pojawieniem się sieci neuronowych, pytanie o to, jak pozostać konkurencyjnym i utrzymać pracę, staje się coraz bardziej aktualne. Aby być poszukiwanym specjalistą w tym czasie, należy przestrzegać kilku zaleceń.

    Przede wszystkim ważne jest ciągłe rozwijanie swoich umiejętności. Pogłębianie wiedzy w wybranej dziedzinie zawodowej, a także opanowywanie nowych technologii i metodologii, pomoże Ci nadążać za duchem czasu. Naucz się dostosowywać do zmian i bądź otwarty na nowe pomysły.

    Warto również zwrócić uwagę na powiązania interdyscyplinarne. Łączenie wiedzy z różnych dziedzin może znacząco zwiększyć Twoją wartość jako specjalisty. Na przykład umiejętność pracy z danymi i bazami danych może wnieść znaczący wkład w Twój główny zawód.

    Równie ważna jest umiejętność pracy w zespole i interakcji z kolegami. Umiejętności komunikacji i współpracy stają się kluczowe w czasach, gdy wiele zadań wymaga wspólnego wysiłku.

    Należy również rozwijać krytyczne myślenie i kreatywność. Sieci neuronowe mogą wykonywać wiele rutynowych zadań, ale to ludzkie podejście i innowacyjne pomysły pozostają niezbędne w złożonych sytuacjach.

    Na koniec nie zapomnij o budowaniu marki osobistej. Budowanie pozytywnego wizerunku, aktywne uczestnictwo w społecznościach zawodowych i promowanie swoich osiągnięć pomogą Ci wyróżnić się na tle innych specjalistów.

    Przestrzegając tych zasad, nie tylko utrzymasz swoją pozycję na rynku pracy, ale także staniesz się niezastąpionym specjalistą w obliczu zmian związanych z rozwojem sieci neuronowych.

  • Rust jako pierwszy język programowania: powody, dla których jest świetną opcją i rekomendacje na początek

    Wybór języka programowania dla początkującego to zadanie wymagające starannego podejścia. Rust, który zyskał popularność w ostatnich latach, wyróżnia się na tle innych języków z kilku powodów, czyniąc go atrakcyjnym dla początkujących programistów.

    Po pierwsze, Rust oferuje wysoką wydajność, porównywalną z językami niskiego poziomu, takimi jak C i C++. Pozwala to na tworzenie wydajnych aplikacji, które działają szybko i niezawodnie. Rust zapewnia również bezpieczeństwo pamięci, co pomaga uniknąć wielu typowych pułapek, takich jak wycieki pamięci i uszkodzenia danych.

    Po drugie, język posiada przejrzysty i zrozumiały system typów, który promuje bezpieczniejszy i bardziej niezawodny kod. Silne typowanie pomaga początkującym programistom szybko zrozumieć podstawowe koncepcje programowania i nauczyć się unikać typowych błędów już na wczesnym etapie.

    Co więcej, społeczność Rusta aktywnie wspiera początkujących, udostępniając liczne zasoby edukacyjne. Dostępna jest obszerna dokumentacja, samouczki i kursy, które pomogą Ci opanować język od podstaw. Warto również zauważyć, że ekosystem Rusta stale się rozwija, otwierając nowe możliwości zastosowań języka w różnych dziedzinach.

    Aby rozpocząć naukę Rusta, zalecamy odwiedzenie oficjalnej strony internetowej języka, gdzie znajdziesz przewodnik dla początkujących. Zacznij od zainstalowania kompilatora i prostych przykładów kodu, a następnie stopniowo przechodź do bardziej złożonych projektów. Udział w społeczności, dyskusje na tematy i dzielenie się doświadczeniami z innymi programistami może znacznie przyspieszyć proces nauki.

    Dlatego Rust jest doskonałym wyborem jako pierwszy język programowania, ponieważ łączy w sobie wydajność, bezpieczeństwo i aktywną społeczność. Rozpoczynając naukę tego języka, zdobędziesz solidne podstawy do dalszego rozwoju w dziedzinie programowania.

  • Hakerzy wykorzystali nietypowy język programowania, aby oszukać systemy antywirusowe.
  • Smutny los nowego logo CSS.
  • Nie trać czasu na naukę Reacta, skup się na podstawach: zalecenia od profesjonalisty.
  • Porównanie WordPressa i WP Engine: konfrontacja w społeczności open source.
  • Przezwyciężanie prokrastynacji i przechodzenie do działania: zalecenia od eksperta.
  • Przyszłość jest teraz: asystenci AI w nowoczesnych narzędziach programistycznych.
  • Ciekawe zasoby internetowe, które zdecydowanie warto zobaczyć.
  • Ciekawostki na Reddicie.

Droga do sukcesu: jak pozostać istotnym profesjonalistą na świecie.

Badanie przeprowadzone przez autorów magazynu Computerworld wykazało, że wraz z rosnącą popularnością sieci neuronowych, specjalistom IT coraz trudniej jest zarówno znaleźć odpowiednią pracę, jak i utrzymać stanowiska. Oprócz tej analizy przedstawiono rekomendacje mające na celu zwiększenie szans na zatrudnienie i utrzymanie konkurencyjności w zawodzie.

Pierwszym zaleceniem jest opanowanie technologii, w których brakuje wykwalifikowanego personelu.

„Obecnie obserwujemy stałe zainteresowanie technologiami takimi jak Rust, Go, Google Cloud Platform, Terraform i AWS. Jednocześnie liczba kandydatów jest znacznie niższa niż liczba dostępnych wakatów.

Roczna dynamika popytu na kluczowe umiejętności technologiczne. Zdjęcie: Indeed

Druga rada to nauczyć się pracy z sieciami neuronowymi i wykorzystać je jako narzędzie do poprawy efektywności w codziennej pracy. Liczne badania sugerują, że sieci neuronowe mogłyby wypełnić dwie trzecie istniejące stanowiska i zautomatyzować co czwarte zadanie w przyszłości. Dlatego jeśli programista nie opanuje umiejętności obsługi sieci neuronowych, jego wiedza ryzykuje dezaktualizację lub utratę przewagi konkurencyjnej.

Wyobraźmy sobie dwóch pracowników. Pierwszy woli ręcznie kodować dane w formularzach, co zajmuje dużo czasu, pomimo prostoty zadania. Drugi specjalista, korzystając z sieci neuronowych, szybko generuje podstawowy kod walidacyjny, uwalniając czas na ważniejsze zadania, takie jak opracowywanie logiki biznesowej czy optymalizacja interfejsu użytkownika. Oczywiste jest, że dla pracodawcy drugi programista jest o wiele cenniejszym nabytkiem.

Przeczytaj także:

Programowanie i sztuczna inteligencja: czy naprawdę da się zastąpić programistów?

Autorzy podkreślają między innymi następujące kwestie:

  • Gotowość do relokacji odgrywa znaczącą rolę w perspektywach zawodowych, ponieważ 80% profesjonalistów z branży technologicznej uważa, że ​​relokacja znacznie zwiększa ich szanse na zdobycie pracy Praca.
  • Proaktywne podejście do poszukiwania pracy jest często skuteczniejsze niż czekanie na telefon od rekruterów.
  • Pamiętaj, aby okazywać zainteresowanie możliwościami rozwoju zawodowego – zadawaj trafne pytania zarówno podczas rozmów kwalifikacyjnych, jak i w rozmowie z obecnym pracodawcą. Pokażesz w ten sposób pracodawcy, że zależy Ci na rozwoju kariery i planujesz pozostać w firmie na dłuższą metę.

Przeczytaj także:

Droga do zostania programistą: od stażu do stanowiska kierownika zespołu przy minimalnych kosztach i maksymalnej wydajności.

Rust jako pierwszy język programowania: zalety i zalecenia dla początkujących

Jason Dookeran, programista, radzi każdemu, kto dopiero zaczyna swoją przygodę z programowaniem, aby rozważył naukę języka Rust.

„Od samego początku nauki Rusta programiści mają możliwość rozwijania odpowiednich umiejętności kodowania. W branży programistycznej istnieją standardy, które samoucy programiści często uświadamiają sobie dopiero po rozpoczęciu pracy w firmie. Ucząc się Rusta, można budować te umiejętności od samego początku.

Jason podkreśla kilka charakterystycznych cech języka Rust:

  • Rust zapewnia szczegółową dokumentację błędów: nie tylko informuje o problemie, ale także sugeruje możliwe rozwiązania.
  • Kompilator, dzięki swojemu rygorystycznemu, a zarazem przyjaznemu podejściu, nie tylko jasno Identyfikuje błędy w kodzie, ale także sugeruje możliwe rozwiązania.
  • W przeciwieństwie do C++, język Rust nie wymaga ręcznego zarządzania pamięcią, ponieważ wykorzystuje inteligentny, zautomatyzowany system zarządzania pamięcią.
  • Społeczność programistów jest bardzo aktywna i gotowa do pomocy w każdej chwili.

„Gdybym był początkującym programistą, zdecydowanie nauczyłbym się Rusta, ponieważ ten język pomaga uniknąć złych nawyków kodowania od samego początku”.

Jason Dookeran udostępnia również cenne zasoby, które mogą pomóc w opanowaniu języka Rust:

  • Strona internetowa rust-lang.org.
  • Publikacja zatytułowana „Język programowania Rust”.
  • Repozytorium na GitHubie zawierające zbiór ćwiczeń Rustlings.

Czytaj również:

Rust to nowoczesny język programowania, który zyskuje coraz większą popularność dzięki swojej niezawodności i wydajności. Został zaprojektowany z myślą o zapewnieniu bezpieczeństwa pamięci i współbieżności, co czyni go szczególnie atrakcyjnym dla programistów pracujących nad oprogramowaniem systemowym i aplikacjami o wysokiej wydajności.

Główne obszary zastosowań Rusta to tworzenie systemów operacyjnych, aplikacji internetowych i gier. Na przykład wiele firm zaczęło już używać go do budowy serwerów, co pozwala im obsługiwać duże obciążenia i zapewnia wysoką wydajność.

Popularność Rusta wynika z jego unikalnych funkcji. Przede wszystkim oferuje on silny system typów i sprawdzanie w czasie kompilacji, co pomaga uniknąć wielu typowych pułapek związanych z zarządzaniem pamięcią. Ponadto jego składnia jest intuicyjna, co ułatwia naukę i zwiększa produktywność programowania.

Warto również zauważyć, że aktywna społeczność programistów przyczynia się do rozwoju języka, tworząc wiele bibliotek i narzędzi rozszerzających jego możliwości. Dzięki temu Rust jest nie tylko potężnym narzędziem, ale także atrakcyjnym wyborem dla początkujących i doświadczonych programistów.

Hakerzy wykorzystali unikalny język programowania do oszukiwania systemów antywirusowych

Eksperci z Trustwave zidentyfikowali nowe złośliwe oprogramowanie o nazwie Pronsis Loader, które jest trudne do wykrycia ze względu na nietypową architekturę i zachowanie.

Pronsis Loader to program opracowany z wykorzystaniem JPHP, język programowania, który nie jest tak powszechnie używany. Łączy on składnię PHP z możliwościami maszyny wirtualnej Java (JVM). Ze względu na unikalną strukturę kodu, programy antywirusowe mają trudności z wykrywaniem złośliwych aplikacji napisanych w JPHP, ponieważ nie pasują one do konwencjonalnych sygnatur zagrożeń.

Co więcej, Pronsis Loader działa dwuetapowo: najpierw dyskretnie infiltruje system, a następnie pobiera dodatkowe złośliwe aplikacje. W tym pierwszym etapie Pronsis Loader może podszywać się pod aktualizację przeglądarki, a po pomyślnej infiltracji systemu instaluje ransomware.

Jeśli Pronsis Loader i podobne wirusy zaczną się szybko rozprzestrzeniać, wielu użytkowników będzie musiało poprawić swoją ochronę. Może to oznaczać konieczność przejścia na nowoczesne rozwiązania antywirusowe, które potrafią nie tylko sprawdzać podpisy cyfrowe, ale także analizować zachowanie oprogramowania.

Przeczytaj również:

Który program antywirusowy najlepiej sprawdzi się w Rosji? Przyjrzyjmy się czterem programom, które można uznać za niezawodne rozwiązania.

Smutna historia nowego logo CSS

Style CSS otrzymały zaktualizowane logo, które Został wybrany w wyniku głosowania społeczności na platformie GitHub w repozytorium projektu CSS-Next.

Nową cechą projektu logo jest użycie koloru rebeccapurple, który jest odcieniem fioletu. Kolor ten został uwzględniony w specyfikacji CSS w 2014 roku na cześć Rebekki Meyer, córki Erica Meyera, znanej postaci w społeczności CSS.

Rebecca zmarła w wieku sześciu lat na guza mózgu. Społeczność zaproponowała nazwanie koloru beccapurple, ale Meyer nalegał na opcję rebeccapurple. Jego córka uznała imię Becca za zbyt dziecinne i od szóstego roku życia chciała być nazywana Rebeccą.

„Skończyła sześć lat. Prawie w południe skończyła sześć lat. Dlatego jej imię brzmi Rebecca i pasuje do niej idealnie."

Nowe logo CSS w kolorze fioletowym, Rebecca. Obraz: CSS-Next / GitHub

Przeczytaj także:

Nauka układu: czym jest CSS

Skup się na podstawach: zalecenia od profesjonalisty programisty zamiast Reacta

Jeśli cenisz swój czas, unikaj nauki Reacta. Tak uważa Keith Sirkel, web developer z dwudziestoletnim doświadczeniem.

Pierwszy argument: Nowoczesna wersja Reacta opiera się na hookach, unikalnej technologii niespotykanej w innych kontekstach. W związku z tym Kate radzi uczyć się autentycznych języków programowania funkcyjnego, takich jak Haskell czy Elixir, zamiast zagłębiać się w pseudofunkcyjne koncepcje.

Przeczytaj także:

„Jeden programista Haskell jest wart pięciu specjalistów JavaScript”: Jakie są zalety Haskella?

Drugi czynnik jest związany z interfejsem użytkownika:

„Fani Reacta twierdzą, że to narzędzie pomoże Ci opanować nowoczesne podejście do tworzenia interfejsów użytkownika. Jednak w praktyce automatyczne podświetlanie działa sporadycznie, a niestandardowe komponenty wykazują niespójne zachowanie w różnych wersjach. To nie jest nowoczesny interfejs, a raczej relikt z 2013 roku, kiedy został wprowadzony.

Sirkel sugeruje skupienie się na nauce czystego JavaScriptu, rezygnując z używania TypeScript i React. Głównym celem jest zrozumienie podstawowych zasad i rozwinięcie umiejętności ogólnego przeznaczenia, które będą przydatne w dowolnym frameworku.

Keith zaleca naukę nowoczesnych języków programowania z silną typizacją, aby rozwinąć umiejętności ogólnego przeznaczenia w tym obszarze.

„Polecam zapoznanie się z językami takimi jak Golang, Zig lub Rust. Spróbujcie stworzyć z nimi aplikację zespołową. To ułatwi wam późniejszą naukę TypeScript. Nauka języka systemowego pomoże Ci również opanować zarządzanie pamięcią i zapewni lepsze zrozumienie wewnętrznych mechanizmów języków dynamicznych.

Keith Sirkel zaleca również zapoznanie się z różnymi specyfikacjami, takimi jak HTTP, HTML, CSS, systemy zarządzania bazami danych i technologie Wi-Fi. Wierzy, że ta wiedza pomoże Ci wyróżnić się na tle innych i zbudować solidne podstawy w tej dziedzinie.

Ważne jest również aktywne uczestnictwo w inicjatywach open source. Według Kate istnieją projekty, które oferują doskonałe możliwości nauki nowych rzeczy i nawiązywania kontaktów zawodowych:

„Jeśli zaczniesz robić którąkolwiek z tych rzeczy (lub nawet wszystkie naraz), znacznie zwiększysz swoje szanse na sukces. Nie marnuj czasu na naukę Reacta — skup się na czymś naprawdę przydatnym”.

To nasuwa ciekawe pytanie: gdyby Keith Sirkel zaczynał swoją karierę programisty i szukał pracy, czy posłuchałby własnych zaleceń? A może najpierw skupiłby się na nauce Reacta, znalazł pracę, a potem z ciekawości zagłębiłby się w inne technologie?

Przeczytaj także:

"Wkraczanie w dziedzinę informacji technologia” — łatwa, niedroga i bezproblemowa.

WordPress kontra WP Engine: walka o zasady Open Source

Matt Mullenweg, założyciel WordPressa, wniósł pozew przeciwko dostawcy hostingu WP Engine. W odpowiedzi WP Engine wniósł pozew wzajemny przeciwko Mullenwegowi i Automattic, firmie rozwijającej WordPressa.

Konflikt wynika z faktu, że WP Engine od wielu lat korzysta z marki WordPress. Matt zaproponował tej firmie uiszczenie opłaty licencyjnej lub wniesienie wkładu w projekt open source.

„Uważamy, że jeśli firma otrzymuje setki milionów dolarów z projektu open source, powinna dzielić się swoimi przychodami ze społecznością. W przeciwnym razie zaniechanie tego skutkuje utratą prawa do używania znaku towarowego”.

Ten pozew po raz kolejny zwrócił uwagę na ważny problem związany z projektami open source, o którym wspomniał Dries Buytaert, założyciel systemu zarządzania treścią Drupal.

Twórcy oprogramowania open source znajdują się w sytuacji, w której ich wysiłki są wykorzystywane dla zysku. Najczęściej dzieje się tak za sprawą tych, którzy nie wnoszą znaczącego wkładu w rozwój projektu.

Chad Whitaker, kierujący działem open source w Sentry, proponuje trzy podejścia do rozwiązania tego problemu:

  • Komercjalizacja polega na opracowaniu stabilnych modeli biznesowych ukierunkowanych na wspieranie projektów open source. Jednym ze sposobów osiągnięcia tego celu jest świadczenie płatnych usług konserwacji i wsparcia technicznego produktów.
  • Pomoc finansowa poprzez bezpośrednie inwestycje agencji rządowych i firm prywatnych. Projekty takie jak FreeBSD, PHP Foundation, OpenJS Foundation i wiele innych działają obecnie w oparciu o podobny model.
  • Mechanizm zachęt. Na przykład społeczność Drupal opracowała system kredytów, który nagradza aktywnych współtwórców. Za swoje wysiłki mogą oni otrzymać szereg korzyści, w tym reklamy na platformie Drupal, priorytetowy dostęp do aktualizacji i ekskluzywne zniżki.

Matt Mullenweg powinien przyjrzeć się praktykom innych udanych projektów open source i opracować bardziej przejrzysty system licencjonowania znaku towarowego WordPress. Na przykład Fundacja Mozilla zezwala firmom na używanie marki Firefox wyłącznie na podstawie pisemnej umowy i pod warunkiem, że ich produkt nie modyfikuje kodu źródłowego przeglądarki.

Czytaj Również:

W jakich obszarach odniosło sukces oprogramowanie Open Source, jakie są z nim problemy i dla kogo jest ono naprawdę ważne?

Pokonywanie prokrastynacji: porady ekspertów dotyczące podejmowania działań

Około 20% dorosłych regularnie odkłada realizację zadań na później i nie potrafi sobie z tym poradzić. Jeśli Ty również zmagasz się z prokrastynacją, możesz skorzystać z rad Erica Barkera, autora popularnej książki opublikowanej przez The Wall Street Journal.

Eric uważa, że ​​powodem, dla którego ludzie unikają pewnych zadań, nie są same zadania, ale emocje, które one wywołują. Kiedy praca wywołuje negatywne emocje, wzrasta nasza chęć odłożenia jej na później. Aby pokonać ten problem, należy podzielić zadanie na mniejsze elementy:

„Rozbij to zniechęcające, obszerne zadanie na serię prostych, drobnych czynności – tak łatwych, że nie będziesz czuć się komfortowo, odkładając je na później. Właśnie o to chodzi w dekompozycji: pozwala ona umysłowi wykonać pierwszy krok, który, jak wiadomo, jest najtrudniejszy”.

Kolejnym krokiem jest uwolnienie umysłu od myślenia o efekcie końcowym i skupienie się na samym procesie.

Jedno z badań wykazało, że osoby skupiające się na ćwiczeniach uznały je za mniej wymagające i przyjemniejsze. Uczestnicy odczuwali więcej radości, ponieważ nie byli skupieni na celu końcowym, takim jak wciśnięcie się w obcisłe dżinsy przed świętami.

Ostatecznie warto nawiązać kontakt z „sobą”, która czeka na Ciebie w przyszłości – tą, której obecnie stwarzasz trudności. Gdy zaczniesz zdawać sobie sprawę ze swojej odpowiedzialności wobec siebie w przyszłości, zmotywuje cię to do podjęcia kroków w teraźniejszości.

Z pewnością warto rozważyć te zalecenia, jednak sam autor zaznacza, że ​​od czasu do czasu mogą zdarzać się niepowodzenia. W takich momentach kluczowe jest uporządkowanie swoich uczuć, okazanie sobie wybaczenia i... nie zapominanie o odżywianiu?

Przeczytaj także:

Siedem metod na utrzymanie motywacji podczas nauki programowanie.

Innowacje w działaniu: asystenci AI w edytorach kodu naszych czasów

Który edytor kodu z możliwościami sztucznej inteligencji uważasz za najwybitniejszy? To pytanie zadał swoim subskrybentom Gergely Orosz, inżynier i autor biuletynu The Pragmatic Engineer Newsletter. Oto wyniki ankiety:

  • Cursor;
  • Visual Studio Code w połączeniu z GitHub Copilot.
  • JetBrains IDE w połączeniu z GitHub Copilot;
  • Windsurf Editor;
  • Zed;
  • Neovim i integracja z GitHub Copilot.
  • Supermaven;
  • Aider;
  • Cline.

Orosz zebrał łącznie 145 recenzji. Oprócz kluczowych redaktorów, w ankiecie wzięli udział również Cody z Sourcegraph, v0 z Vercel, Replit Agent, Bolt.new ze StackBlitz, Neovim z Avante, Eclipse Theia, Augment Code i Continue.dev.

Gergely podkreśla, że ​​wyniki ankiety wskazują na prawdziwą rewolucję w narzędziach do edycji kodu. W ciągu ostatniego półtora roku pojawiło się wiele nowych, zintegrowanych środowisk programistycznych i ten proces wciąż trwa. Niektóre startupy, takie jak Magic i Cognition AI, pozyskały już znaczne inwestycje i planują zaprezentować swoje rozwiązania szerszej publiczności w najbliższej przyszłości.

Trudno wyobrazić sobie dzisiejszy rozwój technologiczny bez udziału sieci neuronowych i różnych inteligentnych asystentów. Jeśli jeszcze z nich nie korzystasz, być może nadszedł czas, aby to zrobić. Daj im szansę i wypróbuj je! ✨

Przeczytaj także:

Siedem narzędzi sieci neuronowych dla programistów: jak poprawić szybkość i jakość pisania kodu.

Ciekawe i wyjątkowe zasoby internetowe, na które warto zwrócić uwagę

Jeśli studiujesz front-end development, zwróć uwagę na projekt tego roweru:

Zrzut ekranu: Codepen / Skillbox Media

Nie zrobiło to na Tobie większego wrażenia? W takim razie powinieneś odwiedzić wirtualną farmę mrówek:

Zrzut ekranu: Codepen / Skillbox Media

W zasobie draw.audio masz możliwość tworzenia muzyki za pomocą rysunków, a dokładniej, wykonywania rysunków. W każdym razie nie przegap okazji, żeby spróbować!

Zrzut ekranu: Draw.Audio / Skillbox Media

Badacze David Mora i Michelle Gia zadali pytanie: „Czy piosenki o miłości umierają?”. Przeanalizowali 5100 popularnych utworów z listy Billboard z lat 1958–2023 i doszli do wniosku, że piosenki o miłości nie zanikają, ale wręcz się zmieniają: „Ludzie zakochują się, doświadczają straty i odnajdują się na nowo z większą intensywnością niż kiedykolwiek wcześniej”. Na szczególną uwagę zasługuje wizualizacja wyników, którą gorąco polecamy.

Zrzut ekranu: pudding.cool / Skillbox Media

Podsumowując, chcielibyśmy przedstawić projekt maszyny Turinga, wykonanej z klocków Lego. Maszyna ta jest teoretycznym modelem urządzenia obliczeniowego, który ilustruje podstawowe zasady działania współczesnych systemów komputerowych. Działa jak maszyna, realizując z góry ustalony program: przesuwa się wzdłuż taśmy i wykonuje operacje odczytu i zapisu nowych symboli.

Maszyna Turinga zbudowana z 2900 klocków Lego Źródło: Lego Pomysły

Przeczytaj także:

Maszyna Turinga to koncepcja, która rodzi pytania o jej naturę: czy jest to po prostu przedmiot luksusowy, czy narzędzie do wykonywania obliczenia?

Ciekawostki na Reddicie

W subreddicie ExperiencedDevs jeden z członków podzielił się wnioskami, do których doszedł po pięciu latach kariery w IT.

„Większość organizacji znacznie niedocenia znaczenia znajomości języka angielskiego. Pracownicy często formułują swoje zadania tak niejasno, że trzeba poświęcić znaczną ilość czasu, aby zrozumieć główną ideę ich przekazu”.

Zgadzamy się całkowicie, że znajomość języka angielskiego jest ważnym atutem dla programisty. Nie powinniśmy jednak zapominać o potrzebie rozwijania innych ważnych cech – takich jak dyscyplina, inicjatywa, myślenie krytyczne, praca zespołowa i szereg innych umiejętności miękkich.

Jeden z członków tego samego subreddita podzielił się przypadkiem młodszego programisty, któremu przydzielił zadanie napisania kilku skryptów w Pythonie. W trakcie tego procesu, młody programista zdecydował się na użycie ChatGPT, co spowodowało powstanie kodu zawierającego wiele niepotrzebnych funkcji i innych problemów.

Autor wpisu został później przeniesiony do nowego projektu, a młody programista stworzył kod z błędami, który został zatwierdzony w żądaniu ściągnięcia. W rezultacie proste zadanie przerodziło się w poważny problem, wymagający od kilku programistów poświęcenia znacznej ilości czasu na jego rozwiązanie.

Oczywiście, jest to możliwe. Być może jednak ta osoba po prostu nie wie, jak poprawnie formułować zapytania.

Przeczytaj także:

Efektywne zapytania do sieci neuronowych: jak formułować monity dla ChatGPT i podobne modele

Na subreddicie LearnProgramming jeden z użytkowników zapytał, jak dołączyć do 1% najlepszych programistów na świecie. Oto otrzymane odpowiedzi:

„Wszystko sprowadza się do prostego sekretu: niezdrowego perfekcjonizmu połączonego z całkowitym lekceważeniem życia osobistego przez co najmniej dwie dekady”.

Ta rada może być pomocna, choć niesie ze sobą pewien pesymistyczny wydźwięk. Zalecamy rozważenie znalezienia mentora, który może pomóc Ci znacząco przyspieszyć Twój rozwój.

Przeczytaj także:

Mentoring w IT: jaką wiedzę możesz uzyskać od doświadczonego mentora i jak Zostań jednym

Na subreddicie Frontend odbyła się dyskusja na temat najważniejszego aspektu programowania frontendowego: doświadczenia użytkownika (UX). Jeśli użytkownik ma trudności z interakcją z aplikacją, wszystkie jej inne zalety tracą na znaczeniu.

Wyobraźmy sobie sklep internetowy o nowoczesnym designie, który działa szybko i jest zoptymalizowany pod kątem różnych urządzeń, zbudowany w React i TypeScript. Teraz wyobraźmy sobie, że ten sklep regularnie doświadcza problemów z formularzem zamówienia i z jakiegoś powodu programiści powoli je rozwiązują. W takiej sytuacji większość kupujących najprawdopodobniej będzie wolała zwrócić się do konkurencji.

Przeczytaj także:

12 dostępnych rekomendacji UX: jak zoptymalizować istniejącą rekomendację

Dowiedz się więcej fascynujących faktów na temat programowania na naszym kanale Telegram. Dołącz do nas!

Przeczytaj także:

  • Kevin Mitnick: Transformacja z najbardziej poszukiwanego hakera w wysoko wykwalifikowanego specjalistę ds. cyberbezpieczeństwa w USA.
  • Współpraca z Curl: Podstawowa składnia i polecenia klawiszowe

    Curl to potężne narzędzie wiersza poleceń, przeznaczone do wysyłania żądań do różnych zasobów internetowych. Jego główną funkcją jest wysyłanie i odbieranie danych za pośrednictwem adresu URL, co czyni go niezbędnym dla programistów i administratorów systemów. Przyjrzyjmy się podstawowym aspektom pracy z Curl, w tym składni i często używanym poleceniom.

    Najpierw przyjrzyjmy się ogólnemu formatowi polecenia Curl. Struktura jest następująca:

    «`
    curl [opcje] [URL]
    «`

    W tym przypadku `opcje` reprezentują różne parametry, które pozwalają dostosować działanie Curl, a `URL` wskazuje na adres zasobu, z którym chcesz wejść w interakcję.

    Jednym z najprostszych poleceń jest wysłanie żądania GET. Aby to zrobić, wystarczy wpisać:

    «`
    curl http://example.com
    «`

    To żądanie zwróci zawartość strony internetowej pod wskazanym adresem.

    Jeśli chcesz wysłać dane metodą POST, możesz użyć opcji `-d`. Na przykład:

    «`
    curl -d «param1=value1&param2=value2» http://example.com/resource
    «`

    To polecenie wysyła dane w treści żądania, co pozwala na przekazanie informacji do serwera.

    Dostępne są również specjalne opcje do pracy z nagłówkami. Aby dodać niestandardowy nagłówek, użyj `-H`. Na przykład:

    «`
    curl -H «Authorization: Bearer token» http://example.com/protected
    «`

    To polecenie wysyła żądanie z nagłówkiem Authorization.

    Jeśli musisz zapisać odpowiedź do pliku, możesz użyć opcji `-o`, a po niej nazwy pliku:

    «`
    curl -o output.txt http://example.com
    «`

    Ponadto Curl umożliwia wysyłanie żądań za pomocą różnych metod, takich jak DELETE i PUT. Na przykład, aby usunąć zasób, możesz użyć:

    «`
    curl -X DELETE http://example.com/resource/1
    «`

    Aby zaktualizować dane za pomocą metody PUT:

    «`
    curl -X PUT -d «param1=newvalue» http://example.com/resource/1
    «`

    W ten sposób Curl oferuje bogaty zestaw możliwości do pracy z żądaniami internetowymi. Po opanowaniu podstawowych poleceń i składni będziesz w stanie efektywnie korzystać z interfejsów API i różnych zasobów internetowych.

  • Nietypowe języki programowania: Shakespeare, Fortran, Lisp, Brainfuck i wiele innych.