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

Mnóstwo przetrawionej teorii ale brak pomysłu na praktykę
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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.

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4714
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).

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10230
1

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

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

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
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: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 68
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

RequiredNickname
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 651
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: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 767
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.

Black007
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.