Heim > Java > javaLernprogramm > Welche beruflichen Fähigkeiten benötigen Java-Programmierer?

Welche beruflichen Fähigkeiten benötigen Java-Programmierer?

零下一度
Freigeben: 2017-06-27 09:16:19
Original
1939 Leute haben es durchsucht

Welche beruflichen Fähigkeiten benötigen Sie, um ein qualifizierter Java-Programmierer oder -Ingenieur zu werden? Was müssen Interviewer vor dem Vorstellungsgespräch vorbereiten? Der in diesem Artikel angezeigte Inhalt kann als Inhalt in Ihrem Lebenslauf verwendet werden oder als Gesprächsstoff mit dem Interviewer während des Vorstellungsgesprächs. Sie können diesen Inhalt natürlich in Ihren Lebenslauf schreiben Das Interview zeigt, dass der Interviewer diese beruflichen Fähigkeiten unter Beweis stellt. Ich glaube, dass dieser Artikel sowohl für Studienanfänger hilfreich sein wird, die auf der Suche nach einer Stelle als Java-Programmierer (Java-Ingenieur) sind, als auch für Junioren, die Java-Entwickler mittlerer und höherer Stufe werden möchten.

Berufliche Fähigkeiten

  1. Kompetenter Umgang mit der Java-Sprache für objektorientierte Programmierung, gute Programmiergewohnheiten und vertraut mit häufig verwendeten Java-APIs, einschließlich Sammlungsframework, Multithreading (gleichzeitige Programmierung), I/O (NIO), Socket, JDBC, XML, Reflection usw.

  2. Vertraut mit der Java-Webentwicklung auf Basis von JSP und Servlet, verfügt über ein tiefes Verständnis der Arbeitsprinzipien und Lebenszyklen von Servlet und JSP und beherrscht die Verwendung von JSTL und EL zum Schreiben skriptloser Dynamik Seiten und verfügen über die Möglichkeit, Erfahrungen in der Java-Webprojektentwicklung mit Webkomponenten wie Listenern und Filtern sowie dem MVC-Architekturmuster zu nutzen.

  3. Verfügen Sie über ein umfassendes Verständnis der IoC-Container- und AOP-Prinzipien von Spring, nutzen Sie das Spring-Framework geschickt, um verschiedene Webkomponenten und ihre Abhängigkeiten zu verwalten, und nutzen Sie Spring geschickt für Transaktionen, Protokollierung und Sicherheit Das Management usw. verfügt über Erfahrung in der Verwendung von Spring MVC als Präsentationsschichttechnologie und der Verwendung der von Spring bereitgestellten Persistenzunterstützung für die Webprojektentwicklung und ist mit der Integration anderer Frameworks durch Spring vertraut.

  4. Beherrscht die Verwendung von ORM-Frameworks wie Hibernate und MyBatis, ist mit den Kern-APIs von Hibernate und MyBatis vertraut und mit der Assoziationszuordnung, der Vererbungszuordnung, der Komponentenzuordnung, dem Caching-Mechanismus und der Transaktion von Hibernate vertraut Management und Leistungsoptimierung.

  5. Beherrscht die Verwendung von HTML, CSS und JavaScript für die Web-Frontend-Entwicklung, ist mit jQuery und Bootstrap vertraut und verfügt über umfassende Kenntnisse der Anwendung der Ajax-Technologie in Webprojekten und deren Verwendung das Front-End-MVC-Framework (AngularJS) und die JavaScript-Vorlagen-Engine (HandleBars) für Projektentwicklungserfahrung.

  6. Vertraut mit häufig verwendeten relationalen Datenbankprodukten (MySQL, Oracle) und beherrscht die Verwendung von SQL und PL/SQL für die Datenbankprogrammierung.

  7. Vertraut mit objektorientierten Designprinzipien, mit tiefgreifendem Verständnis von GoF-Designmustern und Mustern der Unternehmensanwendungsarchitektur und relevanter Erfahrung in der praktischen Entwicklung sowie kompetenter Verwendung von UML für objektorientiertes Design Analyse und Design, mit Erfahrung in TDD (Test Driven Development) und DDD (Domain Driven Design).

  8. Vertraut mit der Verwendung von Webservern und Anwendungsservern wie Apache, NginX, Tomcat, WildFly, Weblogic usw. und vertraut mit der Konfiguration der Integration, Clusterung und Auslastung mehrerer Server ausgleichend.

  9. Versiert im Umgang mit dem Produkt-Prototyping-Tool Axure, versiert im Umgang mit den Designmodellierungstools PowerDesigner und Enterprise Architect, versiert im Umgang mit der Java-Entwicklungsumgebung Eclipse und IntelliJ, versiert im Umgang mit der Front-End-Entwicklungsumgebung WebStorm , Sicher im Umgang mit den Software-Versionskontrolltools SVN und Git und im Umgang mit den Projektkonstruktions- und -verwaltungstools Maven und Gradle.

Hinweis: Nicht alle oben aufgeführten Dinge müssen Ihnen bekannt sein. Sie können dies entsprechend den spezifischen Rekrutierungsanforderungen des tun Unternehmen. Gezielte Vorbereitung. Ich persönlich denke, dass die ersten 6 Punkte die Mindestanforderungen sein sollten und die beruflichen Fähigkeiten darstellen, die ein Java-Entwickler besitzen muss.

Projekterfahrung

Projekteinführung

Dieses System ist ein von X entwickeltes System, das von Y für Z anvertraut wurde. Das System umfasst A und B, C, D und andere Module. Das System verwendet das Java-Open-Source-Framework E auf Unternehmensebene und die Front-End-Technologie F. Die Präsentationsschicht verwendet die G-Architektur, H als Ansicht und I als Controller und implementiert Anforderungen im REST-Stil. Die Geschäftslogikschicht verwendet das J-Muster und implementiert Funktionen wie Transaktionen, Protokolle und Sicherheit über K sowie den Cache Dienste über L; Die Persistenzschicht verwendet M, um CRUD-Operationen zu kapseln, und die unterste Schicht verwendet N, um den Datenzugriff zu implementieren. Das gesamte Projekt übernahm das P-Entwicklungsmodell.

Hinweis: In der obigen Beschreibung bezieht sich E normalerweise auf Spring (eine zentrale Wahl für die Java-Entwicklung auf Unternehmensebene); F ist höchstwahrscheinlich die jQuery-Bibliothek und ihre Plug-Ins oder das Bootstrap-Framework, wenn Sie eine Single-Page-Anwendung (SPA) erstellen möchten, ist ein Front-End-MVC-Framework (wie AngularJS) und eine JavaScript-Vorlagen-Engine (wie HandleBars G). offensichtlich MVC (Model-View-Control), und das wahrscheinlichste Implementierungsframework ist Spring MVC. Zusätzlich zu Struts 2, JSF und der von Apache für JSF bereitgestellten MyFaces-Implementierung können Sie JSP auch als V in MVC verwenden Verwenden Sie Vorlagen-Engines (wie Freemarker und Velocity), um Ansichten zu generieren, oder Sie können verschiedene Dokumente oder Berichte (wie Excel und PDF usw.) verwenden. Servlets und benutzerdefinierte Controller sind C in MVC. Natürlich stellt Spring MVC DispatcherServlet bereit als Front-End-Controller; J ist normalerweise ein Transaktionsskript, und K sollte AOP-Technologie (Aspektorientierte Programmierung) sein, L wird derzeit häufig mit Memcached verwendet und Redis hat viele Optionen, die wahrscheinlichsten sind Hibernate und MyBatis . Beide Technologien können auch gleichzeitig verwendet werden, aber Ergänzungen, Löschungen und Änderungen werden normalerweise von Hibernate durchgeführt und komplexe Abfragen werden von MyBatis durchgeführt. Darüber hinaus sind TopLink und jOOQ auch hervorragende Lösungen für den Datenzugriff Traditionell verwendete relationale Datenbanken, bei denen es sich um MySQL, Oracle, SQLServer, DB2 usw. handeln kann, mit dem Aufkommen von Big Data. Mit dem Aufkommen von NoSQL (wie MongoDB, MemBase, BigTable usw.) und anderen großen Datenzugriffen Lösungen (wie GFS, HDFS usw.) können ebenfalls verwendet werden; das Entwicklungsmodell P des Projekts kann ein Wasserfallmodell, ein schnelles Prototypmodell, ein inkrementelles Modell, ein Spiralmodell, ein Brunnenmodell, ein RAD-Modell usw. sein.

