Kategorie
Uncategorized

Bezpieczeństwo aplikacji webowych: Najważniejsze aspekty i techniki

Cześć!

Chyba nie trzeba wspominać, jak ważne jest bezpieczeństwo użytkowników w internecie. Takie dane poufne jak imię i nazwisko razem z naszymi numerami kart kredytowych czy hasłami do banków jeśli wpadną w niepowołane ręce, mogą spowodować wiele problemów czy też nieprzyjemności. Ale jak i z czym to się je ‘cyber security’?


Przyjrzyjmy się najważniejszym aspektom w bezpieczeństwie aplikacji:

  1. Autentykacja i zarządzanie tożsamością
    Autentykacja użytkowników może opierać się na wielu elementach, które będą niezbędne w uwierzytelnianiu: logowanie za pomocą haseł złożonych, logowanie za pomocą tokenów, dwuetapowa autentyfikacja — to wszystko ma nam pozwolić na to, żebyśmy bezpiecznie mogli zalogować się na swoje konta w bankach czy socjalach.
  2. Ochrona przed atakami XSS
    Ataki XSS to takie ataki, w których złośliwy kod js jest wstrzykiwany na stronie, przez co może wywołać wiele szkód. Ważnym elementem takiego zapobiegania tej podatności jest, aby strona, która przeglądamy, korzystała z CSP, czyli Content Security Policy i dobrze filtrowała dane wejściowe i wyjściowe.
  3. CSRF — ataki i jak się przed nimi bronić
    Te ataki polegają na tym, że za pomocą konta użytkownika w jego imieniu publikujemy za jego „zgodą” niechciane treści. Takimi atakami są na przykład włamywanie się na skrzynkę na Facebooku i wysyłanie automatycznych wiadomości do znajomych z prośbą o blika (płatność) 😉 
  4. Bezpieczeństwo bazy danych
    To jest to, co najbardziej kojarzy nam się z zabezpieczaniem danych, czyli zabezpieczenie danych, które są w naszych bazach. Ileż to się słyszy o wycieku danych klientów znanych korporacji… To właśnie na skutek nieodpowiedniej ochrony właśnie takich danych. 
  5. Aktualizacje i łatki (patche)
    Dobrym aspektem zabezpieczenia się przed niechcianymi atakami jest po prostu…aktualizacja wersji oprogramowania na stronach czy w aplikacjach. Jest to bardzo ważne, poniewaz kiedy korzystamy z jakiegoś oprogramowania, ono wciąż jest uaktualniane o nowe funkcjonalności pod względem bezpieczeństwa np. w przypadku, gdy pojawią się coraz to nowsze sposoby na kradzież danych.
  6. Audyt bezpieczeństwa
    Ważne jest regularne przeprowadzanie audytu bezpieczeństwa aplikacji tak samo jak jej testowanie czy też samo projektowanie aplikacji.

    Czasami gdy czytamy o sposobach, na jakie można pozyskać nasze dane czy jakie sposoby mają hakerzy, może nas rozboleć głowa… Ale spokojnie! ‘Cyber Security‘ to branża, która rozwija się bardzo intensywnie, a my sami musimy być po prostu ostrożni w internecie 🙂
Kategorie
Uncategorized

Działania na pętli ‘for’ – przykłady w JavaScript


Pętle w dowolnym języku programowania to rzecz, bez której ani rusz. Można powiedzieć, że programista bez pętli jest jak żołnierz bez karabinu… albo uczeń bez jedynki.

W dzisiejszym poradniku chcielibyśmy pokazać wam podstawy działań na pętli. Ale nie będą to przykłady typu:  

for (let i = 0; i < 5; i++) {
  console.log(i);
}

…Nauka programowania jest trochę jak nauka matematyki: widzi i rozwiązuje się przy tablicy proste przykłady, a potem nagle dostajemy od życia na głowę jakieś skomplikowane działania, przez które nie możemy przebrnąć.

Przejdźmy więc do pierwszego przykładu:

const obj = { miasto: 'Poznań', city: 'Województwo wielkopolskie' };
for (let key in obj) {
  console.log(key + ': ' + obj[key]);
}

