エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

【意訳+要約】How to Become a 10x Dev

原文

How to Become a 10x Dev - DEV Community

意訳+要約

人力だよ。。。

10倍開発者になるための7つの方法

10倍開発者とは、同等の経験を持つ平均的な開発者の10倍の生産性を持つ開発者のことです。しかし、この言葉はしばしば誤解され、過大評価されている。
本質的に、10倍開発者とは、利用可能なすべてのツールを活用して、冗長で反復的な作業を自動化し、複雑で創造的な作業に集中できる人のことである。

スクリプトで繰り返し作業を自動化

スクリプトによる繰り返し作業の自動化は、開発者の生産性を向上させる。テストやデプロイなどのタスクを自動化することで、開発者は難しい部分に集中し、時間を節約できる。

キーボードショートカットのマスター

コードエディターやIDEでのキーボードショートカットを覚えることは、コーディングのワークフローをスピードアップするために重要です。

バージョン管理ワークフローをマスターする

Gitのようなバージョン管理ワークフローを使いこなすことは、あなたの生産性を飛躍的に向上させ、チームで一緒に仕事をするのに役立ちます。

何か問題が発生しても、以前の状態に簡単に戻ることができます。全員の作業がスムーズにまとまり、ソフトウェアを作るプロセス全体がより速く、よりストレスのないものになる。

既存のコンポーネントやライブラリを活用する

車輪の再発明をする代わりに、利用可能なライブラリを使用する。時間の節約になるだけでなく、コードの信頼性と効率性を高めます。

ゼロから始めることなく生産性を高め、堅牢なソフトウェアを作成するための賢い戦略です。

ラピッドプロトタイピングのためのHTML Emmetを取り入れよう

Emmetはウェブ開発者向けのツールキットで、省略形を使って素早く効率的なコーディングを可能にします。 HTMLを使用している場合、EmmetはHTML構造を作成するプロセスを劇的にスピードアップします。

AIのアシストを活用する

  • GitHub Copilot
    GitHubがOpenAIと共同で開発した、AIを活用したコード補完ツールです。開発者がコードを入力する際に、インテリジェントなサジェストと自動補完を生成することで、コードを書く方法を変えます。これまで試したAIツールの中で最高のもののひとつだ。

  • TabNine
    コードエディター用のAI駆動型オートコンプリート拡張機能です。機械学習モデルを使ってコードの行やブロック全体を予測し、提案することで、従来のオートコンプリートを超えている。ユーザーは、TabNine をいくつかの制限付きで無料で使用するか、サブスクライブして Pro バージョンを選択し、高度な機能にアクセスすることができる。

  • Chatgpt
    ChatGPTはあなたの生産性を大きく変えます。例えば、テスト用の配列を提案したり、コードスニペットの再構築を支援するなど、役に立つ例を提供することができます。

VSコードの拡張機能

  • Prettier
    コード整形ツールで、コードを自動的にきれいで一貫性のある形に整形し、手作業で整形する手間を省きます。

  • Auto rename tag
    HTMLやXMLのコーディングアシスタントのようなものです。開始タグの名前を変更すると、このエクステンションは自動的に終了タグもそれに合わせて更新します。

  • Better Comments
    コードに、より人間にやさしいコメントを作成するのに役立ちます。この拡張機能を使うと、注釈を分類できるようになります。

  • Peacock
    多くのプロジェクトでVSCodeのウィンドウを飛び回りながら作業しているときにとても便利。各プロジェクトに色をリンクさせることで、どのウィンドウがどのプロジェクトなのかすぐに分かる

Bardさんに聞いてみた

Q:スクリプトで自動化する際に、よく使われている言語は何ですか?

スクリプトで自動化する際に、よく使われている言語は、以下の通りです。

これらの言語は、いずれも以下のような特徴を備えているため、スクリプト言語としてよく使われています。

  • 簡潔で読みやすいコードを書くことができる
  • 豊富なライブラリやツールが提供されている
  • 学習コストが比較的低い

