OOP — Object Oriented Programming, czyli programowanie obiektowe — Modelowanie dziedziny

przez Karol Bocian | 17 marca, 2020

Programowanie obiektowe warto jest rozpocząć od przeanalizowania problemu i zaprojektowania rozwiązania. Bardzo pomocnym krokiem (szczególnie w utrzymaniu wysokiej jakości oprogramowania) jest modelowanie dziedziny.

Pojęcia:

Programowanie obiektowe — technika tworzenia programów komputerowych wykorzystująca klasy i obiekty, które komunikują się ze sobą i nawzajem wywołują swoje metody.

Obiekty — elementy oprogramowania łączące stan (dane) i zachowania (metody).

Analiza — badanie problemu.

Analiza obiektowa — badanie i klasyfikacja obiektów pojęciowych w problemie.

Projektowanie — tworzenie koncepcyjnego rozwiązania.

Projektowanie obiektowe — tworzenie koncepcyjnego rozwiązania bazującego na obiektach, ich odpowiedzialnościach, komunikacji między nimi, relacjach i zależnościach.

Wzorce projektowe — powszechne rozwiązania typowych problemów.

Model dziedziny — odzwierciedlenie części świata rzeczywistego oraz ich zależności.

Sprzężenie — miara jak bardzo obiekty zależą od siebie nawzajem.

Spójność — miara jak bardzo metody danej klasy powiązane są ze sobą funkcjonalnie.

Obiektowe modelowanie dziedziny zawiera:

  • Klasy pojęciowe — obiekt występujący w modelowanej dziedzinie. Mogą odpowiadać rzeczownikom z opisu świata. Podczas modelowania należy myśleć o rzeczywistym świecie, a nie artefaktach programowych (np. bazie danych).
  • Powiązania — są to zależności między klasami. Mogą odpowiadać czasownikom z opisu świata. Zależności między klasami określają zdania, np. Jan (klasa Osoba) mieszka pod adresem (klasa Adres).
  • Liczebność — atrybut powiązania. Określa liczbę egzemplarzy klasy A powiązanej z jednym egzemplarzem klasy B.
  • Atrybuty- opisy egzemplarzy klas pojęciowych. Problemy:
    • Atrybut (pole klasy) może być inną klasą (np. w Osobie możemy dać pola Ulica, Nr domu, a możemy dać klasę Adres, które będą zwierały te pola) lub atrybutem innej klasy (np. numer jest atrybutem Miejsca, a nie Biletu).
    • Atrybuty są wartościami typów podstawowych (w innym przypadku są to klasy pojęciowe).

Porządek obiektowego modelowania dziedziny:

  1. Klasyfikacja obiektów.
  2. Rozważanie związków między klasami.
  3. Klasyfikacja atrybutów klas.