Mamy tu zwykłą pętlę for. Iteruje się ona po każdym z elementów wypisując tylko console. log. Nic nam nie zwraca.

A jakbyśmy ją trochę „upiększyli”? Co może nam w ogóle robić taka pętla, do czego może nam służyć?
Np. do tego:

const wojewodztwa = [
'Województwo dolnośląskie',
    'Województwo kujawsko-pomorskie',
    'Województwo lubelskie',
    'Województwo lubuskie',
    'Województwo łódzkie',
    'Województwo małopolskie',
    'Województwo mazowieckie',
    'Województwo opolskie',
    'Województwo podkarpackie',
    'Województwo podlaskie',
    'Województwo pomorskie',
    'Województwo śląskie',
    'Województwo świętokrzyskie',
    'Województwo warmińsko-mazurskie',
    'Województwo wielkopolskie',
    'Województwo zachodniopomorskie'
];
miasta = [
    {miasto: 'Bydgoszcz', wojewodztwo: 'Województwo kujawsko-pomorskie'},
    {miasto: 'Poznań', wojewodztwo: 'Województwo wielkopolskie'},
    {miasto: 'Warszawa', wojewodztwo: 'Województwo mazowieckie'}
];

function stworzSpisMiastWWojewodztwach() {
const spis = []
    for (let wojewodztwo of wojewodztwa) {
      const object = {
        wojewodztwo: wojewodztwo,
        miasta: []
      }
      for (let miasto of miasta) {
        if (miasto.wojewodztwo === wojewodztwo) {
          console.log('pasuje', miasto.miasto)
          object.miasta.push(miasto)
        }
      }
      spis.push(object)
    }
    console.log('spis', spis)
}

Ok, a tak właściwie co tu się dzieje? Krótko mówiąc, mamy tu pętlę w pętli. Najpierw patrzymy po kolei na wszystkie województwa i każdemu z nich się przyglądamy, a potem na warsztat bierzemy po kolei każde miasto w odniesieniu do województwa. Czy dane miasto leży w danym województwie? Jeśli tak — wepchniemy to miasto do specjalnego obiektu, który reprezentuje nam w spisie jedno województwo. Tak jak widzicie, mamy w tym obiekcie napisaną nazwę województwa i tablicę ze wszystkimi miastami.
Na koniec wszystkie takie województwa wypychamy, do jednej tablicy otrzymując pełny, ładny spis.
Uf.
Nie musicie tego ogarniać już teraz. Ale zauważcie, że w przypadku pętli for mamy jedno znaczące słówko, bez którego by się to nie odbyło:


Dokładnie. of pomaga nam się literować po konkretnej treści tego obiektu, a nie indeksie. Gdybyśmy napisali coś takiego:

 for (let wojewodztwo in wojewodztwa) {
      console.log(wojewodztwo);
    }

Otrzymalibyśmy wypisanie w konsoli numerów od 0 do 15, czyli wypisałoby nam indeksy poszczególnych elementów w tablicy.

A jeśli wypiszemy taki kod, jak jest powyżej otrzymamy wynik:


To, co właśnie zrobiliśmy, to pętla zagnieżdżona 🙂

Kategorie
Uncategorized

Rozwiązywanie problemów programistycznych: Strategie i podejście

Cześć!

Zajmiemy się dzisiaj rozwiązywaniem problemów, czyli odwieczną bolączką programistów. Nie jest tajemnicą, że ponad 50% pracy programisty to rozwiązywanie problemów 😉 Zwłaszcza takich, które stworzył ktoś inny, ale zdarza się też, że debugujemy własny kod… Niestety, rozwiązywanie problemów programistycznych to odwieczny problem. Na szczęście, istnieje wiele technik, dzięki którym ułatwisz sobie pracę nad dowolnym problemem 🙂


1. Rozbicie problemu na pierwsze części
Często zadania, jakie przed Tobą stoją, mogą być trudne do rozwiązania jako całość. Najlepiej przyjrzeć się wtedy problemowi i popatrzeć na niego jak na jednostkę -> rozbić na części pierwsze. Możesz zidentyfikować kluczowe kroki, funkcje lub moduły, aby ogarnąć, gdzie leży problem.

2. Debugowanie za pomocą kaczuszki
Sposób stary jak IT: wytłumaczenie komuś, co właściwie dzieje się z kodem, jak on działa i co próbujemy zrobić. Inna zasada takiego debugowania jest określenie 3 kroków:
a) co próbujemy zdziałać?
b) co dokładnie nie działa, w czym jest problem?
c) jakie są możliwe rozwiązania tego problemu?

Dzięki temu łatwiej nam będzie zrozumieć, co dokładnie ma robić ten kod.

3. Rozbicie kodu na części „po kolei”
Czyli zakomentowanie całego kodu i odkomentowanie po kawałeczku, by sprawdzić, w którym fragmencie kodu problem występuje. Nauczyłem się tego sposobu w swojej pierwszej pracy jako programista. To dość słuszna metoda pozwalająca nam określić, w którym kawałku kodu coś ewidentnie „nie zatrybiło” 😉

4. Kreatywne myślenie i eksperymentowanie
Gdy mamy przed sobą jakiś problem, często jesteśmy ‘zafiksowani’ na punkcie jednego rozwiązania, które ewidentnie nie działa. Może warto spróbować podejść problem od innej strony, może nie to o czym myślimy jest problemem? Wbrew pozorom programowanie to bardzo kreatywna dziedzina 😉

5. Optymalizacja i planowanie
Ta część bardziej odnosi się do tego, jak zapobiegać takim problemom. Ważne jest to, by nie iść na żywioł i zaplanować dokładnie, jak ten kod ma wyglądać. Ważna jest też optymalizacja kodu pod względem jego czystości: Odpowiednio napisany kod, który jest czytelny i przejrzysty, zapobiega takim błędom.

Ważne jest nie tylko samo rozwiązywanie problemów, ale debugowanie i zapobieganie im, o czym pisałem w jednym z poprzednich artykułów. Debugowanie kodu może być trudne, ale ‘problem solving’ zaowocuje nie tylko w postaci bycia dobrym programistą, ale i byciem osobą, która na co dzień nie ma problemu z decyzyjnością i rozwiązywaniem problemów dnia codziennego 🙂

Kategorie
Uncategorized

Bazy danych i SQL: Podstawy zarządzania danymi

Cześć!

Dzisiaj zrobimy sobie krótkie wprowadzenie do bazy danych i języka SQL, bowiem często bywa tak, że bez nich ani rusz 🙂 Więc czym są te tajemnicze bazy danych i w ogóle to wszystko, co się z tym wiąże?

Bazy danych to inaczej środowiska, w których dane są przechowywane. Najczęściej pod postacią tabel lub list. Bazy służą też do zarządzania tymi danymi, zmieniania ich, więc nie tylko do przechowywania. Ale jak się organizować z tymi danymi? I tu przychodzi nam z pomocą język SQL.
SQL (Structured Query Language) to prosty język zapytań do bazy danych, którym możemy dowolnie manipulować danymi. Jest używany do komunikacji z bazami danych. Ale zanim przejdziemy do podstaw SQL, przyjrzyjmy się podstawowym pojęciom związanym z bazami danych.

1. Baza danych
Wg. Definicji Baza danych to zbiór powiązanych informacji przechowywanych w uporządkowany sposób. Może zawierać tabele, relacje, indeksy i inne struktury danych. Mogą być one zorganizowane na różne sposoby, na przykład hierarchicznie lub listowo. 

2. Tabela

Tabela to struktura danych, która przechowuje dane za pomocą kolumn i wierszy. Tabela zawiera kolumny, które definiują, jakie dane znajdują się w tabelce i jakiego typu, a wiersze — rekordy tabeli, czyli dane, które ona przechowuje. 


3. Klucz główny

Klucz główny, inaczej: primary key to osobny identyfikator dla każdego rekordu. Po tym właśnie indeksujemy i rozpoznajemy rekordy. Zazwyczaj takim primary key jest id, ale możemy go zdefiniować inaczej, w zależności od potrzeb. 


4. Relacje

