Androidの開発は時代遅れであり、転職のリスクが高いです。Androidのネイティブ開発への道はどこにありますか?

Androidの開発状況

モバイル開発の現状は?作成したコードで手がかりを探すことができます。Androidを例にとると、多くの大企業のモバイル開発者が作成する最も一般的なコードは次のとおりです。

LinearLayout layout = new LinearLayout();
layout.addView(xxxx);
...

または多分このようなもの:

public class XXXView extends RelativeLayout {

    public XXXView(Context context) {
        this(context, null);
    }

    public XXXView(Context context,
            @Nullable AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public XXXView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView();
    }

    private void initView() {
        LayoutInflater.from(getContext()).inflate(R.layout.xxxlayout, this, true);
        ...
    }

    public void setData(XXX xxx) {
      ...
    }
}

または、xmlタグでさまざまな操作を実行します-UI開発。

そうです、今やモバイルテクノロジースタックはより成熟して完璧になっています。ビジネスにとって、大企業のエンジニアでさえUI表示ロジックを実行しています。大企業の製品は比較的完成度が高く、バックエンドがほとんどのビジネスロジックを制御します。クライアントが行うことは、バックエンドデータを取得し、それをsetText(xxx)で表示してから、ブール値を使用することです。ビューが表示されているか非表示になっているかを判別するためにインターフェースによって返されます。

数年働いてもあまり上達していないという声が多く聞かれ、毎日コードを積み上げていて、数分で自分を入れ替えられる新卒者が見つかるので、とても不安です。数年働いている人にとって、自分が早まって置き換えられたり排除されたりするのを防ぎたいのであれば、彼らはより深く掘り下げるために潜在的で有望な分野を選ぶ必要があります。

危険な変化

学習コストが低いからといって、コストがかからないわけではありません。

プログラミングは難しいですか?正直なところ、とても難しいです。私は基礎を持たないほとんどの人のためにここにいます。自分で学ぶことができる天才や偉大な神がいることを否定しません。プログラミングに対する多くの人の印象は映画から来ています。実際にはプログラマーの友達がいても、彼らが毎日コンピューターの前で何をしているのかを知ることは困難です。なぜキーボードを使って文章を入力すると、コンピューターが自動的に作業を開始するのですか?自分でコードを書く前は、体の感覚がありません。インターレースは、他の業界の記事や天国の本を読むのと同じように、山を登るようなものです。キャリアを変えるには多くの時間がかかります。

始めるための障壁は低いですが、仕事を見つけることはより困難です

すでにセメントミキサーがありますが、シャベルの使い方を学ぶ必要がありますか?
そうです、プログラミングへの障壁はどんどん低くなっています。以前は、ウェブサイトの構築にはLAMPをワンストップで行う必要がありましたが、今ではドラッグアンドドロップで生成するだけで済みます。米国はすべての人にプログラミングを提唱しています。 App Storeには多くのプログラミング教育アプリがあります。独自のプログラムを開発でき、すべてがとても簡単に見えます。しかし、習得しやすいほど競争力は低下します。誰もが知っていることに対して高額の給料を払わなければならないのはなぜですか。「世界の不思議、不思議、そして並外れた見方は、しばしば危険にさらされ、遠くにあり、人間はめったに見られません。」

したがって、プログラムの「学習」と仕事の発見の間にはギャップがあります。

異なる種類の仕事は完全に2つの経験かもしれません

プログラミングと家を建てるのを比較すると、レンガを動かす人もいれば、セメントを混ぜる人もいれば、大工仕事をする人もいます。それはすべて肉体労働ですが、大工はセメント労働者よりもエレガントであり、セメント労働者はレンガ造りの労働者よりも簡単かもしれません(あなたが理解している限り、ここにすべて主観的な比喩があります)。家が大きいほど、の分割は細かくなります。家を建てることですが、すべての種類の仕事があなたに適しているわけではありません。完全に理解することによってのみ、あなたは自分が得意なことを判断することができます。そして、方向性を選択すると、膨大な知識に直面することになりますが、それは毎日更新されており、学習を終えることはありません。やる気があれば、「専門家が多く、強い人が多い」、つまり少し知っておく必要があり、コアコンピタンスには別の方向性があります。

さまざまなレベルで、精神力と身体力の違いが費やされます

