CodeGym /コース /Frontend SELF JA /プログラマーの道

プログラマーの道

Frontend SELF JA
レベル 47 , レッスン 4
使用可能

6.1 キャリアの階段

キャリアの階段

プログラマー自身にも資格に応じた格付けがあります。かつては「コーダー」、「プログラマー」や「ハッカー」などの用語が使われていましたが、今ではすべてアメリカのIT用語に移行しています。

開発者には6つの基本的な格付けがあります:

  1. Intern Software Engineer
  2. Junior Software Engineer
  3. Middle Software Engineer
  4. Senior Software Engineer
  5. Tech Lead
  6. Principal Software Engineer

国によっていくつかのパラメータが異なる場合がありますが、概ね次のとおりです:

Intern Software Engineer — 研修生です。彼らはプログラミングを学んでいる途中で、商業的な経験も大規模なプロジェクトへの参加も持ちません。通常、より経験豊富な同僚の監督下で働きます。彼らの主な仕事はコードベースとソフトウェア開発の基礎を学び、簡単なタスクを実行したりテストに参加することです。

Junior Software Engineer — もうプログラマーですが、本格的な商業的経験がないか、1年未満の経験があります。より経験豊富な開発者の指導下でプロジェクトの一部を実行し、コードレビューサイクルに参加します。このキャリア段階は技術スキルの深化とプロジェクトタスクの理解に焦点を当てています。

Middle Software Engineer (または単にSoftware Engineer): 技術的な決定を独自に行う能力が増し、プロジェクトの重要な部分を担当し、より経験の浅い同僚を指導し始めたり、アーキテクチャの議論に積極的に参加します。 通常2〜5年の実務経験があります

Senior Software Engineer: 複雑なシステムの設計と実装を担当し、チーム内でのメンタリングとリーダーシップを提供し、プロジェクトの戦略的計画に参加し、しばしばクライアントや他の利害関係者とのコミュニケーションでチームを代表します。 通常、5〜10年の経験があります

TechLead: 技術的なリーダーとして、プロジェクトの最終的な技術的成果に責任を持ち、開発を指導し、最も複雑な問題を解決し、技術標準の遵守を確保し、開発者の活動を調整します。

Principal Software Engineer: 最も高度な技術レベルで働き、しばしば企業の技術戦略の形成、革新的なソリューションの開発と技術標準の確立に参加し、技術リーダーの主要なメンターとなり、複雑な技術問題の主要な専門家です。

これって面白いよ

大手企業には追加の役割やサブロールがあります。例えば、Googleには以下のような役割があります:

  • Staff Software Engineer (L6): 自部門の技術方針に大きな影響を与えています。
  • Senior Staff Software Engineer (L7): 大規模かつ複雑なプロジェクトに取り組み、会社の技術的な成長の戦略的方向を決定します。

6.2 レゴプロダクト

昔々(1975年)、Pascalの創設者Niklaus Wirthが『アルゴリズム + データ構造 = プログラム』という本を書きました。それ以来、多くのことが変わりました。

現代のソフトウェア製品は、10年前と全く違うものであり、20年前はなおさらです。1975年のことを語るまでもなく、以来50年が経ちました。

現代のプログラマーはもう手作業でプログラムを書きません。むしろ、完成した部品(ライブラリ)からプログラムを組み立て、それらの部品を連携させるためのコードを書くのです。

現代のソフトウェア製品は数十から数百のプログラムで構成されることができ、その一部はユーザーのコンピュータやモバイルデバイスで実行され、ほとんどはデータセンターのサーバーで実行されます。

これらのプログラムの多く、例えばウェブサーバーやデータベースなどはすでに書かれています。それらを適切に設定するだけで動作させることができます。しかし時間が経つにつれて設定プロセスが非常に複雑になり、実質的に開発に変わることもあります。🤦‍♂️

プログラマーは常に自分との戦いをしています。異なるプログラムで似たコードを毎回書く代わりに、彼らは自分のニーズに合わせて設定できるライブラリを書き、それを必要なすべての場所に接続するのです。

この20年間でプログラマーは非常に多くのライブラリ、フレームワーク、オープンリポジトリを作成しました。本当に数百万あります。そして今やゼロからすべてのコードを書くのは、無粋とされています。代わりに、良質で実証されたソリューション、つまりライブラリやフレームワーク、パッケージ、モジュールからプログラムを組み立てる必要があります。

しかしこのアプローチもすでに古くなっています。過去10年間のトレンドはクラウドへの移行です。大規模なデータセンターが、あなたのプログラムが必要とするすべてを提供します。データベースが欲しいですか?選ぶのに数百ありますよ。珍しいユニークなウェブサーバーが欲しいですか?ありますよ。お金次第で何でも。

6.3 「私はエンジニアだ」 (c) イーロン・マスク

軌道上のロケット

もう複雑で退屈なことを書く必要はありません。今では、何らかの素晴らしい複雑な機能が必要な場合、常にライブラリがあります。あなたがするべきことは単に:a) それがあることを知ること、b) 必要なものを見つけること(品質の異なる多くの類似品があります)、c) それをプロジェクトに統合する方法を理解することです。

このアプローチのおかげで、仕事はもっと面白くなりました。今や10倍速く新しい機能をプロダクトに追加できます。30年前、もしウェブサーバーが必要だったら、自分で書く必要がありました。20年前には、購入して、インストールして、設定する必要がありました。今では、単に「クラウド」の管理画面に入ってオンにするだけです。

ちなみに、これがFrontendの人気の理由の一つです。複雑なバックエンドを今ではJavaScriptでNode.jsを使って書いたり、クラウドデータセンターの様々なサービスを「オンにする」だけで済みます。Frontendはバックエンドの制限から大きく解放され、めちゃくちゃ活躍しています。その人気を見る限り、その役割をしっかり果たしているようです。

そして実際にFrontend開発者の職業はFrontend Fullstack Software Engineerに変わりました。現代のFrontend開発者はデータベースがどう動いているのかを理解して、それと適切にやり取りする必要があります。HTML & JavaScript、NginX、そしてDockerも必要です。これはもう業界標準です。

現代の開発は20年前とは全く似ていません。現代のプログラマーは時間の50%以上をコードを書くことに費やしていません。残りの時間はドキュメントを読んだり、新しい技術を学んだり、ミーティング(会議)に参加しています。孤独なプログラマーは遠い過去の話です。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION