11 種類の開発者 (あなたはどちらになりますか?)
公開: 2022-10-05「開発者」という言葉を言うと、Kinsta では「ソフトウェア」と考えます。 「不動産」とは言えません。 しかし、コンピューターとコードに焦点を当てたとしても、開発者のタイプを説明する余地は十分にあります。
「JavaScript 開発者」や「Python 開発者」のように、使用するプログラミング言語によって開発者を分類することはできますが、開発者が何を作成しているか、プロセスにおける役割を明らかにすることはできません。 さらに、開発者が複数の言語を知っていることは一般的です。
そこで、広く受け入れられている (そしてよりわかりやすい) 開発者タイプのラベルをいくつか使用し、それらの背後にあるタスクとツールを見ていきます。
開発者とは?
私たちは、ソフトウェアが開発者のストーリーの鍵であることを確立しました。 それにはさまざまな形があります。
Microsoft の SQL Server データベース ソフトウェアの背後にあるプログラミング チームのメンバーは、開発者です。 構造化照会言語を使用して、そのようなデータベースに格納された情報を操作する人も、開発者になることができます。
ある開発者は、回路基板に組み込まれたコンピューターのオペレーティング システムを作成します。 別のユーザーは、他の複数のソフトウェア プログラム間の対話を自動化する Bash スクリプトを作成します。
これらすべてのタイプの開発者は、コードで何かを構築しています。
ます。開発者には何種類いるのか?
開発者の職務記述書の「公式」リストはありません。 いくつかの一般的な用語を使用して開発者が何をするかを見ていきます。また、幅広い「Web 開発者」カテゴリを 3 つの異なる役割に分割します。 (私たちはそれを認めます: 私たちは、ウェブサイトを構築する人々に対して心の中で弱い立場にあります.)
ここでは、全部で 11 種類の開発者をレビューします。
1. フロントエンド Web 開発者
フロントエンド開発者は、Web サイトのユーザー インターフェイスに重点を置いています。 HTML と CSS のスキルを使用してサイトのルック アンド フィールを制御し、多くの場合、モバイル ブラウザーとデスクトップ ブラウザーのさまざまな画面サイズに対応します。
フロントエンド開発者は通常、JavaScript を使用して、ユーザーに応答性の高いエクスペリエンスを作成します。 これらの開発者は、多くの場合、動的なクライアント向けアプリケーションの作成を高速化できる JavaScript ライブラリとフレームワークに精通しています。
フロントエンド開発者は、Web サイトのパフォーマンスを向上させ、画像、JavaScript、およびマークアップを最適化して、ブラウザーでの読み込み時間を短縮するために働きます。 ほとんどのフロントエンド開発者は、検索エンジンの最適化と Web サイトのアクセシビリティにも重点を置いています。
これには多くのスキルが必要であり、フロントエンド開発者の給与にはそれが反映されます。
フロントエンド開発者は Web デザイナーですか?
多くのフロントエンド開発者はデザイナーでもありますが、それは「フロントエンド」という称号の要件ではありません。 同様に、多くの Web デザイナーは HTML と CSS に精通しており、それらをモックアップで使用することもありますが、自分自身を開発者とは考えていません。
多くの組織にとって、デザインはウェブ以外のメディアを含むブランディングの一部です。
誰がデザインを作成しても、それを Web ページ上で実現し、ユーザー エクスペリエンスのビジョンを機能するアプリケーションに変えるのは、フロントエンド開発者の仕事です。
2. バックエンド Web デベロッパー
バックエンド開発者は、通常、Web サーバー ソフトウェア、データベース、およびそれらが実行されるオペレーティング システムに関する専門知識を必要とするサーバー側アプリケーションを構築します。 完全にオープンソースの例は、Linux オペレーティング システム、Nginx または Apache Web サーバー、MariaDB または PostgreSQL データベースです。
バックエンド開発とフロントエンド開発の境界線は、PHP のようなテクノロジによって曖昧になっています。PHP は、フロントエンドのブラウザーに HTML を送信するサーバー側スクリプト言語の 1 つにすぎません。
WordPress やその他の一般的な CMS や、Laravel などの開発フレームワークを強化している PHP は、Web で最も一般的なサーバー側スクリプト言語です。 それでも、バックエンド開発者は、C# や Microsoft の .NET フレームワーク、Python、Java、Ruby on Rails、Node.js などのテクノロジを使用する場合があります。
バックエンド開発者は、Web サイトのクライアント側を管理するチーム メンバーと協力して作業することが期待できます。 サーバー側の開発には、フロントエンド サービスをサポートするアプリケーション プログラミング インターフェイス (API) の作成を含めることもできます。
これらすべてがあなたの仕事のように思える場合は、典型的なバックエンド開発者の給与に興味があるかもしれません。
3. フルスタック Web 開発者
フルスタック開発者は、フロントエンド開発者とバックエンド開発者の作業を行うと推測したかもしれません。 (残念ながら、これは、典型的なフルスタック開発者の給与が他の開発者の 2 倍であることを意味するものではありません。)
それでも、Web 開発のすべてのレベルを習得することには、見返りがあるようです。 StackOverflow による 2022 年の開発者調査では、回答者が自分の役割について説明するように求められたとき、「フルスタックの開発者」がトップの回答 (47% 近く) であることがわかりました。
WordPress 開発者はフルスタック開発者ですか?
ここKinstaでの管理されたWordPressホスティングの機能により、PHPの有能な人なら誰でも、物事のサーバー側を深く掘り下げることなく本格的な開発を行うことができます.
どこにでもインストールされた WordPress は開発者にとって使いやすく、いくつかの一般的なサーバー側タスクの抽象化レイヤーである独自の PHP 関数/メソッドの大規模なライブラリを提供します。 たとえば、WordPress 開発者は、SQL を記述せずにリレーショナル データベースにレコードを保存および取得できます。 メディアのアップロードをサーバーのファイル システムに保存することができます。すべてを実現する PHP のコア機能を知らなくてもかまいません。
「WordPress 開発者」は、ここでは独自のカテゴリであった可能性がありますが、Drupal、Joomla、DNN などの CMS 製品や、Laravel、.NET、Django などのフレームワークを使用する開発者に対しても同じことを行う必要があります。
多くの WordPress 開発者、特に WordPress のテーマやプラグインを作成する一部の開発者は、刺激的なフルスタック チョップを持っています。 では、「WordPress 開発者はフルスタック開発者ですか?」という質問への回答です。 です:場合によります。
4. モバイルアプリ開発者
「アプリケーション」という用語は、ソフトウェア開発の多くの分野をカバーしています。 デスクトップから Web に至るまで、アプリケーションはエンド ユーザーのために何かを成し遂げるツールです。
単に「アプリ」に短縮すると、「そのためのアプリがあります!」のように。 — スマートフォン、タブレット、その他のモバイル デバイスで実行されているアプリケーションを最初に考える傾向があります。 また、モバイル アプリの作成には、専門的な開発者が必要です。
モバイル アプリの開発者は、ソフトウェア開発キット (SDK) と、Apple の iOS や Google の Android などのデバイス オペレーティング システム用のアプリケーションを構築するために使用される関連ツールに精通しています。
Swift は iOS のネイティブ プログラミング言語ですが、Android では Java と Kotlin が最もよく使用されます。 さらに、Apache Cordova や NativeScript などのアプリ構築ツールの大規模なエコシステムにより、Web フレンドリーな JavaScript、HTML、および CSS に基づくコードをネイティブ モバイル ソフトウェアに変換できます。
アプリ デベロッパーの平均給与を調べたところ、モバイル プラットフォーム向けの開発者は、デスクトップや Web に特化した開発者よりもわずかに多くの収入を得ていることがわかりました。
5. デスクトップ ソフトウェア開発者
デスクトップ開発者は、パーソナル コンピューターやワークステーションで実行されるソフトウェア アプリケーションを作成します。
開発者は通常、特定のオペレーティング システム用のデスクトップ アプリケーションを構築するため、この分野での活動は、Microsoft の Windows、Apple の macOS、Google の Chrome OS、オープンソース オペレーティング システムの Linux などのプラットフォームの相対的な市場シェアを反映しています。
Statcounter は、世界中の Web サイトへのアクセスから収集したデータを使用して、2022 年 8 月に Windows がデスクトップ オペレーティング システムの中で 74% の市場シェアを保持していると推定しました。
開発者は、ソース コードの迅速な編集、デバッグ、およびコンパイルのために、統合開発環境 (IDE) ツールを使用してプログラミングする可能性があります。
デスクトップ アプリケーション プログラミングで人気のある言語には、C#、C++、Swift、Java などがあります。
デスクトップ ソフトウェアはローカルで実行されますが、最新のアプリケーションは、製品の更新からクラウド ストレージを介したデータの共有まで、さまざまなタスクにインターネット接続を使用する場合があります。
6. データサイエンティスト (ビッグデータ開発者)
人間は、食料品店で買い物をしたり、ウェブをサーフィンしたり、交通監視カメラを通り過ぎたり、携帯電話を使用したり、投票したりするなど、日常生活を送ることで多くのデータを生成するのに役立ちます。 私たちは、気象、地震、宇宙からの電磁信号などの自然現象からデータを記録するシステムを構築しました。
データ サイエンティストは、すべての情報のパターンを明らかにできるコンピューターを使用した数学の魔法使いです。
これらの開発者は、Python プログラミング言語か、R、Scala、Julia などのより専門的な言語を使用している可能性が高いです。
通常、「ビッグ データ」はリレーショナル データベースに格納されるため、データ サイエンティストのプログラミング ツールボックスには SQL が含まれている可能性があります。
7. 人工知能/機械学習開発者
人工知能 (AI) ソフトウェア開発者は、意思決定などの人間の行動を模倣しようとしています。 機械学習 (ML) を追加すると、アプリケーションは徐々に賢くなります。
AI/ML アプリケーションは通常、複雑なアルゴリズムを使用して大量のデータを処理するため、この分野の開発者は多くの場合データ サイエンティストです。
市場調査会社の IDC は、AI 関連のアプリケーション、ハードウェア、およびサービスの世界の収益が 2021 年に 3,830 億ドルを超え、2020 年に比べて 21% 近く増加したことを発見しました。
顧客関係管理ソフトウェアとエンタープライズ リソース管理ソフトウェアは、AI で強化されたアプリケーションからの収益の約 65% を占めています。
8. ゲーム開発者
コンピュータ ゲームの開発者は、幅広いスキルを備えています。
彼らのソフトウェアは、デスクトップ、モバイル デバイス、コンソール、または Web ブラウザーで実行できます。 ストーリーラインは、ミリタリーやスポーツのシミュレーション、一人称シューティング、戦略、ロールプレイングなど、さまざまなゲームのジャンルに対応しています。 それからおそらく3Dグラフィックス、音楽、効果音があります。
インターネットに接続されたゲームの世界では、大規模なマルチプレイヤー ゲームの開発者は、最も忙しい e コマース サイトと同じくらい厳しいバックエンド サーバーとデータベースの要件に直面しています。
ゲーム開発者は通常、3D レンダリング ツールやその他のアニメーション関連ソフトウェアの専門知識を持っています。
また、最先端のテクノロジに焦点を当てた、SlashData の Developer Nation による最近の開発者調査では、拡張現実 (AR) または仮想現実 (VR) アプリケーションの 37% 強が AR/VR ゲームであることが示されました。 さらに、プロジェクトの 27.9% は仮想世界の構築に関係しており、ゲーム用のものもありました。
9. オペレーティング システム開発者
何千人もの開発者が、Linux に貢献したり、Microsoft、Apple、または Google に採用されたりして、最も人気のあるオペレーティング システムに取り組んでいますが、それは依然として排他的なグループです。 結局のところ、SlashData によると、同社の調査によると、世界中の開発者の総数は 2,400 万人を超えています。
冷蔵庫にオペレーティング システムが搭載されている可能性は十分にありますが、一般的なコンピューター オペレーティング システムは、大規模な開発者チームを必要とする取り組みであり、そのほとんどはプロジェクト全体の小さなコンポーネントに取り組んでいます。
ほとんどのオペレーティング システムの中核は、CPU、メモリ、ファイル システム、および I/O デバイスへのアクセスを管理するカーネルです。 C は、Microsoft Windows、Apple の macOS、および Linux の背後にあるカーネルの主要なコーディング言語です。 また、アセンブリで記述された低レベル コードも使用されます。
そして、Android カーネルは Linux カーネルから進化しました。
オペレーティング システムには、カーネルの上に、システム ハウスキーピング用のさまざまなハードウェア デバイスとアプリケーションを管理するためのドライバーがあります。 そして、システムのグラフィカル ユーザー インターフェイスがあります。 開発者は、これらのコンポーネントに C、C++、Objective C (macOS)、さらには Python (Linux) を使用する場合があります。
10. DevOps エンジニア
DevOps エンジニアは、ソフトウェアを開発段階から公開リリースまで迅速かつ確実に取得するツールとワークフローを管理します。
「DevOps」は「開発」と「運用」という言葉の融合であり、実践者は、コードの管理からテスト、展開、監視、保守、トラブルシューティングまで、反復的なソフトウェア開発タスクを自動化します。
これらのエンジニアは一連の DevOps ツールを使用して、ソフトウェア リリース サイクルを加速し、プロジェクトのコード ベースのさまざまなバージョンを管理し、最終製品が期待どおりに機能することを確認します。
DevOps プロセスを Web 開発に使用すると、アプリケーションに必要なリソースが使用可能になり、Web サーバー上で適切に構成されていることも確認できます。
DevOps には高度なスキルが必要であり、通常、DevOps エンジニアの給与にはそれが反映されます。
11. セキュリティ開発者 (SecDevOps)
セキュリティ開発者は、ツールを構築し、ソフトウェアとコンピュータ システムのセキュリティをテストするプロセスを管理します。
ソフトウェア開発では、多くの場合、セキュリティは DevOps プロセスのコンポーネントです。 その環境のセキュリティに重点を置いている人は、SecDevOps エンジニアと呼ばれる場合があります。
セキュリティ開発者は、ソフトウェアとコンピュータ システムをサイバー セキュリティの攻撃と脅威から保護するために取り組んでいます。 Python、Bash、Ruby などのスクリプト言語を含むさまざまなツールを使用して、反復的なタスクを自動化します。
セキュリティ開発者は、保護しようとしているソフトウェアとシステムについて深い知識を持っている必要があります。
どんなタイプの開発者になりたいですか?
自分で開発者になることを考えている場合は、次のステップに進むのに役立つ情報をいくつか用意しています。 学ぶのに最適なプログラミング言語について読んだり、PHP を学んだり JavaScript チュートリアルを見つけたりすることができます。
おそらく、Laravel 開発者になるために必要なことを知りたい、または世界で最も人気のある CMS である WordPress の学習に集中したいと思うでしょう。
その後、おそらくいつか、Kinsta でのキャリアを積むことになるでしょう。
概要
これは、それぞれの分野で利用可能なさまざまなタスクを強調するのに十分な役割を持つ、11 種類の開発者をまとめたものです。
それでも、多くの開発者は複数の役割を担っており、ほとんどの開発者は複数のプログラミング言語またはスクリプト言語に精通しています。 おそらくそれが、開発者タイプの「公式」リストに全員が同意することが決してない理由です。
一方、立ち上げたいウェブベースのプロジェクトがある場合は、Kinsta のアプリケーション ホスティングおよびデータベース ホスティング ソリューションを検討することをお勧めします。