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

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

                                      2 / 10

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

                                      3 / 10

                                      Na czym polega metoda Nauczyciela?

                                      4 / 10

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

                                      5 / 10

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

                                      6 / 10

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

                                      7 / 10

                                      Jakie powinny być odpowiedzi w metodzie Ciekawskiego dziecka?

                                      8 / 10

                                      Na czym polega metoda Papugi?

                                      9 / 10

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

                                      10 / 10

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

                                      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

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

                                      2 / 3

                                      Co należy robić podczas uczenia się metodą 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 Ciekawskiego dziecka?

                                      2 / 13

                                      Na czym polega metoda Terminatora?

                                      3 / 13

                                      Na czym polega metoda Pałacu pamięci?

                                      4 / 13

                                      Na czym polega metoda Papugi?

                                      5 / 13

                                      Na czym polega metoda Majstersztyku?

                                      6 / 13

                                      Na czym polega metoda Tancerki?

                                      7 / 13

                                      Na czym polega metoda Króla boksu?

                                      8 / 13

                                      Na czym polega metoda Zmiany miejsca?

                                      9 / 13

                                      Na czym polega metoda Walenia?

                                      10 / 13

                                      Na czym polega metoda Nauczyciela?

                                      11 / 13

                                      Na czym polega metoda Testu zderzeniowego?

                                      12 / 13

                                      Na czym polega metoda Fiszek?

                                      13 / 13

                                      Na czym polega metoda Imersji?

                                      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

                                      Na czym polega metoda Pałacu pamięci?

                                      2 / 3

                                      Czy metoda Pałacu pamięci ma wady?

                                      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

                                        Na czym polega metoda Walenia?

                                        2 / 3

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

                                        3 / 3

                                        Z czego skorzystać w dobrej notatce w metodzie 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

                                          Na czym polega metoda Papugi?

                                          2 / 2

                                          Jaki sposób robienia powtórek zaleca 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

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

                                          2 / 3

                                          Jakie miejsca zaleca metoda Zmiany miejsca 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

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

                                          2 / 7

                                          Na czym polega metoda Tancerki?

                                          3 / 7

                                          Kiedy robić powtórki w metodzie Tancerki?

                                          4 / 7

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

                                          5 / 7

                                          Metoda Tancerki to:

                                          6 / 7

                                          Do czego można zastostować metodę Tancerki?

                                          7 / 7

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

                                          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

                                          Czy potwarzać zapamiętane fiskzi?

                                          2 / 5

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

                                          3 / 5

                                          Czy robić przerwę podczas nauki metodą Fiszek?

                                          4 / 5

                                          Co to jest fiszka?

                                          5 / 5

                                          Jakie są zalety 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

                                          W nauce czego dobrze jest wykorzystać metodę Terminatora?

                                          3 / 3

                                          Na czym polega metoda 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

                                          Kto odpowiada na pytania?

                                          2 / 5

                                          Jakie powinny być odpowiedzi w metodzie Ciekawskiego dziecka?

                                          3 / 5

                                          Na czym polega metoda Ciekawskiego dziecka?

                                          4 / 5

                                          Jakich pytań można używać?

                                          5 / 5

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

                                          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

                                          Jaki jest zalecany czas drzemki?

                                          2 / 5

                                          Jaki rodzaj wiedzy najlepiej jest przyswajać rano?

                                          3 / 5

                                          Jaki rodzaj wiedzy najlepiej jest przyswajać wieczorem?

                                          4 / 5

                                          Jakie metody są proponowane jako najlepsze?

                                          5 / 5

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

                                          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:

                                          Podsumowanie przebiegu projektu: Nauka nowoczesnego uczenia się

                                          przez Karol Bocian | 14 lutego, 2020

                                          Cześć, za mną pierwsza połowa mojego 30-dniowego mini projektu, podczas którego uczę się skutecznego uczenia się.

                                          W ramach tego projektu napisałem następujące posty:

                                          Dzisiaj powtarzam w pierwszej serii wszystkie opisane przeze mnie metody. Wiąże się to też z poprawianiem opublikowanych postów (aby zmusić mózg do większego wysiłku i zastanawiać się, czy zapisane tam informacje mają sens).

                                          W ramach tego projektu chcę poświęcić 5 godzin na naukę dowolnego obszaru, w którym będę mógł w praktyce wykorzystać przyswojone informacje. Czy mógłbyś mi pomóc znaleźć taki obszar?

                                          Napisz, proszę, w komentarzu, Czego mogę nauczyć się w 5 godzin w celu praktycznego wykorzystania technik skutecznego uczenia się?

                                          Źródła:

                                          Podsumowanie Metod skutecznego uczenia się

                                          przez Karol Bocian | 7 lutego, 2020

                                          Podsumowanie

                                          Zakończyłem przerabianie książki Włam się do mózgu – Radek Kotarski (*). W tym poście przypomnę je wszystkie.

                                          1. Metoda Ciekawskiego dziecka — Metoda Ciekawskiego dziecka polega na zadawaniu pytań wyjaśniających sens informacji do zapamiętania oraz samodzielne poszukiwanie tej odpowiedzi (m.in. w materiałach do nauki).
                                          2. Metoda Terminatora — Metoda Terminatora polega na zamienianiu zdobywanej wiedzy w działanie — stosowanie jak najszybciej wiedzy w praktyce.
                                          3. Metoda Testu zderzeniowego — Metoda Testu zderzeniowego polega na praktycznym przetestowaniu (np. testem może być egzamin) swojej wiedzy. Testy wykonujemy jak najczęściej, podczas powtórek oraz samej nauki.
                                          4. Metoda Fiszek — Metoda Fiszek  polega na wykorzystaniu w nauce małych karteczek. Na jednej stronie karteczki jest pytanie, słowo w jednym języku lub obrazek, a na drugiej stronie jest poprawna odpowiedź, tłumaczenie lub wyjaśnienie.
                                          5. Metoda Tancerki — Metoda Tancerki polega na mądrym rozłożeniem nauki w czasie, czyli na podzieleniu materiału do nauki na mniejsze części, rozłożenie go w dłuższym czasie (np. co kilka dni) oraz przypominanie sobie już przyswojonego materiału (np. co kilka dni).
                                          6. Metoda Zmiany miejsca — Metoda Zmiany miejsca polega na zmienianiu miejsca swojej nauki (zmienianie bodźców, dźwięków, świateł, otoczenia, godzin nauki).
                                          7. Metoda Papugi — Metoda Papugi polega na wielokrotnym, ale stymulującym (wykorzystującym emocje, pobudzenie, zaskakiwanie umysłu) powtarzaniu przyswajanego materiału.
                                          8. Metoda Majstersztyku — Metoda Majstersztyku polega na przeorganizowanie i przerobieniu zdobywanej wiedzy i materiałów w taki sposób, aby samemu zrobić z tego najlepszy podręcznik na świecie.
                                          9. Metoda Króla boksu — Metoda Króla boksu polega na przeplataniu różnych ćwiczeń i mocnym zróżnicowaniu nauki.
                                          10. Metoda Walenia — Metoda Walenia polega na wykonywaniu dobrych i przemyślanych notatek.
                                          11. Metoda Pałacu pamięci — Metoda Pałacu polega na wyobrażeniu sobie znanego budynku i poruszaniu się po nim w obrany sposób wchodząc do kolejnych pomieszczeń zawierających przedmioty skojarzone z zapamiętywanym materiałem.
                                          12. Metoda Imersji — Metoda Imersji polega na częściowym zanurzeniu się w nowym materiale i uczeniu się go mimowolnie (nieświadomie).
                                          13. Metoda Nauczyciela — Metoda Nauczyciela polega na wejście w rolę nauczyciela uczącego i tłumaczącego materiał sobie lub innym.

                                          Źródła:

                                          Linki oznaczone (*) są linkami afiliacyjnymi.

                                          Metoda Nauczyciela

                                          przez Karol Bocian | 7 lutego, 2020

                                          Metoda Nauczyciela — skrót

                                          Metoda Nauczyciela polega na wejście w rolę nauczyciela uczącego i tłumaczącego materiał sobie lub innym.

                                          Zastosowanie: do wszystkiego.

                                          Opis

                                          Metoda nauczyciela to metoda, w której należy tłumaczyć i uczyć siebie oraz innych. Wymusza ona skupienie się na materiale, osadzanie go w swoim świecie (łączeniu ze znanymi rzeczami), wyciągnięcia wniosków, powiązań i skojarzeń, przykładów (patrz metoda Walenia – https://karolbocian.pl/blog/2019/12/05/metoda-walenia/).

                                          Metodę nauczyciela można stosować na przykład w taki sposób:

                                          • Po zapoznaniu się z fragmentem materiału, można wyjaśnić na głos, jak go rozumiemy i co dla nas to wszystko znaczy.
                                          • Po nauczeniu się całego obszaru, możemy nauczyć tego kogoś z naszych bliskich: rodziców, partnera, dzieci, rodzeństwo.
                                          • Po nauczeniu się całego obszaru, możemy zrobić z tego szkolenie przed kolegami z pracy, uczelni, etc.
                                          • Podczas uczenia innych, zastanawiamy się, czy to, co przekazujemy, ma sens. Znajdujemy wtedy luki w naszej wiedzy / rozumowaniu i źródła problemu (patrz metoda Żółtej kaczuszki – https://pl.wikipedia.org/wiki/Metoda_gumowej_kaczuszki). Nawet jak pozna się dobre rozwiązanie i z jego pomocą przeanalizuje błędne rozumowanie, to:
                                          • po pierwsze: dojdzie się do sedna problemu,
                                          • po drugie: w przyszłości lepiej rozwiąże się takie zadanie.
                                          • Analizować dobrze rozwiązane zadania — na głos wyjaśniać kolejne kroki dotarcia do poprawnego rozwiązania.

                                          Uwagi

                                          • Jeżeli podczas wyjaśniania, widać lub czuć, że nauczający czegoś nie rozumie, może jeszcze raz zapoznać się z materiałem.
                                          • Tworzenie wytłumaczeń działania danej metody jest super skutecznym sposobem jej nauki. Nie wystarczy podstawić do wzoru, trzeba wiedzieć, dlaczego należy to zrobić.
                                          • Wpływ na posiadaną wiedzę ma moment przygotowywania się do uczenia innych oraz samo uczenie innych (przygotowanie do lekcji i prowadzenie lekcji).
                                          • Ucząc się, miej w głowie, że będziesz kogoś musiał tego nauczyć.
                                          • Nie musisz uczyć innych, możesz uczyć siebie!
                                          • Analizuj i szukaj wyjaśnień zdobywanej wiedzy: dlaczego, po co, jak?
                                          • Szukaj błędów w rozumowaniu: podważaj!

                                          Praktyka

                                          A teraz do dzieła! Wstań, znajdź, moja droga ofiaro, swoją pierwszą ofiarę, której przekażesz, na czym polega metoda Nauczyciela. A polega ona na uczeniu siebie i innych poznawanego materiału, wyjaśnianiu go, analizowaniu, szukaniu skojarzeń i przykładów oraz błędów w rozumowaniu.

                                          Czy nauczyłem Cię czegoś ciekawego?

                                          Źródła:

                                          Linki oznaczone (*) są linkami afiliacyjnymi.

                                          Wtyczki do Visual Studio

                                          przez Karol Bocian | 1 maja, 2020

                                          W Visual Studio używam następujących wtyczek:

                                          Niektóre z powyższych wtyczek poznałem dzięki kursowi: https://visualstudio.plawgo.pl/?menu, który serdecznie polecam. Znajdziecie tam bardziej szczegółowy opis wspomnianych wyżej narzędzi i kilka innych ciekawostek.

                                          Wszystkie posty związane z narzędziami:

                                            Źródła: