参入しきい値: 高、低、中
プログラマーはよく「入門しきい値」について話します。これは、特定の「ジュニア開発者」が、初めて本格的なプログラムを作成して仕事を見つけるのに十分なプログラミング言語を習得するために必要な努力の量を反映する概念です。「エントリのしきい値」は、次の知識で構成されます。- 言語の構文の特殊性とニュアンス
- 図書館
- アルゴリズムとデータ構造。
ウェブかウェブではないのか?
ウェブ
Web プログラマーは、フロントエンド開発者とバックエンド開発者に分類できます。これらの用語の意味を理解する必要があります。フロントエンド開発者は、クライアント側、つまりユーザーに表示されるものに関与します。「バックエンド」とは、データの操作と保存に関するもので、サーバー上で実行されるサービスの一部です。フロントエンド開発者がどのプログラミング言語を学ぶかを決定する場合、 JavaScriptと JavaScript フレームワーク (Angular JS、React など) が不可欠です。CoffeeScript や TypeScript などの JS 方言は、親ほど人気がありませんが、便利な場合もあります。Flash AS もあり、かつては JScript や VBScript もありましたが、これを覚えているのは恐竜だけです =) これに加えて、HTML を理解する必要がありますそしてCSS。 多くの初心者は、JavaScript と Java はほぼ同じものだと考えています。これらの言語を混同しないでください。JS は以前は「LiveScript」と呼ばれていましたが、「Java」という言葉が普及したために現在の名前になりました。Web バックエンド開発者には、PHP、Python、Ruby、Perl、Java が適しています。ここでは PHP に焦点を当てたいと思います (他の言語については後で説明します)。PHP は学習の敷居が低く、最も習得しやすい言語の 1 つです。有名な Web 開発者を対象とした調査によると、Ruby はゆっくりと、しかし確実に人気を集めており、その簡潔さと美しさで愛されています。Web ではありません (エンタープライズ、デスクトップ、モバイル)
以下のプログラミング言語を意図的に奇妙な名前でこのカテゴリにまとめました。それらのほとんどは、エンタープライズ、デスクトップ、さらにはモバイル アプリケーションの作成に使用できます。 Python は理解しやすいオブジェクト指向プログラミング言語であり、成長機械学習(ML) のおかげで最近非常に人気が高まっています。ML 開発者は Python を多用しています。 MLは IT の中でもかなり新しい分野であり、すでに成果を上げていますが、私はプログラミング言語を選択するときにこの業界に飛びつくつもりはありません。まず、数学に対する優れた理解が必要です。第二に、人気の波は「ブロックチェーン」や「ナノテクノロジー」の場合と同じように過ぎ去る可能性があります。そうは言っても、Python が Web 開発で使用されていることを覚えているかもしれません。 C++: すべてが「プラスプラス」演算子に基づいて構築される古典的な言語。この言語は、人気のあるすべてのオブジェクト指向プログラミング言語の祖先であり、初心者は必ず注意を払う必要があります。多くの人気のあるアプリケーションがこれを使用して作成されています。しかし、「足を撃たれる」可能性が高く、構文が理解しにくいため、初心者がこのマストドンのプログラミングをマスターできる可能性はゼロになります。 コトリンは流行に敏感な人向けの Java のようなもので、OOP と関数型プログラミングをクレイジーに組み合わせたものです。経験豊富な開発者が Java から Kotlin に切り替えると生産性が大幅に向上するという事実により、最近人気が高まっています。経験豊富な開発者は、このプログラミング言語にすぐに慣れます。ちなみにScalaもそうですが、Androidの世界ではKotlinが人気です。 Javaは初心者にとっても学びやすいです。特にCodeGymの助けを借りれば=) Java 構文は理解でき、「足を撃たれる」リスクはありますが、重大ではありません。OOPかPOPか?
手続き的アプローチ
手続き指向のアプローチには、特定の問題セットを効果的に解決するために統合された全体に組み立てることができる連続したステートメントで構成されるプログラムを作成することが含まれます。このような言語には、 C、PureBasic、Pascal などがあります。つまり、高校生や大学生に絶望をもたらす言語。比較的若いGOもいます言語。とはいえ、手続き型言語に精通していることは、潜在的な開発者にとって非常に役立ちます。私が手続き型言語に没頭するようになったのは、Wolfram Mathematica システムと大学の研究がきっかけでした。プログラムの最初から最後まで直線的に進む適切なアルゴリズムと簡単な手順により、現代の理論物理学に関連する値を計算することができました。この「シーケンシャル」プログラミング言語は、手動で計算を実行するコードを作成する方が簡単な場合があることを理解するのに役立ちます。手順指向プログラミング (POP) の学習は、優れたアルゴリズム トレーニングを提供し、雇用主はほぼ常に求職者にこれを望んでいます。IT のあらゆるものは手続き型言語の基礎に基づいて構築されているため、手続き型言語を過小評価しないでください。ところで、どのプログラミング言語を学ぶかを決める初心者は、OOP 言語だけがマルチスレッドをサポートしていると考えることがよくあります。本当じゃない。手続き型プログラミング言語では並列計算も可能です。オブジェクト指向のアプローチ
手続き型言語を始めた人は、通常、数学、アルゴリズム、データ構造に精通しています (工科大学はこれらの分野に重点を置いているため)。それでも、今日の現実は、成功したプログラマーは通常、プログラミングに対する別のアプローチ、つまりオブジェクト指向パラダイムを習得した人たちです。OOP イデオロギーにより、真にグローバルなシステムを構築できます。このアプローチの特徴は、現実世界との類似性です。- 異なるオブジェクトは相互作用し、互いに独立して存在します。
- オブジェクトには階層があり、祖先の動作を採用または変更できます。
- 抽象的な概念を使用できますが、相互作用できるのは実際に存在するオブジェクトのみです。
例 手続き指向言語は、特定の問題を解決するためのツールです。タスクがわずかでも変更されると、おそらくすべてのアルゴリズムを書き直すのに時間と労力を費やす必要があります。 新車と中古車の両方を販売する自動車販売店を説明するプログラムを想像してください。手続き型言語では、新車、新車、中古車、中古トラックなどのエンティティごとにデータの入力または出力を処理する関数を定義する必要があります。OOP は何を提供しますか? オブジェクト指向のアプローチでは、すべての車両タイプに共有される特性を格納する Vehicle 基本クラスを定義するだけで済みます。
そして、情報を取り入れ、発信する方法。次に、Vehicle クラスの特性を継承するオブジェクト、Car と Truck を作成します。これらには、これらのタイプの車両に特に関係する情報と入出力メソッドが含まれています。 突然、ディーラーの経営者はオートバイも提供することでラインナップを拡大することを決定しました。手続き型アプローチでは、新品および中古のオートバイのすべてのロジックを再作成する必要がありますが、OOP 言語を使用すると、Vehicle スーパークラスのすべての特性を継承し、オートバイ固有の改良を含む新しい Motorcycle クラスを簡単に作成できます。 そして、さまざまな車両を追加するとどうなるでしょうか? 手続き型の実装では、OOP よりも多くの作業が必要になります。さらに、ラインナップが増えるほど、オブジェクトに関する操作が少なくなります。 |
- OOP には個々のモジュールの独立した開発が含まれており、プログラマーまたはチームが連絡先と情報交換の方法と境界を選択できるようになります。
- 小さなモジュールに分割されたコードは、モノリシックなプロシージャよりもはるかに読みやすくなります。その結果、部外者があなたのコードをすぐに理解できるようになり、同様に、必要に応じて新しいプロジェクトに参加することができます。
- あるクラスは、別のクラスの相互作用に影響を与えることなく変更できますが、そのような変更は子オブジェクトの階層に影響を与える可能性があります。このアプローチをマスターすると、プログラムの拡張や変更が簡単になります。
-
クロスプラットフォーム。
Java は、Java 仮想マシン (JVM) のおかげでどこでも動作します。この言語の主な利点の 1 つは、クロスプラットフォームであることです。追加するライブラリや特定のプロセッサのアーキテクチャについて考える必要がありません。「一度書けば、どこでも実行できます。」
-
ドキュメンテーション。
Oracle の公式ドキュメント、トレーニング ポータル、絶えず進化するコミュニティなど、膨大なドキュメント ベースがあります。開発中に発生するほとんどの質問に対する答えは数分で見つかります。重要なのは、検索エンジンに何を入力するかを理解することです =)
-
人気。
Java は世界で最も人気のあるプログラミング言語です。前述の Android 開発者や Web 開発者に加えて、ほぼすべての企業開発者が Java で記述しています。エンタープライズとは、大企業のニーズに必要な社内開発を指します。
毎年、嫌悪者たちは「Javaの死」を予言している。彼らは「Oracle はそのサポートを停止するでしょう。完全に時間の無駄です。」と言いますが、これは真実ではありません。彼らは、Java の新しいバージョンを 6 か月ごとにリリースすると約束しています。
新しいバージョンは言うまでもなく、私にとって Java 8 のラムダ式は革命的であり、啓示でした。私は現在「レガシー」プロジェクトに取り組んでいるため、最新のイノベーションについては詳しく調べていませんが、Java が生きていることは事実です。
-
アンドロイド。
過去 4 年間、Android は携帯電話市場の 80% 以上を一貫して保持してきました。テレビ、メディア プレーヤー、さらには車載インフォテインメント システムもこのオペレーティング システムで動作します。そして、この OS のアプリ開発は主に Java で行われます。開けてくる展望を想像してみてください。Android 開発者として就職したとき、自分が開発している製品にはどれくらいの価値があるのだろうかと考えました。結局のところ、価格は年間約5ドルでした。そこで疑問が生じます。「では、このオフィス、給与、スナックルーム、卓球台、ロボット、その他の特典の資金はどこから出てくるのでしょうか? 答えは量にあります。私たちのアプリには 2,000 万人のユーザーがいます。」
-
給与。
さらにおまけとして、Java 開発者の給与は業界で最も高いものの 1 つです。結局のところ、あなたは特定の目的のためにプログラミングを勉強するつもりです: 良い仕事に就くためです。
プログラミング言語の人気
公式の情報源があるので、そちらを参照しましょう。TIOBEによると、2019 年 10 月の時点で Java は 1 位にランクされています。PYPLランキングでは、Java は JS を大きく引き離して 2 位にランクされ、流行の Python に匹敵します。結論
初心者がプログラミング言語の選択を検討する際には、次の点に注意する必要があります。- 人気 (Java は一貫して主導的な地位を占めています)
- 参入基準 (Java の場合は中程度です。雇用主はかなり広範囲のスキルを必要とします)
- 利用可能なマテリアル (CodeGym へようこそ =))
- 応用分野: プログラミング言語が使用される分野が増えるほど、市場で必要とされる専門家も増えます。Java がクロスプラットフォーム開発をどのようにサポートしているかについてはすでに述べましたが、繰り返しても飽きることはありません。
GO TO FULL VERSION