プログラミング言語について聞きましたが、その中の技術の 20% がよく使われています。 Java 言語では、この 20% には何が含まれますか?研修に参加してから 2 か月が経ちますが、まだ 2 か月あります。2 か月後にジュニア Java プログラマーとして就職したい場合、何を習得する必要がありますか。また、何ができるでしょうか。今すぐ学んで販売しますか?完全な Javaweb プロジェクトの具体的なモジュールは何ですか?また、各モジュールではどのようなテクノロジが使用されていますか?
一般的に使用される API (String、StringBuffer/StringBuilder など)
1. コレクション クラス、スレッド クラス
2. サーブレット (純粋なサーブレットで書かれることはほとんどありませんが、多くのフレームワークがベースにしているため、理解する必要があります)サーブレットのカプセル化)
3.json、XML の読み取りと書き込み
4. データベース アクセス (CRUD、トランザクション、接続プール)
5.http リクエスト (HttpClient)
6 その他、一般的なフレームワーク、デザイン パターン、オブジェクトを含む指向性
これらを知っていれば、ジュニア プログラマーでもプロジェクトを作成できます。その後に遭遇する問題はさらに複雑になり、さまざまな経験と知識の蓄積に依存します。
習得する必要がある 20% に加えて、それを簡単に実行できるようにするにはどのような知識を習得する必要がありますか?私が接した(使われた)ものについて話しましょう。
Java は分散アプリケーションの豊富なエコシステムで有名であり、分散システムでは CAP の決定から逃れることはできません。 paxos、raft などの分散整合性プロトコルについては早めに理解してください。 Zookeeper の原理と使用シナリオを学びましょう (メタデータ、分散ロック、リーダーエレションなど)
RPC フレームワークは SOA アーキテクチャにおいて重要な役割を果たします。ここでは、Alibaba の dubbo フレームワークをお勧めします。同時に netty、mina、その他のネットワーク ライブラリにも精通しています
Hadoop シリーズ Storm Spark やその他のオフライン リアルタイム コンピューティング フレームワーク
ElasticSearchSolrCloud 分散検索 ELK ログ関連のものはこれらの影響を受けやすく、もちろん、より多くのシナリオで多くの ES があります
メッセージキュー kafkaMetaQ RabbitMQ さて、昨日、ZeroMQ (完全には MQ としてカウントされていません) の作者は安楽死を選びました
それから、さまざまな基礎知識、プログラミング言語、ネットワークの側面、データベース、データ構造、アルゴリズムがあります。 。あなたがそれらのどれかに熟練しているとは思わないでください。あえて言うと、それに熟練しているZhihuは数人います。
プログラマーは 2015 年 7 月に入社し、まだ成長中です。現在の成長プロセスのみを共有します。大学の専攻についてはよくわかりませんでしたが、興味があったので、これまでに 1 か月以上 Java の学習に取り組み、n 個の関数を独自に開発した 2 つの大きなプロジェクトに取り組みました。偉い人たちは私を笑っています)質問者が言った20%については聞いたことがありません。
初めて仕事を始めるときは、開発中のプロジェクトをフォローできるようにする必要があります
2. 私は仕事に参加したばかりで、核心に触れていません。まだ動作していないので、最初にページを変更しましょう。Web 開発者として、HTML、CSS、および JavaScript に習熟している必要はありませんが、少なくともフロントエンドの使用法と文法を理解する必要があります。エンジニアの皆さんは、これを必ず理解する必要があります (私の会社の小規模プロジェクト チームはすべてフルスタックになることを余儀なくされています)。 JavaScript は実際には非常に強力ですが、最初はあまり深く書く必要はありません。easyui など、使用できるホイールはたくさんあります。@王大 Fat さんが言ったように、彼は公式ドキュメントを確認します。使い方をWebページに埋め込み、バックグラウンドでデータを整形してフロントに渡すだけ。
3. その後、徐々に背景に書き始めて、デザインパターンに慣れてきました。多すぎて理解するのが難しい場合は、最初にファクトリパターンを理解し、インターフェースを書いてから使用できます。このインターフェイスを実装するには、1 つまたは複数の実装クラスを使用する必要があります。ニーズに基づいて、どの実装クラスを使用するかを決定します。 (最初はこんな複雑なことをする意味が分かりませんでしたが、前回のプロジェクトでデータベースをOracleからMySQLに変更したので、実際にとても便利であることが分かりました。) 一般的にはデザインパターンが使われます。プロジェクト開発では、それを理解していないと、プロジェクト全体の構造を理解することができないかもしれません。
4. 会社によって使用しているフレームワークは異なりますが、それでも Struts と Spring がより頻繁に使用されるため、これら 2 つのことについてよく知っておくことをお勧めします。そうしないと、プロジェクト全体の構造さえ分からなくなる可能性があります。 t 自分で書くとなると、修正することさえ困難です。たとえば、プロジェクト ジャンプを構成する方法や、どの構成ファイルが何を表すかなどです。 (ローカルでプロジェクトを実行し始めた後、ホームページがどこにあるのか、どのファイルが入力されたのかさえわかりませんでした。index.jsp を探し続けた後、プロジェクトが freemarker で作成された ftl ファイルであることに気付きました)
5. Web プロジェクトにはデータベース操作が不可欠です。私が取り組んだプロジェクトでは主に SQL を接続するために StringBuffer を使用しました。私を案内してくれた弟は、SQL は非常に強力で、SQL で達成できないことは何もない、と言いました。
22. ワークフロー (プロセスエンジンの動作メカニズム) 23.xml、プロパティ、json24. 共通ページとバックグラウンドプラグイン (ツリー、タイム、ポイなど) 25.nosql データベースとアプリケーションシナリオ (mongoDB) 26. キャッシュ データベースとメカニズム (redis、memcached) 27. サードパーティ インターフェイス呼び出し 28.SDK29. Web アプリケーション サーバー (tomcat、weblogic) 30.linux 31. ログ 32. データベース接続プール33.maven34.svn35. モデリングツールの使用(powerdesiner、axure)36.TCP/IP