Warto dbać o wysoką spójność klas oraz nie należy bać się tworzenia klas pomocniczych.

Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

    Źródła

    Obraz główny

    Materiały

    Zawartosc skladajaca sie z internetowego edytora HTML. Wpisz kod licencji, aby zatrzymac dodawanie podobnych reklam do edytowanych dokumentów.

    OOP — Myślenie obiektowe

    przez Karol Bocian | 1 marca, 2020

    Porady:

    • Poznaj zasady SOLID i staraj się jak najbardziej przestrzegać.
    • Myśl o klasie jak o fizycznym obiekcie: co on może zrobić, kto może coś robić z jego danymi, czego robić on nie powinien.
    • Zastanawiaj się, jak obiekty mogą się ze sobą komunikować.
    • Opieraj zależności między obiektami na abstrakcji.
    • Pamiętaj, że klasy powinny być hermetyczne.
    • Klasy i metody nie powinny robić zbyt wiele — duże klasy i metody trudno jest zrozumieć i testować.
    • Klasa sama powinna manipulować swoimi danymi. Nie powinniśmy zwracać danych innej klasie, aby ona je podmieniła.
    • Wyciągaj wspólne części kodu do klas wyspecjalizowanych. Zmniejsza to możliwość wystąpienia błędu w przyszłości oraz pozwala ponownie wykorzystać kod.
    • Pisz ładny, czytelny i czysty kod. Im mniej zagnieżdżeń w kodzie, tym lepiej.
    • Nie nadużywaj dziedziczenia. Zazwyczaj lepszym rozwiązaniem jest kompozycja.

    Sposób na poprawienie wiedzy, jak lepiej programować obiektowo:

    Książka do przeczytania: Myślenie obiektowe w programowaniu — Matt Weiffeld.

    Sposób na ćwiczenie:

    Zamiana programu napisanego w paradygmacie strukturalnym na obiektowy.

    Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

      Źródła

      Obraz główny

      Materiały

      OOP — Object Oriented Programming, czyli programowanie obiektowe

      przez Karol Bocian | 18 lutego, 2020

      Programowanie obiektowe

      Sposób tworzenia oprogramowania wykorzystujący obiekty — elementy scalające dane i funkcje. Program składa się z obiektów komunikujących się ze sobą i realizujących różne zadania. Jest to naturalny dla człowieka sposób modelowania rzeczywistości. Zaletą programowania obiektowego jest łatwość pisania oprogramowania, modyfikowania, utrzymywania, rozwijania oraz ponownego używania już raz napisanego kodu.

      Cechy programowana obiektowego

      Klasy

      Klasy to szablony obiektów. Zawierają dane (charakterystyki) oraz procedury (metody — działania do wykonywania). Na przykład: klasą jest Koło, który zawiera pole: promień oraz metodę PodajPolePowierzchni (wraz z implementacją obliczania pola).

      Obiekty

      Obiekty to konkretne instancje klas. Na przykład: obiektem będzie użycie klasy Koło o promieniu 3 cm.

      Podstawowe założenia programowania obiektowego

      Hermetyzacja

      Hermetyzacja polega na ukryciu szczegółów implementacji. Obiekty przedstawiają publiczny interfejs, który mogą wywoływać inne obiekty. Obiekt może zmieniać tylko swój stan. Nikt inny nie może tego robić.

      Dziedziczenie

      Mechanizm dający możliwość tworzenia wyspecjalizowanych obiektów na podstawie obiektów ogólniejszych. Pozwala to współdzielić funkcjonalności. Obiekt wyspecjalizowany może wykorzystywać część definicji obiektu ogólniejszego i rozszerzać go lub zmieniać.

      Polimorfizm

      Mechanizm umożliwiający traktowanie różnych obiektów w jeden sposób dziedziczących tę samą klasę.

      Abstrakcja

      Obiekty są modelami abstrakcyjnych bytów, które wykonują powierzone im zadania bez zdradzania, jak te działania są realizowane. Przedstawiają one uproszczenie danego zagadnienia.

      Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

        Źródła

        Obraz główny

        Materiały

        Ćwiczenia z SOLID — Kata

        przez Karol Bocian | 15 lutego, 2020

        Dzisiaj będę ćwiczył zasady SOLID poprzez robienie Kata. Wybrałem bardzo popularną formę kata: Kalkulator napisów. Czym jest kata?

        Kata

        Kata to podstawowy ruch. Jest to japońskie słowo, które oznacza konkretne sekwencje ruchów (walki). Ich regularne powtarzanie pozwala ćwiczyć się do perfekcji w danej technice. W programowaniu pod hasłem Kata określa się zbiór konkretnych czynności stosowanych do ćwiczenia się w programowaniu. Jedno kata polega na zaprogramowaniu i rozwiązaniu danego problemu, np. ćwicząc przy tym TDD. Sekwencja wygląda następująco:

        1. Czytamy polecenie (wymaganie biznesowe).
        2. Piszemy test, który ma sprawdzić nasz kod, czy wykonał dobrze polecenie (Testowanie poprawności rozwiązania).
        3. Piszemy kod, spełnia nasze testy (rozwiązanie).
        4. Poprawiamy nasz kod (refaktoryzacja).

        SOLID — przypomnienie

        Przypomnijmy sobie jeszcze raz wszystkie zasady SOLID. Następnie przedstawię Ci sposoby, jak ćwiczyć zasady SOLID.

        Single responsibility principle — Zasada jednej odpowiedzialności

        Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia.

        Open/closed principle — Zasada otwarte-zamknięte

        Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.

        Liskov substitution principle — Zasada podstawienia Liskov

        Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną.

        Interface segregation principle — Zasada segregacji interfejsów

        Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.

        Dependency inversion principle — Zasada odwróconej zależności

        Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji.

        Ćwiczenia

        W dzisiejszym ćwiczeniach wykorzystam to kata: https://osherove.com/tdd-kata-1/. Ćwiczenia wykonywałem w VisualStudio 2019, a testy jednostkowe pisałem używając biblioteki Microsoft.VisualStudio.TestTools.UnitTesting oraz uruchamiałem je skrótem: Ctrl+ R, A.

        Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

          Źródła

          Obraz główny

          Materiały

          Podsumowanie połowy projektu: Poznaj zasady SOLID i OOP

          przez Karol Bocian | 13 stycznia, 2024

          Za mną pierwsza połowa mojego 30-dniowego mini projektu: Poznaj Zasady SOLID i OOP. Idzie dobrze, wszystkie zadania, które miałem do dzisiaj zrobić, zostały wykonane. Jednego dnia nie udało mi się popracować nad tym projektem, ale na szczęście kolejnego dnia mogłem to nadrobić.

          W ramach tego projektu:

          1. Odświeżyłem sobie zasady SOLID.
          2. Przećwiczyłem zasady SOLID w praktyce (programując).
          3. Napisałem posty z zadami solid, moimi praktycznymi przykładami (kilka również przetłumaczyłem na angielski).
          4. Zrobiłem kurs e-mailowy: Poznaj zasady SOLID i OOP i sukcesywnie dodaję do niego kolejne lekcje.

          Tutaj możesz zapisać się na kurs:

          Przede mną jeszcze trochę pracy związanej z tym projektem: przede wszystkim odświeżenie zasad OOP. Stan projektu wygląda następująco (poprawiłem Excela, w którym zarządzam takim projektem, jeżeli będziecie chcieli, podzielę się nim z Wami). Zrobiłem 41 zadań i zostało mi jeszcze 45 zadań do zrobienia.

          Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

            Źródła

            Obraz główny

            Ćwiczenia z SOLID

            przez Karol Bocian | 13 lutego, 2020

            ćwiczenia SOLID

            SOLID

            Zasady SOLID są podstawowymi dobrymi praktykami w programowaniu obiektowym. Warto jest nie tylko znać zasady SOLID, ale również je ćwiczyć. Przypomnijmy sobie jeszcze raz wszystkie zasady SOLID. Następnie przedstawię Ci sposoby, jak ćwiczyć zasady SOLID.

            Single responsibility principle – Zasada jednej odpowiedzialności

            Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia.

            Open/closed principle – Zasada otwarte-zamknięte

            Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.

            Liskov substitution principle – Zasada podstawienia Liskov

            Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną.

            Interface segregation principle – Zasada segregacji interfejsów

            Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.

            Dependency inversion principle – Zasada odwróconej zależności

            Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji.

            Ćwiczenia zasady SOLID

            1. Programuj zwracając uwagę na zasady
            2. Czytaj zasady
            3. Czytaj kod innych osób w kontekście zasad
            4. Obserwuj, jak zmienia się Twoje oprogramowanie i czy zasady SOLID ułatwiłyby jego rozwój czy odwrotnie.
            5. Czytaj kod napisany w celu zaprezentowania zasad.
            6. Dawaj swój kod do review (sprawdzenia) innej osobie i poproś, aby wzięła pod uwagę zasady.

            Odwiedź strony z ćwiczeniami zasad SOLID

            Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

              Źródła

              Obraz główny

              Materiały

              CI jak Ćwiczenia Dependency Inversion Principle, czyli Zasada odwrócenia zależności

              przez Karol Bocian | 12 lutego, 2020

              Dependency inversion principle — Zasada odwróconej zależności

              Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji.

              Jak wykorzystywać w praktyce DIP?

              Twórzmy dużo abstrakcyjnych bytów. Każda klasa niech implementuje interfejs lub dziedziczy po klasie abstrakcyjnej. Tworząc oprogramowanie, możemy najpierw stworzyć tylko interfejsy, a dopiero później je zaimplementować.

              Pomocne w spełnieniu tej zasady jest przestrzeganie tych reguł:

              • Każda zmienna w klasie jest referencja do abstrakcji.
              • Wszystkie klasy dziedziczą po abstrakcji.
              • Żadna klasy potomna nie przesłania metod z klasy bazowej.
              • Ustawianie zmiennych realizowane jest przez wzorzec fabryki lub wstrzykiwania zależności.

              Przykład

              Poniżej mamy klasę pokazującą raport. Dane do raportu brane są za bazy danych. Implementacja wygląda następująco:

              class Program
                 {
                     static void Main(string[] args)
                     {
               
                         var reportImporter = new ReportDatabaseImporter();
                         var reportPresenter = new ReportPresenter(reportImporter);
                         reportPresenter.ShowReport();
                     }
                 }
               
                 internal class ReportPresenter
                 {
               
                     private readonly ReportDatabaseImporter importer;
               
               
                     public ReportPresenter(ReportDatabaseImporter importer)
                     {
                         this.importer = importer;
                     }
               
                     public void ShowReport()
                     {
                         Console.WriteLine(importer.GetReportData());
                     }
                 }
               
               
               
                 internal class ReportDatabaseImporter
               
                 {
                     public string GetReportData()
               
                     {
                         return "Report from Database";
                     }
                 }

              Po jakimś czasie dostaliśmy prośbę o wyświetlanie danych również z pliku Excel w taki sam sposób. Niestety, nie jesteśmy w stanie zrobić tego łatwo. Musimy zmienić klasę prezentującą raport. Takie rozwiązanie pozwala nam dodawać łatwiej kolejne źródła raportu:

              using System;
               
              namespace SRP.Bad
              {
                  class Program
                  {
                      static void Main(string[] args)
                      {
                          var reportImporter = new ReportDatabaseImporter();
                          var reportPresenter = new ReportPresenter(reportImporter);
                          reportPresenter.ShowReport();
               
               
               
                          var reportImporter2 = new ReportExcelImporter();
                          var reportPresenter2 = new ReportPresenter(reportImporter2);
                          reportPresenter2.ShowReport();
                      }
                  }
               
                  internal class ReportPresenter : IReportPresenter
                  {
                      private readonly IReportImporter importer;
               
                      public ReportPresenter(IReportImporter importer)
                      {
                          this.importer = importer;
                      }
                      public void ShowReport()
                      {
                          var reportData = importer.GetReportData();
                          Console.WriteLine(reportData.GetContent());
                      }
                  }
               
                  internal class ReportDatabaseImporter : IReportImporter
                  {
                      public IReportData GetReportData()
                      {
                          return new ReportData("Report from Database");
                      }
                  }
                  internal class ReportExcelImporter : IReportImporter
                  {
                      public IReportData GetReportData()
                      {
                          return new ReportData("Report from Excel");
                      }
                  }
                  internal class ReportData : IReportData
                  {
                      private readonly string content;
               
                      public ReportData(string content)
                      {
                          this.content = content;
                      }
                      public string GetContent()
                      {
                          return content;
                      }
                  }
                  internal interface IReportData
                  {
                      string GetContent();
                  }
                  internal interface IReportImporter
                  {
                      IReportData GetReportData();
                  }
               
                  internal interface IReportPresenter
                  {
                      void ShowReport();
                  }
              }
              

              Mamy tutaj dużą liczbę interfejsów. Ułatwiają one jednak rozwój aplikacji oraz testowanie. W testach będziemy mogli pod interfejs podstawić mocka.

              Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                Źródła

                Obraz główny

                Materiały

                CI jak Ćwiczenia Interface segregation principle, czyli Zasady segregacji interfejsów

                przez Karol Bocian | 11 lutego, 2020

                Interface segregation principle – Zasada segregacji interfejsów

                Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.

                Jak wykorzystywać w praktyce ISP?

                Należy rozdzielać interfejsy na mniejsze i przyłożyć się do projektowania abstrakcyjnych elementów w aplikacji. Za granicę podziału najlepiej wybierać jest miejsce, które pozwala wydzielić obszary zgodne z zasadą pojedynczej odpowiedzialności. Każdy obszar powinien mieć jeden powód do zmiany. Powinien zmniejszać zależności i zwiększać spójność. Interfejsy powinny zawierać taki zbiór metod, aby klasy je implementujące nie musiały implementować metod, których nie chcą implementować.

                Przykład

                class Program
                  {
                      static void Main(string[] args)
                      {
                          IDataImporter reportImporter = new ReportImporter();
                          Console.WriteLine(reportImporter.GetDataFromPdf());
                          Console.WriteLine(reportImporter.GetDataFromExcel());
                 
                          IDataImporter pictureImporter = new TableImporter();
                          Console.WriteLine(pictureImporter.GetDataFromPdf());
                          Console.WriteLine(pictureImporter.GetDataFromExcel());
                      }
                  }
                 
                  internal class TableImporter : IDataImporter
                  {
                      public string GetDataFromExcel()
                      {
                          return "Table from Excel";
                      }
                 
                      public string GetDataFromPdf()
                      {
                          //We do not return a table from pdf file
                          return string.Empty;
                      }
                  }
                 
                  internal class ReportImporter : IDataImporter
                  {
                      public string GetDataFromExcel()
                      {
                          return "Report from Excel";
                      }
                 
                      public string GetDataFromPdf()
                      {
                          return "Report from Pdf";
                      }
                  }
                 
                  internal interface IDataImporter
                  {
                      string GetDataFromExcel();
                      string GetDataFromPdf();
                  }

                Klasa TableImporter implementuje metodę, z której w ogóle nie korzysta. Lepiej jest oddzielić interfejs DataImporter na mniejsze interfejsy. Wtedy wszystkie klasy będą implementowały tylko to, co chcą.

                class Program
                {
                    static void Main(string[] args)
                    {
                        var reportImporter = new ReportImporter();
                        Console.WriteLine(reportImporter.GetDataFromPdf());
                        Console.WriteLine(reportImporter.GetDataFromExcel());
                 
                        IExcelParser pictureImporter = new TableImporter();
                        Console.WriteLine(pictureImporter.GetDataFromExcel());
                    }
                }
                 
                internal class TableImporter : IExcelParser
                {
                    public string GetDataFromExcel()
                    {
                        return "Table from Excel";
                    }
                }
                 
                internal class ReportImporter : IExcelParser, IPdfParser
                {
                    public string GetDataFromExcel()
                    {
                        return "Report from Excel";
                    }
                 
                    public string GetDataFromPdf()
                    {
                        return "Report from Pdf";
                    }
                }
                internal interface IExcelParser
                {
                    string GetDataFromExcel();
                }
                internal interface IPdfParser
                {
                    string GetDataFromPdf();
                }

                Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                  Źródła

                  Obraz główny

                  Materiały

                  CL jak Ćwiczenia Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov

                  przez Karol Bocian | 10 lutego, 2020

                  Liskov substitution principle – Zasada podstawienia Liskov

                  Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną.

                  Jak wykorzystywać w praktyce LSP?

                  Należy dobrze zastanowić się przed skorzystaniem z dziedziczenia. Zazwyczaj lepszą opcją jest użycie kompozycji. Warto jest również zrobić proste eksperymenty: próbować podstawić w klasach korzystających z naszego drzewa klas, wszystkie klasy potomne oraz klasę bazową i zobaczyć, czy nadal program zachowuje się odpowiednio, czy może jednak oczekuje tylko jednego konkretnego rodzaju klasy.

                  Przykład

                  Rozważmy takie zadanie:

                  Mamy napisać aplikację, który wyświetla obraz z kamery video. Do naszej aplikacji możemy podłączyć wiele kamer. Nie wszystkie z nich potrafimy obsłużyć. Na szczęście wiemy to już na początku. Tworzymy klasę bazową Camera oraz klasy dziedziczące po kamerze, w tym również klasę dla kamery nieobsługiwanej.

                  class Program
                     {
                         static void Main(string[] args)
                         {
                             var cameras = new List<Camera>();
                             var cameraNC1 = new CameraNC1("Front camera");
                             cameras.Add(cameraNC1);
                             var cameraShower = new CameraShower(cameraNC1);
                             cameraShower.Show();
                   
                   
                             var cameraNC2 = new CameraNC2("Back camera");
                             cameras.Add(cameraNC2);
                             cameraShower = new CameraShower(cameraNC2);
                             cameraShower.Show();
                   
                             var unsupportedCamera = new UnsupportedCamera(null);
                             cameras.Add(unsupportedCamera);
                             cameraShower = new CameraShower(unsupportedCamera);
                             cameraShower.Show();
                         }
                     }
                   
                     internal class CameraShower
                     {
                         private Camera camera;
                   
                         public CameraShower(Camera camera)
                         {
                             this.camera = camera;
                         }
                   
                         internal void Show()
                         {
                             if (!(camera is UnsupportedCamera))
                                 Console.WriteLine($"Camera name: {camera.GetName()}");
                         }
                     }
                   
                     internal class CameraNC2 : Camera
                     {
                         public CameraNC2(string name) : base(name)
                         {
                         }
                     }
                     internal class CameraNC1 : Camera
                     {
                         public CameraNC1(string name) : base(name)
                         {
                         }
                   
                     }
                     internal class UnsupportedCamera : Camera
                     {
                         public UnsupportedCamera(string name) : base(name)
                         {
                         }
                   
                         internal override string GetName()
                         {
                             throw new Exception("This camera does not have name. It is not supported.");
                         }
                     }
                   
                     internal abstract class Camera
                     {
                         protected readonly string name;
                   
                         public Camera(string name)
                         {
                             this.name = name;
                         }
                         internal virtual string GetName()
                         {
                             return name;
                         }
                     }

                  Wszystko pięknie działa. Ale musieliśmy kamerę niewspieraną specjalnie obsłużyć. Jeżeli byśmy tego nie zrobili, dostalibyśmy wyjątek. Możemy trochę inaczej zaimplementować metodę GetName w klasie dla kamery niewspieranej:

                  class Program
                  {
                      static void Main(string[] args)
                      {
                          var cameras = new List<Camera>();
                          var cameraNC1 = new CameraNC1("Front camera");
                          cameras.Add(cameraNC1);
                          var cameraShower = new CameraShower(cameraNC1);
                          cameraShower.Show();
                   
                   
                          var cameraNC2 = new CameraNC2("Back camera");
                          cameras.Add(cameraNC2);
                          cameraShower = new CameraShower(cameraNC2);
                          cameraShower.Show();
                   
                          var unsupportedCamera = new UnsupportedCamera();
                          cameras.Add(unsupportedCamera);
                          cameraShower = new CameraShower(unsupportedCamera);
                          cameraShower.Show();
                      }
                  }
                   
                  internal class CameraShower
                  {
                      private Camera camera;
                   
                      public CameraShower(Camera camera)
                      {
                          this.camera = camera;
                      }
                   
                      internal void Show()
                      {
                          Console.WriteLine($"Camera name: {camera.GetName()}");
                      }
                  }
                   
                  internal class CameraNC2 : Camera
                  {
                      public CameraNC2(string name) : base(name)
                      {
                      }
                  }
                  internal class CameraNC1 : Camera
                  {
                      public CameraNC1(string name) : base(name)
                      {
                      }
                   
                  }
                  internal class UnsupportedCamera : Camera
                  {
                      public UnsupportedCamera() : base("Unknown - this camera is not supported")
                      {
                      }
                  }
                   
                  internal abstract class Camera
                  {
                      protected readonly string name;
                   
                      public Camera(string name)
                      {
                          this.name = name;
                      }
                      internal virtual string GetName()
                      {
                          return name;
                      }
                  }

                  Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                    Źródła

                    Obraz główny

                    Materiały

                    CO jak Ćwiczenia Open/closed principle, czyli Zasada otwarte-zamknięte

                    przez Karol Bocian | 10 lutego, 2020

                    Open/closed principle – Zasada otwarte-zamknięte

                    Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.

                    Jak wykorzystywać w praktyce OCP?

                    Warto jest stosować interfejsy oraz operować na abstrakcji, a nie uzależniać się od szczegółów implementacyjnych.

                    Trudności związane z OCP

                    Ciężko jest czasami zdecydować, co jest szczegółem implementacyjnym oraz w którą stronę będzie rozszerzała się nasza aplikacja.

                    Przykład

                    Ćwiczenia tej metody wykonałem na bardzo prostym przykładzie. Mamy kalkulator, który ma za zadanie obliczyć powierzchnię figur. W pierwszej wersji używa on switcha, do rozpoznania, jaka jest to klasa.

                    class AreaCalculator
                     {
                         private readonly List<object> figures;
                         public AreaCalculator(List<object> figures)
                         {
                             this.figures = figures;
                         }
                         public double Calculate()
                         {
                             double area = 0;
                             foreach (var figure in figures)
                             {
                                 switch (figure)
                                 {
                                     case Square square:
                                         area += square.GetWidth() * square.GetWidth();
                                         break;
                                     case Rectangle rectangle:
                                         area += rectangle.GetWidth() * rectangle.Getheight();
                                         break;
                                     case Circle circle:
                                         area += Math.PI * Math.Pow(circle.GetRadius(), 2);
                                         break;
                                     default:
                                         area += area;
                                         break;
                                 }
                             }
                             return area;
                         }
                     }
                     
                     class Square
                     {
                         private readonly double width;
                         public Square(double width)
                         {
                             this.width = width;
                         }
                         internal double GetWidth()
                         {
                             return width;
                         }
                     }
                     class Rectangle
                     {
                         private readonly double width;
                         private readonly double height;
                     
                         public Rectangle(double width, double height)
                         {
                             this.width = width;
                             this.height = height;
                         }
                         internal double GetWidth()
                         {
                             return width;
                         }
                         internal double Getheight()
                         {
                             return height;
                         }
                     }
                     class Circle
                     {
                         private readonly double radius;
                         public Circle(double radius)
                         {
                             this.radius = radius;
                         }
                         internal double GetRadius()
                         {
                             return radius;
                         }
                     }
                     class Program
                     {
                         static void Main(string[] args)
                         {
                             List<object> figures = new List<object>()
                             {
                                 new Square(5),
                     
                             };
                             AreaCalculator areaCalculator = new AreaCalculator(figures);
                     
                             Debug.Assert(areaCalculator.Calculate() == 25);
                     
                             List<object> figures2 = new List<object>()
                             {
                                 new Square(5),
                                 new Rectangle(5,3),
                     
                             };
                             Debug.Assert(new AreaCalculator(figures2).Calculate() == (25 + 15));
                             List<object> figures3 = new List<object>()
                             {
                                 new Square(5),
                                 new Rectangle(5,3),
                                 new Circle(5),
                     
                             };
                             Debug.Assert(new AreaCalculator(figures3).Calculate() 
                               == (25 + 15 + Math.PI * 25));
                         }
                     }

                    W drugim przypadku klasy figur implementują interfejs, który ma metodę do liczenia pola powierzchni klasy. Każda klasa sama implementuję liczenie swojego pola powierzchni. Kalkulator jedynie sumuje pola powierzchni.

                    class AreaCalculator
                       {
                           private readonly IEnumerable<IFigureAreaCalculator> figures;
                           public AreaCalculator(IEnumerable<IFigureAreaCalculator> figures)
                           {
                               this.figures = figures;
                           }
                     
                           public double Calculate()
                           {
                               return figures.Sum(x => x.GetArea());
                           }
                       }
                       interface IFigureAreaCalculator
                       {
                           double GetArea();
                       }
                       class Square : IFigureAreaCalculator
                       {
                           private readonly double width;
                           public Square(double width)
                           {
                               this.width = width;
                           }
                     
                           public double GetArea()
                           {
                               return width * width;
                           }
                     
                           internal double GetWidth()
                           {
                               return width;
                           }
                       }
                       class Rectangle : IFigureAreaCalculator
                       {
                           private readonly double width;
                           private readonly double height;
                     
                           public Rectangle(double width, double height)
                           {
                               this.width = width;
                               this.height = height;
                           }
                           internal double GetWidth()
                           {
                               return width;
                           }
                           internal double Getheight()
                           {
                               return height;
                           }
                     
                           public double GetArea()
                           {
                               return width * height;
                           }
                       }
                       class Circle : IFigureAreaCalculator
                       {
                           private readonly double radius;
                           public Circle(double radius)
                           {
                               this.radius = radius;
                           }
                     
                           public double GetArea()
                           {
                               return Math.PI * Math.Pow(radius, 2);
                           }
                     
                           internal double GetRadius()
                           {
                               return radius;
                           }
                       }
                       class Program
                       {
                           static void Main(string[] args)
                           {
                               var figures = new List<IFigureAreaCalculator>()
                               {
                                   new Square(5),
                     
                               };
                               AreaCalculator areaCalculator = new AreaCalculator(figures);
                     
                               Debug.Assert(areaCalculator.Calculate() == 25);
                     
                               var figures2 = new List<IFigureAreaCalculator>()
                               {
                                   new Square(5),
                                   new Rectangle(5,3),
                     
                               };
                               Debug.Assert(new AreaCalculator(figures2).Calculate() == (25 + 15));
                     
                               var figures3 = new List<IFigureAreaCalculator>()
                               {
                                   new Square(5),
                                   new Rectangle(5,3),
                                   new Circle(5),
                     
                               };
                               Debug.Assert(new AreaCalculator(figures3).Calculate() == (25 + 15 + Math.PI * 25));
                           }
                       }

                    Dodanie nowej figury nie będzie wymagało zmiany w klasie AreaCalculator.

                    Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                      Źródła

                      Obraz główny

                      Materiały

                      CS jak Ćwiczenia Single responsibility principle, czyli zasada jednej odpowiedzialności

                      przez Karol Bocian | 4 marca, 2020

                      Single responsibility principle — Zasada jednej odpowiedzialności

                      Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia.

                      Jak wykorzystywać w praktyce SRP?

                      Łącz w jedno kod, który ma ten sam jeden powód do zmiany. Rozdzielaj od siebie kod, który ma wiele powodów do zmiany.

                      Trudności związane z SRP

                      Z zasadą jednej odpowiedzialności związane są pewne trudności:

                      • Nie jest zdefiniowane, czym jest zmiana.
                      • Nie jest zdefiniowane, czym jest odpowiedzialność.
                      • Wymaga przewidywania przyszłości.

                      Zasadę pojedynczej odpowiedzialności można przedefiniować.

                      Klasa, funkcja, metoda itp. powinna odpowiadać za pojedynczą logikę biznesową na jednym poziomie abstrakcji. (http://adam.wroclaw.pl/2014/12/zasada-pojedynczej-odpowiedzialnosci/)

                      Klasy powinny być organizowane tak, aby minimalizować złożoność. Powinny:

                      • Być na tyle małe, aby zmniejszać zależności.
                      • Być na tyle duże, aby maksymalizować spójność.

                      Domyślnie powinno się wybierać grupowanie funkcjonalności na rzecz rozdzielania kodu. (https://sklivvz.com/posts/i-dont-love-the-single-responsibility-principle)

                      Przykład

                      Klasa książka ma dwie odpowiedzialności:

                      1. Posiadanie informacji o sobie.
                      2. Drukowanie siebie.
                      
                         class Book
                          {
                              private string title;
                              private string content;
                              public Book(string title, string content)
                              {
                                  this.title = title;
                                  this.content = content;
                              }
                      
                      
                      
                              public void PrintBook()
                              {
                                  Console.WriteLine(title);
                                  Console.WriteLine(content);
                              }
                          }
                      
                          class Program
                          {
                              static void Main(string[] args)
                              {
                                  Book book = new Book("Interesting title", "Nice content");
                                  book.PrintBook();
                              }
                          }
                      

                      W ramach refaktoryzacji wydzieliłem odpowiedzialność związaną z książką do oddzielnej klasy.

                      
                      class Book
                          {
                              private string title;
                              private string content;
                      
                              public Book(string title, string content)
                              {
                                  this.title = title;
                                  this.content = content;
                              }
                      
                              public string GetBookToPrint()
                              {
                                  return $"{title}{Environment.NewLine}{content}";
                              }
                          }
                      
                      
                          interface IPrinter
                          {
                              void Print(string content);
                          }
                      
                          class BookPrinter : IPrinter
                          {
                              public void Print(string content)
                              {
                                  Console.WriteLine(content);
                              }
                          }
                      
                          class Program
                          {
                              static void Main(string[] args)
                              {
                                  IPrinter printer = new BookPrinter();
                                  Book book = new Book("Interesting title", "Nice content");
                                  var bookToPrint = book.GetBookToPrint();
                                  printer.Print(bookToPrint);
                              }
                          }
                      

                          }

                      Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                        Źródła

                        Obraz główny

                        Materiały

                        D jak Dependency Inversion Principle, czyli Zasada odwrócenia zależności

                        przez Karol Bocian | 24 lutego, 2020

                        Dependency inversion principle — Zasada odwrócenia zależności

                        Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych i detali, lecz zależność powinna wynikać z abstrakcji.

                        Wszystkie wysokopoziomowe moduły powinny być związane z niskopoziomowymi za pomocą abstrakcji. Abstrakcje nie powinny zależeć od detali, lecz to detale powinny być zależne od abstrakcji.

                        Pomocne w spełnieniu tej zasady jest przestrzeganie tych reguł:

                        • Każda zmienna w klasie jest referencja do abstrakcji.
                        • Wszystkie klasy dziedziczą po abstrakcji.
                        • Żadna klasy potomna nie przesłania metod z klasy bazowej.
                        • Ustawianie zmiennych realizowane jest przez wzorzec fabryki lub wstrzykiwania zależności.

                        Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów.

                        Zalety

                        • Łatwiejsze wymienianie komponentów.
                        • Łatwiejsze wprowadzanie zmian w oprogramowaniu.
                        • Łatwiejsze ponowne wykorzystywanie komponentów.
                        • Łatwiejsze testowanie.

                        Wady

                        • Konieczność korzystania z interfejsów i klas abstrakcyjnych.
                        • Pracochłonność w tworzeniu stabilnych abstrakcji.
                        • Konieczność korzystania z fabryk lub wstrzykiwania zależności.

                        Przykład

                        • Klasa generująca raport (wysoki poziom) korzysta klasy logującej informacje o wyjątkach w aplikacji (niski poziom). Musi przekazać m.in. ścieżkę do folderu z logami. Zmiana klasy logującej do pliku na klasę logującą do bazy danych wymusi zmianę w klasie generującej raport, bo trzeba będzie przekazać inne dane do konstruktora klasy logującej.
                        • Klasa Kopiarka wykorzystująca klasę Czytnika i klasę Zapisywacza. Jeżeli mamy użyte klasy, a będziemy chcieli zmienić sposób zapisywania (z drukowania na drukarce, w generowanie pdfa), to będziemy musieli zmienić również klasę Kopiarka albo stworzyć nową klasę KopiarkaPdf. Gdyby klasa Kopiarka miała referencje do interfejsów IZapisywacz, to wystarczyłoby wstrzyknąć w nią odpowiednią implementację IZapisywacza, aby osiągnąć nasz cel.

                        Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                          Źródła

                          Obraz główny

                          Materiały

                          I jak Interface segregation principle, czyli Zasada segregacji interfejsów

                          przez Karol Bocian | 11 lutego, 2020

                          Interface segregation principle — Zasada segregacji interfejsów

                          Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.

                          Celem zasady segregacji interfejsów jest wyzbycie się z oprogramowania interfejsów, które odpowiadają za robienie wielu rzeczy. Źle zaprojektowane interfejsy mają tendencje do rozrastania się do zbyt wielkich rozmiarów, stają się one przez to  niespójne. Klasy, które je implementują, muszą implementować metody, których nie powinny. Zależne są one od metod, których nie używają.

                          Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów.

                          Zalety

                          • Łatwiejsze zapewnienie Zasady podstawienia Liskov oraz Zasady pojedynczej odpowiedzialności.
                          • Łatwiejsze utrzymanie kodu.
                          • Większa czytelność kodu.
                          • Łatwiejsze zmienianie kodu.
                          • Brak konieczności implementacji niepotrzebnych metod w klasach, które nie powinny ich mieć.
                          • Brak interfejsów-bogów.
                          • Mniejsza zależność kodu od innego kodu.

                          Wady

                          • Duża liczba interfejsów.
                          • Większa pracochłonność podczas tworzenia oprogramowania.

                          Przykład

                          • Interfejs Zwierzę ma metodę Biegnij. Ten interfejs implementuje klasa Pies i Ryba. W klasie Ryba metoda Biegnij jest zbędna.
                          • Interfejs File ma dwie metody: Zapisz i Czytaj. Klasa PlikTylkoDoOdczytu implementuje ten interfejs i w metodzie Zapisz nie zapisuje nic do pliku, ponieważ nie może — jest to przecież plik tylko do odczytu.

                          Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                            Źródła

                            Obraz główny

                            Materiały

                            L jak Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov

                            przez Karol Bocian | 19 stycznia, 2021

                            Liskov Substitution Principle — zasada podstawień Barbary Liskov

                            Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną. Wymagana jest pełna zgodność interfejsu oraz metod. Projektując hierarchię klas, należy zrobić to tak, aby każda klasa pochodna mogła wykorzystywać wszystkie metody klasy bazowej bez konieczności ich przesłaniania. Metody klas pochodnych powinny najwyżej rozszerzać działanie metod z klasy bazowej (wywołując je w swojej implementacji). Dziedziczenie należy wykonać tak, aby klasa pochodna wykorzystała wszystkie metody implementowanej klasy bazowej.

                            Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów.

                            Zalety

                            • Czytelniejszy i łatwiejszy w utrzymaniu kod.
                            • Możliwość podstawienia dowolnej klasy pochodnej w miejsce klasy bazowej bez obaw, że program źle zadziała.
                            • Mniej zależności w kodzie — obsługiwanie kolekcji obiektów danego typu bazowego nie wymaga sprawdzania, czy dany typ jest specjalnym typem i należy potraktować go inaczej.

                            Wady

                            • Konieczność lepszego przemyślenia struktury klas i ich dziedziczenia.

                            Przykład

                            • Kwadrat dziedziczący z klasy Prostokąt — metoda liczenia pola powierzchni jest nadpisana w kwadracie. Zasada Liskov jest złamana.
                            • Ryba dziedzicząca po klasie Zwierzę, gdzie Klasa Zwierzę ma metodę Biegnij. Ryba oczywiście nie biega. Zasada Liskov jest złamana.
                            • Klasa PlikTylkoDoOdczytu i PlikDoZapisuIOdczytu, dziedzicząca po klasie Plik. Klasa Plik ma metody Czytaj i Zapisuj. W klasie PlikTylkoDoOdczytu metoda Zapisuj nie będzie robiła tego, czego od niej oczekujemy, ponieważ nie można zapisać nic do pliku tylko do odczytu.

                            Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                              Źródła

                              Obraz główny

                              Materiały

                              My robimy to inaczej! Opowieść o tym, jak organizacje powstają i upadają, by móc odrodzić się na nowo – J. Kotter, H. Rathgeber

                              przez Karol Bocian | 3 lipca, 2020

                              Przeczytałem ostatnio kolejną książkę. W tym wpisie dzielę się informacjami, które w niej znalazłem oraz które wdrożyłem w swoim życiu. Staram się z każdej książki wdrażać minimum jedną rzecz.

                              Wdrożyłem:

                              Staram się patrzeć na problemy, jak na wyzwania, okazje i szanse.

                              Książkę możesz kupić tutaj:

                              Notatki:

                              Proces tworzenia organizacji łączącej zwinność oraz zarządzanie

                              1. Twórz poczucie pilności.
                              2. Buduj koalicję pilotującą.
                              3. Kształtuj wizję strategiczną i inicjatywy.
                              4. Werbuj armię wolontariuszy.
                              5. Umożliwiaj działanie poprzez usuwanie przeszkód.
                              6. Generuj krótkoterminowe zwycięstwa.
                              7. Podtrzymuj przyspieszanie.
                              8. Wprowadzaj zmianę.

                              Pozostałe myśli:

                              • Wszystkie poziomy organizacji muszą być otwarte na zmianę, innowację i usprawnienia.
                              • Procedury i rutyna zmniejszają chaos i pośpiech.
                              • Problem nazywaj szansą, okazją lub wyzwaniem.
                              • Przydzielaj odpowiedzialności i decyzyjność za sprecyzowane obszary zespołom z naturalnym liderem, który ma ostateczne słowo.
                              • Proces znajdowania najlepszego rozwiązania: zbierz pomysły, odsiej najlepsze, przedyskutuj ich wady i zalety, zminimalizuj ich wady i wzmocnij zalety, wybierz jeden i wdróż go.
                              • Zespoły powinny być przyjazne i wspierające. Powinny wspólnie walczyć z przeciwnościami, a nie z sobą samym.
                              • Zrób coś dobrego dla innych, możliwe, że oni się odwdzięczą, a z pewnością, będzie im żyło się lepiej.
                              • Korzystaj z PDCA — Plan, Do, Check, Act (wymyśl, zrób, sprawdź, wdróż).
                              • Zarządzanie pozwala rzetelnie i dobrze wykonywać pracę. Przywództwo pozwala dodać energii i przezwyciężyć problem.
                              • Twórz organizacje, które mają zrównoważone przywództwo i zarządzanie, a przez to są: innowacyjne, łatwo adaptujące się, zwinne, energiczne oraz dobrze zorganizowane i rzetelne.

                              Książkę możesz kupić tutaj:

                              Wszystkie posty związane z książkowymi wdrożeniami:

                                Źródła

                                Obraz główny

                                Materiały

                                • My robimy to inaczej! Opowieść o tym, jak organizacje powstają i upadają, by móc odrodzić się na nowo – J. Kotter, H. Rathgeber

                                Linki oznaczone (*) są linkami afiliacyjnymi. Jeżeli uważasz, że czerpiesz korzyści z mojej pracy, to kup coś korzystając z powyższego linku. Sprawi to, że dostanę prowizję z afiliacji.

                                O jak Open-closed principle, czyli zasada otwarte/zamknięte

                                przez Karol Bocian | 7 lutego, 2020

                                Open-closed principle — Zasada otwarte/zamknięte

                                Każdy składnik oprogramowania powinien być otwarty na rozszerzenia i zamknięty na modyfikacje.

                                Dotyka ona dwóch zagadnień:

                                1. Zagadnienie otwarte — Składniki powinny być stworzone w sposób umożliwiający łatwe rozszerzenie ich zachowania. Zmiana ich zachowania nie wymaga zmiany istniejącego kodu, lecz dopisanie nowego.
                                2. Zagadnienie zamknięte — Modyfikacja zachowania nie powinna wiązać się ze zmianą już istniejącego kodu.

                                Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów. Do jej stosowania wykorzystuje się zasadę Pojedynczej odpowiedzialności oraz regułę odwróconych zależności.

                                Zalety

                                • Większa elastyczność.
                                • Ponowne wykorzystywanie kodu.
                                • Łatwiejsze utrzymanie oprogramowania.
                                • Łatwiejsza rozbudowa systemu.
                                • Zapewnianie wstecznej kompatybilności.

                                Wady

                                • Duża trudność i pracochłonność podczas tworzenia oprogramowania.

                                Przykład

                                • Kalkulator liczący powierzchnię figur iteruje po liście obiektów implementujących interfejs IFigure, zamiast korzystania z switcha rozróżniającego po typie każdą klasę.
                                • Generatory raportów generujący raport implementujący interfejs IReportGenerator, którego można wstrzykiwać w klientów w zależności, jaki raport chcą (Pdf, Html).

                                Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                                  Źródła

                                  Obraz główny

                                  Materiały

                                  S jak Single responsibility principle, czyli zasada jednej odpowiedzialności

                                  przez Karol Bocian | 7 lutego, 2020

                                  Single responsibility principle — Zasada jednej odpowiedzialności

                                  Każda klasa powinna mieć tylko jeden powód do zmiany.

                                  Zgodnie z tą zasadą, każda klasa powinna:

                                  • Tylko jeden cel istnienia.
                                  • Tylko jedną odpowiedzialność.
                                  • Tylko jedno zadanie do wykonania.
                                  • Tylko jeden powód do modyfikacji.

                                  Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów.

                                  Zalety

                                  • Czytelniejszy kod.
                                  • Łatwiejsze do zrozumienia.
                                  • Brak klas-bogów — klas, które robią wszystko (albo bardzo dużo) i są zmieniane przy prawie każdej zmianie w oprogramowaniu.
                                  • Łatwiejsze modyfikowanie i utrzymywanie oprogramowania.
                                  • Mała zmiana oprogramowania dotyka tylko jednej klasy.
                                  • Modyfikacja dotyka tylko obszaru, który chcemy zmienić. Nie dotyka innych obszarów.
                                  • Mniejsza podatność na błędy.

                                  Wady

                                  • Dużo klas.

                                  Przykład

                                  1. Walidator adresu e-mail w oddzielnej klasie, a nie w klasie z danymi użytkownika.
                                  2. Walidator numeru telefonu w oddzielnej klasie, a nie w klasie z danymi użytkownika.
                                  3. Klasa zapisująca dane w bazie danych w oddzielnej klasie, a nie w klasie z tymi danymi.
                                  4. Klasa przechowująca adres oddzielona od klasy z firmą, pracownikiem, klientem.

                                  Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                                    Źródła

                                    Obraz główny

                                    Materiały

                                    SOLID

                                    przez Karol Bocian | 7 lutego, 2020

                                    SOLID

                                    SOLID jest podstawowym pojęciem w programowaniu obiektowym. Został przedstawiony przez Roberta C. Martina, który zebrał 5 zasad w skrót SOLID. Jest to akronim 5 zasad dobrego programowania obiektowego:

                                    • Single responsibility principle – Zasada jednej odpowiedzialności.
                                    • Open/closed principle – Zasada otwarte-zamknięte.
                                    • Liskov substitution principle – Zasada podstawienia Liskov.
                                    • Interface segregation principle – Zasada segregacji interfejsów.
                                    • Dependency inversion principle – Zasada odwróconej zależności.

                                    Single responsibility principle – Zasada jednej odpowiedzialności

                                    Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia.

                                    Open/closed principle – Zasada otwarte-zamknięte

                                    Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.

                                    Liskov substitution principle – Zasada podstawienia Liskov

                                    Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną.

                                    Interface segregation principle – Zasada segregacji interfejsów

                                    Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.

                                    Dependency inversion principle – Zasada odwróconej zależności

                                    Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji.

                                    Zalety

                                    • Większa czytelność kodu.
                                    • Wyższa jakość kodu.
                                    • Tańsze utrzymywanie.
                                    • Mniej błędów podczas rozwoju.
                                    • Łatwiejsze testowanie.
                                    • Łatwiejsze rozwijanie kodu.
                                    • Brak klas-bogów.

                                    Wady

                                    • Większa pracochłonność podczas tworzenia kodu.

                                    Podsumowanie

                                    Stosuj zasady SOLID wszędzie tam, gdzie możesz. Są to najlepsze praktyki, jakie możesz wykorzystać. W wyjątkowych sytuacjach pozwalaj sobie na odejście od tych reguł, na rzecz szybszego napisania aplikacji. Postaraj się, łamiąc zasady SOLID, napisać i tak w miarę dobry kod.

                                    Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                                      Źródła

                                      Obraz główny

                                      Materiały

                                      Początek mini projektu: Poznaj zasady SOLID i OOP

                                      przez Karol Bocian | 13 stycznia, 2024

                                      Część!

                                      Cele i ramy czasowe

                                      Rozpoczynam dziś nowy mini projekt. Codziennie przez najbliższy miesiąc będę poświęcał na ten projekt 1 godzinę. Jego celem jest poprawienie swojej znajomości zasad SOLID i OOP, czyli podstaw związanych z dobrym programowaniem w jakimkolwiek języku obiektowym.

                                      Dlaczego 1 miesiąc? Dlaczego 1 godzina dziennie?

                                      Słyszałem, że wystarczy przez 3 miesiące poświęcać danej tematyce 20 minut dziennie, czyli poświęcić 90 * 20 min. = 1800 minut, czyli 30 godzin, aby zostać zaawansowanym amatorem. Ja wolałem przeznaczyć po jednej godzinie w jednym miesiącu, aby rozwinąć swoje umiejętności. Luty ma w tym roku 29 dni. Chcę mieć jeden wolny dzień w tym miesiącu od nauki, więc ten projekt będzie trwał 28 dni.

                                      Zadania — priorytety

                                      Wypisałem zadania, które mam wykonać w ramach tego projektu oraz przydzieliłem im priorytety. Skorzystałem z metody MoSCoW (opisanej m.in. tutaj: https://kierownikprojektu.com/2016/09/05/jak-okreslic-co-jest-wazne-moscow/). Won’ty (Would have) potraktowałem jako coś, co byłoby fajnie zrobić, jeżeli wszystko inne zostanie zrobione, a zostanie mi jeszcze na to czas.

                                      Musty

                                      Moimi najważniejszymi zadaniami jest nauczenie się zasad SOLID i OOP, przećwiczenie ich (programując) oraz opublikowanie tych postów.

                                      Shouldy

                                      Jeżeli będę miał odpowiednio dużo czasu, to zrobię kurs mailowy: Poznaj Zasady SOLID i OOP.

                                      Couldy

                                      W ramach tego priorytetu zaplanowałem poznanie innych pojęć: DRY, KISS,OOP, LoD, SLAP, Composition Over Inheritance, Encapsulate What Changes.

                                      Won’ty (Would have)

                                      Jeżeli niespodziewanie zostanie mi jeszcze trochę czasu, to… nie planowałem żadnych zadań o tym priorytecie.

                                      W skrócie

                                      Mój projekt rozpisałem w niezawodnym Excelu i wygląda następująco:

                                      Do usłyszenia!

                                      Źródła

                                      Obraz główny

                                      Obrazy

                                      • praca własna

                                      Materiały

                                      Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

                                        Mini kurs: Nauka nowoczesnego uczenia się – Zapisz się!

                                        przez Karol Bocian | 13 stycznia, 2024

                                        Cześć, zapraszam Cię do zapisania się na mini kurs Nauki nowoczesnego uczenia się. W grudniu 2019 roku zdecydowałem się, że chcę poprawić swoje umiejętności uczenia się. Wziąłem więc książki do ręki i codziennie przez 30 dni pracowałem z nimi.

                                        W ramach mojej nauki napisałem posty na blogu oraz przygotowałem kilka testów, które pomagają zapamiętać zdobywaną wiedzę. Wszystkie te testy i posty zebrałem w jednym miejscu. W prezentowanym Tobie mini kursie Nauki nowoczesnego uczenia się.

                                        Obrazek nagłówka

                                        Podsumowanie projektu: Nauka nowoczesnego uczenia się

                                        przez Karol Bocian | 7 lutego, 2020

                                        Dzisiaj zakończyłem mój pierwszy mini projekt. Pora zatem na podsumowanie.

                                        Cel projektu

                                        Poprawienie umiejętności uczenia się — cel został osiągnięty. Świadczą o tym zaliczone testy:

                                        Poznałem kilka technik, zwiększyłem moją świadomość w tym obszarze, znalazłem trochę materiałów, które kiedyś wykorzystam, aby pogłębić moją wiedzę w tej dziedzinie (np. https://www.coursera.org/learn/learning-how-to-learn).

                                        Trójkąt projektu

                                        Projekt składa się z trzech elementów (wg teorii trójką projektu): czas, pieniądze i zakres. Omawiam je poniżej.

                                        Budżet

                                        Budżet projektu był 0 zł (oprócz kosztu prądu) i taki udało się zachować. Materiały, z których skorzystałem, były darmowe lub pożyczone.

                                        Planowałem wykorzystać 30 godzin mojego czasu wolnego. Niestety, przekroczyłem ten termin. Zgłębienie niektórych obszarów wymagało więcej czasu (najdłużej zeszło mi się z postem: https://karolbocian.pl/blog/2019/12/14/metanauka-proces-dsss/). Czasochłonne było również tworzenie platformy do dzielenia się z Wami wiedzą, m.in. robienie testów (znalezienie wtyczki, poznanie jej, etc.). Nie policzyłem, ile dokładnie czasu poświęciłem na ten projekt, szacuję, że jest to około 40 godzin.

                                        Czas

                                        Projekt realizowałem przez 30 dni. Niestety, nie robiłem go przez 30 z rzędu. Wynika to ze złego planowania. Nie wziąłem pod uwagę: świat, przygotowań do świąt, urlopu.

                                        Zakres

                                        Stan zadań wygląda następująco:

                                        MOSCOW

                                        L. zadań

                                        L. zrobionych zadań

                                        L. zadań do zrobienia

                                        Must

                                        54

                                        54

                                        0

                                        Should

                                        17

                                        17

                                        0

                                        Could

                                        59

                                        47

                                        12

                                        Won’t

                                        3

                                        0

                                        3

                                        Razem

                                        133

                                        118

                                        15

                                        Zrobiłem wszystkie zadania typu: Must i Should. Nie wykonałem kilku Couldów oraz wszystkich Won’tów. Co to znaczy? To znaczy, że zrobiłem wszystkie najważniejsze rzeczy, a nie zrobiłem mniej ważnych. Nie zrobiłem takich rzeczy jak: testy i powtórki, metody Tima Ferrisa oraz kursu mailowego.

                                        Ocena

                                        Jestem zadowolony z tego projektu. Nauczyłem się kilku rzeczy, znalazłem czas na rozwijanie swoich umiejętności. Rozpocząłem również tworzenie platformy i systemu mojego osobistego rozwoju. A jaka jest Wasza ocena tego projektu?

                                        Najważniejsze osiągnięcia

                                        Za najważniejsze osiągnięcia związane z tym projektem uważam:

                                        Przemyślenia

                                        • Ciężko jest codziennie przez 30 dni pracować nad jednym tematem w ograniczonym czasie 1 godziny. Potrzebne są dni wolne albo dni, gdy nie trzeba się tak spieszyć.
                                        • Należy planować przerwy — takimi przerwami mogą być posty typu: początek projektu, podsumowanie przebiegu (w połowie projektu) oraz podsumowanie projektu.
                                        • Na niektóre tematy trzeba poświęcić sporo czasu, jeżeli chce się je dobrze poznać oraz dobrze przekazać.
                                        • Szablony i automatyzacja znacznie upraszczają pracę. Docenia się je najbardziej, gdy wykonuje się w miarę powtarzalną pracę bardzo często. Bardzo pomocne było dla mnie stworzenie w przeglądarce folderu ze wszystkimi linkami potrzebnymi mi do napisania nowego posta: plan projektu, dysk Google z postami, WordPress, portal z darmowymi zdjęciami, LinkedIn, Facebook.

                                        Plany na przyszłość

                                        Przygotowania

                                        Najbliższe kilkanaście dni chcę poświęcić na poprawienie platformy bloga: poprawienie polityki prywatności, zwiększenie automatyzacji, poprawa zakładek, umożliwienie zapisywania się na newsletter, ułatwienie robienia kursu mailowego.

                                        Rozwój

                                        W kolejnych miesiącach będę na przemian rozwijał się w następujących tematach:

                                        • stawanie się ekspertem w obszarze IT i programowania (w ramach projektu: 4 Tygodniowy Ekspert IT),
                                        • stawanie się ekspertem w obszarze zarządzania (w ramach projektu: 4 Tygodniowy Ekspert Zarządzania),
                                        • stawanie się zaawansowanym amatorem w różnych obszarach (nie zawsze amatorem :)) np. szybkie czytanie, sprzedawanie, efektywne komunikowanie (w ramach projektu: 4 Tygodniowy Zaawansowany Amator).

                                        Koniec

                                        Projekt zakończony. Pora na głęboki oddech, chwilę wytchnienia, aby jutro wrócić do pracy. Jedyne, czego potrzebuję na przyszłość, to 48-godzinnej doby, albo zmiany priorytetów. 🙂

                                        Wszystkie posty związane z moim pierwszym mini projektem: Nauka nowoczesnego uczenia się:

                                          Źródła

                                          Obrazek nagłówka

                                          Obrazki

                                          Feedly

                                          przez Karol Bocian | 1 maja, 2020

                                          Feedly to czytnik rss — program umożliwiający śledzenie blogów i czytanie tylko nowych postów. Używam go codziennie.

                                          Możesz do niego dodać wszystkie blogi, na których chcesz regularnie czytać nowe posty. Robisz to w łatwy sposób:

                                          1. Dodajesz blogi do śledzenia.
                                          2. Przeglądasz tylko nowe i jeszcze nieprzeczytane posty (skrót: przycisk j na klawiaturze — następny post, przycisk k — poprzedni post).
                                          3. Zapisujesz ciekawe posty do przeczytania później (przycisk s) lub otwierasz je w nowej zakładce.

                                          W ustawieniach Feedly warto ustawić, aby wyświetlały się tylko nieprzeczytane wiadomości. Konto można założyć za pomocą konta Google. Jedno konto można wykorzystywać na wielu urządzeniach, dzięki czemu nie czytamy kilkukrotnie tych samych nagłówków postów. Blogi można grupować w stworzone przez siebie kategorie, aby w innym czasie sprawdzić nowe posty z danej kategorii. Można też zapisywać przeczytane posty, w celu gromadzenia ciekawych materiałów.

                                          Narzędzie to pozwala być na bieżąco ze wszystkimi interesującymi nas treściami (bez konieczności wchodzenia na wszystkie te blogi), zapisywać ciekawe blogi oraz posty do przeczytania później.

                                          Adres: https://feedly.com/

                                          Tutorial video

                                          Wszystkie posty związane z narzędziami:

                                            Źródła

                                            Obraz główny

                                            Obrazy

                                            • produkcja własna

                                            Materiały

                                            Mapa myśli – powtórka

                                            przez Karol Bocian | 8 lutego, 2020

                                            Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                            Przeczytaj jeszcze raz tekst: https://karolbocian.pl/blog/2020/01/04/mapy-mysli/

                                            Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                            0%
                                            5
                                            Utworzono Przez Karol Bocian

                                            Test - Mapy myśli

                                            Cześć!
                                            Podaj proszę swoje imię i e-mail.
                                            Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                            1 / 4

                                            Czym jest mapa myśli?

                                            2 / 4

                                            Do czego można wykorzystać mapę myśli?

                                            3 / 4

                                            Jakie są zalety mapy myśli?

                                            4 / 4

                                            Z czego składa się mapa myśli?

                                            Twój wynik to

                                            Średni wynik to 40%

                                            0%

                                             

                                            Źródła

                                            Obrazek nagłówka

                                            Mapy myśli

                                            przez Karol Bocian | 7 lutego, 2020

                                            Co to jest mapa myśli?

                                            Mapa myśli jest to narzędzie umożliwiające efektywne notowanie. Notatka jest w formie graficznej: na środku jest temat główny, który uszczegóławiany jest w kilku perspektywach za pomocą rysowania od niego gałęzi uszczegóławiających.

                                            Do czego wykorzystać mapę myśli?

                                            Mapę myśli wykorzystuje się głównie do notowania i strukturyzowania wiedzy. Pozwala ona poprawić:

                                            • notowanie,
                                            • zapamiętywanie,
                                            • przypominanie,
                                            • rozumienie (poznawanego materiału),
                                            • sposób znajdowania rozwiązania problemu.

                                            Jak wygląda mapa myśli?

                                            Więcej przykładów: https://www.google.com/search?rlz=1C1GCEA_enPL871PL871&biw=2048&bih=1050&tbm=isch&sa=1&ei=orkQXozMDcTDmwWGgaT4Bw&q=mind+maps

                                            Jak zrobić mapę myśli?

                                            • Weź kartkę i kolorowe flamastry i zacznij rysować.
                                            • Użyj programu na komputerze, np. XMind.

                                            Z czego składa się mapa myśli?

                                            • Słów kluczowych.
                                            • Połączeń (linie).
                                            • Obrazków i grafik.
                                            • Kolorów (czcionek, linii, obrazków, grafik).
                                            • Struktur (grupowań).
                                            • Relacji.
                                            • Skojarzeń.

                                            Na czym skupić się podczas robienia mapy myśli?

                                            Należy skupić się na znalezieniu odpowiednich słów kluczowych, ułożeniu ich w odpowiedniej hierarchii, wykorzystaniu grafik, kolorów i skojarzeń oraz podkreśleniu najważniejszych elementów.

                                            Skup się na: przejrzystości i byciu kreatywnym.

                                            Jakie są zalety mapy myśli?

                                            • Stymulacja całego mózgu.
                                            • Wykorzystanie kolorów i obrazów.
                                            • Graficzna forma zapisu wiedzy.
                                            • Łatwe przedstawienie zależności.
                                            • Upraszczanie i minimalizowanie informacji (poprzez słowa kluczowe).
                                            • Stymulacja wyobraźni.
                                            • Pobudzają kreatywność.
                                            • Organizują wiedzę.

                                            Jakie są wady mapy myśli?

                                            Wymaga bycia kreatywnym i schludnym oraz zaangażowania się w proces tworzenia mapy myśli.

                                            Jakie błędy można popełnić robiąc mapę myśli?

                                            • Za dużo informacji.
                                            • Używanie zdań i równoważników zamiast słów kluczowych.
                                            • Nieczytelność.
                                            • Brak logicznego podziału wiedzy.
                                            • Zapisanie błędnie informacji (nawet najlepiej zrobiona mapa myśli, która zawiera niepoprawne informacje, jest zła).

                                            Co dalej?

                                            Teraz należy wykorzystać wiedzę w praktyce i zacząć robić mapy myśli. Praktyka czyni mistrza 🙂

                                            Polecam do obejrzenia jeszcze te filmiki:

                                            Wszystkie posty o mapach myśli:

                                              Źródła

                                              Obrazek nagłówka

                                              • praca własna

                                              Obrazki

                                              Metody skutecznego uczenia się – powtórka szczegółowa

                                              przez Karol Bocian | 8 lutego, 2020

                                              Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                              Przeczytaj jeszcze raz tekst: Metody skutecznego uczenia się

                                              Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu (zawiera 10 losowych pytań ze wszystkich pytań o metodach skutecznego uczenia się).

                                              Ten test jest naprawdę ciężki!!!

                                              0%
                                              3
                                              Utworzono Przez Karol Bocian

                                              Test - Metody skutecznego uczenia się w szczegółach

                                              Ten test zawiera 10 losowych pytań ze wszystkich pytań o metodach skutecznego uczenia się. Powodzenia!

                                              Cześć!
                                              Podaj proszę swoje imię i e-mail.
                                              Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                              1 / 10

                                              Kiedy robić powtórki w metodzie Tancerki?

                                              2 / 10

                                              Kto odpowiada na pytania?

                                              3 / 10

                                              Na czym polega metoda Majstersztyku?

                                              4 / 10

                                              Czy potwarzać zapamiętane fiskzi?

                                              5 / 10

                                              Co należy robić podczas uczenia się metodą Nauczyciela?

                                              6 / 10

                                              Jaki rodzaj wiedzy najlepiej jest przyswajać wieczorem?

                                              7 / 10

                                              Metoda Tancerki to:

                                              8 / 10

                                              Na czym polega metoda Tancerki?

                                              9 / 10

                                              Czy metoda Pałacu pamięci ma wady?

                                              10 / 10

                                              Czy robić przerwę podczas nauki metodą Fiszek?

                                              Twój wynik to

                                              Średni wynik to 67%

                                              0%

                                              Dzień 5 – ostatni – Nauka rysowania map myśli

                                              przez Karol Bocian | 7 lutego, 2020

                                              Plan nauki

                                              Plan dnia (opisany w poście: https://karolbocian.pl/blog/2019/12/30/nowa-umiejetnosc/) został zaktualizowany. Usunąłem naukę właściwą, ponieważ wczoraj obejrzałem cały materiał zaplanowany również na dzisiaj. Czas ten przeznaczę na napisanie postu zbierającego moją wiedzę o mapach myśli, do którego będę mógł wracać co jakiś czas (pojawi się jutro).

                                              Dzień

                                              Czas (minuty)

                                              Temat

                                              5 (2020-01-04)

                                              0-5

                                              Powtórka materiału

                                               

                                              5-8

                                              Plan nauki na dzisiaj

                                               

                                              8-29

                                              Nauka właściwa -> Podsumowanie nauki

                                               

                                              29-30

                                              Przerwa na taniec

                                               

                                              30-60

                                              Podsumowanie nauki

                                              Do odmierzania czasu kolejnych etapów używam narzędzia: https://www.timeanddate.com/timer/

                                              Przebieg nauki

                                              Temat 1 – Powtórka materiału

                                              Mapy myśli są narzędziem umożliwiającym:

                                              • robienie dobrych notatek,
                                              • poprawienie zapamiętywania materiału,
                                              • poprawienie zrozumienia materiału,
                                              • rozwiązywanie problemów (np. z wykorzystaniem burzy mózgów).

                                              Mapy myśli opierają się na graficznej reprezentacji wiedzy. Wykorzystują: relacje, obrazy, kolory, grupowanie, łączenie, podkreślanie, słowa kluczowe, filtrowanie informacji.

                                              Temat 2 – Podsumowanie nauki

                                              Przez 5 dni uczyłem się z różnych źródeł o mapach myśli. W zagadnieniu map myśli ważne są dwie rzeczy: teoria i praktyka.

                                              Wiedza teoretyczna

                                              1. Jak zrobić mapę myśli.
                                              2. Z jakich elementów składa się mapa myśli.
                                              3. Jakich błędów wystrzegać się podczas robienia mapy myśli.
                                              4. Jakie są wady i zalety mapy myśli.
                                              5. Do czego można wykorzystać mapę myśli.
                                              6. Na czym przede wszystkim skupiać się robiąc mapę myśli.

                                              Zdobytą przeze mnie wiedzę o mapach myśli zamieściłem w tym wpisie: Mapy myśli – https://karolbocian.pl/blog/2020/01/04/mapy-mysli/ (dostępne od jutra).

                                               Polecam jeszcze te dwa filmiki:

                                              Praktyka

                                              Nauczenie się robienia dobrze map myśli wymaga praktyki (podobno trzeba zrobić minimum 30-50 map myśli). Nie da się dowiedzieć z książek, co najlepiej zadziała na nas i które słowa kluczowe są dla nas najlepsze. Trzeba to ćwiczyć: dobór grafik i kolorów, rozmieszczenie elementów, wybór słów kluczowych, tworzenie struktur, relacji i połączeń.

                                              Podsumowując, jeżeli chcesz zostać mistrzem (albo przynajmniej być coraz lepszym) w robieniu map myśli (albo czegokolwiek innego) regularnie poszerzaj swoją wiedzę teoretyczną oraz bardzo dużo praktykuj!

                                              Źródła

                                              Obrazek nagłówka

                                              Obrazki

                                              Metoda Nauczyciela – powtórka

                                              przez Karol Bocian | 8 lutego, 2020

                                              Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                              Przeczytaj jeszcze raz tekst: Metoda Nauczyciela

                                              Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                              0%
                                              2
                                              Utworzono Przez Karol Bocian

                                              Test - Metoda Nauczyciela

                                              Cześć!
                                              Podaj proszę swoje imię i e-mail.
                                              Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                              1 / 3

                                              Co należy robić podczas uczenia się metodą Nauczyciela?

                                              2 / 3

                                              Kogo można uczyć wykorzystując w metodzie Nauczyciela?

                                              3 / 3

                                              Na czym polega metoda Nauczyciela?

                                              Twój wynik to

                                              Średni wynik to 100%

                                              0%

                                              Dzień 4 – Nauka rysowania map myśli z Tonym Buzanem

                                              przez Karol Bocian | 7 lutego, 2020

                                              Plan nauki

                                              Plan dnia (opisany w poście: https://karolbocian.pl/blog/2019/12/30/nowa-umiejetnosc/):

                                              Dzień

                                              Czas (minuty)

                                              Temat

                                              4 (2020-01-03)

                                              0-5

                                              Powtórka materiału

                                               

                                              5-8

                                              Plan nauki na dzisiaj

                                               

                                              8-29

                                              Nauka właściwa

                                               

                                              29-30

                                              Przerwa na taniec

                                               

                                              30-55

                                              Nauka właściwa

                                               

                                              55-60

                                              Podsumowanie nauki

                                              Do odmierzania czasu kolejnych etapów używam narzędzia: https://www.timeanddate.com/timer/

                                              Przebieg nauki

                                              Temat 1 – Powtórka materiału

                                              Mapy myśli są świetnym narzędziem umożliwiającym notowanie. Wykorzystują kolory, obrazy, relacje, połączenia, wyróżnienia, struktury i słowa kluczowe. Pobudzają cały umysł. Robi się je umieszczając w centrum obszaru roboczego temat główny, a potem od niego rysuje się linie, na których końcach są podtematy itd. Do rysowania map myśli można wykorzystać program XMind.

                                              Temat 2 – Plan nauki na dzisiaj

                                              Plan tematów do nauki dzisiaj (opisany w poście: https://karolbocian.pl/blog/2019/12/31/dzien-1-nauka-rysowania-map-mysli/)

                                              Materiał

                                              Link

                                              Dzień

                                              Wariacje

                                              Film na YouTube o mapach myśli

                                              https://www.youtube.com/watch?v=0VtFjHXCOKg

                                              4 (2020-01-03)

                                              Zmiana bodźca — jeden długi film od tego samego autora

                                              Temat 3 – Nauka właściwa

                                              Tony Buzan jest jednym z twórców metody Mapy myśli, dlatego obejrzałem również jego wykład (pierwsze minuty wykładu to budowanie relacji z publicznością, więc lepiej jest zacząć naukę od 11 minuty: https://www.youtube.com/watch?v=0VtFjHXCOKg&feature=youtu.be&t=650, rada druga: można oglądać z przyspieszeniem x2).

                                              Z wykładu nie nauczyłem się zbyt wiele nowego, moje notatki z wykładu przedstawia poniższa mapa myśli.

                                              Ciekawa myśl z tego szkolenia: nosić ze sobą kilka kolorowych długopisów i zawsze korzystać z różnych kolorów.

                                               

                                              Temat 4 – Podsumowanie nauki

                                              Mapy myśli są przydatnymi narzędziami. Oprócz nich warto również korzystać z kolorów, obrazów i przedstawiać relacje między różnymi informacjami.

                                              Źródła

                                              Obrazek nagłówka

                                              Obrazki

                                              Metoda Imersji – powtórka

                                              przez Karol Bocian | 8 lutego, 2020

                                              Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                              Przeczytaj jeszcze raz tekst: Metoda Imersji

                                              Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                              /2
                                              4
                                              Utworzono Przez Karol Bocian

                                              Test - Metoda Imersji

                                              Cześć!
                                              Podaj proszę swoje imię i e-mail.
                                              Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                              1 / 2

                                              Na czym polega mimowolne uczenie się w metodzie Imersji?

                                              2 / 2

                                              Na czym polega metoda Imersji?

                                              Twój wynik to

                                              Średni wynik to 50%

                                              0%

                                              Dzień 3 – Nauka rysowania map myśli

                                              przez Karol Bocian | 7 lutego, 2020

                                              Plan nauki

                                              Plan dnia (opisany w poście: https://karolbocian.pl/blog/2019/12/30/nowa-umiejetnosc/):

                                              Dzień

                                              Czas (minuty)

                                              Temat

                                              3 (2020-01-02)

                                              0-5

                                              Powtórka materiału

                                               

                                              5-8

                                              Plan nauki na dzisiaj

                                               

                                              8-29

                                              Nauka właściwa

                                               

                                              29-30

                                              Przerwa na taniec

                                               

                                              30-55

                                              Nauka właściwa

                                               

                                              55-60

                                              Podsumowanie nauki

                                              Do odmierzania czasu kolejnych etapów używam narzędzia: https://www.timeanddate.com/timer/

                                              Przebieg nauki

                                              Temat 1 – Powtórka materiału

                                              Mapy myśli służą do robienia kreatywnych notatek. Ich przewagą nad zwykłymi notatkami jest pobudzanie całego mózgu (słowa kluczowe, kolory, obrazy, relacje) oraz uszczegóławianie tematu. Program XMind pozwala w łatwy sposób robić mapy myśli. Umożliwia: grupowanie węzłów, tworzenie relacji, ukrywanie szczegółów, robienie różnych struktur, np. organizacji.

                                              Temat 2 – Plan nauki na dzisiaj

                                              Plan tematów do nauki dzisiaj (opisany w poście: https://karolbocian.pl/blog/2019/12/31/dzien-1-nauka-rysowania-map-mysli/)

                                              Materiał

                                              Link

                                              Dzień

                                              Wariacje

                                              Filmy na YouTube o mapach myśli

                                              1. https://www.youtube.com/watch?v=7ignqjhLF3s
                                              2. https://www.youtube.com/watch?v=8BgkWIEeX-M
                                              3. https://www.youtube.com/watch?v=kECHj8g6_fU
                                              4. https://www.youtube.com/watch?v=ONzWAq0NVfE
                                              5. https://www.youtube.com/watch?v=3RPR7hwQwZw
                                              6. https://www.youtube.com/watch?v=l60G4yuikK0
                                              7. https://www.youtube.com/watch?v=ZpvruFwRQR0
                                              8. https://www.youtube.com/watch?v=fYNTaKyaGHc

                                              3 (2020-01-02)

                                              Zmiana bodźca — praca na kartce w innym pomieszczeniu (metoda Zmiany miejsca). Obejrzę wiele filmików różnych autorów (Metoda Króla boksu).

                                              Temat 3 – Nauka właściwa

                                              Obejrzałem wszystkie filmiki z mojego planu. Polecam szczególnie te:

                                              Podczas oglądania filmików, robiłem notatkę w formie mapy myśli:

                                              Temat 4 – Podsumowanie nauki

                                              Mapy myśli są dobrym narzędziem do notowania informacji oraz przeprowadzania burz mózgu (do znalezienia rozwiązania problemu). Wykorzystują obie półkule mózgu poprzez łączenie: słów kluczowych, skojarzeń, obrazów, kolorów, relacji, przedstawienia graficznego.

                                              Źródła

                                              Obrazek nagłówka

                                              Obrazki

                                              Metody skutecznego uczenia się – powtórka

                                              przez Karol Bocian | 8 lutego, 2020

                                              Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                              Przeczytaj jeszcze raz tekst: Metody skutecznego uczenia się

                                              Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                              0%
                                              3
                                              Utworzono Przez Karol Bocian

                                              Test - Metody skutecznego uczenia się

                                              Cześć!
                                              Podaj proszę swoje imię i e-mail.
                                              Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                              1 / 13

                                              Na czym polega metoda Majstersztyku?

                                              2 / 13

                                              Na czym polega metoda Zmiany miejsca?

                                              3 / 13

                                              Na czym polega metoda Walenia?

                                              4 / 13

                                              Na czym polega metoda Tancerki?

                                              5 / 13

                                              Na czym polega metoda Testu zderzeniowego?

                                              6 / 13

                                              Na czym polega metoda Imersji?

                                              7 / 13

                                              Na czym polega metoda Fiszek?

                                              8 / 13

                                              Na czym polega metoda Nauczyciela?

                                              9 / 13

                                              Na czym polega metoda Króla boksu?

                                              10 / 13

                                              Na czym polega metoda Pałacu pamięci?

                                              11 / 13

                                              Na czym polega metoda Papugi?

                                              12 / 13

                                              Na czym polega metoda Terminatora?

                                              13 / 13

                                              Na czym polega metoda Ciekawskiego dziecka?

                                              Twój wynik to

                                              Średni wynik to 43%

                                              0%

                                              Dzień 2- Nauka obsługi programu XMind

                                              przez Karol Bocian | 7 lutego, 2020

                                              Plan nauki

                                              Plan dnia (opisany w poście: https://karolbocian.pl/blog/2019/12/30/nowa-umiejetnosc/):

                                              Dzień

                                              Czas (minuty)

                                              Temat

                                              2 (2020-01-01)

                                              0-5

                                              Powtórka materiału

                                               

                                              5-8

                                              Plan nauki na dzisiaj

                                               

                                              8-29

                                              Nauka właściwa

                                               

                                              29-30

                                              Przerwa na taniec

                                               

                                              30-55

                                              Nauka właściwa

                                               

                                              55-60

                                              Podsumowanie nauki

                                              Do odmierzania czasu kolejnych etapów używam narzędzia: https://www.timeanddate.com/timer/

                                              Przebieg nauki

                                              Temat 1 – Powtórka materiału

                                              Mapa myśli to narzędzie służące do notowania oraz gromadzenia wiedzy i haseł. Korzysta z mechanizmów pobudzających cały mózg: hasła kluczowe, słowa, obraz, kolory. Polega na przedstawieniu wiedzy w formie graficznej: w centralnym punkcie obszaru roboczego znajduje się temat główny, a z niego, jak drzewa wyrastają uszczegółowienia tego tematu, które następnie są coraz bardziej uszczegóławiane (tak jak drzewo ma pień, wielkie gałęzie i coraz mniejsze gałęzie).

                                              Temat 2 – Plan nauki na dzisiaj

                                              Plan tematów do nauki dzisiaj (opisany w poście: https://karolbocian.pl/blog/2019/12/31/dzien-1-nauka-rysowania-map-mysli/)

                                              Materiał

                                              Link

                                              Dzień

                                              Wariacje

                                              Obsługa programu XMind

                                              https://www.youtube.com/watch?v=MsOS5HZ0qxU&list=PLrjRjw_oPGjTbUhApw5lr5D2sQwMdtpwZ

                                              2 (2020-01-01)

                                              Zmiana bodźca (film zamiast tekstu)

                                              Temat 3 – Nauka właściwa

                                              Podczas nauki oglądałem: https://www.youtube.com/watch?v=MsOS5HZ0qxU&list=PLrjRjw_oPGjTbUhApw5lr5D2sQwMdtpwZ z przyspieszeniem 1.5. Miałem obok otwarty program XMind, zatrzymywałem filmik i rysowałem w XMind.

                                              Polskie znaki

                                              XMind nie obsługuje poprawnie wszystkich polskich znaków (ma do niektórych kombinacji Alt + literka przypięty jakiś skrót). Można to łatwo naprawić, wystarczy:

                                              1. Wejść w Edit -> Preferences
                                              2. Wybrać zakładkę Keys
                                              3. Posortować tabelę po polu Bindings
                                              4. Znaleźć skróty wykorzystujące Alt i literkę i wybrać dla nich Unbing Command
                                              5. Zrobione

                                              Skróty

                                              Przydatne skróty w XMind:

                                              • Tab -> nowa podgałąź.
                                              • Enter -> nowa gałąź.
                                              • Strzałki -> poruszanie po węzłach.
                                              • Ctrl + H -> dodanie linku do węzła.
                                              • Ctrl + I -> dodanie obrazka do węzła.
                                              • F2 -> Edycja zaznaczonego węzła.
                                              • F3 -> dodanie podpisu do węzła.
                                              • F4 -> dodanie notatki do węzła.

                                              Łączenie i grupowanie

                                              Można łączyć i grupować elementy na sposoby:

                                              Summary (skrót: Ctrl + ]):

                                              1. Zaznaczenie kilku elementów.
                                              2. Wybranie Insert -> Summary.
                                              3. Wpisanie podsumowania.

                                              Boundary (skrót: Ctrl + B):

                                              1. Zaznaczenie kilku elementów.
                                              2. Wybranie Insert -> Boundary.
                                              3. Wpisanie podsumowania.

                                              Relationship (skrót: Ctrl + L):

                                              1. Zaznaczenie jednego elementu
                                              2. Wybranie Insert -> Relationship.
                                              3. Zaznaczenie innego elementu.
                                              4. Manipulowanie linią, aby zmienić jej kształt.
                                              5. Podpisanie linijki.

                                              Podwidoki i ukrywanie

                                              W XMind można zaznaczyć element, wybrać View -> Drill down (skrót: F6) i wtedy zobaczymy tylko drzewo, gdzie korzeniem będzie wybrany element (Shift F6 cofa nas do poprzedniego widoku). Można tak ukryć część rzeczy, jeżeli dodamy w podwidoku luźne elementy.

                                              Autozapisywanie

                                              1. Wybierz Edit -> Preferences -> General
                                              2. Zaznacz w sekcji Save and Backup checkboxa obok: Autmatically save all opened workboks every …

                                              Numerowanie

                                              Elementy i w gałęziach mogą być numerowane.

                                              Temat 4 – Podsumowanie nauki

                                              Polecam przejście tego szybkiego kursu: https://www.youtube.com/watch?v=MsOS5HZ0qxU&list=PLrjRjw_oPGjTbUhApw5lr5D2sQwMdtpwZ, ponieważ odkryłem ciekawe rzeczy:

                                              • skróty klawiaturowe,
                                              • dodawanie summary, boundary, relacji,
                                              • ukrywanie,
                                              • dodawanie podpisu i notatki do węzła.

                                              Źródła

                                              Obrazek nagłówka

                                              Obrazki

                                              Dzień 1 – Nauka rysowania map myśli

                                              przez Karol Bocian | 7 lutego, 2020

                                              Plan nauki

                                              Plan dnia (opisany w poście: https://karolbocian.pl/blog/2019/12/30/nowa-umiejetnosc/):

                                              Dzień

                                              Czas (minuty)

                                              Temat

                                              1 (2019-12-31)

                                              0-29

                                              Zebranie materiałów i rozłożenie ich w czasie

                                               

                                              29-30

                                              Przerwa na taniec

                                               

                                              30-55

                                              Nauka właściwa

                                               

                                              55-60

                                              Podsumowanie nauki

                                              Do odmierzania czasu kolejnych etapów używam narzędzia: https://www.timeanddate.com/timer/ – ja ustawiłem sobie dźwięk budzika – ustawienie podstawowe to brak dźwięku.

                                              Przebieg nauki

                                              Temat 1 – Zebranie materiałów i rozłożenie ich w czasie

                                              Poniżej zamieszczam materiały oraz plan ich przyswajania. Podczas nauki będę robił mapę myśli o tym, czym jest mapa myśli, jej zaletach i wadach (Metoda Terminatora) oraz będę pisał post o mapach myśli (Metoda Walenia + Metoda Nauczyciela). Do robienia map myśli będę używał programu: XMind –  https://xmind.softonic.pl/. Przebieg mojej nauki będę opisywał w postach takich jak ten. Na koniec zbiorę informacje z nich w jeden post (Metoda Majstersztyku).

                                              Materiał

                                              Link

                                              Dzień

                                              Wariacje

                                              Darmowy e-book: kurs tworzenia map myśli

                                              https://www.zlotemysli.pl/prod/6620/kurs-tworzenia-map-mysli-marcin-kijak.html#product-info

                                              1 (2019-12-31)

                                               

                                              Obsługa programu XMind

                                              https://www.youtube.com/watch?v=MsOS5HZ0qxU&list=PLrjRjw_oPGjTbUhApw5lr5D2sQwMdtpwZ

                                              2 (2020-01-01)

                                               Zmiana bodźca (film zamiast tekstu)

                                              Filmy na YouTube o mapach myśli

                                              1. https://www.youtube.com/watch?v=7ignqjhLF3s
                                              2. https://www.youtube.com/watch?v=8BgkWIEeX-M
                                              3. https://www.youtube.com/watch?v=kECHj8g6_fU
                                              4. https://www.youtube.com/watch?v=ONzWAq0NVfE
                                              5. https://www.youtube.com/watch?v=3RPR7hwQwZw
                                              6. https://www.youtube.com/watch?v=l60G4yuikK0
                                              7. https://www.youtube.com/watch?v=ZpvruFwRQR0
                                              8. https://www.youtube.com/watch?v=fYNTaKyaGHc

                                              3 (2020-01-02)

                                              Zmiana bodźca — praca na kartce w innym pomieszczeniu (metoda Zmiany miejsca). Obejrzę wiele filmików różnych autorów (Metoda Króla boksu).

                                              Film na youtube o mapach myśli

                                              https://www.youtube.com/watch?v=0VtFjHXCOKg

                                              4 (2020-01-03)

                                              Zmiana bodźca — jeden długi film od tego samego autora

                                              Film na youtube o mapach myśli

                                              https://www.youtube.com/watch?v=0VtFjHXCOKg

                                              5 (2020-01-04)

                                              Temat 2 – Przerwa na taniec

                                              Temat 3 – Nauka właściwa

                                              Moja mapa myśli

                                              Źródła obrazów w mapie myśli:

                                              Temat 4 – Podsumowanie nauki

                                              Mapa myśli to narzędzie umożliwiające notowanie, w którym wykorzystuje się obie półkule mózgu, przez co zapamiętywanie (i przypominanie sobie) materiału z pomocą mapy myśli jest efektywniejsze. Mapa myśli wykorzystuje grafiki, obrazy, skojarzenia, kolory, wyobraźnię, graficzne połączenia i słowa kluczowe. Można ją wykorzystywać m.in. do: planowania (np. prezentacji, wycieczki), wyrzucania myśli z głowy, generowania pomysłów, notowania.

                                              Ciężko jest przerobić cały materiał w tak krótkim czasie. Przydają się znajomość skrótów klawiaturowych: w systemie Windows, przeglądarce oraz XMind.

                                              Źródła

                                              Obrazek nagłówka

                                              Obrazki

                                              Mapy myśli, czyli nowa umiejetność

                                              przez Karol Bocian | 7 lutego, 2020

                                              Hej, pisałem, że chcę przetestować zdobywane umiejętności szybkiego uczenia się w praktyce. Wybrałem do tego celu naukę jazdy na rolkach, ale…

                                              Jazda na rolkach

                                              Muszę się przyznać, że już kiedyś próbowałem nauczyć się jeździć na rolkach, więc mam rolki :) Niestety, nie szło mi to najlepiej\, jednak pragnienie jeżdżenia jest we mnie tak duże, że powróciłem do tego tematu. Zabrałem się do tego tematu następująco:

                                              Niestety, okazało się, że garaż jest za mały, abym mógł rozwinąć skrzydła, a z przyswojonych lekcji nauczyłem się, że jazda po wilgotnej nawierzchni jest bardzo niebezpieczna. Wobec powyższego nauka jazdy na rolkach została przełożona na cieplejsze miesiące 🙂

                                              Inna umiejętność

                                              Zdecydowałem, że nauczę się zatem czegoś innego. Zebrałem Wasze komentarze dotyczące umiejętności do nauczenia się w 5 godzin. Za wszystkie komentarze bardzo dziękuję! Zaproponowaliście w nich:

                                              • Pływanie
                                              • Jazda na rolkach
                                              • Granie na instrumencie
                                              • Gotowanie
                                              • Rysowanie
                                              • Tańczenie
                                              • Granie na konsolecie DJ i zgrywanie utworów na słuch
                                              • Jazda na nartach
                                              • Jazda na łyżwach
                                              • Robienie wzorków na kawie
                                              • Składanie origami
                                              • Rozwiązywanie sudoku w mniej niż 5 minut
                                              • Tworzenie grafik w programie xyz

                                              Z tego wszystkiego najbardziej podoba mi się pomysł (oprócz jazdy na rolkach i gotowania wątróbki z sercami) nauki rysowania. Trochę go sprecyzuję i rozwinę, aby był dla mnie jak b najbardziej atrakcyjny. Poświęcę 5 godzin na naukę rysowania map myśli. Co o tym myślicie?

                                              Rysowanie map myśli

                                              Podczas nauki skorzystam z poznanych technik:

                                              Dzień

                                              Czas (minuty)

                                              Temat

                                              1 (2019-12-31)

                                              0-29

                                              Zebranie materiałów i rozłożenie ich w czasie

                                              29-30

                                              Przerwa na taniec

                                              30-55

                                              Nauka właściwa

                                              55-60

                                              Podsumowanie nauki

                                              2 (2020-01-01)

                                              0-5

                                              Powtórka materiału

                                              5-8

                                              Plan nauki na dzisiaj

                                              8-29

                                              Nauka właściwa

                                              29-30

                                              Przerwa na taniec

                                              30-55

                                              Nauka właściwa

                                              55-60

                                              Podsumowanie nauki

                                              3 (2020-01-02)

                                              0-5

                                              Powtórka materiału

                                              5-8

                                              Plan nauki na dzisiaj

                                              8-29

                                              Nauka właściwa

                                              29-30

                                              Przerwa na taniec

                                              30-55

                                              Nauka właściwa

                                              55-60

                                              Podsumowanie nauki

                                              4 (2020-01-03)

                                              0-5

                                              Powtórka materiału

                                              5-8

                                              Plan nauki na dzisiaj

                                              8-29

                                              Nauka właściwa

                                              29-30

                                              Przerwa na taniec

                                              30-55

                                              Nauka właściwa

                                              55-60

                                              Podsumowanie nauki

                                              5 (2020-01-04)

                                              0-5

                                              Powtórka materiału

                                              5-8

                                              Plan nauki na dzisiaj

                                              8-29

                                              Nauka właściwa

                                              29-30

                                              Przerwa na taniec

                                              30-60

                                              Podsumowanie nauki

                                              A już jutro: czas start!

                                              Źródła

                                              Obraz główny

                                              Obrazy

                                              Metoda Pałacu pamięci – powtórka

                                              przez Karol Bocian | 8 lutego, 2020

                                              Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                              Przeczytaj jeszcze raz tekst: Metoda Pałacu pamięci

                                              Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                              /3
                                              9
                                              Utworzono Przez Karol Bocian

                                              Test - Metoda Pałacu pamięci

                                              Cześć!
                                              Podaj proszę swoje imię i e-mail.
                                              Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                              1 / 3

                                              Czy metoda Pałacu pamięci ma wady?

                                              2 / 3

                                              Na czym polega metoda Pałacu pamięci?

                                              3 / 3

                                              Jakie powinny być skojarzenia w metodzie Pałacu pamięci?

                                              Twój wynik to

                                              Średni wynik to 44%

                                              0%

                                              Notepad++

                                              przez Karol Bocian | 1 maja, 2020

                                              Notepad++

                                              Notepad++ jest zaawansowanym i darmowym notatnikiem. Instaluję go na każdym komputerze, którego używam. Umożliwia otworzenie wielu plików jednocześnie, formatowanie kodu, łatwe wyszukiwanie i zamienianie w wielu plikach, spisywanie notatek bez zapisywania pliku na dysk.

                                               

                                              Rozszerzenia — wtyczki

                                              Jego funkcjonalność można rozszerzać poprzez zainstalowanie pluginów. Dostępnych jest bardzo dużo darmowych wtyczek. Ja używam następujących:

                                              Wszystkie posty związane z narzędziami:

                                                Źródła

                                                Obraz główny:

                                                Obrazy:

                                                Materiały:

                                                Metoda Walenia – powtórka

                                                przez Karol Bocian | 8 lutego, 2020

                                                Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                Przeczytaj jeszcze raz tekst: Metoda Walenia

                                                Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                0%
                                                3
                                                Utworzono Przez Karol Bocian

                                                Test - Metoda Walenia

                                                Cześć!
                                                Podaj proszę swoje imię i e-mail.
                                                Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                1 / 3

                                                Z jakich elementów składa się kartka w metodzie Cornella (można ją wykorzystać w metodzie Walenia)?

                                                2 / 3

                                                Z czego skorzystać w dobrej notatce w metodzie Walenia?

                                                3 / 3

                                                Na czym polega metoda Walenia?

                                                Twój wynik to

                                                Średni wynik to 66%

                                                0%

                                                Metoda Króla boksu – powtórka

                                                przez Karol Bocian | 8 lutego, 2020

                                                Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                Przeczytaj jeszcze raz tekst: Metoda Króla boksu

                                                Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                /2
                                                5
                                                Utworzono Przez Karol Bocian

                                                Test - Metoda Króla boksu

                                                Cześć!
                                                Podaj proszę swoje imię i e-mail.
                                                Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                1 / 2

                                                Na czym polega przeplatanie materiału w metodzie Króla boksu?

                                                2 / 2

                                                Na czym polega metoda Króla boksu?

                                                Twój wynik to

                                                Średni wynik to 90%

                                                0%

                                                Metoda Majstersztyku – powtórka

                                                przez Karol Bocian | 8 lutego, 2020

                                                Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                Przeczytaj jeszcze raz tekst: Metoda Majstersztyku

                                                Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                0%
                                                4
                                                Utworzono Przez Karol Bocian

                                                Test - Metoda Majstersztyku

                                                Cześć!
                                                Podaj proszę swoje imię i e-mail.
                                                Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                1 / 3

                                                Jaki powinien być poziom notatek w metodzie Majstersztyku?

                                                2 / 3

                                                Na czym polega metoda Majstersztyku?

                                                3 / 3

                                                W jaki sposób przerabiać materiał metodą Majstersztyku?

                                                Twój wynik to

                                                Średni wynik to 50%

                                                0%

                                                Chocolatey, czyli prosta instalacja programów na Twoim komputerze

                                                przez Karol Bocian | 16 maja, 2024

                                                czekolada

                                                Instalacja programów na Twoim komputerze

                                                Zakup nowego komputera, sformatowanie dysku albo wdrożenie nowej osoby do zespołu wiąże się z zainstalowaniem nowego oprogramowania. Kilka lat temu znalazłem narzędzie, które pozwala mi pobrać z internetu jeden instalator zawierający wiele aplikacji. Niedawno znalazłem jeszcze lepsze narzędzie. Jest to Chocolatey.

                                                Instalowanie nowego oprogramowania składa się z następującymi krokami:

                                                • Znalezienie i ściągnięcie instalatora.
                                                • Zainstalowanie programu (przeklikanie się przez wszystkie ekrany).
                                                • Wybranie odpowiednich opcji i uniknięcie zainstalowania niepotrzebnych programów i wtyczek.
                                                • Zaakceptowanie regulaminów.
                                                • Skonfigurowanie aplikacji.

                                                Jak ułatwić sobie przechodzenie tych kroków i sprawić, abyśmy w łatwy sposób mieli na swoim komputerze wszystkie potrzebne aplikacje? Spróbujmy rozwiązać ten problem.

                                                Problem

                                                Jak szybko zainstalować zestaw aplikacji? Jak ławo je później aktualizować?

                                                Rozwiązanie

                                                W poście https://jaroslawstadnicki.pl/2019/04/14/czekoladka-zamiast-pudelka/ poznałem narzędzie Chocolatey i skonfigurowałem pod siebie.
                                                Chocolatey to system podobny do paczek nugetowych. Instalujemy go (tutaj jest opis jak to zrobić: https://chocolatey.org/install albo tutaj https://chocolatey.org/docs/installation), a następnie w konsoli wpisujemy aplikację, którą chcemy pobrać (tutaj jest opis instalacji: https://chocolatey.org/docs/commands-install). Listę dostępnych aplikacji znajdziecie tutaj: https://chocolatey.org/packages. Niektóre aplikacje mają parametryzowany instalator. Warto się z nim zapoznać.

                                                Początek

                                                Moje rozwiązanie

                                                Instalacja

                                                W celu zainstalowania programów tworzę plik z rozszerzeniem .bat, w którym zapisuje komendy do zainstalowania Chocolatey i mojego zestawu aplikacji:

                                                set -x
                                                set -c
                                                set -o xtrace

                                                REM show info: -v –trace
                                                @”%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command “iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin”

                                                choco install notepadplusplus -y
                                                choco install chrome-remote-desktop-chrome -y
                                                choco install adobereader –params=”‘/NoUpdates:0′” -y
                                                choco install flashplayerplugin -y
                                                choco install flashplayeractivex -y
                                                choco install firefox -y
                                                choco install 7zip.install -y
                                                choco install git.install -y
                                                choco install putty.install -y
                                                choco install skype -y
                                                choco install dropbox -y
                                                choco install google-backup-and-sync -y
                                                choco install onedrive -y
                                                choco install onenote -y
                                                choco install sourcetree -y
                                                choco install dotnetcore -y
                                                choco install visualstudio2019community –params=”–no-includeRecommended –quiet –locale en-US” -y
                                                choco install visualstudio2019-workload-netcoretools -y
                                                choco install dotnetcore-sdk -y
                                                choco install xmind -y
                                                choco install activepresenter -y
                                                choco install f.lux -y
                                                choco install audacity -y
                                                choco install anki -y
                                                choco install freevideoeditor -y
                                                choco install autohotkey -y
                                                choco install screentogif -y
                                                choco install pdf24 -y
                                                choco install ffmpeg -y
                                                choco install fiddler -y
                                                choco install brave -y
                                                choco install postman -y
                                                choco install ditto -y

                                                 

                                                Plik ten uruchamiam z konsoli uruchomionej jako administrator. Niestety, nadal muszę skonfigurować samodzielnie wszystkie aplikacje.

                                                Aktualizacja

                                                Aktualizacja

                                                Co jakiś czas aktualizuję swoje aplikacje. Stworzyłem plik z rozszerzeniem .bat o zawartości:

                                                REM show info: -v –trace
                                                REM upgrade all:
                                                choco upgrade chocolatey -y
                                                choco upgrade all -y

                                                Uruchamiam go co jakiś czas przez kliknięcie go prawym przyciskiem myszy i wybranie: Run as administrator.

                                                Koniec

                                                Na koniec

                                                Ten post będzie służył mi jako poradnik do instalowania u siebie aplikacji w przyszłości. Będę więc aktualizował go o nowe aplikacje. Mam nadzieję, że Tobie również Chocolatey przypadnie do gustu.

                                                Wszystkie posty związane z narzędziami:

                                                  Źródła

                                                  Obraz główny:

                                                  • https://www.pexels.com/photo/chocolate-beside-raspberry-918328/

                                                  Obrazy:

                                                  • https://www.pexels.com/photo/code-coding-computer-data-574071/
                                                  • https://www.pexels.com/photo/brown-and-white-track-field-163444/
                                                  • https://www.pexels.com/photo/man-running-on-black-asphalt-road-1555354/

                                                  Materiały:

                                                  • https://chocolatey.org/
                                                  • https://chocolatey.org/packages
                                                  • https://jaroslawstadnicki.pl/2019/04/14/czekoladka-zamiast-pudelka/

                                                  Metoda Papugi – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Metoda Papugi

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  7
                                                  Utworzono Przez Karol Bocian

                                                  Test - Metoda Papugi

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 2

                                                  Jaki sposób robienia powtórek zaleca metoda Papugi?

                                                  2 / 2

                                                  Na czym polega metoda Papugi?

                                                  Twój wynik to

                                                  Średni wynik to 43%

                                                  0%

                                                  Metoda Zmiany miejsca – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Metoda Zmiany miejsca

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  4
                                                  Utworzono Przez Karol Bocian

                                                  Test - Metoda Zmiany miejsca

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 3

                                                  Jakie miejsca zaleca metoda Zmiany miejsca do nauki?

                                                  2 / 3

                                                  Jaka muzyka i jakie dźwięki, zgodnie z metodą Zmiany miejsca, są najlepsze do nauki?

                                                  3 / 3

                                                  Jak mózg, zgodnie z metodą Zmiany miejsca, uczy się w nowych miejscach ?

                                                  Twój wynik to

                                                  Średni wynik to 42%

                                                  0%

                                                  Metoda Tancerki – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Metoda Tancerki

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  7
                                                  Utworzono Przez Karol Bocian

                                                  Test - Metoda Tancerki

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 7

                                                  Na czym polega metoda Tancerki?

                                                  2 / 7

                                                  Czy powtarzać cały materiał w metodzie Tancerki?

                                                  3 / 7

                                                  Kiedy robić powtórki w metodzie Tancerki?

                                                  4 / 7

                                                  Czy powtarzać już idealnie znany materiał w metodzie Tancerki?

                                                  5 / 7

                                                  Która metoda wymaga mniej czasu do nauki: metoda Tancerki czy nauczenia się wszystkiego na raz?

                                                  6 / 7

                                                  Do czego można zastostować metodę Tancerki?

                                                  7 / 7

                                                  Metoda Tancerki to:

                                                  Twój wynik to

                                                  Średni wynik to 67%

                                                  0%

                                                  Metoda Fiszek – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Metoda Fiszek

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  3
                                                  Utworzono Przez Karol Bocian

                                                  Test - Metoda Fiszek

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 5

                                                  Co to jest fiszka?

                                                  2 / 5

                                                  Jakie są zalety fiszek?

                                                  3 / 5

                                                  Czy robić przerwę podczas nauki metodą Fiszek?

                                                  4 / 5

                                                  Czy potwarzać zapamiętane fiskzi?

                                                  5 / 5

                                                  Czy warto zastosować jakiś mechanizm (konkretny algorytm) przerabiania fiszek?

                                                  Twój wynik to

                                                  Średni wynik to 87%

                                                  0%

                                                  Metoda Testu zderzeniowego – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Metoda Testu zderzeniowego

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  19
                                                  Utworzono Przez Karol Bocian

                                                  Test - Metoda Testu zderzeniowego

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 3

                                                  Metoda Testu zderzeniowego polega na:

                                                  2 / 3

                                                  Do czego można stosować metodę Testu zderzeniowego?

                                                  3 / 3

                                                  Kiedy można zrobić test w metodzie Testu zderzeniowego?

                                                  Twój wynik to

                                                  Średni wynik to 42%

                                                  0%

                                                  Metoda Terminatora – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Metoda Terminatora

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  13
                                                  Utworzono Przez Karol Bocian

                                                  Test - Metoda Terminatora

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 3

                                                  Na kogo metoda Terminatora działa dobrze?

                                                  2 / 3

                                                  Na czym polega metoda Terminatora?

                                                  3 / 3

                                                  W nauce czego dobrze jest wykorzystać metodę Terminatora?

                                                  Twój wynik to

                                                  Średni wynik to 64%

                                                  0%

                                                  Metoda Ciekawskiego dziecka – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Metoda Ciekawskiego dziecka

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  9
                                                  Utworzono Przez Karol Bocian

                                                  Test - Metoda Ciekawskiego dziecka

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 5

                                                  Ile trwa nauka metodą Ciekaweskiego dziecka w porównaniu do kilkukrotnego czytania i zakreślania najważniejszych rzeczy?

                                                  2 / 5

                                                  Kto odpowiada na pytania?

                                                  3 / 5

                                                  Jakich pytań można używać?

                                                  4 / 5

                                                  Na czym polega metoda Ciekawskiego dziecka?

                                                  5 / 5

                                                  Jakie powinny być odpowiedzi w metodzie Ciekawskiego dziecka?

                                                  Twój wynik to

                                                  Średni wynik to 51%

                                                  0%

                                                  Ogólne wytyczne – powtórka

                                                  przez Karol Bocian | 8 lutego, 2020

                                                  Podczas nauki bardzo ważne jest, aby przypominać sobie poznaną wiedzę. Zapraszam Cię do powtórki materiału.

                                                  Przeczytaj jeszcze raz tekst: Ogólne wytyczne

                                                  Następnie wykorzystaj Metodę Testu zderzeniowego i podejdź do testu:

                                                  0%
                                                  7
                                                  Utworzono Przez Karol Bocian

                                                  Test - Ogólne wytyczne

                                                  Cześć!
                                                  Podaj proszę swoje imię i e-mail.
                                                  Jeżeli nie chcesz tego robić, możesz zrobić test jako nieznajomy. Kliknij po prostu strzałkę dalej 🙂

                                                  1 / 5

                                                  Jakie metody są proponowane jako najlepsze?

                                                  2 / 5

                                                  Który etap ma największy wpływ na trwałość zapamiętywania?

                                                  3 / 5

                                                  Jaki jest zalecany czas drzemki?

                                                  4 / 5

                                                  Jaki rodzaj wiedzy najlepiej jest przyswajać rano?

                                                  5 / 5

                                                  Jaki rodzaj wiedzy najlepiej jest przyswajać wieczorem?

                                                  Twój wynik to

                                                  Średni wynik to 63%

                                                  0%

                                                  Metanauka — proces DSSS Timothiego Ferrisa

                                                  przez Karol Bocian | 3 lipca, 2020

                                                  Tim Ferris w książce ,,4 godziny, by zostać mistrzem nie tylko w kuchni. Totalny poradnik jak osiągać nieprzeciętne wyniki w dowolnej dziedzinie’’ poświęcił rozdział ,,Metanuakua’’ zagadnieniu skutecznego i efektywnego uczenia się. Przedstawił w nim swój proces uczenia się, który nazwał DSSS. Nazwa jest akronimem słów: Dekonstrukcja, Selekcja, Sekwencja i Stawka.

                                                  DSSS (Dekonstrukcja, Selekcja, Sekwencja, Stawka)

                                                  Proces DSSS jest metodą nauki wiedzy deklaratywnej (fakty i liczby, proceduralnej (działania) oraz hybrydowej. Jej istotnym zagadnieniem jest Minimalna Skuteczna Dawka (MSD), czyli minimalny wybór takich elementów, działań i bodźców, które dają pożądany efekt. To skrajne wartości mają ogromne znaczenie. Warto więc szukać ludzi, którzy w nietypowy i niekonwencjonalny sposób osiągnęli sukces, ponieważ mogą oni znać drogę na skróty, w pozytywnym tego słowa znaczeniu — mieć wytrych do swojego ciała i umysłu. Istotne jest to, czego się uczymy, a nie jak się uczymy. Bardzo przydatna jest tutaj zasada Pareto – 20 działań przynosi 80% efektów i na tych 20 procentach należy się skupiać, jeżeli chcemy osiągnąć coś szybko.

                                                  Muszę przyznać, że Tim w swojej nauce często ,,oszukuje system’’. Owszem, uczy się szybko np. języków i po takiej nauce jest w stanie dogadać się z innymi osobami w nowo poznanym języku. Nie wiem jednak, czy jest w stanie zdać test albo napisać dyktando. Proces DSSS składa się z czterech poniższych elementów.

                                                  Książkę możesz kupić tutaj:

                                                  Dekonstrukcja

                                                  Dekonstrukcja polega na podzieleniu wiedzy na jak najmniejsze fragmenty. Można skorzystać z poniższych narzędzi:

                                                  Redukcja

                                                  Należy rozłożyć temat na czynniki pierwsze i podstawowe. Jest je łatwiej zrozumieć, a następnie połączyć w całość.

                                                  Wywiad

                                                  Wywiad polega na zebraniu wiedzy z pomocą ekspertów. Najpierw należy znaleźć ekspertów, a następnie zadać im pytania:

                                                  • Co jest najważniejsze w tym obszarze i jego nauce?
                                                  • Co jest najmniej ważne w tym obszarze i jego nauce?
                                                  • Co jest zbyteczne w tym obszarze i jego nauce?
                                                  • Czego najbardziej brakuje amatorom?
                                                  • Czego najbardziej brakuje profesjonalistom?
                                                  • Gdybyś miał uczyć się tego od zera w 24 h / tydzień / miesiąc od zera, to jak byś podszedł do nauki? Czego byś się uczył, jak i w jakiej kolejności?
                                                  • Jakie treningi są najbardziej zaskakujące i niesamowite, a przynoszą pozytywne rezultaty?
                                                  • Czy szkoliłeś kogoś, jak i czy powtórzył Twoje osiągnięcia?
                                                  • Co byś polecił, gdybyś miał uczyć się sam?
                                                  • Jakie są najpoważniejsze błędy i mity?
                                                  • Jakie kursy/ książki / materiały naukowe mógłbyś polecić?
                                                  • Co uważasz za największą stratę czasu podczas nauki tego?

                                                  Odwrócenie procesu

                                                  Odwrócenie procesu polega na zdekomponowaniu rozwiązania. Należy zastanowić się nad celem i stanem końcowy, a następnie zaobserwować, czym on się charakteryzuje, a potem cofać się, odejmując od stanu końcowego kolejne elementy, aż dojdzie się do stanu początkowego.

                                                  Translacja

                                                  Translacja, czyli przekształcenie nieznanej wiedzy w sposób umożliwiający jej połączenie ze znaną wiedzą. Kroki:

                                                  • Wybranie podstawowych, wyróżniających się elementów ze znanego obszaru wiedzy i oraz elementów podobnych / odpowiadających z obszaru wiedzy poznawanej.
                                                  • Przekształcenie elementów na najbardziej uniwersalne, np. przy nauce języka można wykorzystać konstrukcje z czasownikami posiłkowymi, które sprawiają, że nie trzeba uczyć się odmiany czasowników — np. Ja chcę / będę jeść. Ona chce/ będzie jeść.Ty chcesz / będziesz jeść. Wy chcecie / będziecie jeść.
                                                  • Słowo jeść jest ciągle w tej samej formie, odmieniane jest tylko słowo posiłkowe chcieć i być (w języku polskim należy odmieniać też i drugi czasownik, odmienianie tylko czasownika posiłkowego jest rusycyzmem, lecz powszechnie akceptowalnym).
                                                  • Znaleźć takie czasowniki posiłkowe — wytrychy – poznawania wiedzy w innych obszarach — nie jest to łatwe, ale znacząco zwiększa skuteczność nauki. Szukając wytrychów, można szukać podobieństw oraz różnic w obu obszarach i uczyć się na zasadzie: to jest podobne do tego, a to jest całkiem inne (kontrast).

                                                  Selekcja

                                                  Selekcja to wybranie najważniejszych elementów, na których należy się skupić. Można skorzystać z metody Pareto – 20% działań przynosi 80% efektów. Istotne jest odkrycie MSD — minimalnej skutecznej dawki i robienie tylko tego, czyli robienie tyle, ile trzeba, a nie tyle, ile się da!

                                                  Sekwencja

                                                  Sekwencja polega ułożeniu planu przyswajania wiedzy. Kolejne lekcje mogą wykorzystywać wiedzę zdobytą wcześniej, uzupełniać i dobudowywać do niej kolejne pokoje pałacu wiedzy! Powinny być ułożone w logicznej sekwencji. Lekcje, przede wszystkim te pierwsze, powinny być łatwe, budzić zainteresowanie, a nie strach.

                                                  Lekcje można uporządkować w kolejności odwrotnej, niż wygląda zastosowanie tej wiedzy w praktyce. Na przykład naukę gry w szachy możemy rozpocząć od ustawienia przedostatniej pozycji figur. Tak możemy nauczyć się wygrywać takie pozycje. Następnie możemy ułożyć sytuacje dwa ruchy przed wygraną, aby nauczyć się dochodzić do pozycji jeden ruch do wygranej, którą już potrafimy wygrać. Wykorzystuję to technikę przyswajania wiedzy w skali mikro (pojedynczy układ), rozszerzaną stopniowo do skali makro (rozegranie całej gry).

                                                  Można skorzystać z takiego procesu:

                                                  1. Zacząć od końca — czego uczą się obecnie profesjonaliści.
                                                  2. Znaleźć elementy jawne (zalecane na szkoleniach i kursach) oraz ukryte (zawodowcy robią to nieświadomie, nikt o tym nie mówi, a jest to bardzo ważne).
                                                  3. Znaleźć obszary, które można rozwinąć najszybciej (będą pierwsze sukcesy w nauce), które mocno popychają do przodu.
                                                  4. Znaleźć punkty idealny, czyli grupę elementów znajdujących się na przecięciu trzech okręgów: cech wspólnych mistrzów, elementów rzadko nauczanych, własnych atutów.

                                                  Stawka

                                                  Stawka to cena i konsekwencja osiągnięcia celu oraz porażki. W celu zwiększenia prawdopodobieństwa oraz motywacji można:

                                                  • Ogłosić światu, że zamierzamy osiągnąć coś, do danego dnia.
                                                  • Założyć się z kimś (może być ze sobą), że stracimy coś, gdy nie osiągniemy celu (reputację, pieniądze, przyjaźń).
                                                  • Zagrać w grę, gdzie wygraną jest osiągnięcie sukcesu.

                                                  Cel, który nie wiąże się z konsekwencjami, jest tylko życzeniem.

                                                  KCK — Kompresja, Częstotliwość, Kodowanie

                                                  Kompresja

                                                  Należy skompresować wiedzę, zmniejszyć jej rozmiar. Robi się to przez zastosowanie reguły Pareto – 20% wiedzy daje 80% rezultatów. Trzeba coś wybrać, a z reszty zrezygnować. Wybrane rzeczy są upraszczane i jeszcze trochę odchudzane. Rzeczy najważniejsze przedstawiane zostają na jednej stronie A4.

                                                  Częstotliwość

                                                  Trzeba ustalić, jak często i w jaki sposób materiał będzie przyswajany. Określany zostaje MSD (minimalna skuteczna dawka).

                                                  Planowanie obejmuje:

                                                  • Terminy nauki.
                                                  • Rzeczy do nauczenia,
                                                  • Przerwy między nauką — dobrze jest korzystać z techniki Pomodoro, aby mózg odpoczywał i wykorzystywany był efekt świeżości (dobrze zapamiętujemy elementy na początku sesji nauki) oraz końca (dobrze zapamiętujemy elementy na końcu sesji nauki) – im więcej sesji nauki, tym lepiej (sesje zbyt krótkie mogą nie mieć sensu).
                                                  • Działania podczas przerw (spacer, taniec, przysiady, sport, uzupełnienie płynów, bieg do toalety).
                                                  • Urozmaicania nauki — jeżeli w połowie sesji nauki dodamy coś ciekawego i zaskakującego, to wykorzystamy efekt von Restoff — nasze możliwości zapamiętywania chwilowo wzrosną, a mózg na nowo się pobudzi.

                                                  Nasze ciało i mózg ma ograniczenia fizyczne, więc nie jesteśmy w stanie uczyć się nieprzerwanie wciąż z dużą skutecznością. Czasami będziemy mieli również gorsze dni. Rzuć okiem na metodę Tancerki.

                                                  Kodowanie

                                                  Kodowanie polega na wykorzystaniu różnych metod i technik (m.in. mnemotechnik) do zapamiętywania materiału. Można łączyć nowy materiał ze starym, wykorzystywać gesty, akronimy, metodę Pałacu pamięci.

                                                  Ciekawostka:

                                                  Na stronie: https://tim.blog/the-4-hour-chef-24-skills-in-48-hours/ znajdują się przydatne umiejętności, które można nabyć w 48 godzin. Poniżej zamieszczam te, które uważam za najważniejsze (sam chętnie je przyswoję):

                                                  Książkę możesz kupić tutaj:

                                                  Źródła:

                                                  • ,,4 godziny, by zostać mistrzem nie tylko w kuchni. Totalny poradnik jak osiągać nieprzeciętne wyniki w dowolnej dziedzinie” – Timothy Ferris, Warszawa 2018, Laurum.

                                                  Obrazki:

                                                  Obrazek nagłówka: