Mnóstwo przetrawionej teorii ale brak pomysłu na praktykę

Mnóstwo przetrawionej teorii ale brak pomysłu na praktykę
K1
  • Rejestracja:ponad rok
  • Ostatnio:11 miesięcy
  • Postów:4
0

Szukam źródeł, które pozwolą mi trenować praktyczne pisanie kodu. Skonsumowałem mnóstwo wiedzy aż do spring boota i zdaje mi się że na na prawdę dużo kumam gdy czytam kod i go analizuje. Problem polega na tym że identycznie mam z angielskim... Wszystko rozumiem ale ciężko przeistoczyć myśl w praktyczny kod.
Z pewnością w internecie są miejsca gdzie można zetknąć się z wartościowymi zadaniami/ćwiczeniami które stymulują mózgowine i zachęcają do samodzielnego pisania kodu i rozwiązywania problemów.
To moje pytanie do was... Gdzie w sieci znajdę tego typu źródła - nie za miliony monety - które nauczą mnie praktycznego pisania kodu, autentycznego klikania w klawiaturę bez youtube'owych tutoriali?
Serdecznie pozdrawiam

PS
Coś typu:
Przestawiona konkretna treść zadania/problemu plus jakieś wskazówki.

edytowany 1x, ostatnio: kogucik15
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:3 minuty
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
5

pobaw się codingame

nie nauczysz się z tego springa i klepania webówki, ale podciągniesz kodowanie i wyrobisz skilla do przechodzenia rekrutacji (jeśli tego potrzebujesz).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:4 minuty
  • Lokalizacja:Laska, z Polski
  • Postów:10059
1

Po prostu zacznij pisać kod, twórz swoje programy.

Wymyśl sobie program który chcesz napisać, i po prostu zacznij go tworzyć.

edytowany 1x, ostatnio: Riddle
DR
  • Rejestracja:prawie 12 lat
  • Ostatnio:16 minut
  • Postów:1129
0

Niektorzy mają problem z wymyśleniem swojego pomysłu na program, a to najlpesza droga do nauki IMO. Można jednak wykorzystać alternatywę, jaką jest open source. Znajdź jakieś narzedzie, framework, cokolwiek innego na np. github i filtruj po good first issue, jeśli nie rozumiesz zadania, napisz o więcej szczegółów i zacznij implementację. W najgorszym wypadku się nie uda, ale doświadczenie zostanie.

Także już za "chwile" będzie kolejny hacktoberfest https://hacktoberfest.com/ maja discord itd. to inicjstywa gdzie dużo projektów OS zachęca nowe osoby do kontrybuowania. Wtedy jest też o wiele łatwiej o jakieś zadanie.

UN
  • Rejestracja:prawie 6 lat
  • Ostatnio:5 miesięcy
  • Postów:36
0

Zrób sobie darmowe konto na Azure/GCP/AWS, zdecyduj co chcesz robic i zrób. Od razu będziesz miał co pokazać na rozmowie rekrutacyjnej. Jest dużo dokumentacji i poradników

BB
  • Rejestracja:ponad 2 lata
  • Ostatnio:29 dni
  • Postów:66
0

Pierwsze

Kopiuj
Aplikacja składać ma się z trzech ekranów: 
    1. Ekran startowy z dwoma odnośnikami do pozostałych stron
    2. Strona z formularzem umożliwiającym wgranie do systemu pliku xml zawierającego dane 
    3. Strona z listą wyświetlającą zaimportowane wcześniej dane.
III. Import danych – ekran z wgraniem danych do bazy.
Pierwszym zadaniem jest wygenerowanie pliku XML (lub JSON) z danymi do importu.
Plik powinien zawierać co najmniej 50000 pozycji
Przykładowy plik XML:

<users>
<user>
<name>name1</name>
<surname>surname1</surname>
<login>login1</login>
</user>
…
<user>
<name>nameN</name>
<surname>surnameN</surname>
<login>loginN</login>
</user>
</users>
Wczytane dane należy zapisać do bazy danych. Po skończonej procedurze importowania danych do systemu należy wyświetlić podsumowanie importu oraz wyświetlić przycisk do przejścia na ekran z listą użytkowników.
IV. Ekran z listą użytkowników
Lista użytkowników ma pozwolić wyświetlić wszystkich użytkowników. Lista powinna być stronicowana i nie powinna pobierać i przesyłać wszystkich użytkowników na raz.
Dodatkowo lista powinna pozwalać na:
    • sortowanie po imieniu, nazwisku i loginie
    • wyszukiwanie po imieniu, nazwisku i loginie (jedno pole do wyszukiwania)
Przed wyświetleniem na ekranie nazwiska użytkownika należy zmodyfikować je dodając do niego kod MD5 z imienia: jeżeli w bazie jest użytkownik o imieniu name5 i nazwisku surname5 to na liście należy wyświetlić w kolumnie nazwisko: surname5_0de5fc94d0ba53fc7a44f0f136e82fbb
Dane w bazie maja pozostać niezmienione.
V. Wygląd aplikacji
Ekrany powinny być ostylowane przy pomocy CSS i poprawnie wyświetlać się na urządzeniach mobilnych. 
VI. Przekazanie zadania do sprawdzenia
Zadanie powinno zostać wykonane w postaci aplikacji webowej gotowej do uruchomienia.
Zadanie należy wysłać spakowane do paczki ZIP, która powinna zawierać:
    • Aplikacja webowa do wgrania na serwer web (ewentualnie zawierająca jetty)
    • Kod źródłowy
    • Krótki opis aplikacji
    • Instrukcja uruchomienia

