Kiedy ktoś zaczyna uczyć się programowania , czy to samodzielnie, czy poprzez kursy online, bardzo ważne jest, aby podkreślić pewną domenę i uporządkować wszystko. W tym artykule przedstawiamy naszą strukturę — zadania Java dla początkujących, ze wskazaniem, ile poszczególnych typów zadań jest reprezentowanych w internetowym kursie programowania CodeGym , wraz z przydatnymi linkami.
Ćwicz ze składnią języka
Oto pierwsze zadania programistyczne w Javie dla początkujących — podstawy — od „Hello, World” po pętle i tablice. CodeGym ma ich wiele: są one szczególnie skoncentrowane na pierwszych sześciu poziomach zadania Java Składnia . Jest mało prawdopodobne, że będziesz musiał szukać ich więcej gdzie indziej. Z pewnością mamy wystarczająco dużo, aby je opanować. Co więcej, gdy masz jakieś trudniejsze zadanie, automatycznie przeglądasz składnię. Ale jeśli nagle znajdziesz się w potrzebie, każdy podręcznik Java dla początkujących zawiera podobne problemy. Ale w przeciwieństwie do CodeGym, te zeszyty nie mają natychmiastowej weryfikacji zadań.Ćwicz z kolekcjami
Kolekcje to pierwszy „poważny” temat, z którym stykają się początkujący programiści w swoich badaniach. Początkujące zadania poświęcone kolekcjom Java są również dobrze reprezentowane w CodeGym — na siódmym i ósmym poziomie zadania Java Syntax. W tym miejscu kursant po raz pierwszy usłyszy o Java Collections Framework i trochę popracuje z interfejsami Set, List i Map wraz z niektórymi ich implementacjami. Jednak na tym etapie otrzymasz jedynie wprowadzenie do tego przydatnego narzędzia i proste zadania w Javie. Dokładniej przestudiujesz kolekcje podczas zadania Java Collections . Możesz zobaczyć, jak ważny jest ten temat — jego imieniem nazwano całe zadanie!Praktyka z wyjątkami
Java udostępnia specjalny mechanizm obsługi sytuacji wyjątkowych, znacznie upraszczający proces „wyłapywania” błędów aplikacji. Aby jednak w pełni to wykorzystać, musisz dowiedzieć się, jak działa obsługa wyjątków w Javie. CodeGym ma mnóstwo takich zadań. Spotkasz je nawet w pierwszym zadaniu — Składnia języka Java.Poćwicz rzutowanie typów
Tę grupę zadań można oczywiście sklasyfikować jako podstawowe zadania dotyczące składni. Jednak naszym skromnym zdaniem ludzie często nie doceniają takich zadań, a nowicjusze brną w nich. Dlatego łamiemy schematy: nie badamy zadań związanych z konwersją typów pierwotnych na samym początku, jak to często robią inni. Zamiast tego zajmiemy się nimi nieco później — pod koniec zadania Java Składnia. A potem nauczymy się rzutować typy nieprymitywne (obiekty), kiedy będziemy studiować OOP w zadaniu Java Core . CodeGym ma dość tych zadań. Nie musisz szukać dalej.Ćwicz z OOP
OOP nie jest najtrudniejszym tematem, ale jest niezwykle ważny. I ukrywa wiele subtelności, które ankieterzy lubią wykorzystywać, aby złapać niedoszłych młodszych programistów. Kurs CodeGym zawiera praktyczne zadania programistyczne dla początkujących, które pomogą Ci zrozumieć filozofię zorientowania obiektowego. Ale aby naprawdę zrozumieć OOP, zalecamy przeczytanie powiązanej literatury (na przykład „Core Java” Cay Horstmann i Gary'ego Cornella, „Object-Oriented Analysis and Design” McLaughlina lub innych książek ).Poćwicz ze strumieniami wejścia/wyjścia
Zaczynamy używać strumieni I/O na długo zanim je zrozumiemy. To jest Java, mój młody pasikonik! Wyjaśnienie System.out, nie mówiąc już o System.in, jest trudne i niepotrzebne na początku. Ale kiedy pracujesz nad zadaniem Java Core , wiesz wystarczająco dużo, aby zrozumieć ten nieco zagmatwany temat, a mówimy nie tylko o konsoli I/O, ale także o pracy z systemem plików. Najważniejsze to nie pomijać tych zadań (CodeGym ma całkiem sporo) i konsekwentnie zagłębiać się w teorię.Łamigłówki
Przez „łamigłówki” rozumiemy zadania o zwiększonej złożoności, które dotyczą nie tyle wiedzy, co umiejętności zastosowania posiadanej wiedzy w niekonwencjonalny sposób. Są to typowe zadania dla młodszego programisty Java. Firmy bardzo lubią zadawać je podczas rozmów kwalifikacyjnych, ale w realnej pracy takie łamigłówki nie spotyka się zbyt często. Więc CodeGym ma trochę, ale niezbyt wiele (zwykle zobaczysz je na lekcjach Captain Squirrels). Gdzie mogę znaleźć łamigłówki?- https://javahungry.blogspot.com/2014/03/java-programming-puzzles-tackling-brainteaser-in-java-interv...
- https://howtodoinjava.com/java-interview-puzzles-answers/
- https://www.codechef.com/
- https://www.codewars.com/?language=java
Algorytmy i struktury danych
Jeśli chodzi o algorytmy i struktury danych, toczy się ciągła debata na temat tego, jak bardzo są one potrzebne przyszłemu programiście. Odpowiemy jeszcze raz: są one niezbędne do ustalenia właściwego sposobu myślenia, ale rzadko są bezpośrednio wymagane do pracy. Dzieje się tak, ponieważ Java, podobnie jak inne języki programowania, ma biblioteki z implementacjami każdego możliwego algorytmu do sortowania, wyszukiwania i nie tylko. Mimo to napisanie własnej implementacji algorytmu może być bardzo pomocne i dać wyobrażenie o jego złożoności. Zwłaszcza dla osób, które uczyły się matematyki dopiero w szkole średniej. Zasadniczo zadania te można zastąpić łamigłówkami, z tą różnicą, że wszystkie zostały wielokrotnie opisane i rozwiązane online. Nie potrzebujesz nawet narzędzia do sprawdzania poprawności. Wybierz dowolny kurs, powiedzmy, na Uniwersytecie Princetonlub college w Kalifornii . Praktyka ze strukturami danych:Wielowątkowość
Każdy może napisać „Witaj, świecie!” program. Ale co powiesz na użycie Java Thread API do wyświetlenia słynnej frazy z osobnego wątku? A co powiesz na wyświetlanie komunikatu „Hello, World!” pięć razy z pięciu różnych wątków bez pomieszania strun? Wielowątkowość będzie najlepszym „testem twoich sił” podczas nauki Java Core. Całe zadanie CodeGym, zwane Java Multithreading , jest poświęcone temu tematowi, który nie jest łatwy. Zawiera ogromną liczbę zadań, które pozwalają uczniom poczuć „ból i piękno” przetwarzania równoległego. Pierwsze „prawdziwe” projekty uczniów zwykle zawierają pewien poziom wielowątkowości. Na przykład proste gry.
Poćwicz z wielowątkowością Pięciu milczących filozofów siedzi przy okrągłym stole. Przed każdym z nich stoi talerz spaghetti. Na stole między każdym filozofem (jeden po lewej, drugi po prawej) leżą widelce. Każdy filozof może albo jeść, albo myśleć głęboko. Ale on lub ona może jeść tylko trzymając dwa widelce, czyli podnosząc jeden po lewej i ten po prawej stronie. „Podnieś widelec” i „odłóż widelec” to odrębne czynności wykonywane sekwencyjnie. |
Poćwicz z lekami generycznymi
Generalizacja jest samą istotą automatyzacji, więc w pewnym sensie jest istotą programowania. W związku z tym nie możemy zignorować tematu generycznych w Javie. CodeGym ma zadania programistyczne obejmujące generyczne (głównie w zadaniu Java Collections, zaczynając od poziomu 5). Gdzie mogę znaleźć przydatne ćwiczenia i materiały dotyczące leków generycznych?- https://docs.oracle.com/javase/tutorial/java/generics/QandE/generics-questions.html
- https://www.geeksforgeeks.org/generics-in-java/
- http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html
- „Efektywna Java” Bruce'a Eckela
Ćwicz z wzorcami projektowymi
W pewnym momencie (dwie trzecie kursu CodeGym) początkujący programiści muszą zacząć przyglądać się zasadom osiągania dobrej formy w programowaniu. Mówimy o odpowiednim formatowaniu kodu (prostsze) i wzorcach projektowych (trudniejsze). CodeGym ma do tego zadania. Będziesz potrzebował więcej i możesz je znaleźć w „ Head First Design Patterns ” autorstwa Elisabeth Freeman i Kathy Sierra. Możesz też pomyśleć o tym, jak zastosować wzorce projektowe do wcześniej rozwiązanych zadań.Testów jednostkowych
Ważną umiejętnością każdego programisty, często błędnie przypisywaną wyłącznie testerom, jest umiejętność pisania testów jednostkowych dla własnego kodu. CodeGym ma kilka zadań związanych z testami jednostkowymi, ale tak naprawdę nie musisz zawracać sobie głowy szukaniem więcej. Kiedy zrozumiesz, jak pisać testy jednostkowe, wyrób sobie nawyk pokrywania nimi swojego kodu (we własnych projektach, w swoich badaniach). Jest to o wiele bardziej pomocne niż sprawdzanie danych wyjściowych konsoli, praktyka, która zwykle dotyka studentów-programistów. Ponadto bardzo często pierwszą rzeczą, jaką otrzymują nowi młodsi programiści w firmach, jest napisanie testów jednostkowych dla czyjegoś kodu.Ćwicz z wyrażeniami regularnymi
Jest to prosty temat, którego prawie żaden początkujący nie rozumie, ponieważ jest nieznany i są leniwi. Naprawdę warto poświęcić kilka dni na przestudiowanie tematu, dotrzeć do sedna "regex" i zyskać przewagę nad tymi, którzy tego nie zrobili. Jest to również pomocne, ponieważ wyrażenia regularne są prawie niezależne od języka: jeśli nauczysz się ich raz, będziesz mógł ich używać wszędzie. CodeGym nie ma żadnych zadań poświęconych wyrażeniom regularnym, chociaż niektóre można rozwiązać za ich pomocą. Oto dodatkowe zasoby ułatwiające zrozumienie tego tematu:- regex101.com — strona internetowa, na której można sprawdzić wyrażenia regularne online
- „Wprowadzenie do wyrażeń regularnych” Mike'a Fitzgeralda — zwięzły i prosty elementarz.
GO TO FULL VERSION