To związki między tabelkami w bazie danych, inaczej relacje między nimi. Często jest tak, że tabele są ze sobą powiązane konkretnymi rekordami, i konkretnymi kluczami. Mamy primary key, który definiuje rekord w wybranej, basickowej tabeli, ale mamy również klucz obcy odwołujący się do innej tabeli. W ten sposób mamy cały schemat wszystkich tabel gotowy w bazie.


5. Zapytania SQL

Zapytania SQL to komendy, którymi wysyłamy konkretne polecenia do bazy danych, aby na przykład: pokazała nam wszystkie rekordy z danej tablicy, aby nam usunęła, dodała rekordy, aby zmieniła poszczególne komórki gdzie np. id=1 lub wartości boolean dla jakiejś kolumny wynoszą w rekordach true… i tak dalej. Podstawowe komendy to SELECT, INSERT, UPDATE I DELETE.  Często piszemy komendy dużymi literami dla czytelności.

Na razie tyle wam wystarczy, abyście mieli podstawowe pojęcie, czym są bazy danych. A ta wiedza jest niezbędna nawet dla frontendowca 🙂

Jeżeli chcesz dobrze opanować SQL zapraszam do kursu: https://www.udemy.com/course/jezyk-sql-w-praktyce/?referralCode=8EC14158D9085568DAA8

Kategorie
Uncategorized

Frameworki testowe – Przykłady i wybór odpowiedniego narzędzia


Cześć!

Jak pewnie wiesz testowanie oprogramowania, jest niezwykle ważne. To dzięki niemu wyłapujemy błędy na frontendzie, np. gdy jakiś przycisk jest nieklikalny, to również dzięki niemu znajdujemy nieprawidłowości w zapytaniach http czy przechwytujemy, co powinno nam zwrócić, by strona działała prawidłowo. Można powiedzieć, że testowanie jest jak ‘masło’ na kanapkę — niezbędne 😉

Przyjrzyjmy się zatem głównym narzędziom, które możesz wykorzystać do testowania swojej aplikacji:

1. Selenium — najpopularniejszy Framework do testowania aplikacji internetowych. Służy do testowania interfejsów użytkownika w aplikacjach webowych. Wykorzystuje Javę, C#, Python, Ruby itp. do tworzenia testów automatycznych.

2. Playwright — Playwright to narzędzie do testowania przeglądarek stworzone przez Microsoft. Pozwala na automatyzację działania przeglądarek webowych w celu testowania aplikacji internetowych.

3. Cypress — to framework do testowania zarówno API jak i interfejsów użytkownika. W Cypressie piszemy testy za pomocą języka JavaScript. Cypress zapewnia debugowanie testów, automatyczne odświeżanie i wiele innych. Jest bardzo przyjemny w użytkowaniu oraz można wykonywać w nim testy E2E.

4. JUnit — to popularny framework do testowania jednostkowego w języku java. Jest stosowany w większości projektów opartych na javie. Umożliwia również tworzenie raportów i integrację z różnymi środowiskami programistycznymi.

5. pyTest – to framework przeznaczony do testowania w  języku Python. Podobnie jak Cypress powiada wiele funkcji i wbudowanych asercji. Wykorzystuje się go zarówno do testów jednostkowych, jak i testowania API.

Mamy już wymienione popularne frameworki do pisania testów, choć pominęliśmy mniej popularne takie jak Cucumber i TestNG. Ok, ale jak wybrać odpowiedni Framework? To zależy, co Cię interesuje. Najlepiej to odkryć, kiedy możesz „liznąć” każdego z typów testowania, więc polecam zacząć od Selenium webdriver lub Playwrighta/Cypressa.  Zwłaszcza Cypress jest bardzo intuicyjnym frameworkiem, który możesz wykorzystać zarówno do testów API jak i do interfejsów.
Ważny jest też język programowania. Jeżeli wybrałeś/aś sobie Javę, polecamy JUnit lub Selenium.

Wszystko zależy od tego, jakiego języka wcześniej się uczyłeś/aś.  Ja na początek zawsze będę polecał Pythona, który jest najłatwiejszy do przyswojenia, a wiadomo, jak już raz nauczymy się pewnych schematów, to łatwiej będzie je wykorzystać przy nauce innego języka.

