JavaRush /Blog Java /Random-PL /Sprawność mózgu. Bieżące zadania doskonalenia umiejętnośc...

Sprawność mózgu. Bieżące zadania doskonalenia umiejętności programowania

Opublikowano w grupie Random-PL
Jak wiemy, programiści na co dzień muszą myśleć, analizować i czasami znajdować nieoczywiste rozwiązania różnych problemów, dużych i małych. Aby to zrobić, programiści zmuszeni są aktywnie korzystać z mózgu, który jest już niezwykle „drogą” zabawką - ludzki mózg, mający masę nie większą niż 1,5-2% masy ciała, zużywa około 25% całej energii. I to dla przeciętnego człowieka, a jaki procent energii „zużywa” mózg programisty aktywnie pracującego nad złożonym projektem, trudno sobie wyobrazić (a naukowcy, najprawdopodobniej Brytyjczycy, nie ustalili jeszcze dokładnego wskaźnika). Sprawność mózgu.  Bieżące zadania doskonalenia umiejętności programowania - 1Jaki wniosek można wyciągnąć z tego wszystkiego? Aby zostać dobrym programistą, a potem nim pozostać, trzeba napompować swój mózg, nauczyć go myśleć i znajdować rozwiązania bez nadmiernego stresu i na bieżąco. Banalne, jak wszystkie naprawdę skuteczne metody, ale skuteczne. Aby pomóc Ci utrzymać istotę szarą w Twojej czaszce w dobrej kondycji, dzisiaj przygotowaliśmy wybór dobrych zasobów z łamigłówkami i łamigłówkami dla programistów, a także przetłumaczyliśmy kilka ciekawych problemów z języka angielskiego.

Strony internetowe z zadaniami dla programistów

Prawie wszystkie zasoby w kolekcji są w języku angielskim, dzięki czemu będziesz miał okazję nie tylko poćwiczyć rozwiązywanie problemów i łamigłówek z kodowaniem, ale także zdobyć dodatkową praktykę w używaniu języka angielskiego w programowaniu. Sprawność mózgu.  Bieżące zadania doskonalenia umiejętności programowania - 2
  1. Koderbyte

    Jeden z najpopularniejszych anglojęzycznych zasobów z zadaniami dla programistów. Można na nim znaleźć ponad 200 zadań o różnym stopniu złożoności, które można rozwiązać bezpośrednio na stronie online, korzystając z jednego z 10 dostępnych języków programowania (w tym Java).

  2. Praktyka programowania

    Programming Praxis to popularny blog, na którym regularnie publikowane są różne ciekawe i co najważniejsze istotne zadania dla programistów. Wspólne dla wielu języków programowania. Wyzwania mają na celu pomóc programistom nadążać za najnowszymi zmianami w technologii i podejściu do programowania w praktyce.

  3. TopCoder

    TopCoder to aktywna społeczność programistów, którzy uwielbiają się rozwijać i rozwiązywać różne problemy. Regularnie publikowane są nowe zadania, których pomyślne rozwiązanie pozwoli nie tylko przećwiczyć i zwiększyć swój HR, ale także otrzymać nagrody pieniężne.

  4. KodKata

    CodeKata to blog z wieloma dość oryginalnymi i dowcipnymi problemami dla programistów, wymyślony przez Dave'a Thomasa, jednego z autorów słynnej książki Pragmatic Programmer („Pragmatic Programmer. Droga od ucznia do mistrza”). Problemy na stronie CodeKata są różnorodne, a rozwiązania odpowiadają rzeczywistej pracy programistycznej.

  5. Sędzia Uniwersytetu Pekińskiego online dla ACIP/ICPC

    Peking University JudgeOnline dla ACIP/ICPC to strona Uniwersytetu Pekińskiego zawierająca zadania dla programistów z różnych konkursów i konkursów. Strona jest regularnie aktualizowana, problemy można rozwiązywać w czasie rzeczywistym, a rozwiązania ocenia komisja złożona z ekspertów Uniwersytetu w Pekinie.

  6. Projekt Eulera

    Kolejna stara, znana strona z poważnymi i nietrywialnymi zadaniami. „Projekt Euler to zbiór złożonych problemów matematycznych i programistycznych, których rozwiązanie wymaga czegoś więcej niż tylko znajomości matematyki. Problemy różnią się stopniem złożoności, a podejście opiera się na indukcyjnym uczeniu łańcuchowym. Oznacza to, że po rozwiązaniu jednego problemu odkryjesz nową koncepcję, która pozwoli ci rozwiązać inne problemy, które wcześniej były niedostępne do zrozumienia” – mówią twórcy zasobu.

  7. Codzienne WTF

    Daily WTF to kolejna popularna społeczność programistów działająca na zasadzie Bring Your Own Code (BYOC), co oznacza, że ​​programiści dzielą się własnym kodem źródłowym w celu rozwiązywania różnych oryginalnych problemów. „Cel BYOC jest prosty: zapewnić programistom możliwość doskonalenia umiejętności programowania poprzez rozwiązanie problemu, który jest nieco bardziej interesujący niż zwykłe, nudne rzeczy” – czytamy na stronie.

  8. Tproger

    Doskonała rosyjskojęzyczna strona z zadaniami algorytmicznymi, które służą do testowania umiejętności specjalistów podczas rozmów technicznych w firmach takich jak Google, Facebook i inne. Zaprezentowano wiele problemów, w tym także oryginalnych, o różnym stopniu trudności.

  9. Konkursy programistyczne Ala Zimmermanna

    Strona znanego autora, na której „szaleni programiści rywalizują o sławę i fajne nagrody”. Konkursy odbywają się raz lub dwa razy w roku, a nazwiska wybitnych programistów publikowane są na stronie głównej zasobu, co z pewnością cieszy się zainteresowaniem obiecujących pracodawców.

  10. Sędzia internetowy Timus

    Jedno z największych rosyjskojęzycznych archiwów problemów programistycznych z systemem automatycznego sprawdzania. Głównym źródłem zadań archiwum są konkursy na Uralskim Uniwersytecie Federalnym, Mistrzostwa Uralu i inne regionalne wydarzenia programowe. Timus Online Judge umożliwia także wzięcie udziału w internetowych wersjach większości konkursów, które regularnie odbywają się na Uralskim Uniwersytecie Federalnym.

5 ciekawych zadań

Oto kilka ciekawych łamigłówek dla tych, którzy nie mogą się doczekać, aby zacząć. Sprawność mózgu.  Bieżące zadania doskonalenia umiejętności programowania - 3
  1. Zagadka Blendera od Steve’a Jobsa

    Wyzwanie: Zmniejszasz się do wielkości pięciocentówki i wrzucasz do blendera. Twoja waga spadła, a gęstość ciała pozostaje taka sama. Ostrza zaczną się obracać po 60 sekundach. Twoje działania?

    To klasyczne zadanie kojarzone zwykle ze Stevem Jobsem, założycielem Apple. Kiedy Jobs wrócił do Apple w 1997 r., osobiście przeprowadził rozmowy z każdym pracownikiem firmy i potraktował to zadanie jako jeden ze swoich pierwszych testów.

    Rozwiązanie:

    У данной задачи больше одного решения, так Jak она служит для того, чтобы оценить креативность сотрудника, умение быстро находить выход из стрессовой ситуации и неординарно мыслить. Вот наиболее классический вариант решения: лечь Jak можно плотнее к днищу блендера, чтобы его лезвия крутLubсь над вами.

  2. Сколько людей было на конференции?

    Задача: На конференции каждый гость пожал руку всем остальным. Было 66 рукопожатий. Сколько человек было на научной конференции?

    Другая классическая программистская задача из тех, которые часто дают на первых этапах технических собеседований.

    Классическое решение:

    Допустим, на конференции было n человек. Первый человек пожимает руку всем остальным: n-1 раз (n-1 человек). Второй человек пожимает руку всем остальным (но не первому, так Jak это уже было сделано): n-2 раза. 3-й человек пожимает руку всем остальным: n-3.

    Таким образом, общее количество рукопожатий будет = (n-1) + (n-2) + (n-3) + …… 0;
    = (n-1) * (n-1 + 1) / 2 = (n-1) * n / 2 = 66
    = n ^ 2 -n = 132
    = (n-12) (n + 11) = 0;
    = n = 12 ИЛИ n = -11

    Вариант -11 исключен, поэтому ответ: 12 человек.

  3. Бар и 25 стульев.

    Еще одна классическая и весьма остроумная задачка, на этот раз посложнее.

    Задача: Есть бар с 25-ю стульями, которые расположены в линию. Посетители этого бара — антисоциальные личности, поэтому, когда они заходят в бар, то всегда стараются найти место Jak можно дальше от остальных. Если постоянный посетитель заходит в бар и обнаруживает, что свободного места без соседства с кем-либо нет, он разворачивается и уходит. Владелец бара, естественно, хочет видеть можно больше посетителей. Владелец может указать место, на которое нужно сесть, только первому клиенту, тогда Jak все остальные сами выберут себе самое дальнее место от других. Предположим, что места пронумерованы от 1 до 25. Какое место должно быть занято первым?

    Решение:

    Первый человек должен сесть на стул 9 Lub 17 (из-за симметрии, не имеет значения, Jakое именно из двух мест). Предположим, он выбирает место 9. Следующий человек выберет место 25, так Jak оно самое дальнее от места 9. Следующие два человека займут места 1 и 17. Следующие три займут 5, 13 и 21. Следующие шесть будут занимать стулья 3, 7, 11, 15, 19 и 23. Таким образом, в баре разместится максимум 13 человек, и никто не будет сидеть рядом с другим человеком. Если место, отличное от 9 Lub 17, будет выбрано первым, общее количество посетителей бара будет меньше 13.

  4. Деньги в карманах и религия.

    Интересно составленная задача на нахождение алгоритма.

    Problem: Mężczyzna ma w kieszeni pieniądze, których łączna suma wynosi od 90 do 95 dolarów. Po drodze odwiedza kilka świątyń. Gdy tylko wejdzie do świątyni, jego pieniądze podwajają się i ostatecznie przekazuje 100 dolarów na rzecz każdej świątyni. W efekcie po odwiedzeniu ostatniej świątyni jego kieszeń staje się pusta. Teraz pytanie: ile początkowo miał pieniędzy i ile świątyń odwiedził?

    Rozwiązanie:

    Liczenie zaczynamy od ostatniej świątyni:

    Po odwiedzeniu ostatniej świątyni (1) zostało mu 0 pieniędzy, więc => (0 + 100) / 2 = 50. Przed odwiedzeniem ostatniej świątyni miał 50 dolarów

    Przed wizytą w poprzedniej świątyni (2) miał (50 + 100) / 2 = 75.
    Przed wizytą w poprzedniej świątyni (3) miał (75 + 100) / 2 = 87,5.
    Przed wizytą w poprzedniej świątyni (4) miał (87,5 + 100) / 2 = 93,75.
    Przed odwiedzeniem poprzedniej świątyni (5) ma (93,75 + 100) / 2 = 96,875 - kwota przekracza warunki początkowe.
    Odpowiedź: Ta osoba pierwotnie miała 93,75 dolara i odwiedziła 4 świątynie.

  5. Incydent na polu.

    I na koniec jeszcze jeden, stary klasyk, można nawet powiedzieć, że akordeonowy, problem logicznego myślenia.

    Problem: Znaleziono martwego mężczyznę na polu pszenicy. Trzymał mocno zapałkę w dłoniach. Dlaczego dana osoba zmarła?

    Rozwiązanie:

    Mężczyzna leciał samolotem z trzema współpasażerami. Silnik zgasł i samolot zaczął spadać. Mężczyźni odkryli, że na czterech z nich były tylko trzy spadochrony i zaczęli ciągnąć zapałki. Jeden z nich pociągnął za krótki i zmuszony był skoczyć bez spadochronu.

Epilog

Cóż, dla tych, którzy uważają te problemy za zbyt proste lub zbyt ogólne, mamy bardziej złożone problemy z Javą , w tym trudne problemy , które często pojawiają się podczas rozmów kwalifikacyjnych dla programistów Java. Jeśli znasz ciekawe łamigłówki dla programistów lub chcesz podzielić się swoim ulubionym zadaniem, napisz w komentarzach.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION