apeescape2.com
  • メイン
  • 収益性と効率性
  • ブランドデザイン
  • 製品ライフサイクル
  • トレンド
ライフスタイル

幅広いスキルセットと狭いスキルセット:ソフトウェアエンジニアリングスキルの謎を解き明かす

すべてのソフトウェアエンジニアは、習得したさまざまなスキルで構成されるスキルセットを持っています。 1つから2つのスキルを習得し、それ以外のスキルをほとんど習得していない場合、スキルセットは「深くて狭い」ものです。どの分野の専門家でなくても、すべてを少しでもできるのであれば、それは「広くて浅い」です。

SpringBootトークンベースの認証

私たちのほとんどは、いくつかの強力なスキル、いくつかの平均的なスキル、そして多くのギャップを持った中間のどこかにいます。この記事では、広範で深い範囲について説明し、広義に近づくことはほとんどのプログラマーに利益をもたらすと主張したいと思います。

ソフトウェアエンジニアスキル:スキルセットのグラフィック表現



もちろん、幅と深さは相対的です。たとえば、あなたは Web開発の専門家 、またはクライアント側のWeb開発、またはJavaScriptのみ。これらはすべて、ある意味で「深くて狭い」スキルですが、最後のスキルは最初のスキルよりもはるかに狭いです。

また、「深くて広い」スキルセットと「浅くて狭い」スキルセットの両方が可能です。1つ目は、誰もがあなたを雇いたいと思っていることを意味し、2つ目は、意味のあることをまだまったく学んでいないことを意味します。それらはあまり一般的ではないため、詳細に説明する価値もありません。

ソフトウェアエンジニアのスキルとスキルセットの種類

深くて狭い

深いスキルセットを持っているということは、少なくとも1つの分野の専門家であることを意味します。

SQLを取る:リレーショナルデータベース理論についてすべて知っているとしましょう。 MySQL、PostgreSQL、Oracle、およびSQLiteの長所と短所。クエリを最適化する方法。データベースを非正規化する時期と方法など。この特定のスキルを探しているクライアントは、正当な理由でできるだけ早くあなたを雇いたいと思うでしょう。あなたは着実に動き始め、他のほとんどの人ができないような価値を提供します。

ただし、プロジェクトが大幅に拡大または変更された場合は、不足しているスキルを持つプログラマーに置き換えられるか、補足されます。大きな変更がなくても、アーキテクチャの変更を提案できますか?クライアントは、NoSQLデータベースを使用するか、データベースをまったく使用しない方がよい場合がありますが、専門知識が限られているため、これらのなじみのないオプションに偏る可能性があります。

広くて浅い

一方、ドメインの専門家ではないジェネラリストの場合は、生産性がピークに達する前に、新しいプロジェクトに着手するための時間が必要になります。

例を挙げると、Pythonプロジェクトを実行する必要があり、その言語をこれまで使用したことがない場合があります。それでも、おそらくそれについていくつかのこと(動的、解釈、マルチパラダイム)を聞いたことがあるでしょう。他の言語での経験により、移行がはるかに簡単になります。

あなたが最初に書いたコードはそうではないかもしれません Pythonic (タプル、内包表記、またはジェネレーターを使用)ただし、どこから始めればよいかがわかります。あなたは着実に進歩し、あなたのよく因数分解されたモジュールは後で簡単に改善されるでしょう。テクノロジーに対するあなたの幅広い視点は、他の人が見逃すかもしれないアイデアをあなたに与えるでしょう。

プロジェクトが変更されると、あなたは責任ではなく、チームの資産になります。

実世界のスキルセット

地理的には、狭いスキルセットは高い山のように見え、広いスキルセットは高原のように見えます。この例えを使用すると、典型的なスキルセットは、いくつかの山、あちこちの丘、そして多くの平野を特徴とする可能性があります。

山、丘、平野のグラフィック表現

ランダムプログラマーは、SQLとPythonに長けていて、Webプログラミングとアルゴリズムに長けていて、コアダンプ、OAuthサーバー、ネイティブアプリなどの他のほとんどのことを本当に心配しているかもしれません。このようなプログラマーは、知識のギャップを見つけて埋めながら、専門分野を活用し続ける必要があります。

この戦略は、何年にもわたって彼らに最も役立つ可能性があります。

プログラマーがスキルセットを多様化する必要がある理由

多くのプロジェクトでは、予測できない方法で組み合わされた無関係なスキルが必要です。広く熟練したエンジニアはそれらのほとんどに役立つ貢献をすることができますが、専門家のスキルセットはいくつかの雇用主の正確な要件に一致します。請求書の支払いに必要な仕事は1つだけなので、短期的には必ずしも問題になるとは限りません。

しかしながら…

過度の専門化は危険です。将来を誰よりもよく予測できれば、卵を1つのバスケットに入れることは問題ないかもしれませんが、その能力はまれであり、技術スキルとは無関係です。私たちの千年紀におけるWindowsプログラミングスキルの需要を考えてみてください。または、自問してみてください。私たちの多くは、10年前に、Android、Flash、Nokia、またはBlackberryのそれぞれの軌跡を推測できたでしょうか。

最後に、トップの雇用主は多様なスキルを高く評価しています。 Facebookは、チームが開始してから6週間後まで、チームに新入社員を割り当てません。 Googleは内部転送を奨励し、いくつかのローテーションプログラムを実行しています。フリーランスを楽しんでいても、選択肢を開いたままにしておいても問題はありません。これらの会社で働くことを検討したことがある場合は、少なくともある程度ジェネラリストである必要があります。

あなたが確信していてスキルを多様化したいとしたら、どうしますか?

技術スキルを多様化および向上させる方法

あなたはスキルとお金を交換することができます:

  • なじみのないフィールドに移行する間は、より低いレートを受け入れます。いつものように75%の生産性がある場合、25%の一時的な賃金カットは公正です。すぐに元に戻します。
  • それらを必要とする仕事に応募する間、あなたが望むスキルで無給のデモ作業をしてください。変更の準備ができていないことが判明した場合でも、それは学ぶのに役立つ教訓です。

時間をスキルと交換することもできます。

  • に貢献する オープンソースプロジェクト 。アドバイスと検証を受け、コミュニティに還元し、潜在的な雇用主や同僚から注目されるかもしれません。
  • 喜び、インスピレーション、そして日常業務からの変化のために個人的なプロジェクトを行います。たとえば、Reactを学びながら、スマートフォン以前のヘビゲームのクローンを作成しました。

学習の機会を探す必要がありますが、それを常に行うことはできません。 ApeeScapeのインタビュープロジェクトでは、Node.jsとBackboneを使用しましたが、どちらもあまり経験がありませんでした。楽しかったですが、必要な学習ペースを何ヶ月も維持できませんでした。

理想的には、長期間の安定性(安定した生産量と収入)と、何か新しいことを学ぶことに挑戦するときの短い間隔を交互に繰り返します。後者を行う頻度は、現在のスキルセット、市場の需要、個人的な目標など、いくつかの要因によって異なります。

幅が雇用者にとって良い理由

雇用主に関する限り、いくつかのシナリオでは常に深いスキルが必要になります。

  • 雇用主と従業員の間に信頼や時間のコミットメントがほとんどない場合。
  • 壊滅的な結果(プライバシーやセキュリティインシデントなど)が発生する可能性がある場合。
  • 難解なスキルが必要な場合。
  • 締め切りが緊急で交渉不可能な場合。

それでも、多くのプロジェクトはこれらのボックスのいずれもチェックしておらず、その採用マネージャーはバランスの取れたエンジニアを検討する必要があります。テストやコードドキュメントなどの多くの技術スキル、およびすべて ソフトスキル (通信のように)転送。製品が完全に変更されていない場合でも、復元力は重要です。あなたが屋台のために雇った部分なら、ジェネラリストは次に高い優先順位で働くことができます。

深くて狭いスキルセットを持つ開発者よりも広くて浅いスキルセットを持つ開発者を選択する雇用主のグラフィック表現

幅広いスキルセットの重要性を考えると、開発者に多様化を促し、さまざまな分野やスキルの「長年の経験」に集中しすぎる可能性のある雇用主に幅広い知識の重要性を伝える必要があります。

最終目標は、満足したクライアントの実績です。ハードスキルとソフトスキルに加えて、それはエンジニアがなじみのない領域に移行する能力を証明します。また、フリーランサーが準備が整う前に新しい分野に参入しないことに対する強力なインセンティブでもあります。

適切なバランスをとる

幅広いスキルが過小評価されている場合、一部の優れた開発者はアイドル状態であり、一部の優れたプロジェクトは人員不足または予算超過です。完全なスキルセットの一致を要求することは、供給(資格のある労働)と需要(やりがいのある作業)を一致させることが難しくなるという点で、現場での作業を要求することに似ています。

これはいずれも、ドメインの専門知識に反対する議論ではありません。それは常に重要であり、見事に報われるでしょう。幅広いスキルも明らか以上に重要であることを覚えておく必要があります。

基本を理解する

知識ベースとは何ですか?

これは、言語、フレームワーク、ツールなどの開発者の技術スキルのセットです。2つの一般的なタイプは、深い/狭い(専門家のスキルが少ない)と広い/浅い(多くのスキル、ドメインの専門知識がない)です。

ノードjsにはWebサーバーが必要ですか

どのスキルを向上させるかをどのように決定できますか?

なじみのない、頻繁に必要とされるスキルを特定します。インタープリター言語やWebフレームワークなどの一般的なスキルは、特定のテクノロジー(Python、Railsなど)よりも長期的な価値をもたらします。

技術スキルを伸ばす方法。

新しい分野への移行中に料金を下げる、無給のデモ作業を行うなど、お金を投資することによって、またはオープンソースまたは個人的なプロジェクトのポートフォリオを構築するなどの時間を投資することによって。

npmのガイド:Node.jsパッケージマネージャー

技術

npmのガイド:Node.jsパッケージマネージャー
ディープラーニングチュートリアル:パーセプトロンからディープネットワークまで

ディープラーニングチュートリアル:パーセプトロンからディープネットワークまで

データサイエンスとデータベース

人気の投稿
Googleスプレッドシートに移行する理由
Googleスプレッドシートに移行する理由
UIとUX–コアの違いを探る(インフォグラフィック)
UIとUX–コアの違いを探る(インフォグラフィック)
50の最高のスケッチプラグインの究極のリスト
50の最高のスケッチプラグインの究極のリスト
大衆向けのUXテスト:シンプルで費用対効果の高いものに保つ
大衆向けのUXテスト:シンプルで費用対効果の高いものに保つ
これらのPhotoshopチュートリアルでホットなデザイントレンドをマスターする
これらのPhotoshopチュートリアルでホットなデザイントレンドをマスターする
 
ゲーミフィケーションデザインへの実用的なアプローチ
ゲーミフィケーションデザインへの実用的なアプローチ
暗いUI。良い点と悪い点。すべきこととすべきでないこと
暗いUI。良い点と悪い点。すべきこととすべきでないこと
製品戦略:基本的な概念とプロセスのガイド
製品戦略:基本的な概念とプロセスのガイド
ApeeScapeでの製品管理:リモートで成功するための戦略
ApeeScapeでの製品管理:リモートで成功するための戦略
グラス・スティーガル法:その廃止は金融危機を引き起こしたか?
グラス・スティーガル法:その廃止は金融危機を引き起こしたか?
人気の投稿
  • 機械学習の適用方法
  • 初心者向けの機械学習チュートリアル
  • 広告デザイナーは、動きを使用して
  • 例を使った単体テストとは
  • ラズベリーパイオープンポート8080
  • デザインの5つの原則
  • mvcを使用したangularjsアプリケーションのサンプル
カテゴリー
ブランドデザイン 革新 Uiデザイン 人とチーム モバイルデザイン バックエンド ヒントとツール 財務プロセス ライフスタイル 技術

© 2021 | 全著作権所有

apeescape2.com