Od lat języki najczęściej wykorzystywane do testowania to: Java, Python oraz JavaScript. Warto trzymać się tego core’u, gdy wybieramy język i framework do nauki testowania.

Kategorie
Uncategorized

Wprowadzenie do HTML, CSS i JavaScript

Cześć!

W tym artykule postaram się wam przybliżyć, czym właściwie jest HTML, CSS i JavaScript.

1. HTML
Html to skrót od HiperText Markup Language. To tak naprawdę nie jest język programowania, ale język kodowania. Ma za zadanie zbudować całą strukturę Interfejsu aplikacji. Za pomocą takich znaczników jak <div> czy <p> definiuje, jak ma wyglądać drzewo DOM, czyli struktura wszystkich elementów na stronie.

2. CSS
CSS to skrót od Cascading Style Sheets, czyli tworzy style danych elementów. Pozwala nam wystylizować dane elementy html tak, by wyglądały bardziej ludzko 🙂 Podobnie jak html, jest to język kodowania, choć całkiem przyjemny i prosty. Do czego go można użyć? Na przykład do zmiany koloru tła, dodania obrazka w backgroundzie czy zaokrąglenia boków diva na stronie internetowej.

3. JavaScript
Jest to język programowania skryptowego, który umożliwia nam interakcję pomiędzy elementami html, pozwala nimi manipulować w dowolny sposób. Służy nie tylko do budowania interakcji na stronie, ale i również do testowania, a także ma wiele więcej praktycznych zastosowań.
Wartościowy kurs z języka JavaScript znajdziesz pod linkiem: https://www.udemy.com/course/javascript-typescript-w-praktyce/?referralCode=E4DE403E0696CADC8556

4. Podstawy w praktyce
Aby zbudować aplikację, pierwsze co robimy to budowanie drzewa DOM w html. Wiadomo, że gdy budujemy dom, najpierw muszą powstać fundamenty i szkielet 😉 Więc przystępujemy do tworzenia naszego ‘szkieletu’:

<!DOCTYPE html>
<html>
<head>
  <title>Moja strona</title>
  <link rel=”stylesheet” type=”text/css” href=”styles.css”>
</head>
<body>
  <h1>Witaj na mojej stronie!</h1>
  <p>To jest przykładowy paragraf.</p>

  <script src=”script.js”></script>
</body>
</html>


Jak zauważyliście, mamy już w tym szkielecie podpięty CSS i JavaScript. Ale zanim przejdziemy do bardziej skomplikowanej rzeczy, pokażmy, jak wyglądają CSSy dla tej naszej małej aplikacji:

h1 {
  color: blue;
}

p {
  font-size: 18px;
}


h1 to nagłówek strony, natomiast p to paragraph. W tym przypadku kolor czcionki na h1 zmieniliśmy na niebieski, a rozmiar czcionki na p: 18px.

A teraz najprzyjemniejsza rzecz! (przynajmniej wg. mnie 😉):

Kod js dla tej aplikacji będzie wyglądał tak:

var header = document.querySelector(‘h1’);
header.addEventListener(‘click’, function() {
  header.style.color = ‘red’;
});


To jest kod, który w przypadku kliknięcia na h1, zmieni to kolor na czerwony.

Są to tylko podstawy, ale warto się ich nauczyć. Więcej możesz się dowiedzieć z naszych artykułów na stronie, lub wykorzystać do nauki darmowe zasoby takie jak: https://www.w3schools.com/css/  (dla CSS), https://www.w3schools.com/html/default.asp (dla html) czy https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide (dla JavaScriptu).

Kategorie
Uncategorized

Najlepsze języki programowania dla początkujących w 2024 roku

Cześć!

Zastanawiasz się, jak język programowania będzie dla Ciebie najlepszy na początek kariery? Wielu początkujących osób w branży nurtuje to pytanie. Nic dziwnego — w końcu nie chcemy wybrać języka, który będzie dla nas nudny czy toporny do nauczenia i który finalnie nam się nie przyda. Z czasem może okazać się, że będziemy chcieli pracować w innym dziale IT lub dziedzinie…