Drugie
https://4programmers.net/Forum/Java/369475-zadanie_rekrutacyjne_na_juniora_czy_faktycznie_az_tak_zle_zrobione

z forum
https://github.com/s0bieskii/junior-java-guide/tree/main/tasks

edytowany 1x, ostatnio: bbzzyyczczeek
RequiredNickname
  • Rejestracja:prawie 5 lat
  • Ostatnio:6 minut
  • Postów:616
3

Wbrew pozorom nawet z pozoru najprostsza aplikacja typu todo lista może okazać się ciekawym pomysłem na potrenowanie bo możesz np:

  1. stworzyć część backendową i np. klienta webowego (flutter/vaadin itp jeżeli nie chcesz uczyć się frameworków js)

  2. możesz od razu skierować sięw stronę ciekawej architektury portów i adapterów

  3. dzięki architekturze portów i adapterów możesz testować najróżniejsze ficzery jak bazy sql, nosql, api restowe, soapowe, graphql po jakieś protocol buffers

  4. możesz zainteresować siętematykącache, reverse proxy

  5. możesz opakować aplikację w kontener a nawet odpalać na jakimś domowym k8s (microk8s w ubuntu)

  6. możesz w ogóle zsetupować np. proxmoxa na jakimś domowym komputerku/terminalu i skonfigurować tam sobie "infrastrukturę", własnego jenkinsa, docker registry itp

  7. możesz pobawić się typowymi dla mikroserwisów rozwiązaniami typu resilience4j

  8. śmiało możesz próbować zaimmplementować CQRS'a (np. jakiśendpoint na potrzeby administracyjne do pobierania wszystkich danych cokolwiek sobie wymyślisz)

  9. możesz pokusić się (w formie jakiegoś adaptera) o zastosowanie event sourcingu

  10. możesz dorobić jakąś drugą aplikację (która jedyne co robi to zapisuje sobie cośw pliku) i przećwiczyć implementację outbox pattern na potrzeby komunikacji po http

  11. śmiało możesz dorzucać do swojej "infry" jakieś kolejki czy nawet kafki (okazja aby poczytać o konfiguracji topiców, ack, ilości partycji itp) w kontekście komunikacji asynchronicznej

    Przykładów można mnożyći bynajmniej nie potrzebujesz jakiegoś innowacyjnego pomysłu na plikację aby móc pobawićsię wielooooma rzeczami ;-)

GO
  • Rejestracja:12 miesięcy
  • Ostatnio:4 miesiące
  • Postów:358
1

Ja w google umiem znaleźć wszystko co potrzebuję, umiem też zbudować wszystko, programowanie to tylko narzędzie, musisz wiedzieć co chcesz osiągnąć, samplingu dobrego nie zrobisz programowaniem musisz mieć fpga i zbudować sobie układ, bo aliasing będzie ci fałszował sygnał musisz też wiedzieć jaki bandpass chcesz, żeby ten aliasing usunąć.

Dużo teorii pewnie nie przetrawiłeś jak nie masz pomysłów na projekty, bo jednak człowiek jak czyta jakąś książkę to ciągle wpada na jakieś pomysły co można zrobić.

KE
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 13 godzin
  • Postów:667
1
RequiredNickname napisał(a):

Wbrew pozorom nawet z pozoru najprostsza aplikacja typu todo lista może okazać się ciekawym pomysłem na potrenowanie bo możesz np:

Haha, ile to ja todolist napisałem w życiu :D zgadzam się że to dobry przykład, bo typowy CRUD, ale można na nim pokazać w sumie wszystkie zagadnienia, które potem wykorzystywane są w "poważnych" aplikacjach. Oczywiście wszystko powyżej to są wymagania niefunkcjonalne, czyli moje ulubione, ale powiedzmy że chcemy, żeby miło było też product ownerom, więc:

  1. Każde zadanie na liście ma priorytet (duży średni mały). Wyświetl ten priorytet gdzieś obok opisu todo. Dodaj sortowanie po priorytetach i alfabetyczne.
  2. Każdemu zadaniu można przypisać kolor oznaczający kategorię. Dodaj grupowanie po kolorach.

W sumie odechciało mi się wymyślać. Załóż konto na Trello i zrób tak jak tam. To nie jest trudne, a pracy będziesz miał na 2 miesiące.

RequiredNickname
Ja się właśnie lubię wzorować na apkach których sam używam (trello, tick tick/todoist itp) a logiki do cruda można dorzucić ogranicza nas tylko wyobraźnia (np. wysyłka śmiesznje fotki na email do partnera/partnerki gdy uda nam się wykonać w danym tygodniu wszystkie zadania w zaplanowanym czasie) ;)
Black007
  • Rejestracja:ponad 21 lat
  • Ostatnio:5 dni
0

https://www.codewars.com/ też jest ok :)


"Nie popełnia błędów tylko ten, kto nic nie robi"
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)