コードを書かずにエンジニアとしてレベルアップする6つの方法

  • ブックマーク
  • -
    コピー

 私は多くの種類の才能のある開発者に会ってきましたし、現在進行形でも一緒に開発をずっとしてきています。

大将

メディアに取り上げられてるような伝説プログラマや、海外の大学を飛び級で卒業していくような秀才、そんな人たちに囲まれております。おれはその足元にも及ばなくて、自分の実力の無さに毎日泣きそうになってます……

 コーディングだけでなく、数学を深く理解している人もいます。というか、おれの周りはもはやみんな数学できるのでは……。
 この記事では、時間と予算に応じて優れたコードを作成できる開発者に焦点を当てたいと思います。
 多くの開発者がこのカテゴリに属していると思いますが、自分自身について十分に満足している人は少ないのではないでしょうか。 コンピュータサイエンスの概念や数学を深く理解していないと、詐欺師のように感じますよね……。

▼デベロッパーになりたい人へおすすめの記事

【現役エンジニアが解説】2021年、どうすればwebデベロッパーになれるのか?

生産性に集中する

 コードのオープンソース化を前提に、考えを明確で理解しやすいコードに変換する開発者を見ると、いつも感銘を受けます。まじですごいと思うw
 思考はプログラミングの重要な部分です。理想的には、思考に費やす時間を最大化し、執筆に費やす時間を最小化する必要があります。ワークスペースと調和して、コードを公開するだけで、他の人が理解し利用できる高品質のソフトウェアを作成できると生産性が高まります。

  • すばやくコーディングする:タイピングのスピードをあげて、よりすばやくコーディングできるように練習しましょう。これにより、思考や実験により多くの時間を費やすことができます。練習に使えるキーボードトレーニングアプリはたくさんあります。
  • コーディング環境(OS、IDE、エディター)をマスターする:IDE、エディター、およびオペレーティングシステムの重要なショートカットを学習して、コーディング環境のマスターするのも重要です。Shortcutfooは重要なショートカットを学習するのに使えます。
  • 頻繁に自動化する:プログラマーであることは、タイピングの猿になることではありません。同じことを何度も繰り返していることに気付いた場合は、残り時間を生産的に使用できるように、それらを自動化してください。

ビジネスへの理解

 企業は生き残るために利益を必要とし、顧客にサービスを提供する必要があります。開発者として、あなたは難しい決断をしなければならないときがあります。デプロイを急ぐことを優先し、不十分のテストをするべきなのか? それとも、事業を遅らせてでも準備を整えるのか?
 これらの質問に対する回答は、状況によって異なります。
 そして、回答するためには、ビジネスをしっかりと理解する必要があります。マーク・ザッカーバーグが有名に言ったように、若い企業や新興企業は「速く動き、物事を壊す」。これは、技術的な卓越性を犠牲にしながら新しいものを迅速に立ち上げることは、新しい企業がより速く成長するのに役立つ可能性があることを意味していますが、常にその通りというわけではありません。
 大企業には、このレベルの自由はありません。彼らはより少ないバグでより高いレベルの品質を維持することが期待されています。しかし、ルールには例外があります。
 これらの例はちょっと単純すぎるかもしれません。ただ要点は、開発者として、アーキテクチャ、使用するテクノロジー、テストなどに関する決定を下すことの重要性です。これらの決定は、技術的な理解だけでなく、ビジネス上の理解も求められます。

コミュ力とチームワーク

 傲慢な人間は開発のどのチームにも属するべきではありませんが、残念なことに、それはしばしば起こります。他の人に頼りにされる才能のある開発者がいます。それは素晴らしいスキルですが、一方で彼らは傲慢になりがちであり、自分たちがもっとうまくやれるとあまりに強く信じているために、あまりにも多くを必要としたり求めようとします。
 チームの一員である場合は、自分の結果に責任があるだけではありません。あなたの行動は他の人の結果にも影響を与える可能性があります。 「ばかげた」質問をする同僚のSlackメッセージを馬鹿にするのではなく、迅速な応答することで、彼らが成長し、結果としてチームの価値が高まるのです。
 他の人と一緒に作業するときはいつでも、特にコードレビューを行うときは、他の人を持ち上げて、自分が知っていることを教えることに集中してください。

自己プロジェクト管理

 作業の優先順位付けと整理は非常に複雑な作業です。プロジェクト管理や製品管理など、さまざまな特定の機能があります。
 仕事中に何度も、なにを、いつ行うか、を決める必要があります。
 重要な変更が確実に共有されるように、特定のタスクを他のタスクよりも優先する方法を学ぶことが重要です。タスクに優先順位を付ける方法はいくつかありますが、個人的にはアジャイルマニフェストを念頭に置くのが良いでしょう。

専門知識

「ソフトウェア開発産業」のようなものはまだありません。すべてのソフトウェアは、特定の業界の人のニーズに応えるために開発されています。例えば銀行業界の場合、銀行や金融に関する理解をする必要があります。
 ソフトウェア開発はツールセットであり、人間の問題に対処するソリューションを作成する方法の一つです。あなたが働いている業界を理解することは、開発者としてのあなたのキャリアを前進させるのに役立つわけです。

常に学ぶ

 私は、なにか極めている人をを非常に尊敬しています。

大将

すぐに飽きて、新しいことを始めるようなことを、幼少期からずっとやってきたせいで、なに一つ極められない中途半端な個体に、おれはなってしまったんだ……

 1つのことだけをうまく行う高度に専門化された開発者のポジションは実は少ないのです。 多くのの上級開発者は、幅広いことも理解し、同僚とうまくコミュニケーションをとっているはずです。
 需要の高いシニアデベロッパーになるには、学習を続けることで成果が得られます。 そして、学ぶということは、ビジネス、プロジェクト管理、新しいプログラミング言語など、なにに関してもです。

  • ドキュメントを読む:会社が使用しているプログラミング言語、またはテクノロジーのドキュメントを読んで、理解できるようにする。
  • 企業の調査:企業がどのように成功するかを調査する。 読むべきいくつかの素晴らしい本は、The Lean Startup(スタートアップ向け)Good to Great(長生きする大企業向け)など。
  • 多様化:個人プロジェクトに取り組むことで、まったく新しい分野(DevOps、フロントエンド開発など)に足を踏み入れていく。

結論

 結論として、トップレベルの開発者であるということは、最高のコーダーであるということではありません。優れたコミュニケーターであり、ビジネスがどのように機能するかを理解することも重要なのです。
 上級開発者の募集職種を見ると、ソフトスキルを含む多くのスキルが必要であることがすぐにわかります。上級開発者は、一般的な知識を持ち、チームが正しい決定を下し、学習し続けることが、企業から期待されています。
 そのため、学習を続け、スキルセットを多様化し、キャリアの向上に役立つ非技術的なスキルに取り組む必要があるのです。

  • ブックマーク
  • -
    コピー

この記事を書いた人

大将

大将

エストニアの国立大学、タリン工科大学在学中に現地案内事業で起業。大学院では文学の数値解析の研究と小型人工衛星研究開発チームに所属。データサイエンティストとしてさまざまなプロジェクトに関わり、現在はフロントエンドの開発やVR教育やVR美術館などの創作や事業を行っている。元テニスコーチ。