Rückblickend bin ich seit fast 15 Jahren im Java-Bereich tätig. Obwohl meine Kenntnisse durchschnittlich sind, kann es jedem helfen, Umwege zu vermeiden.
[Erste Schritte]
Ich war vor 2001 im C/C++-Lager, mit Grundlagen in C und objektorientiert. Später wechselte ich zu Java und fand dass Java keine Zeiger hat. Es ist so einfach und die Java-Klassenbibliothek ist so einfach zu verwenden.
Später las ich „Thinking in Java“ und „Java Core Technology“ und hatte nicht das Gefühl, dass es schwierig war.
Wenn ich noch nie eine andere Sprache gelernt hätte oder wenn ich Mönch geworden wäre und in die Computerbranche gewechselt wäre, würde ich die beiden oben genannten Bücher nicht zuerst lesen. Stattdessen würde ich „Head First Java“ wählen, dieses Buch ist sehr gut für Anfänger ohne Grundkenntnisse geeignet. Es ist einfach und unterhaltsam zu lesen. Wenn Sie es nicht glauben, schauen Sie sich die erste Seite an
Aber nur das Buch zu lesen ist ziemlich langweilig, Sie können es sich genauso gut in Verbindung mit dem Video ansehen. Ich finde das Java-Basisvideo von Chuanzhi Podcast sehr gut (oh, ich habe es gesagt). Werbung für Chuanzhi). Sie können es finden, indem Sie online suchen. Wenn Sie es nicht finden können, besuchen Sie einfach meine QQ-Gruppe (Gruppennummer: 299541275). Sehen Sie sich den Code-Eingabevorgang an, was sehr cool ist. Wenn es in dem Video nur um die Programmierung auf PPT-Basis geht, werfen Sie es entschieden weg.
Bücher haben auch die Vorteile von Büchern. Was in ein Buch geschrieben werden kann, muss etwas sein, das der Autor nach systematischem Denken und Sortieren gestalten kann, also ist es relativ systematisch.
Das Buch hat auch noch andere Vorteile, zum Beispiel, dass man es beiläufig durchblättern kann und die wichtigsten Punkte findet, um es immer wieder zu lesen.
Eine Mischung aus dem Lesen klassischer Bücher + exzellenten Videos sollte also der beste Einstieg sein.
Wenn ich mit Java anfänge, werde ich nicht an Schulungskursen teilnehmen, was eine Geldverschwendung ist. Selbststudium reicht aus.
Wenn ich während des Selbststudiums von erfahrenen Experten begleitet werde, zeichne eine Routenkarte für mich, zeige mir die Kletterrichtung, wo es Fallstricke gibt und wo ich selbst keine Zeit verschwenden sollte -Lernen kann reduziert werden.
Leider habe ich ihn damals nicht getroffen. Wenn ich in die Vergangenheit reisen könnte, würde ich versuchen, jemanden zu finden, der mich führt.
[Üben]Eines der Merkmale der Softwareindustrie ist, dass man nie durch bloßes Sehen und Handeln lernt und es Ihnen peinlich sein wird, rauszugehen und Sagen Sie Hallo, wenn Sie weniger als 100.000 Zeilen Code haben.
Also üben, üben, üben!
Während ich in der Schule bin, werde ich immer noch mein Bestes geben, um Projekte zu finden, die ich machen kann (siehe meinen anderen Artikel „Bereichern Sie Ihren Lebenslauf von jetzt an“, antworten Sie auf „Lebenslauf“, um ihn anzusehen), aber ich kann es wirklich Ich finde es nicht. Sie können zuerst eine gute Grundlage legen.
Als ich auf dem College war, habe ich auch alle Übungen gemacht, als ich den leitenden Programmierer belegte Prüfung, mein Ergebnis war sehr gut.
Später erfuhr ich von einem besseren Einführungsbuch zu Algorithmen, „Algorithmus“. Wenn ich in die Vergangenheit reisen könnte, würde ich immer noch alle in diesem Buch erwähnten Datenstrukturen und Algorithmen mit Java implementieren alle abschließenden Hausaufgaben machen.
Dies ist eine sehr wichtige Schulung, denn ich weiß, wenn ich es wirklich mache, werde ich feststellen, dass grundlegende Datenstrukturen mich nicht überfordern werden, solange ich keine Algorithmen entwerfe.
[Java SE]
Für das Java-Sammlungsframework müssen Sie nicht nur lernen, es zu verwenden, ich werde auch versuchen, es zu implementieren, Liste, ArrayList, Set, HashSet, Map, HashSet usw. Wenn Sie nicht schreiben können, schauen Sie sich einfach den Quellcode von JDK an. Dort gibt es die besten Lehrer.
Nach der Implementierung können Sie objektorientiertes Design, die Beziehung zwischen Schnittstellen, abstrakten Klassen und konkreten Klassen besser verstehen, wie Verantwortlichkeiten getrennt werden und Sie lernen die Vorlagenmethoden in Entwurfsmustern, Iteratoren usw. kennen .
Es ist erwähnenswert, dass Iterator sehr interessant ist. Ich erinnere mich noch deutlich an die Aufregung, als ich Iterator in diesem Jahr im Sammlungsframework implementierte :-)
Ich implementierte dabei das Java-Sammlungsframework Übrigens können Sie auch Generika lernen. Wenn Sie es nicht lernen, können Sie es nicht umsetzen.
In der Java-Welt ist alles ein Objekt. Jeder weiß über Kapselung, Vererbung und Polymorphismus Bescheid, aber das Verständnis davon ist nur eine Einführung, und es ist unmöglich, ein echtes objektorientiertes Programm zu erstellen.
Es gibt ein klassisches Buch „Agile Software Development, Principles, Patterns, Practices“, das einen Gehaltszahlungsfall ausführlich erläutert, der bisher das beste Beispiel für objektorientiertes Design ist
Ich werde es in Java implementieren, um OOD wirklich zu erleben und zu verstehen, wie man den entsprechenden Klassen die entsprechenden Verantwortlichkeiten zuweist, was schnittstellenorientierte statt umsetzungsorientierte Programmierung ist und welche Priorität die Verwendung von Komposition anstelle von Vererbung hat.
Bei Java-Threads liegt der Fokus immer noch auf dem Verständnis der Konzepte, da ich weiß, dass in zukünftigen Arbeiten (es sei denn, ich beschäftige mich mit der Programmierung auf Systemebene) die Chancen des Schreibens meines Eigene Threads/Thread-Pools sind sehr hoch. Selten sind sie alle durch Klassenbibliotheken und Frameworks gekapselt. Der Schlüssel liegt also darin, zu verstehen,
Wenn Sie ein Buch lesen möchten, dann ist es natürlich „Java Concurrent Programming in Practice“, geschrieben von vielen Experten.
Für Java IO finde ich das Architekturdesign sehr elegant und typisch für Akademiker, aber es ist nicht sehr praktisch. Zum Öffnen und Lesen muss man den Dekoratormodus verwenden eine Akte. Komm und packe, ich bin so müde.
Im eigentlichen Projekt müssen eine Eigenschaftendatei und eine XML-Datei gelesen werden. Ich konzentriere mich immer noch darauf, das Konzept und Design zu verstehen.
Aber es wäre gut, selbst einen einfachen XML-Parser zu schreiben.
Was AWT und Swing betrifft, werde ich nicht näher darauf eingehen. Java ist eine typische serverseitige Sprache, und nur sehr wenige entwickeln clientseitige Programme , Sie verwenden Swing/AWT. Wenn ein Desktop-Programm herauskommt, muss der Kunde eine JRE installieren, bevor es ausgeführt werden kann. Ist das nicht etwas übertrieben? Soweit ich weiß, verwenden einige Bankanwendungen Swing und AWT. Manche Leute mögen sagen, dass Applet einst beliebt war, aber heute nutzt es niemand mehr.
Damit ich keine Zeit mit Swing und AWT verschwende.
Java Reflection scheint nicht so beeindruckend zu sein wie Sammlungs-Frameworks, Threads, OO usw., aber es ist die Grundlage vieler Frameworks (SSH) (antworten Sie auf „Reflection“, um verwandte Artikel anzuzeigen), lernen Sie Zuerst die Grundlagen, und dann muss Java EE es verwenden.
Wenn Sie Java wirklich gut lernen möchten, wie ist das möglich, wenn Sie die Java Virtual Machine nicht verstehen? Sie müssen „Ausführliches Verständnis der Java Virtual Machine“ lesen. Das Ziel nach dem Lesen besteht darin, einen einfachen Java-Decompiler zu schreiben.
【Seien Sie ein qualifizierter Java-Programmierer】
Ich erinnere mich, dass mein IBM-Manager 2008 sagte, dass Entwurfsmuster eine notwendige Fähigkeit seien, nein, das können wir nicht Fragen Sie nach jemandem, der Designmuster versteht.
Designmuster sind daher ein Muss. Tatsächlich werden sie häufig in Java verwendet. Sie sind einfach ein lebendiges Lehrbuch für Designmuster, Singletons, Vorlagenmethoden und Verantwortungsketten werden alle reflektiert.
Natürlich werde ich zuerst das entspannende „Head First Design“ lesen, einer der Autoren von „Design Patterns“, das ich auf keinen Fall verpassen sollte.
Einige Jahre später sagte mein IBM-Manager, dass jetzt jeder unser Standardentwurfsmuster kennt und agiles Üben eine notwendige Fähigkeit ist!
Also muss ich JUnit kennen, ich muss mich mit Refactoring auskennen und ich muss die grundlegendsten agilen Praktiken wie TDD und kontinuierliche Integration kennen, sonst werde ich von anderen herabgesehen.
Als angehender Java-Programmierer muss ich beim Schreiben von Code die Java-Codierungsstandards befolgen, z. B. die Großschreibung des ersten Buchstabens von Klassennamen, die Registrierung in Kleinbuchstaben und Methodennamen in Kleinbuchstaben usw.
Als Code-Freak kann ich schmutzigen Code nicht ertragen. Ich werde meinen Code so lange polieren, bis er wie ein Kunsthandwerk aussieht.
Wie können Sie die Best Practices von Java „effektives Java“ übersehen? Es ist voll von der besten Verwendung der Java-Programmierung, zusammengefasst von den Autoren von JDK.
Allerdings ist die Übersetzung wirklich nicht sehr gut, um zu verstehen, was sie bedeuten. Deshalb habe ich vor, eine Reihe von Videos aufzunehmen, um sie zu erklären, also bleiben Sie dran.
[Java EE]
Nachdem ich so weit gegangen war, kam ich endlich zu Java EE. Ist Java nicht nur zum Schreiben serverseitiger Webanwendungen gedacht?
Ich werde selbst ein Webprogramm schreiben. Ich kann darüber nachdenken, den oben erwähnten klassischen Gehaltszahlungsfall in eine Webversion umzuwandeln und dabei die grundlegendste Technologie Servlet/jsp/jdbc zu verwenden.
Dann studieren Sie Struts, schreiben Sie selbst ein einfaches MVC-Framework und verwenden Sie es in Ihrem eigenen Webprogramm. Dies nennt man „Eigenes Hundefutter essen“.
Dann studieren Sie Hibenete, schreiben Sie selbst ein einfaches OR-Mapping-Framework und essen Sie wieder Ihr eigenes Hundefutter.
Dann lesen Sie das klassische Buch „J2EE-Entwicklung ohne EJB“. Ja, es wurde von Rod Johnson, dem Autor von Spring, geschrieben. Es hat das Verständnis aller von Schwergewicht EJB untergraben und eine neue Ära eröffnet.
Auf der Grundlage dieses Buches ist es nicht schwierig, selbst eine vereinfachte Abhängigkeitsinjektion zu schreiben. Nachdem Sie sie geschrieben haben, können Sie sie in Ihrem eigenen Webprogramm verwenden und zum letzten Mal Ihr eigenes Hundefutter essen.
Sie werden es wissen, wenn Sie es tun. All dies basiert auf Java Reflection.
In Zukunft sollten Sie echte Projekte finden, an denen Sie arbeiten können, oder Praktika finden. Das ist ein anderes Thema, über das wir später sprechen werden.
[Code lesen]
Vertraut mit dreihundert Tang-Gedichten und kann sie rezitieren, auch wenn Sie nicht wissen, wie man sie verfasst
Nachahmung ist der beste Weg dazu lernen! Schauen Sie sich genauer an, wie die Experten ihre Codes schreiben, und verbessern Sie so auch Ihre eigenen Kampfkunstfähigkeiten.
Wenn ich einen guten Meister an meiner Seite hätte, ihm folgen und ihm beim Programmieren zusehen würde, wie schnell würde ich mich verbessern?
Während ich Java SE und Java EE lerne, werde ich diese Quellcodes lesen:
Java Collection-Quellcode im JDK: Das Zeug des Vorfahren ist absolut klassisch
JUnit-Quellcode: Sehen Sie, wie Eric Gamma und Kent Beck Systeme durch Muster erstellen (zum Ansehen auf „JUnit“ antworten)
SpringSide: Mit Spring Framework als Kern sind JavaEE-Anwendungsreferenzbeispiele im pragmatischen Stil die gängige Technologieauswahl in der JavaEE-Welt sowie die Zusammenfassung und Demonstration bewährter Methoden.
Von Chinesen entwickelt, sehr zu empfehlen.
Außerdem werde ich noch das berühmte Jive-Forum zu Beginn dieses Jahrhunderts studieren. Obwohl es sehr alt ist und der Quellcode sehr akademisch ist, ist es einfach das Basislager der Designmuster, und das sind sie alle lebende Anwendungsbeispiele
Es gibt einen Proxy-Modus zur Implementierung der Berechtigungskontrolle, der mir noch frisch in Erinnerung ist.
Wenn Sie Freizeit und Interesse haben, können Sie natürlich auch den Quellcode von Struts, Spring und Hibernate lesen und sogar an der Entwicklung teilnehmen.
Wie man Java lernt, das ist mein Gefühl seit so vielen Jahren und es ist nur mein Familiengespräch. Gerne können Sie mit mir kommunizieren.
Programmieren zu lernen war noch nie so einfach. Es ist unmöglich, es durch das Ansehen von Videos oder das Lesen von Büchern zu lernen. Obwohl das Programmieren eine extrem harte geistige und körperliche Arbeit ist, ist auch die Freude am Schaffen, die darin steckt, beispiellos. Ich hoffe, dass jeder diesen Prozess genießen und genießen kann.
Achtung Studierende, die Java lernen! ! !
Wenn Sie während des Lernprozesses auf Probleme stoßen oder Lernressourcen erhalten möchten, können Sie gerne der Java-Lernaustauschgruppe beitreten: 299541275 Lassen Sie uns gemeinsam Java lernen !
Das obige ist der detaillierte Inhalt vonSchritte und Prozesse zum Erlernen von Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!