Zastanów się najpierw, z jaką technologią chcesz mieć do czynienia? Interesują Cię strony internetowe, bazy danych, analiza danych, operacje matematyczne, backend, aplikacje desktopowe? Na szczęście jest kilka języków, które są wszechstronne i możesz je wykorzystać zarówno do frontendu, testów automatycznych, jak i backendu lub do obliczeń matematycznych czy obsługi baz danych.

Takimi językami są na przykład:

1. Python


Jest to jeden z najlepszych języków programowania na początek: ma prostą składnię, jest czytelny — co ułatwia naukę. Nie musisz na początku ogarniać całej składni, ważne jest, byś zrozumiał paradygmaty programowania. Sprawę ułatwia też to, że Python ma dużo bibliotek do wykorzystania oraz ma szeroką społeczność w internecie, więc z łatwością poprosisz kogoś o pomoc w razie problemów 😉

Jeżeli wybierzesz Pythona na swój pierwszy język, serdecznie polecam Ci 21-dniowe wyzwanie z Pythona i moją pomoc podczas nauki -> https://cyfrowytrener.pl/produkty/21-dni/

2. Javascript

Jest używany do tworzenia stron internetowych, ale nie tylko. Możesz np. za pomocą node.js postawić backend, więc jest to bardzo wszechstronny język. Można go też używać do aplikacji mobilnych. Do tego nie jest to skomplikowany język. JavaScriptu uczą się już dzieciaki w podstawówce 🙂

3. Java 


Java ma główne zastosowanie w aplikacjach mobilnych, ale również w aplikacjach desktopowych. Posiada wiele bibliotek ułatwiających pracę, których łatwo się nauczyć. Jest to więc kolejny język o szerokim zastosowaniu, którego warto się nauczyć.

Trzeba również wspomnieć, że to, jak przyswoisz język i z jaką szybkością zależy tylko od Ciebie i Twoich preferencji. Może się zdarzyć, że najlepszy dla Ciebie będzie JavaScript, bo kompletnie nie podejdzie Ci Python. Ten artykuł jest jedynie sugestią, od czego możesz zacząć. Jeśli bardziej interesuje Cię nawet i C lub C++ to czemu z nim nie zacząć? Później język zawsze można zmienić. Najważniejsze to “zakasać” rękawy i brać się do roboty 🙂

Kategorie
Uncategorized

Najczęstsze błędy podczas nauki automatyzacji – niezależnie od języka programowania i branży (Musisz tego unikać!)

0 Za dużo “pośpiechu”
Prosta zasada, śpieszcie się powoli. Nauka automatyzacji oprogramowania wymaga czasu. Traktuj to jak ultramaraton.

1 Krótkowzroczna wizja
Ten punkt jest przedłużeniem powyższego punktu, dobrze jest mieć plan, jak się uczyć i co chce się dzięki temu osiągnąć na dłuższą metę.

2 “Nigdzie nie mogę zdobyć doświadczenia wymaganego do pracy w automatyce”
Zacznij od małych kroków, np. załóż konto na Githubie, a następnego dnia rozpocznij kurs i trening w interesującej Cię dziedzinie. Prześlij swój pierwszy “Hello World” i umieść go na swoim koncie Githuba. Następnie wykonaj kolejne małe kroki, z tą techniką, po roku, gdy spędzisz godzinę dziennie, będziesz na naprawdę dobrym poziomie -> zobacz jak proste to jest… 

3 “Nie mam żadnych sukcesów w rozmowach kwalifikacyjnych, więc odpuszczam”

4 Bądźcie uparci i starajcie się znaleźć swoją drogę. Czasami to działa, a czasami zawodzi.
Z perspektywy czasu, może to być świetne doświadczenie, jeśli otrzymasz informację zwrotną od rekrutów, co o tobie myślą i ile jesteś dla nich wart -> jest to cenna informacja i tylko od ciebie zależy co z nią zrobisz. 

5 Wybierz formę nauki, która najbardziej Ci odpowiada
Dokładnie, Wybierz formę nauki, która najlepiej odpowiada twojej wiedzy. Możesz oglądać kursy, czytać książki… i najlepiej: przećwiczyć to!