同じことが家を建てる例です。エンジニアになる人もいれば、プランナーになる人もいれば、建築家になる人もいます。それは大きな違いです。他の人は青写真を描き、あなたはレンガを動かし、青写真を描くクラスメートはあなたよりも多くを稼ぎます。業界の専門家は、人生の変遷を経験し、「下水道を修理して繊維を掘り出す」という壮大な失敗を経験したので、建築を構築するときに適切に対処することができます。専攻の学生(つまり、コンピュータサイエンスを卒業した人)であろうと、コンピュータサイエンスを卒業した人であろうと、新参者は少し未熟な経験を持っており、基本的な仕事から始めなければなりません(すべての分野で同様です)生活)。そして、転職した学生のほとんどは、一部のアウトソーシング会社に応募してアウトソーシング会社で働く可能性があります。コアテクノロジーにアクセスできず、純粋に「肉体労働」であるわずかな仕事しかできない可能性が高いです。

転職の成功は安心ではありません

プログラミングは無限大です。キャリアを変えたいのなら、この意識を持たなければなりません。新しいテクノロジーは毎日際限なく出現しています。3年前に出会ったテクノロジーは、今では完全に排除され、完全に排除され、誰もそれを使用しなくなりました。ですから、私がこの技術で蓄積した経験はまったく役に立たないので、新参者はこの技術について聞いたことがありませんが、私と同じスタートラインにいます。私は別の方法で学ぶ必要があり、私が彼らに排除されないようにするために、彼らよりも早く学ぶ必要があります。

年齢はハードルです

高圧・高強度の作業で体が追いつかなくなるわけではありませんが、軽く作業をしていても、一定の年齢になると、学習速度がそれほど速くない可能性があります。若い人たち。会社が34歳以上の従業員を解雇するというニュースが昨年出ました。それはナンセンスではありません。言うまでもなく、ここ数年、国内のソフトウェア工学やその他のコンピュータ専攻が大学で爆発し、多くの新規参入者が生まれました(ここのTucaoは、この専攻を開設した学校です。多くの大学は非常に無責任です。教師現在の学生かもしれません。したがって、国は一度に35のソフトウェア工学の学位ポイントも廃止しました)、そして今ではますます多くの人々が転職し、企業はより多くの潜在的な人々をより低コストで採用できるので、古いプログラマーのための道は問題。

上記の2つの大きなポイントは、私たち開業医を心配させます。多くの人々が同じ年齢で転職しました、そしてあなたはまだ転職しています。それはもう一つの包囲された都市です。現在、プログラマーの最初のバッチは40代であり、生涯プログラマーとして働いている人がいるかどうかによって異なります。

Androidの高度な道路

では、Android開発者として、独自の学習ルートをどのように計画し、中級および上級レベルに段階的に進むのでしょうか。
①建築家に必要なスキル

**主なスキル:**詳細なJavaジェネリック、簡単な言語での説明、並行プログラミング、データ送信とシリアル化、Java仮想マシンの原則、リフレクションとクラスの読み込み、動的プロキシ、効率的なIO。

関連する学習ドキュメント:

②Androidの高度なUIとFrameWorkのソースコード

**主なスキル:**高度なUIプロモーション、フレームワークカーネル分析、Androidコンポーネントカーネル、データの永続性。

関連する学習ドキュメント:

③360°全体のパフォーマンスチューニング

**主なスキル:**設計のアイデアとコード品質の最適化、プログラムのパフォーマンスの最適化、開発効率の最適化

関連する学習ドキュメント:

④オープンソースフレームワークの設計思想の解釈

**主なスキル:**ホットリペア設計、コンポーネント化されたフレームワーク設計、画像読み込みフレームワーク、ネットワークアクセスフレームワーク設計、RXJavaレスポンシブプログラミングフレームワーク設計、IOCアーキテクチャ設計、AndroidアーキテクチャコンポーネントJetpack

⑤NDKモジュールの開発

**主なスキル:** CおよびC ++、JNI開発、ネイティブ開発ツール、Linuxプログラミング、低レベルの画像処理、オーディオおよびビデオ開発

⑥建築家に必要なスキル

**主なスキル:**アーキテクチャ設計、MVP、MVP、MVVM、モジュール式およびコンポーネント化されたアーキテクチャ

ێWeChatミニプログラム

**主なスキル:** UI開発、API操作、WeChatドッキング

⑧ハイブリッド開発とフラッター

**主なスキル:** Flutterフレームワークアーキテクチャ分析、Flutterアプリケーション起動分析、Flutterメッセージメカニズム、Flutterプラットフォームチャネルメカニズム、Flutter非同期Futureメカニズム、Flutter Isolate作成プロセス、Flutterレンダリングメカニズム、setState更新メカニズム、Flutterアニメーションの原則。

上記の概要には、学習と理解に役立つ対応するPDFドキュメントがあります。

上記のコンテンツは、フルバージョンが必要なすべての人、友人と無料で共有できますすべてのコンテンツを表示するにはここをクリックしてください

おすすめ

転載: blog.csdn.net/weixin_43901866/article/details/111857952