Pythonは、汎用性の高い言語であり、あらゆる種類の自動化タスクに使用できます。JavaScriptは、Web開発でよく使用される言語であり、Webアプリケーションの自動化によく使われます。Rubyは、オブジェクト指向プログラミングに適した言語であり、複雑な処理の自動化によく使われます。Bashは、コマンドラインインターフェイスでよく使用される言語であり、OSの操作やシステムの管理などの自動化によく使われます。

また、近年では、以下のようなAIを活用したツールも、スクリプトによる自動化に使われるようになってきています。

  • GitHub Copilot
  • TabNine
  • ChatGPT

これらのツールは、コードの生成や補完を自動化することで、開発者の生産性を大幅に向上させることができます。

Q:Gitを容易に使うためのツールには、どんなものがありますか?

Gitを容易に使うためのツールには、以下のようなものがあります。

  • GUIベースのツール

Gitはコマンドラインから操作することもできますが、GUIベースのツールを使うことで、より直感的に操作することができます。代表的なGUIベースのツールとしては、以下のようなツールがあります。

* SourceTree
* GitHub Desktop
* GitKraken
* GitLab

既存のGitクライアントにプラグインを追加することで、機能を拡張することができます。代表的なGitクライアントのプラグインとしては、以下のようなプラグインがあります。

* GitLens
* GitDiffTool
* GitHistory
* Gitignoreio
  • Webベースのツール

Webブラウザから操作できるGitツールもあります。代表的なWebベースのツールとしては、以下のようなツールがあります。

* GitHub
* Bitbucket
* GitLab

これらのツールは、Gitの基本的な操作を簡単に行うことができます。また、ブランチやタグ、コミットなどの操作を視覚的に確認できるなど、Gitをより効率的に使うための機能を提供しています。

Q:GitをGUIで操作するのとCUIで操作するのでは、どちらが有利ですか?

GitをGUIで操作するのとCUIで操作するのには、それぞれにメリットとデメリットがあります。

GUIで操作するメリット

  • 直感的な操作が可能
  • 基本的な操作が簡単にできる
  • ブランチやタグ、コミットなどの操作を視覚的に確認できる

GUIで操作するデメリット

  • コマンドを覚える必要がない分、応用が利きにくい
  • カスタマイズが難しい

CUIで操作するメリット

  • コマンドを覚えることで、より効率的に操作できる
  • カスタマイズが可能

CUIで操作するデメリット

  • 基本的な操作を覚えるまで、ある程度の勉強が必要
  • 視覚的に操作できないため、理解しにくい

どちらが有利か

どちらが有利かは、開発者の経験やスキル、開発スタイルなどによって異なります。

初めてGitを使う場合

初めてGitを使う場合は、GUIベースのツールを使うのがおすすめです。GUIベースのツールを使えば、直感的な操作で基本的な操作を覚えることができます。

ある程度の経験がある場合

ある程度の経験がある場合は、CUIで操作するのもおすすめです。コマンドを覚えることで、より効率的に操作できるようになり、複雑な操作も可能になります。

Q:ライブラリを使う以外にも考え方を流用するなどがあると思いますが、考え方を探す場合、どのように探せばよいでしょうか?

考え方を探す方法としては、以下のようなものが挙げられます。

  • 既存のソフトウェアやシステムを参考にする
    既存のソフトウェアやシステムを参考にすることで、考え方を学ぶことができます。例えば、同じ機能を実現しているソフトウェアやシステムを比較することで、それぞれの考え方の違いを理解することができます。また、新しい技術やトレンドを取り入れたソフトウェアやシステムを参考にすることで、新しい考え方を学ぶことができます。

  • エンジニアやデザイナーのブログや記事を参考にする
    エンジニアやデザイナーのブログや記事を参考にすることで、考え方を学ぶことができます。例えば、特定の技術や分野に関する記事を参考にすることで、その技術や分野における考え方を学ぶことができます。また、エンジニアやデザイナーの経験談や考え方を紹介する記事を参考にすることで、実践的な考え方を学ぶことができます。

  • カンファレンスやセミナーに参加する
    カンファレンスやセミナーに参加することで、考え方を学ぶことができます。例えば、特定の技術や分野に関するカンファレンスやセミナーに参加することで、その技術や分野における最新の考え方を学ぶことができます。また、エンジニアやデザイナーが登壇するカンファレンスやセミナーに参加することで、実践的な考え方を学ぶことができます。

  • 書籍や資料を読む
    書籍や資料を読むことで、考え方を学ぶことができます。例えば、特定の技術や分野に関する書籍や資料を読むことで、その技術や分野における考え方を学ぶことができます。また、エンジニアやデザイナーの著作を読むことで、実践的な考え方を学ぶことができます。

  • 自分の経験や知識を振り返る
    自分の経験や知識を振り返ることで、考え方を学ぶことができます。例えば、過去に取り組んだプロジェクトや、学んだ技術や分野を振り返ることで、そのプロジェクトや技術・分野における考え方を整理することができます。また、自分の考え方や価値観を振り返ることで、新たな考え方を生み出すことができます。

考え方を探す際は、以下の点に注意するとよいでしょう。

  • 自分の目的や課題を明確にする
    考え方を探す際には、まず自分の目的や課題を明確にすることが大切です。自分の目的や課題を明確にすることで、必要な情報や考え方を絞り込むことができます。

  • 多角的な視点で考える
    考え方を探す際には、多角的な視点で考えることが大切です。同じ問題に対しても、さまざまな視点から考えることで、新たな考え方を見つけることができます。

  • 実践で試してみる
    考え方を学んだら、実践で試してみることが大切です。実践することで、考え方の有効性や改善点を検証することができます。

考え方を探すことは、エンジニアやデザイナーにとって、重要なスキルの一つです。さまざまな方法を試して、自分に合った方法で考え方を探してみましょう。

Q:Bardに、コード生成のアシスタントができる機能はあるのでしょうか?

はい、Bardには、コード生成のアシスタントができる機能があります。

Bardは、膨大な量のテキストデータとコードデータの学習によって、自然言語処理機械学習の機能を備えています。この機能を活用することで、さまざまなコード生成のアシスタント機能を実現することができます。

例えば、以下のようなものが挙げられます。

  • コードの自動生成
    Bardは、与えられた仕様や要件をもとに、コードを自動生成することができます。例えば、APIのインターフェースや、データベースのモデル、Webアプリケーションのフロントエンドなど、さまざまなコードを自動生成することができます。

  • コードの補完
    Bardは、コードを入力する際に、必要なコードを補完することができます。例えば、変数や関数の名前、メソッドの引数など、さまざまなコードを補完することができます。

  • コードのレビュー
    Bardは、コードの品質をレビューすることができます。例えば、コードの冗長性やエラー、パフォーマンスの問題など、さまざまなコードの問題を検出することができます。

これらの機能は、開発者の生産性を向上させ、より高品質なコードを作成するために役立ちます。

感想+雑記

スクリプトは、手軽に書けたら楽なんだけどってことがよくある。
Node使っているプロジェクトなら、npm scriptsに書くことが多い。
プロジェクトで使っている言語を使ってスクリプトが手軽に書けたらいいと感じることが多い。
俺なら、Javaのプロジェクトに参加することが多いので、Javaスクリプト作りたいのだが、なかなかいい感じの環境が作れていない。なんかバッチ系のやつを手軽に書きたいときがあるんだけど、どうにかならんかな?
よくやるのは、開発とは別プロジェクト作って、そこにMainメソッドを持つクラスを作って、ガリガリバッチみたいなのを作ってる。
便利ツールみたいなものを書いたリポジトリ作るのもありかも知れない。
PowerShell使った方がいいと思ったときもあったけど、ぶっちゃけ分かりづらいんよな。。。
たぶん、言語パラダイムが違いすぎて、理解しにくいんだろうと思う。

考え方を身につけるのは、やはり難しいな。。。
デザインパターンとかの応えがでるのかと思ったが、案外でなかった。
トライ・アンド・エラーが一番大事なのかも知れない。
仮説→検証で、考え方を高めるのが重要なのだろう。

まだ、Bardで生成AIチックなことは、させたことがない。
どうやればできるのか、情報収集をそろそろ初めたい。
情報集めると、どうしてもChatGPTの方が情報としては多い。
ChatGPTが有名だからかも知れないが、Bardも結構やれると思うんだけどな。。。
最近、いろいろゴタゴタしているから、Bardもワンちゃんありそう。