6 “Nie wiem czy nauka inżynierii oprogramowania jest dla mnie odpowiednia”
Nie każdy człowiek ma predyspozycje do bycia jak Michael Jordan w swojej dziedzinie. Musisz to ocenić samemu, jest na to prosty sposób – po prostu zacznij się tym interesować, spróbuj po jakimś czasie, sam będziesz oceniał. Czy jest to to, co chciałbyś robić i poświęcić na to swój cenny czas.

Kategorie
Uncategorized

5 sposobów na znalezienie flow/inspiracji, do rozwijania umiejętności cyfrowych

0 Wprowadź nawyki do swojego życia
Każdy z nas ma swój własny sposób na przygotowanie się do pracy. Niektórzy ludzie potrzebują czystej przestrzeni, podczas gdy inni wolą iść na trening i ćwiczyć przed pracą. Najważniejsze jest wypracowanie pewnych nawyków, wtedy jest to o wiele łatwiejsze.

1 Odetnij się od cyfrowej dżungli
Tak! Bardzo często zjawisko “nadmiaru informacji” idzie w parze z negatywnymi emocjami. Problemy osobiste, zmartwienia, stres i niezdrowy styl życia – to czynniki, które niszczą kreatywność.

2 Obserwacje otoczenia i długie rozmowy z ludźmi
Każde miejsce, budynek lub nawet inny człowiek kryje w sobie potencjalnie niesamowitą historię. Źródłem świetnych pomysłów może być nawet najbardziej banalna, najmniej znacząca rzecz. Jeśli chodzi o ludzi, to warto słuchać tego, co inni mają do powiedzenia.

3 Muzyka
Muza jest czymś, co mnie bardzo inspiruje do działania – szególnie rano 🙂 -> “Spotify” na słuchawkach, dobry chillout i robota idzie bardzo sprawnie.

4 Rób przerwy w pracy, zbieraj pomysły, planuj działania i zapisuję je w notatniku.
Krótko i na temat, są to sprawdzone metody i naprawdę działają.


Dodatkowo: Realizuj swoje pasje “po godzinach”

W moim przypadku jest to taniec 2 razy w tygodniu, który mnie całkowicie resetuje i relaksuje, ale może to być każdy sport lub dodatkowa aktywność – kilka godzin w tygodniu wystarczy i na pewno przyczyni się do osiągnięcia flow i lepszego samopoczucia w pracy 😉

Kategorie
Uncategorized

5 Wskazówek odnośnie utrzymania motywacji podczas nauki automatyzacji oprogramowania

0 Rozpoczynaj małymi kroczkami / Postępuj według zasady 5-minutowej
Najtrudniejszą częścią jakiejkolwiek zmiany w życiu jest początek i nie ma tutaj żadnych magicznych sztuczek, po prostu “zjedz tego robala” i trenuj ten nawyk każdego dnia.

1 Trenuj/ Ucz się z tym co lubisz
Może to być Spotify, Podcast na YouTube, a może wideo z Udemy na drugim monitorze.

2 Używaj treningu fizycznego jako przerwy
Jako ludzie potrzebujemy odpoczynku i naprzemiennej aktywności przez cały dzień, aby zmaksymalizować wyniki.

3 Planuj pracowite i produktywne poniedziałki
Długie godziny nauki w poniedziałek wyznaczają ton i wzorzec psychologiczny na dany tydzień (sic!). Jeśli pominiesz ciężką pracę w poniedziałek, o wiele łatwiej zrezygnujesz z ćwiczeń we wtorek, itd. i w końcu odpuścisz.

4 Baw się pracą
Rób, co chcesz i w jaki sposób lubisz to robić, w swoim tempie a nigdy nie będziesz musiał pracować.

5 Nie ucz się dla wiedzy, ucz się żeby mieć umiejętności
Możesz pominąć dzień praktyki, ale staraj się nigdy dwa dni z rzędu.
Jeśli to zrobisz, o wiele trudniej będzie ci wrócić do rutyny. Wiedza jest jak budowanie rakiety w garażu (możesz to robić całe życie i tak nikt tego nie zobaczy, ani nie będzie z tego żadnego pożytku). Sztuczka w życiu polega na tym, aby używać tych rakiet w praktyce 🙂 – oczywiście w przenośni. Liczy się tylko to, co robisz.