資格のあるJavaプログラマーまたはエンジニアになるにはどのような専門的なスキルが必要ですか?また、インタビューの前に何を準備する必要がありますか?インタビュー中、インタビュアーは自分の専門的なスキルを知りたいと思っています。以下は、資格のあるJavaソフトウェアエンジニアが必要とするものです。
1。専門的なスキル
1。Java言語を使用したオブジェクト指向プログラミングに習熟し、優れたプログラミング習慣を持ち、コレクションフレームワーク、マルチスレッド(同時プログラミング)、I/O(NIO)、ソケット、JDBC、XML、反射などを含む一般的に使用されるJava APIに精通しています。
2。JSPとサーブレットに基づいたJava Web開発に精通しているため、サーブレットとJSPの作業原則とライフサイクルを深く理解しているため、JSTLとELを使用してスクリプトレスダイナミックページを作成し、リスナー、フィルター、その他のウェブコンポーネントおよびMVCアーチティックパターンを使用したJava Webプロジェクト開発の経験があります。
3。スプリングのIOCコンテナとAOPの原則を深く理解し、スプリングフレームワークを使用してさまざまなWebコンポーネントとその依存関係を管理することに習熟し、トランザクション、ログ、セキュリティなどにSpringを使用することに熟練し、SpringMVCをプレゼンテーションレイヤーテクノロジーとして使用し、Springプロジェクト開発に提供される持続性サポートを使用し、Springの統合に慣れています。
4。冬眠やMybatisなどのORMフレームワークを使用するのに習熟しており、HibernateとMybatisのコアAPIに精通しており、Hibernateの関連付けのマッピング、継承マッピング、コンポーネントマッピング、キャッシュメカニズム、トランザクション管理、パフォーマンスの調整について詳細に理解しています。
5。jQueryとBootstrapに精通しているWebフロントエンド開発にHTML、CSS、およびJavaScriptを使用するのに習熟し、WebプロジェクトにおけるAJAXテクノロジーのアプリケーションのアプリケーションを詳細に理解し、フロントエンドMVCフレームワーク(AngularJS)およびJavaScriptテンプレートエンジン(ハンドルバース)を使用したプロジェクト開発の経験があります。
6.一般的に使用されるリレーショナルデータベース製品(MySQL、Oracle)に精通し、SQLとPL/SQLを使用したデータベースプログラミングに熟練してください。
7.オブジェクト指向の設計原則に精通し、GOFの設計パターンとエンタープライズアプリケーションアーキテクチャパターンを深く理解し、実際の開発における関連する経験を持ち、UMLを使用したオブジェクト指向の分析と設計に習熟し、TDD(テスト駆動型開発)とDDD(ドメイン駆動デザイン)の経験があります。
8。Apache、Nginx、Tomcat、Wildfly、WeblogicなどのWebサーバーやアプリケーションサーバーの使用に精通しており、複数のサーバー統合、クラスタリング、ロードバランスの構成に精通しています。
9。製品プロトタイプツール軸の使用に習熟し、設計モデリングツールのPowerDesignerおよびEnterprise Architectを使用するのに習熟し、Java開発環境のEclipseおよびIntellijを使用するのに習熟し、フロントエンド開発環境Webstormを使用するのに習熟し、ソフトウェアバージョン制御ツールSVNおよびGITを使用し、プロジェクト構築と管理ツールのメイベンとグラードルを使用するのに習熟しています。注:上記のすべてのアイテムではなく、精通している必要があります。企業採用の特定の要件に基づいて、対応するターゲット準備を作成できます。ただし、最初の6つの項目は最小要件である必要があり、Javaソフトウェアエンジニアが所有しなければならない専門的なスキルです。
2。プロジェクトの経験
プロジェクトの紹介
このシステムは、Xで委託されたZのシステムであり、Zに使用されます。システムには、A、B、C、D、およびその他のモジュールが含まれます。このシステムは、JavaエンタープライズレベルのオープンソースフレームワークEおよびフロントエンドテクノロジーFを使用します。プレゼンテーションレイヤーはGアーキテクチャを使用し、Hをコントローラーとしてビューとして使用し、レストスタイルのリクエストを実装します。ビジネスロジックレイヤーはJモードを使用し、Kを介してトランザクション、ログ、セキュリティ機能を実装し、Lを介してキャッシュサービスを実装します。 PersistenceレイヤーはMを使用してCRUD操作をカプセル化し、基礎となる層はNを使用してデータアクセスを実装します。プロジェクト全体がP開発モデルを採用しています。
説明:
eは通常、春を指します(Javaエンタープライズレベルの開発のためのワンストップ選択)。
Fは、jQueryライブラリ、そのプラグインまたはブートストラップフレームワークである可能性が最も高くなります。もちろん、シングルページアプリケーション(SPA)を構築する場合、最良のソリューションはフロントエンドMVCフレームワーク(AngularJSなど)およびJavaScriptテンプレートエンジン(ハンドルバーなど)です。 Gは明らかにMVC(Model-View-Control)であり、最も可能性の高い実装フレームワークはSpring MVCです。さらに、JSFのためにApacheが提供するStruts 2、JSF、およびMyFacesの実装があります。
HはJSPです。 JSPはMVCのVです。テンプレートエンジン(FreemarkerやVelocityなど)を使用して、ビュー、またはさまざまなドキュメントやレポート(ExcelやPDFなど)を生成することもできます。
私はサーブレットまたはカスタムコントローラーです。それらはMVCのCです。もちろん、Spring MVCはフロントエンドコントローラーとしてDispatcherServletを提供します。
Jは通常、トランザクションスクリプトです。
Kは、AOP(断面指向のプログラミング)テクノロジーである必要があります。
Lは現在、MemcachedおよびRedisによって広く使用されています。
Mには多くの選択肢があります。最も可能性の高いものは、冬眠とMybatisです。両方のテクノロジーも同時に使用できますが、通常、加算を追加、削除、変更する、削除と変更は処理のために冬眠に引き渡され、複雑なクエリはMyBatisによって完了します。さらに、TopLinkとJOOQも優れた永続性レイヤーソリューションです。
Nの下部でのデータアクセスは、従来、リレーショナルデータベースを使用するために使用されていました。これは、MySQL、Oracle、SQLServer、DB2などです。ビッグデータ時代の出現、NOSQL(MongoDB、Membase、Bigtableなど)およびその他のビッグデータアクセスソリューション(GFS、HDFSなど);
Pはプロジェクト開発モデルであり、滝モデル、迅速なプロトタイプモデル、増分モデル、スパイラルモデル、噴水モデル、RADモデルなどです。
プロジェクト開発プロセス:
1。実現可能性分析:実現可能性分析レポート、プロジェクト開発計画
2。要件分析:要件仕様
ooad(ユースケース図、タイミング図、アクティビティ図)
インターフェイスプロトタイプ:ビジネスレイヤーを設計するときに要件を理解し、トランザクションスクリプトを推測するのに役立ちます
3。デザイン:ビジネスエンティティ(ドメインオブジェクト)を抽出するための概要デザインマニュアルおよび詳細デザインマニュアル:クラス図、ER図(コンセプトデザイン段階)
階層アーキテクチャ:各レイヤーの技術的実装ソリューションを決定します(特に使用されるフレームワーク、データベースサーバー、アプリケーションサーバーなど)。
ビジネスレイヤーの設計:トランザクションスクリプトモード(トランザクション:トランザクションは、ユーザーがリクエストを送信する場合のトランザクションです。スクリプト:メソッドまたは関数、トランザクションスクリプト:リクエストをメソッドまたは関数にカプセル化します。
ビジネスレイヤーには3つのタイプのオブジェクトがあります。トランザクションスクリプトクラス(ビジネスプロセスをカプセル化)、データアクセスオブジェクト(DAO、永続的な操作をカプセル化)、およびデータ送信オブジェクト(DTO、失血/貧血フィールドオブジェクトをカプセル化する)。 3つの関係は、トランザクションスクリプトクラスの組み合わせ(集約)データアクセスオブジェクトです。どちらも、フォワードエンジニアリング(UMLクラス図がJavaコードを生成する)とリバースエンジニアリング(JavaコードがUMLクラス図を生成する)データベースの物理設計に依存しています(ER図は、テーブル、ライブラリ構築、テーブル構造の間の関係図に変換され、テストデータを挿入するためのツールを使用します)
4。コーディング
5。テスト:テストレポート、欠陥レポート単位テスト:ソフトウェアの最小テスト可能なユニットを確認して確認します。 Javaでは、クラスの方法をテストしてJunitツールを使用して実装できます。
統合テスト:統合テストは、アセンブリテストまたは共同テストとも呼ばれます。単体テストに基づいて、すべてのモジュールは、設計要件に応じてテストするためにサブシステムに組み立てられます。
システムテスト:確認されたソフトウェア、ハードウェア、周辺機器、ネットワーク、その他の要素を組み合わせて、情報システムのさまざまなアセンブリおよび確認テストを実施します。システムテストは、製品システム全体に対して実施されたテストです。目的は、システムが要件仕様の定義を満たしているかどうかを確認し、要件仕様と矛盾する、または矛盾するものを見つけて、より完全なソリューションを提案することです。受け入れテスト:ソフトウェア製品がユニットテスト、統合テスト、システムテストを完了した後に製品がリリースされる前に実施されるソフトウェアテスト活動。これは、配送テストとも呼ばれる技術テストの最後の段階です。受け入れテストの目的は、ソフトウェアの準備が整っていることを確認し、エンドユーザーがソフトウェアの確立された機能とタスクを実行するために使用できるようにすることです。
6。配達とメンテナンス:ユーザーマニュアル、運用マニュアル
iii。プロジェクト管理
1。バージョン制御:CVS/SVN/GIT
2。自動構造:Ant/Maven/Ivy/Gradle
3。継続的統合:ハドソン/ジェンキンス
IV。システムアーキテクチャ
1。ロードバランシングサーバー:F5、A10
2。アプリケーションサーバー:
HTTPサーバー:Apache、Nginx(HTTP、Reverse Proxy、Mail Proxy Server)
サーブレットコンテナ:Tomcat、樹脂
EJBコンテナ:Wildfly(JBoss Application Server)、Glassfish、Weblogic、WebSphere
3.データベースサーバー:MySQL、Eclipse、Oracle
5。サードパーティツール(プラグイン)アプリケーション
1。チャートツール:jQueryベースのチャートプラグイン(jqchart、flot、chartedなど)、chart.js、highchartsなど。
2。レポートツール:Pentaho Reporting、Ireport、DynamicReportsなど。
3。ドキュメント処理:POI、ITEXTなど。
4。ワークフローエンジン:JBPM、OpenWfe、Snaker、Swampなど。
5。ジョブスケジューリング:Quartz、Jobserver、Oddjobなど。
6。キャッシュサービス:ehcache、memcached、swarmcacheなど。
7。メッセージキュー:Open-MQ、Zeromqなど。
8。セキュリティフレームワーク:Shiro、Picketboxなど。
9。検索エンジン:Indextank、Lucene、Elasticsearchなど。
10。AJAXフレームワーク:jQuery、extjs、dwrなど。
11。UIプラグイン:EasyUi、Miniuiなど。
12。リッチテキストボックス:ueditor、ckeditorなど。
6.インタビューで質問してください
1.どの企業が開発されたのですか?プロジェクトへの投資はいくらですか?
2.プロジェクト開発に何人の人が参加しましたか?チーム全体のテスター、開発者、プロジェクトマネージャーの割合は何ですか?
3.プロジェクトはどのくらい開発されましたか?トータルプロジェクトにはどのくらいのコードがありますか?どれくらいのコードがありますか?
4.プロジェクトはどのような開発モデルまたは開発プロセスを採用していますか?プロジェクトのアーキテクチャは何ですか?プロジェクトの技術選択は何ですか?
5。プロジェクトでどのような責任を負いましたか?頻繁に会議や仕事がありますか?プロジェクトが完了した後に学んだ利益またはレッスンは何ですか?
6.プロジェクトの最も難しい部分は何ですか?チーム開発中に遭遇したさまざまな紛争を解決する方法は?
7。インタビュー中にインタビュアーの質問をすることができます
1. Xテクノロジーを使用していることに気付きました。 Yの問題をどのように解決しましたか?
2。なぜあなたの製品はYテクノロジーの代わりにXテクノロジーを使用するのですか?私の知る限り、XテクノロジーにはA、B、Cなどの利点がありますが、DとEの問題もありますが、YテクノロジーはDとEの問題を解決できます。
3.私はあなたが言及したXテクノロジーにあまり精通していませんが、それは良い解決策だと感じています。それがどのように機能するかについて詳しく教えてください。
4。あなたのチームはどのようにプロジェクトを計画していますか? 1週間でいくつの定期的な会議がありますか?週あたりのコードのおおよその量はいくらですか?
5.問題Xについて考えることができるソリューションは現在Yです。この問題をどのように解決しますか?
8。SARルール
SARルールは、最初に問題のシナリオを説明し、次に取ったアクションを説明し、最終的に結果を述べることを指します。
9。面接の原則
1。適度な声、明確なスピーチ、笑顔、個人的なイメージ、礼儀正しさ。
2。イニシアチブを見て、インタビュアーが満足させるために興味のあるトピックについてインタビュアーと話をしてください。
3.イニシアチブを取り、おなじみの経験豊富なコンテンツ、プロジェクト、技術的なポイントなどについて大胆にインタビュアーに話しかけます。
4.あなたは本当にこの立場を得たいと思っていること、そしてあなたが理解していないテクニックを学ぶことをいとわないことを表現しなければなりません。
5.実際のレベルに基づいて合理的な治療要件を作成します。
10。自己評価
1。学習能力(IT業界の人々は、新しいテクノロジー、ツール、方法を常に理解する必要があります)
2。チームの意識(個人的なヒロイズムと比較して、IT業界はチームワークをもっと提唱しています)
3。圧力抵抗(多くのIT企業の作業強度が比較的高い)
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。