「フルスタック開発者は、すべてのプログラミング言語とテクノロジーを知っていて、美しく歌って踊る技術の魔術師です。」
フルスタック開発者とは誰ですか?
では、伝統的な意味でのフルスタック開発者とは何でしょうか? 最も一般的な定義によれば、これは、製品のユーザー側 (フロントエンド) と分散サーバー上で実行される内部コード (バックエンド) の両方を含む、システムの機能のすべての部分の開発を担当する専門家であることがわかります。一般に、求人広告に「フルスタック」というフレーズが表示されている場合、開発者はバックエンド開発とフロントエンド開発の知識とスキルを同時に持っている必要があることを意味します。しかし、多くの企業はさらに進んでおり、「フルスタック開発者」とは、ソフトウェア製品のすべてのコンポーネントを開発できるだけでなく、製品管理から運用環境の設定まで、その他すべてを担当できる万能の兵士を意味します。サーバー上のシステムとオフィスのプリンターの修理。実際、ほとんどの場合、フルスタック開発者は、プロジェクトを正常に完了するために必要な一連のテクノロジーについて、適切なレベルの知識を持っている必要があります。したがって、この場合の「スタック」とは、必要な機能を実現するために組み合わされたソフトウェア モジュールとコンポーネントの集合を意味します。なぜこのトピックはこれほど物議を醸しているのでしょうか?
フルスタック開発者は実際にはどうあるべきなのか、また、そのような専門家を別のグループに分けるほどの量のフルスタック開発者が存在するのかどうかについての議論は、かなり長い間続いてきました。経験豊富なプログラマが指摘しているように、2000 年代の設立初期に Facebook の代表者が、開発者向けの専門カンファレンスの 1 つでのスピーチの中で、フルスタック開発者のみを雇用していると述べた後、Facebook は新たな勢いで燃え上がりました。「フルスタック開発者の従来の定義があなたを混乱させるとしたら、すべてが正しいです。これは、フルスタック開発者は一時的なものであるためです。「フルスタック」とは何かを説明する科学モデルはありません。フルスタック開発者のレベルを他の同様の開発者と比較して測定する明確な方法はありません。フルスタックに関する唯一の合意は、この現象の本質についての単一の定義については誰も同意していないということです。だからこそ、このテーマに関してあなたが読んだものはすべて主観的な意見にすぎません」と、経験豊富なソフトウェア開発者でアーキテクトのライランド・ゴールドスタイン氏は述べています。フルスタック開発の 4 つの柱
しかし、多くの専門家は、フルスタック開発者は物議を醸す概念であると主張していますが、欠員が少なくないわけではなく、むしろその逆です。したがって、このタイプのポジションに応募するには、原則としてどの分野の知識が必要であるかを見てみましょう。-
フロントエンド開発。
通常、フロントエンドとは、HTML、CSS、JavaScript などの Web 開発テクノロジーやプログラミング言語を指します。また、React などの JavaScript フレームワークや、製品の「クライアント」側に関連するその他すべてのテクノロジーも含まれます。
どこから勉強を始めるべきか:
Create React AppまたはGatsbyフレームワークから始めることができ、本格的な React アプリケーションを非常に簡単に作成できます。CSS プリプロセッサ、 CSS-in-JSなどの基本的な CSS ツール、Sassなどのツールを学習することをお勧めします。
-
バックエンド開発。
バックエンドには、サイトを機能させるアプリケーションや API など、サーバー上で実行されるすべてのコードが含まれます。バックエンドの主なプログラミング言語はJava、Python、Rubyなどです。これとは別に、バックエンド開発にはデータベース管理も含まれており、これには SQL の知識が必要です。
どこから勉強を始めるべきか:
まずは、多くの場合フロントエンドとバックエンドの架け橋となるJavaScriptについての知識を深めることから始めることをお勧めします。特に、JavaScript を高度に専門化された言語から汎用言語に変える V8 エンジンに基づくソフトウェア プラットフォームであるNodeJSを学習することをお勧めします。
Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.
-
Проджект-менеджмент.
От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.
С чего начать изучение:
Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.
-
DevOps.
Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.
С чего начать изучение:
Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).
Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.
Зарплаты Full Stack разработчиков
フルスタック開発者の給与に関しては、開発に特化した専門分野を持つ同僚と比べて、平均してそれほど高いわけではありません。PayScaleによると、米国におけるフルスタック開発者の平均給与は年間約 75,000 ドルです。同時に、最低給与 (フルスタック職のプログラマーの場合) は年間約 46,000 ドル、最高は年間約 114,000 ドルです。旧ソ連諸国に関しては、 Work.uaリソースによると、ウクライナではフルスタック開発者の平均月給が 35,000 グリブナ (約 1,300 ドル) であるのに対し、キエフでは 45,000 グリブナ (約 1,650 ドル) です。これらのデータによると、ロシアではフルスタック開発者の給与は平均して4万ルーブル(530ドル)から15万ルーブルの範囲にある。(2000ドル)。世界全体の平均について言えば、今日私たちが検討しているポジションで働く専門家の年収は約45,000ドルです。そしてヨーロッパでは、フルスタック開発者が最も高い給与を受け取っているのはデンマークとスウェーデンです。フルスタック開発者になるにはどうすればよいですか?
ここで、皮肉を込めずに自信を持ってフルスタック開発者と名乗るために習得する必要があるスキル、能力、テクノロジについて簡単に説明しましょう。-
プログラミング言語。
フルスタック開発者は、いくつかのプログラミング言語に堪能である必要があります。まず第一に、もちろん、Java、PHP、C#、Python、Ruby、Perl などの主要なものがあります。一言で言えば、製品の主要なビジネス プロセスが記述される可能性が最も高い最も一般的な言語です。もちろん、そのような言語をいくつか完璧に学ぶのは非常に困難です。ただし、少なくとも開発で重要な役割を果たす言語の文法をマスターし、1 つ以上の言語に基づいてプロジェクトを構造、設計、実装、テストする方法について十分な知識を持っている必要があります。
-
フレームワークとコード ライブラリ。
ほとんどの場合、主要なプログラミング言語に関する十分な知識には、Java Spring、Hibernate、Python Django、PHP thinkphp、MyBatis などの一般的なフレームワークやライブラリを使用できることが含まれます。
-
フロントエンド技術。
フルスタック開発者にとってフロントエンド テクノロジの知識の重要性も非常に高く、時間の経過とともに増加します。今日、利便性と製品全体の「ラッパー」が機能性と同じくらい重要になっているため、プロジェクト全体の成功の重要な部分はフロントエンドの肩にかかっています。フルスタックの場合、少なくとも基本的なフロントエンド テクノロジ (HTML5、CSS3、JavaScript) を理解し、主要なフロントエンド フレームワークとライブラリ (JQuery、LESS、SASS、AngularJS、および前述の) をマスターする必要があります。反応してください。
-
データベース。
どの製品やサービスも情報をどこかに保存する必要があるため、データベースは「フルスタック」のもう 1 つの重要なコンポーネントです。したがって、フルスタック開発者は、少なくとも 2 つの最も一般的なデータベース システムとそれらの操作方法を知っている必要があります。現在最も人気のあるデータベース システムは、MySQL、MongoDB、Redis、Oracle、SQLServer などです。その中でも、MongoDB はさまざまなインターネット プロジェクトのデータベースとして最も人気があり、MySQL と Oracle はエンタープライズ製品分野のバックエンドとして最も人気があり、Redis はキャッシュとシステム パフォーマンスの向上によく使用されます。
-
マネジメントとソフトスキル。
しかし、この分野で良い結果を達成するには、テクノロジーやプログラミング言語を学ぶだけでは十分ではありません。プロジェクト管理を成功させるには、時間管理、計画、優れたコミュニケーション スキルなど、多くの要素が必要です。そして、これらすべては主に練習を通じて獲得されます。
-
デザインの基礎知識。
そして最後に、デザインの知識、つまり UX/UI デザインも、基本レベルではありますが、フルスタック開発者の能力の範囲内です。
ちなみに、ここにあるのは、上記のさまざまなテクノロジーをすべてグラフィカルに表示するように設計された、よく構成されたロードマップです。
GO TO FULL VERSION