上位の学習者になるには?
技術的な学習に向かう途中で、私たちプログラマーにとって最も重要なことは学習方法です。では、スポンジのように知識を吸収するために、私たちの内なる可能性をどのように解放すべきでしょうか?次に、8つの質問点からシニアエンジニアのように前進する方法を見てみましょう。
1.浅いところから深いところまで技術的なポイントを学ぶ方法は?
最初に最も興味のある方向を選択し、しばらくの間この方向に焦点を当てることをお勧めします。例としてFlutterを取り上げます。最初に、Flutterに関連するすべての専門的なドキュメント、優れた本、ビデオチュートリアル、記事、関係する知識の概要をリストし、関係する各知識ポイントに必要な対応する情報をリストします(たとえば、今日またはここ数日で学習するレイアウトコンポーネント)。次に、その基本的な使用法を学び、実践します。次に、この知識ポイントに関連する内部原則(Flutterでの一般的なレイアウトの実装原則など)をより深く確認し、最後に対応する研究ノートを要約します(今後のレビュー用) )。
これは学習に効果的であり、最初は自分の状態に応じて計画時間の長さを調整できます。毎日完了することができるように、少し緩く計画を開始することをお勧めします。習慣を身につけて完全に適応した後、学習量を増やすことができます。これはフィットネスの原則と同じです。運動を始めたばかりの人は一般的に体力が弱いので、最も基本的な運動から始める必要があります。基礎が築かれ、体力が改善されたら、次のことができます。適切な筋力トレーニング。筋肉を増やします。
2. Androidの断片化された知識ポイントをどのようにつなぎ合わせることができますか?
これは、勉強の際に体系的な学習や思考に注意を払わず、東から少し、西から少し学んだことを示しているのかもしれません。そうすれば、この知識は自然に私たちの心全体に広がります。この問題を解決するためには、まずこれまでに学んだ知識をリストアップする必要があります。そうすれば、これらの知識ポイントのつながりを可能な限り見つけて、マインドマップにすることができます。
以前に学んだ連絡先がたくさんあるかもしれないので、それを頭に入れませんでしたが、これは大きな問題ではありません。この1.0バージョンのAndroidナレッジマインドマップを繰り返していくことができます。 、それは想像を絶する力を発揮して、日々完成していきます〜
3.将来について非常に混乱していて、毎日学びますが、テクノロジーは改善できないのですか?
実際、誰にとっても、最も重要なことは、最も本質的で最も低いレベルから自分自身を磨く方法です。興味を育て、特定の分野を掘り下げ、専門家になるにはどうすればよいですか?特定の技術を迅速、効率的、継続的に掘り下げるコア能力(つまり、ベルデンを通過する能力)をどのように持つのですか?これらの質問への答えは、誰もが短時間で理解して理解することは困難です。
実際、今年の私の記事ルート全体は、これらのコンテンツに合わせて調整されています。ソフトスキル、効率的なアルゴリズムナレッジマップの構築、パフォーマンス最適化フィールドエキスパート、NDKマスターロード(ネイティブレイヤーのパフォーマンス最適化、フックよりも優先)のいくつかのコアルートに分かれています。実装)、Flutter(Flutterアーキテクチャシステム全体を上から下に開くための最も重要なコアポイントから)、来年前半のルート:アーキテクトの成長の道(強力なアーキテクチャ設計を簡単から困難に)機能)。
私が学んだことは非常に複雑に見えると思う学生もいるかもしれませんが、実際はそうではありません。私は常にインフラストラクチャの研究開発という1つのルートに焦点を当ててきました。主な作業は、アーキテクチャの設計、パフォーマンスの最適化、および事前準備です。 -最先端の新技術の研究(Flutter、JetPack))。ルートを選択することをお勧めします。上記のルートである必要はありません。オーディオとビデオ、グラフィックス処理、またはAIモバイル、大きなフロントエンドルートに焦点を当てることは問題ありません。今年は、みんなが一緒に応援します。年末までに満足のいく回答をしていただきたいと思います〜
4.テクニカルビデオをより効率的に学ぶ方法は?
動画を学ぶときは、2倍速で見ることをお勧めします。なじみのない/難しい知識の場合は、小さな技術的なポイントごとに練習してから、メモ/最初のドラフトブログに練習結果を書き込んでください。簡単な知識。通常、練習してメモを書く前に短いセクション/ 2つまたは3つの技術的なポイントを読んでください/最初のドラフトブログ。
5.サードパーティのライブラリを選択するにはどうすればよいですか?
1)このライブラリが必要かどうかを判断します。
2)このライブラリは、開発効率を向上させ、コードのメンテナンスコストを削減できますか?
3)rxjavaなどのこのライブラリの学習コストはどのようになっていますか。実際、学習コストは比較的高くなります。
4)このライブラリの品質は何ですか?星だけでなく、問題の処理も見てください。
6.アルゴリズムの質問を練習する方法は?
1)まず、各アルゴリズムの問題を自分で実装し、アイデアを明確にしてから自分で実装します。(5分以上考えずに次のステップにスキップし
ます)2)次に、答えをもう一度見て、答えのアイデアを覚えて、手書きで書きます。
3)答えのアイデアに従って、翌日にもう一度答えを書き直します。
4)面接が行われようとしているときは、カテゴリごとに手書きですべての質問タイプを体系的に記述します。
7.ソースコードの読み方は?
1)、準備
1. Javaデザインパターン(テンプレートメソッド、シングルトン、オブザーバー、ファクトリメソッド、エージェント、ストラテジー、デコレーター)。
2. Java Advanced関連(汎用、リフレクション、IO)。
3.公式文書でソフトウェアの全体的なアーキテクチャ設計と主な機能を理解します。
4.このライブラリに習熟している。
5.システムを構築し、ソースコードを実行します。
2)、読み始める
1.システムの理解に従って、いくつかの主要なテストケースを設計し、入力と出力を定義します。(一度デバッグするのは間違いなく良くありません
。何度もデバッグする必要があります)2。最初の部分は詳細を破棄し、メインプロセス、2番目の部分、3番目の部分を把握してから、各部分の詳細を確認します。
3. UMLを使用して、読み取り中にシステムのクラス図を描画します。メインのテストケースを理解し、テストケースを充実させ、いくつかのブランチを検討します。
4.このステップには非常に時間がかかりますが、完了すると、システムの理解は確実に質的な飛躍になります。
3)、プロセスの概要
1.準備します。
2.オープンソースプロジェクトを分析する優れた記事をオンラインで検索します。
3.オープンソースプロジェクトについて独自の質問をし、質問のあるソースコードを読みます。
4.ソースコードを読む過程でメモやメモを追加します
。5 。要約を読んだり、記事を書いたり、吸収して再作成したりします。
8.新しいテクノロジーが頻繁に登場しますが、効果的なターゲットを絞った対策を講じる必要がありますか?
新しいテクノロジーが出現したときは、まずそれを理解して、自分のテクノロジーの成長に大いに役立つかどうかを確認する必要があります。新しいテクノロジーがある場合は、すぐに学習したり拒否したりするのではなく、優先度に従って学習スケジュールに追加します。
五数要約
ほとんどの人にとって、鍵は学習スタイルの長所と短所にあるのではなく、痛みを伴わずに忍耐する方法にあるかもしれません。この問題を解決するための最大の武器は利子です。あなたが本当に分野に深く入り込んだときだけ、あなたはその分野への本当の興味を育むことができます。何かを深くまたは完全に知らなくても、常に味わうと、その美しさを理解できなくなり、永続的な興味を失うことになります。これにより、人々は無限ループに陥りやすくなります。理解の欠如は興味の欠如につながり、興味の欠如はそれに対する理解を深めることができません。
長く頑張れるのなら、それがもたらす豊かさと満足感が、自分の貢献をすべて上回っていることであり、昼も夜も心に残り、やりたくなるものでなければなりません。やめて。、それは私の心に最も強い関心を引き起こしたに違いありません。言い換えれば、私に力を与えるものは、意志力ではなく、情熱によって動かされます。しかし、熱意が常に存在することは難しいため、熱意が弱い時期には、移行をサポートするためにある程度の自制心が必要です。したがって、どのように強力な自制心を養うかということも、私たちが探求を続けることを必要とする問題です。
この記事は他の目的にも当てはまるかもしれませんが、私はAndroid開発エンジニアなので、通常のAndroid開発エンジニアの観点からAndroidのシステム学習ルートを共有しましょう。(困っている人や勉強の仕方がわからない人は参考にできます)
1.体系的な学習のためのビデオを見る
過去数年間のCrudの経験から、私は本当に新人の戦闘機であることがわかりました。また、Crudのおかげで、私の技術は比較的断片化されており、体系化するのに十分な深さではないため、必要です。もう一度勉強します。私に欠けているのは、システムの知識、貧弱な構造フレームワーク、思考です。そのため、ビデオを通じて学ぶことは、より良く、より包括的です。ビデオ学習に関しては、個人がステーションBでの学習を推奨できます。ステーションBには多くの学習ビデオがあります。唯一の欠点は、無料で簡単に古くなることです。
また、私は自分でいくつかのビデオを集めました。必要に応じて共有することができます。
2.知識を体系的に整理し、準備金を改善する
クライアント開発には非常に多くの知識ポイントがあり、インタビューにはまだほとんど何もありません。したがって、面接のための他のトリックはありません。これらの知識ポイントにどれだけ準備しているかを見てください。したがって、面接に出かけるときは、レビューでどの段階に到達したかを確認することをお勧めします。
- アーキテクトが基盤を構築するために不可欠なスキル:詳細なJavaジェネリック+単純な言語でのアノテーション+並行プログラミング+データ送信とシリアル化+ Java仮想マシンの原則+リフレクションとクラスの読み込み+動的プロキシ+効率的なIO
- Androidの高度なUIとFrameWorkのソースコード:高度なUIプロモーション+フレームワークカーネル分析+ Androidコンポーネントカーネル+データの永続性
- 360°全体的なパフォーマンスチューニング:設計アイデアとコード品質の最適化+プログラムパフォーマンスの最適化+開発効率の最適化
- オープンソースフレームワーク設計アイデアの解釈:ホットリペア設計+プラグインフレームワーク解釈+コンポーネントフレームワーク設計+画像読み込みフレームワーク+ネットワークアクセスフレームワーク設計+ RXJavaレスポンシブプログラミングフレームワーク設計+ IOCアーキテクチャ設計+ AndroidアーキテクチャコンポーネントJetpack
- NDKモジュール開発: NDK基本知識システム+基礎となる画像処理+オーディオおよびビデオ開発
- WeChatミニプログラム:ミニプログラムの紹介+ UI開発+ API操作+ WeChatドッキング
- ハイブリッド開発とFlutter: Html5プロジェクトの戦闘+ Flutter Advanced
知識が整理されたら、空席を確認して記入する必要があるので、これらの知識ポイントについては、手元にたくさんの電子書籍やメモを用意しました。これらのメモは、各知識ポイントの完全な要約を提供します。
メインコンテンツ:
Javaの基本(★★)
- オブジェクト指向思考
- ポリモーフィズム
- 例外処理
- データの種類
- Java IO
- セットする
- Javaマルチスレッド
Java Advanced(★★)
- Javaでのリフレクション
- Javaの動的プロキシ
- Javaのデザインパターンとリサイクルメカニズム
- Javaのクラスローダー
Androidの基本(★★★)
- Androidの基礎知識
- アクティビティ
- サービス
- BroadCastReceiver
- ContentProvider&Database
- Androidでのレイアウト
- リストビュー
- JNI&NDK
- Androidでのネットワークアクセス
- 意図
- 断片
Android Advanced(★★★)
- Androidのパフォーマンスの最適化
- Android画面の適応
- AIDL
- カスタムコントロール
- Androidでのイベント処理
- Androidの署名
- Androidでのアニメーション
- ネットワークプロトコル
- その他
3.ソースコードを読み、実際の戦闘ノートを見て、神の考えを学びます
「プログラミング言語はプログラマーが表現する方法であり、アーキテクチャーはプログラマーの世界の認識です」。したがって、プログラマーがアーキテクチャーをすばやく理解して学習したい場合は、ソースコードを読むことが不可欠です。ソースコードを読むことは、問題を解決し、物事を理解することであり、さらに重要なことは、ソースコードの背後にあるアイデアを確認することです。プログラマーは、次のように述べています。
主にWeChatMMKVソースコード、AsyncTaskソースコード、Volleyソースコード、Retrofitソースコード、OkHttpソースコードなどが含まれています。
4.面接の前夜に、質問をスプリントします
面接前1週間以内に全力疾走を開始できます。質問をブラッシングするときは、テクノロジーが最優先であり、アルゴリズムは並べ替えなどの基本であり、知的質問は通常、学校の新入生でない限り質問されないことに注意してください。
面接の質問に関して、私はあなたがお互いから学ぶのを助けるために一連の体系的な面接の質問を個人的に準備しました:
上記のコンテンツは、フルバージョンが必要なすべての人、友人と無料で共有できます。すべてのコンテンツを表示するには、ここをクリックしてください。
学習ルート、何を学ぶべきか、そして将来どのように進むべきかを知っているとき、理論が多すぎる場合は練習する必要があります。