Projektentwicklungsprozess

  1. Machbarkeitsanalysebericht/Projektentwicklungsplan

  2. Anforderungsanalyse>>> Anforderungsspezifikation

  • OOAD (Anwendungsfalldiagramm, Sequenzdiagramm, Aktivitätsdiagramm)

  • Schnittstellenprototyp: Hilft, Anforderungen zu verstehen und Transaktionsskripte beim Entwerfen der Geschäftsschicht abzuleiten

  • Design>>> Zusammenfassung der Designanweisungen/Details Designspezifikation

    • Geschäftseinheiten (Domänenobjekte) extrahieren: Klassendiagramme, E-R-Diagramme (Konzeptionsphase)

    • Hierarchische Architektur: Bestimmen Sie den technischen Implementierungsplan für jede Schicht (spezifisch für das verwendete Framework, Datenbankserver, Anwendungsserver usw.). Design der Geschäftsschicht: Transaktionsskriptmodus (Transaktion: Ein Benutzer sendet eine Anforderung, die eine Transaktion ist; Skript: eine Methode oder Funktion; Transaktionsskript: Kapselt eine Anforderung als Methode oder Funktion; Transaktionsskriptmodus: Eine Transaktion beginnt mit dem Skript (Eröffnung, Ende im Schluss des Skripts). In der Geschäftsschicht sind drei Arten von Objekten beteiligt: ​​Transaktionsskriptklassen (Kapselung von Geschäftsprozessen), Datenzugriffsobjekte (DAO, Kapselung von Persistenzoperationen) und Datenübertragungsobjekte (DTO, Kapselung von Blutverlust-/Anämiefeldobjekten). zwischen der Transaktionsskriptklassenkombination (Aggregation) und dem Datenzugriffsobjekt, die beide auf dem Datenübertragungsobjekt

    • Forward Engineering (UML-Klassendiagramm zum Generieren von Java-Code) und Reverse Engineering Engineering ( Java-Code generiert UML-Klassendiagramme)

    • Physikalisches Datenbankdesign (Umwandeln von ER-Diagrammen in Beziehungsdiagramme zwischen Tabellen, Erstellen von Datenbanken und Tabellen, Verwenden von Tools zum Einfügen von Testdaten)

  • Codierung

  • Testbericht/Fehlerbericht

    • Einheit Testen: Überprüfen und verifizieren Sie die kleinste testbare Einheit in der Software. In Java dient dies zum Testen der Methoden in der Klasse, die mit dem JUnit-Tool implementiert werden können.

    • Integrationstests: Integrationstests werden auch Montagetests oder gemeinsame Tests genannt. Basierend auf Unit-Tests werden alle Module zu Subsystemen zusammengesetzt, um sie entsprechend den Designanforderungen zu testen.

    • Systemtests: Kombinieren Sie die bestätigte Software, Hardware, Peripheriegeräte, Netzwerke und andere Elemente, um verschiedene Montagetests und Bestätigungstests des Informationssystems durchzuführen. Systemtests dienen dem gesamten Zweck Das Testen des Produktsystems besteht darin, zu überprüfen, ob das System die Definition der Bedarfsspezifikationen erfüllt, und die Inkonsistenzen oder Widersprüche mit den Bedarfsspezifikationen herauszufinden, um eine umfassendere Lösung vorzuschlagen.

    • Abnahmetests: Nachdem das Softwareprodukt Unit-Tests, Integrationstests und Systemtests abgeschlossen hat, werden Softwaretestaktivitäten durchgeführt, bevor das Produkt veröffentlicht wird. Es handelt sich um die letzte Phase des technischen Testens, auch Liefertest genannt. Der Zweck des Abnahmetests besteht darin, sicherzustellen, dass die Software bereit ist und von Endbenutzern verwendet werden kann, um die beabsichtigten Funktionen und Aufgaben der Software auszuführen.

  • Lieferung und Wartung>>> Benutzerhandbuch/Bedienungsanleitung

  • Projektmanagement

    • Versionskontrolle: CVS/SVN/Git

    • Automatisierter Build: Ant/Maven/Ivy/Gradle

    • Kontinuierliche Integration: Hudson/Jenkins

    Systemarchitektur

    • Lastausgleichsserver: F5, A10

    • Anwendungsserver:

      • HTTP-Server: Apache, NginX (HTTP, Reverse-Proxy, Mail-Proxy-Server)

      • Servlet-Container: Tomcat, Resin

      • EJB-Container: WildFly (JBoss Application Server), GlassFish, Weblogic, Websphere

    • Datenbankserver: MySQL, Oracle

    Tool-(Plug-in-)Anwendung von Drittanbietern

    • Diagrammtools: jQuery-basierte Diagramm-Plug-ins (z. B. jQchart, Flot , Charted usw.), Chart.js, Highcharts usw.

    • Reporting-Tools: Pentaho Reporting, iReport, DynamicReports usw.

    • Dokumentenverarbeitung: POI, iText usw.

    • Workflow-Engines: jBPM, OpenWFE, Snaker, SWAMP usw.

    • Jobplanung: Quartz, JobServer, Oddjob usw.

    • Caching-Dienste: EhCache, Memcached, SwarmCache usw.

    • Nachrichtenwarteschlange: Open-MQ, ZeroMQ usw.

    • Sicherheitsrahmen: Shiro, PicketBox usw.

    • Suchmaschinen: IndexTank, Lucene, ElasticSearch usw.

    • Ajax-Framework: jQuery, ExtJS, DWR usw.

    • UI-Plug-ins: EasyUI, MiniUI usw.

    • Rich-Text-Feld: UEditor, CKEditor usw.

    Interviewfragen

    • Für welches Unternehmen wurde das Projekt entwickelt? Wie hoch ist die Investition in das Projekt?

    • Wie viele Personen waren an der Projektentwicklung beteiligt? Wie ist das Verhältnis von Testern, Entwicklern und Projektmanagern im gesamten Team?

    • Wie lange wurde das Projekt entwickelt? Wie hoch ist das gesamte Codevolumen des Projekts? Wie viel Code haben Sie?

    • Welches Entwicklungsmodell oder welchen Entwicklungsprozess verfolgt das Projekt? Wie ist die Struktur des Projekts? Wie sieht die Technologieauswahl für das Projekt aus?

    • Welche Verantwortlichkeiten hatten Sie im Projekt? Haben Sie häufige Besprechungen oder machen Sie Überstunden? Welche Gewinne oder Erkenntnisse ergeben sich nach Abschluss des Projekts?

    • Was war der schwierigste Teil des Projekts? Wie können verschiedene Konflikte gelöst werden, die während der Teamentwicklung auftreten?

    Hinweis: Für diejenigen ohne tatsächliche Projekterfahrung können Sie Java-Programmierer auf Websites wie 51job, Zhaopin.com und Lagou suchen und rekrutieren. com Unternehmen, finden Sie die offizielle Website, um mehr über die von ihnen durchgeführten Projekte zu erfahren, sehen Sie sich die detaillierte Einführung des Projekts an und versuchen Sie dann, einige der Funktionen auszuführen. Fragen Sie am besten einen Experten, um zu sehen, ob Ihr Design und Ihr Code geeignet sind. Dies entspricht dem Sammeln einer gewissen Projekterfahrung.

    Interviewfragen

    Häufige Java-Interviewfragen wurden in „Java Interview Questions Collection“, „Java Interview Questions Complete Collection“ und „Interview Programming Questions“ zusammengefasst Sammlung“ 》 und weitere Artikel werden nacheinander auf meinem Blog veröffentlicht. Ich werde weiterhin Interviewfragen von großen Unternehmen zusammenstellen und veröffentlichen.

    Andere

    Häufige Fehler

    1. Nur ​​am Computer üben

    2. Keine verhaltensbezogenen Interviewfragen üben

    3. Kein Probe-Interviewtraining durchführen

    4. Versuchen, sich Antworten zu merken

    5. Sprechen Sie Ihre Problemlösungsideen nicht laut aus

    6. Der Code ist nicht streng genug

    7. Schreiben Sie keinen Testcode

    8. Gib leicht auf

    Sie können dem Interviewer während des Interviews Fragen stellen

    1. Mir ist aufgefallen, dass Sie mit der X-Technologie das Y-Problem lösen?

    2. Warum verwendet Ihr Produkt X-Technologie anstelle von Y-Technologie? Soweit ich weiß, hat die X-Technologie zwar die Vorteile A, B, C usw., aber auch die Probleme D und E, und die Technologie Y kann die Probleme D und E lösen.

    3. Ich bin mit der X-Technologie, von der Sie sprechen, nicht besonders vertraut, aber ich halte sie für eine gute Lösung. Können Sie mir mehr darüber erzählen, wie sie funktioniert?

    4. Wie plant Ihr Team das Projekt? Wie viele regelmäßige Treffen gibt es pro Woche? Wie hoch ist die ungefähre Codemenge pro Woche?

    5. Die einzige Lösung, die mir für Problem X einfällt, ist Y. Wie würden Sie dieses Problem lösen?

    S.A.R.-Regel

    Die S.A.R-Regel bedeutet, zuerst das Problemszenario zu beschreiben, dann die von Ihnen ergriffenen Maßnahmen zu erläutern und schließlich die Ergebnisse anzugeben.

    Fünf Möglichkeiten, Algorithmusprobleme zu lösen

    1. Beispielmethode: Entdecken Sie die allgemeinen Regeln, indem Sie Beispiele nennen.

      Beispiel: Wie groß ist die Wahrscheinlichkeit, dass ein in einen Kreis eingeschriebenes Dreieck ein spitzes Dreieck ist? Dies ist eine Interviewfrage von Sogou. Sie können die Antwort herausfinden, indem Sie zufällig drei Punkte auf den Kreis zeichnen und sie zu einem Dreieck verbinden.

    2. Mustervergleichsmethode

      Beispiel: Die Elemente eines geordneten Arrays werden durch eine Schleife verschoben und die Reihenfolge festgelegt der Elemente wird zu „3 4 5 6 1 2“. So finden Sie das kleinste Element in einem Array, vorausgesetzt, die Elemente im Array sind unterschiedlich. Diese Frage sieht der binären Suche so ähnlich, dass wir aus dem binären Suchalgorithmus lernen können. Das kleinste Element erscheint offensichtlich am Wendepunkt von „Mitte > rechts“.

    3. Vereinfachte Generalisierungsmethode

      Erklärung: Vereinfachen Sie die Problemgröße und den Datentyp und entdecken Sie dann eine universelle Lösung.

    4. Einfache Konstruktionsmethode

      Beispiel: Finden Sie alle möglichen Permutationen und Kombinationen von „abcde“. Betrachten Sie zunächst nur den Fall „a“, dann den Fall „ab“ und so weiter. Möglicherweise erhalten Sie eine rekursive Formel. Dieser Ansatz entwickelt sich häufig zu einem rekursiven Ansatz.

    5. Datenstruktur-Brainstorming-Methode

      Beispiel: Generieren Sie zufällig einige Zahlen und ermitteln Sie deren Median. Für diese Art von Frage können Sie die Ihnen bekannten Datenstrukturen durchgehen und herausfinden, welche Datenstruktur am besten geeignet ist. Die obige Frage kann zwei Heaps erstellen, einen großen Root-Heap und einen kleinen Root-Heap. Kleinere Elemente werden in den kleinen Root-Heap gelegt. Wenn die beiden Heaps unausgeglichen sind, können sie genommen werden Legen Sie das Element einfach aus einem der Heaps heraus. Der endgültige Median sollte eine der Wurzeln der beiden Haufen sein.

    Anstellungsverhandlungen

    1. Seien Sie zuversichtlich und bringen Sie konkrete Gehaltsanforderungen vor

    2. Bieten Sie einen etwas höheren Preis als erwartet an

    3. Konzentrieren Sie sich nicht nur auf das Gehalt (viele Unternehmen sind eher bereit, bei anderen Konditionen als dem Gehalt Kompromisse einzugehen)

    4. Verwenden Sie die am besten geeignete Methode (Sie können versuchen, die Behandlung telefonisch oder per E-Mail auszuhandeln)

    Selbstevaluation

    1. Lernfähigkeit (Menschen in der IT-Branche müssen ständig neue Technologien, Tools und Methoden verstehen)

    2. Teambewusstsein (im Vergleich zum individuellen Heldentum, das IT Industrie Mehr befürwortet Teamarbeit)

    3. Stressresistenz (die Arbeitsintensität vieler IT-Unternehmen ist relativ hoch)

    Achtung, Studierende, die Java lernen! ! !

    Das obige ist der detaillierte Inhalt vonWelche beruflichen Fähigkeiten benötigen Java-Programmierer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage