När någon börjar lära sig hur man programmerar , antingen ensam eller genom onlinekurser, är det mycket viktigt att betona en viss domän och strukturera allt. I den här artikeln presenterar vi vår struktur - Java-uppgifter för nybörjare, med en indikation på hur mycket en viss typ av uppgift är representerad i CodeGym online -programmeringskurs, tillsammans med användbara länkar.
Öva med språksyntax
Det här är de allra första Java-programmeringsuppgifterna för nybörjare – grunden – från "Hello, World" till loopar och arrayer. CodeGym har många av dem: de är särskilt koncentrerade till de första sex nivåerna av Java Syntax -uppdraget. Det är osannolikt att du behöver leta efter fler av dem någon annanstans. Vi har säkert tillräckligt för att bemästra dem. Vad mer är, när du har en svårare uppgift, granskar du automatiskt syntaxen. Men om du plötsligt befinner dig i nöd, innehåller alla Java-läroböcker för nybörjare liknande problem. Men till skillnad från CodeGym kommer dessa övningsböcker inte att ha omedelbar uppgiftsverifiering.Öva med samlingar
Samlingar är det första "seriösa" ämnet som nybörjarprogrammerare stöter på i sina studier. Nybörjaruppgifter som ägnas åt Java-samlingar är också väl representerade på CodeGym — på den sjunde och åttonde nivån i Java Syntax-uppdraget. Det är här studenten först får höra om Java Collections Framework och kommer att arbeta lite med Set, List och Map-gränssnitten tillsammans med några av deras implementeringar. Men i detta skede får du bara en introduktion till detta användbara verktyg och enkla Java-uppgifter. Du kommer att studera samlingar mer noggrant under Java Collections- uppdraget. Du kan se hur viktigt det här ämnet är - ett helt uppdrag har fått sitt namn efter det!Öva med undantag
Java tillhandahåller en speciell mekanism för att hantera exceptionella situationer, vilket avsevärt förenklar processen att "fånga" applikationsfel. Men för att få ut det mesta av det måste du ta reda på hur undantagshantering fungerar i Java. CodeGym har massor av sådana uppgifter. Du kommer till och med att stöta på dem i det första uppdraget - Java Syntax.Öva med typgjutning
Denna grupp av uppgifter skulle naturligtvis kunna klassificeras som grundläggande uppgifter om syntax. Men enligt vår ödmjuka åsikt underskattar människor ofta sådana uppgifter, och nybörjare slänger i dem. Det är därför vi bryter formen: Vi studerar inte primitiva typkonverteringsuppgifter i början som andra ofta gör. Istället tar vi oss an dem lite senare - i slutet av Java Syntax-uppdraget. Och sedan lär vi oss att gjuta icke-primitiva typer (objekt) när vi studerar OOP i Java Core- uppdraget. CodeGym har nog av dessa uppgifter. Du behöver inte leta längre.Träna med OOP
OOP är inte det svåraste ämnet, men det är oerhört viktigt. Och det döljer många finesser som intervjuare gillar att använda för att fånga blivande juniorutvecklare. CodeGym-kursen innehåller praktiska programmeringsuppgifter för nybörjare för att hjälpa dig förstå den objektorienterade filosofin. Men för att verkligen förstå OOP rekommenderar vi att du läser relaterad litteratur (till exempel Cay Horstmanns och Gary Cornells "Core Java", McLaughlins "Object-Oriented Analysis and Design" eller andra böcker ) .Öva med input/output-strömmar
Vi börjar använda I/O-strömmar långt innan vi förstår dem. Det här är Java, min unga gräshoppa! Att förklara System.out, än mindre System.in, är svårt och onödigt när du först börjar. Men när du arbetar genom Java Core- uppdraget vet du precis tillräckligt för att förstå detta något förvirrande ämne, och vi pratar inte bara om konsol-I/O, utan också att arbeta med filsystemet. Huvudsaken är att inte hoppa över dessa uppgifter (CodeGym har ganska mycket) och att konsekvent fördjupa sig i teorin.Gåtor
Med "brainteasers" menar vi uppgifter av ökad komplexitet som inte handlar så mycket om kunskap som om förmågan att tillämpa det du vet på okonventionella sätt. Dessa är vanliga uppgifter för en junior Java-utvecklare. Företag är väldigt förtjusta i att fråga dem under intervjuer, men i verkligt arbete stöter man inte på sådana hjärnsläpp så ofta. Så CodeGym har några, men inte särskilt många (du brukar se dessa på lektioner av Captain Squirrels). Var kan jag hitta hjärnsläpp?- 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
Algoritmer och datastrukturer
När det gäller algoritmer och datastrukturer pågår det konstant debatt om hur mycket en framtida programmerare behöver dem. Vi svarar ännu en gång: de är viktiga för att etablera rätt tänkesätt, men de krävs sällan direkt för arbetet. Detta beror på att Java, liksom andra programmeringsspråk, har bibliotek med implementeringar av alla tänkbara algoritmer för sortering, sökning och mer. Ändå kan det vara till stor hjälp att skriva din egen implementering av en algoritm och ge dig en uppfattning om dess komplexitet. Speciellt för personer som bara läste matte på gymnasiet. I grund och botten kan dessa uppgifter bytas ut med hjärnbrännare med den enda skillnaden att de alla har beskrivits och lösts upprepade gånger online. Du behöver inte ens ett valideringsverktyg. Välj valfri kurs från till exempel Princeton Universityeller ett college i Kalifornien . Öva med datastrukturer:Multithreading
Vem som helst kan skriva ett "Hej världen!" program. Men vad sägs om att använda Java Thread API för att visa den berömda frasen från en separat tråd? Eller vad sägs om att visa "Hello, World!" fem gånger från fem olika trådar utan att blanda ihop strängarna? Multithreading kommer att vara det bästa "testet på din styrka" när du studerar Java Core. Ett helt CodeGym-uppdrag, kallat Java Multithreading , är tillägnat detta ämne, vilket är långt ifrån lätt. Den innehåller ett stort antal uppgifter för att låta eleverna känna "smärtan och skönheten" med parallell bearbetning. Elevernas första "riktiga" projekt innehåller vanligtvis en viss nivå av multithreading. Till exempel enkla spel.
Öva med multithreading Fem tysta filosofer sitter vid ett runt bord. En tallrik spagetti ligger framför var och en av dem. Det finns gafflar på bordet mellan varje filosof (en till vänster och en till höger). Varje filosof kan antingen äta eller tänka djupa tankar. Men han eller hon kan bara äta om han håller två gafflar, dvs genom att ta upp den till vänster och den till höger. "Plocka upp gaffel" och "lägg ner gaffel" är distinkta åtgärder som utförs sekventiellt. |
Öva med generika
Generalisering är själva essensen av automatisering, så i någon mening är det essensen av programmering. Följaktligen kan vi inte ignorera ämnet generika i Java. CodeGym har programmeringsuppgifter som involverar generika (främst i Java Collections-uppdraget, med start på nivå 5). Var kan jag hitta användbara övningar och material om generika?- 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
- "Effektiv Java" av Bruce Eckel
Öva med designmönster
Någon gång (två tredjedelar av CodeGym-kursen) måste nybörjarprogrammerare börja titta på reglerna för att uppnå god form i programmering. Vi pratar om korrekt kodformatering (enklare) och designmönster (svårare). CodeGym har uppgifter för detta. Du behöver mer och du kan hitta dem i " Head First Design Patterns " av Elisabeth Freeman och Kathy Sierra. Eller så kan du fundera på hur du kan tillämpa designmönster på tidigare lösta uppgifter.Enhetstestning
En viktig färdighet för alla programmerare, som ofta felaktigt tillskrivs enbart testare, är förmågan att skriva enhetstester för sin egen kod. CodeGym har några uppgifter relaterade till enhetstester, men du behöver egentligen inte bry dig om att söka efter mer. När du förstår hur man skriver enhetstester, gör det till en vana att täcka din kod (i egna projekt, i dina studier) med dem. Detta är mycket mer användbart än att utföra kontroller med konsolutdata, en praxis som vanligtvis drabbar studentprogrammerare. Dessutom är det väldigt ofta det första som nya juniorutvecklare får i uppdrag på företag att skriva enhetstester för någon annans kod.Öva med reguljära uttryck
Det här är ett enkelt ämne som nästan ingen nybörjare förstår, eftersom det är obekant och de är lata. Det är verkligen värt besväret att ägna några dagar åt att studera ämnet, gå till botten med "regex" och få en fördel gentemot de som inte har gjort det. Detta är också användbart eftersom reguljära uttryck är nästan språkoberoende: om du lär dig dem en gång kommer du att kunna använda dem överallt. CodeGym har inga uppgifter dedikerade till reguljära uttryck, även om vissa kan lösas med deras hjälp. Här är ytterligare resurser för att förstå detta ämne:- regex101.com — en webbplats där du kan kontrollera reguljära uttryck online
- Mike Fitzgeralds "Introducing Regular Expressions" — en kortfattad och enkel primer.
GO TO FULL VERSION