Quando una persona inizia a studiare programmazione da sola o in corsi online, è molto importante definire il “campo di attività” e sistematizzare tutto. In questo articolo presentiamo tale sistematizzazione: attività Java per principianti, indicando in che modo un particolare tipo viene presentato nel corso online per l'apprendimento della programmazione JavaRush e collegamenti utili.
Dove puoi trovare i puzzle:
Problemi di sintassi del linguaggio
Le basi, le primissime attività di programmazione Java per principianti: da "Hello World" a loop e array. Ce ne sono molti su JavaRush: sono particolarmente densamente concentrati nella ricerca della sintassi Java nei primi sei livelli. È improbabile che sia necessario cercare fonti aggiuntive per assimilarle: ce ne sono abbastanza qui. Inoltre, quando risolvi problemi più complessi, ripeti automaticamente la sintassi. Ma se all'improvviso ne hai bisogno, qualsiasi libro sui problemi Java per principianti contiene esercizi simili. Solo che in questi libri problematici non ci sarà alcun controllo immediato, come in JavaRush.Compiti di raccolta
Le raccolte sono il primo argomento “serio” che un programmatore alle prime armi incontra durante i suoi studi. Anche i problemi Java per principianti, dedicati alle raccolte, sono ampiamente rappresentati su JavaRush, al settimo e all'ottavo livello della ricerca sulla sintassi Java. Qui lo studente sentirà parlare per la prima volta del Java Collections Framework, lavorerà con le interfacce Set, List e Map e alcune delle loro implementazioni. Tuttavia, in questa fase conoscerai solo questo utile strumento e semplici attività Java. Uno studio più approfondito delle collezioni avverrà durante la missione Collezioni Java . Vedi quanto è importante questo oggetto, dal momento che un'intera missione prende il nome da esso!Problemi di eccezioni
Un meccanismo speciale è responsabile del lavoro con situazioni anomale in Java, il che semplifica enormemente la "cattura" degli errori nei programmi. Ma per poterlo utilizzare appieno, è necessario comprendere come funziona la gestione delle eccezioni in Java. Esistono molti di questi compiti in JavaRush e si trovano anche nella prima ricerca sulla sintassi Java.Problemi di conversione del tipo
Naturalmente, questo gruppo può essere classificato come attività di sintassi di base. Tuttavia, a nostro modesto parere, tali compiti sono spesso sottovalutati e i principianti si dibattono. Allontaniamoci quindi dai modelli: studiamo le attività Java per principianti sull'argomento "Conversione di tipi primitivi" non all'inizio, come spesso viene fatto, ma un po 'più tardi, alla fine della prima ricerca sulla sintassi Java. E poi impareremo come eseguire il cast di tipi (oggetti) non primitivi studiando l'OOP nella ricerca Java Core . Ci sono moltissime attività simili in JavaRush; non devi cercare nient'altro.Compiti per comprendere l'OOP
L'OOP non è l'argomento più difficile, ma è estremamente importante. Inoltre, contiene molte sottigliezze che gli intervistatori amano utilizzare per catturare i futuri “junior”. Il corso JavaRush contiene problemi pratici di programmazione per principianti che ti aiuteranno a comprendere l'approccio orientato agli oggetti. Tuttavia, per comprendere veramente l'OOP, si consiglia di leggere la letteratura sull'argomento (ad esempio, Kay Horstmann, Professional's Library di Gary Cornell, Object-Oriented Analysis and Design di McLaughlin o altri libri ).Attività sui thread I/O
Iniziamo a utilizzare i flussi I/O molto prima di capirli: questo è Java, tesoro, e spiegare System.out e, inoltre, System.in a un principiante alle prime armi, è difficile e non necessario nella prima fase. Ma durante la ricerca Java Core , la conoscenza è appena sufficiente per comprendere questo argomento un po' confuso, e non stiamo parlando solo di input/output della console, ma anche di lavorare con il file system. La cosa principale è non saltare queste attività (ce ne sono molte in JavaRush) e comprendere costantemente la teoria.Puzzle
Per "puzzle" intendiamo compiti di maggiore complessità che richiedono non tanto la conoscenza quanto la capacità di applicarla in modo non standard. Questi sono compiti tipici di Java Junior: sono molto popolari nelle interviste, ma nel lavoro reale i puzzle in questo senso non sono molto comuni. Ecco perché ce ne sono a JavaRush, ma non moltissimi (di solito nelle classi del Capitano Bobrov).- http://acm.timus.ru/problemset.aspx?space=1&tag=tricky
- https://tproger.ru/category/problems/
- https://www.codechef.com/
- https://www.codewars.com/?lingual=java
Algoritmi e strutture dati
Ci sono dibattiti costanti sugli algoritmi e sulle strutture dati su quanto ne abbiano bisogno un futuro programmatore. Ancora una volta risponderemo: per lo sviluppo del pensiero - sono necessari, direttamente per il lavoro - raramente. Perché per Java, ma anche per altri linguaggi, sono già state scritte librerie con implementazioni di tutti gli algoritmi conosciuti di ordinamento, ricerca e altri. Tuttavia, creare le proprie implementazioni di algoritmi è molto utile, così come sviluppare una comprensione della loro complessità. Soprattutto per le persone che a scuola studiavano solo matematica. In linea di principio, questi compiti sono intervallati da enigmi, l'unica differenza è che sono tutti descritti e risolti molte volte online. Non hai nemmeno bisogno di un validatore per la verifica. Scegli qualsiasi corso, ad esempio, dell'Università di Princeton , dei loro colleghi della California o di Stepic . A proposito, nel corso CS50 , la cui traduzione abbiamo inserito in JavaRush, vengono discussi diversi importanti algoritmi e strutture dati. Consigliamo vivamente di guardare i video dei livelli 2-5 e di implementare le attività in Java. Problemi sui grafici: Attività di struttura dei dati:Multithreading
Chiunque può scrivere un programma che stampi "Hello World"... Che ne dici di usare l'API Java Thread in modo che la famosa frase venga stampata da un thread aggiuntivo? E in modo che stampi "Hello world" cinque volte da cinque thread diversi, e in modo che le righe non si alternino?.. Il multithreading è un vero e proprio "test di forza" durante l'apprendimento di Java Core. Un'intera ricerca su JavaRush è dedicata a questo argomento molto difficile, chiamato Java Multithreading , e contiene un gran numero di compiti in modo che lo studente possa sentire il "dolore e la bellezza" dei processi paralleli. Nella maggior parte dei casi, i primi progetti "reali" degli studenti coinvolgono il multithreading in misura maggiore o minore. Ad esempio, giochi semplici.
Problema del multithreading Cinque filosofi silenziosi siedono attorno ad una tavola rotonda. Davanti a ciascuno di loro c'è un piatto di spaghetti. Le forchette si trovano sul tavolo a sinistra e a destra di ciascun filosofo (tra di loro). Un filosofo può mangiare o pensare. Inoltre, può mangiare solo se tiene in mano due forchette, una alla sua destra e una alla sua sinistra. "Prendere una forchetta" e "mettere giù una forchetta" sono azioni separate che vengono eseguite in sequenza. |
Compiti sui farmaci generici
La generalizzazione è l'essenza stessa dell'automazione, cioè, in un certo senso, della programmazione. Quindi anche il tema delle generalizzazioni o dei generici in Java non dovrebbe essere ignorato. JavaRush ha compiti di programmazione generali (principalmente nella ricerca Collezioni Java, a partire dal livello 5). Dove puoi trovare esercizi e materiali utili sui farmaci generici:- 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
- Libro "Effective Java" di Joshua Bloch
Attività sui modelli di progettazione
Ad un certo punto (circa 2/3 del corso JavaRush), un programmatore alle prime armi deve iniziare a guardare da vicino le regole delle buone maniere nella programmazione. Parliamo di corretta formattazione del codice (che è più semplice) e di design pattern (che è più difficile). JavaRush ha tali compiti. Sono necessari altri: possono essere trovati, ad esempio, nel libro (parte 4) “ Java. Metodi di programmazione » Blinov e Romanchik. Oppure pensa a come inserire i problemi già risolti in un modello.Test unitari
Un'abilità importante di qualsiasi programmatore, che spesso viene erroneamente attribuita esclusivamente ai tester, è scrivere unit test (o Unit) per il proprio codice. JavaRush ha alcune attività di unit test, ma in realtà non dovresti preoccuparti di cercarne di nuove. Una volta che hai capito come scrivere i test, prendi l'abitudine di coprire il tuo codice (nei tuoi progetti, in attività didattiche) con test unitari. Questo è molto più utile che eseguire controlli utilizzando l'output della console, che è ciò di cui tendono a soffrire gli studenti programmatori. Inoltre, molto spesso la prima cosa che le aziende affidano ai “junior” è scrivere Unit test per il codice di qualcun altro.- Test unitari per manichini : un articolo utile di Habr, dopo il quale diventerà chiaro il motivo per cui è necessario il test unitario
- Junit - Java per tester - video tutorial di Yuri Tkach
Problemi di espressione regolare
Questo è un argomento semplice che quasi nessun principiante capisce, perché è insolito e pigro. Vale infatti la pena spendere qualche giorno per approfondire l'argomento, capire i “clienti abituali” e avvantaggiarsi su chi non lo ha fatto. Questo è utile anche perché sono quasi indipendenti dal linguaggio di programmazione: imparalo una volta, potrai usarlo ovunque. In JavaRush non ci sono problemi incentrati sulle espressioni regolari, anche se alcuni possono essere risolti utilizzandole. Quindi ecco alcune risorse aggiuntive per comprendere l'argomento:- Espressioni regolari in Java - traduzione di un articolo di Jeff Friesen
- Test delle espressioni regolari : una risorsa in cui è possibile testare le espressioni regolari online
- Mike Fitzgerald Regular Expressions è un tutorial breve e semplice.
GO TO FULL VERSION