LoginSignup
91
89

新しい言語のキャッチアップはTODOアプリを作るのが最短だと転職して気づいた

Posted at

はじめに

Uzabaze,Inc.に入社して半年が経とうとしています。
ユーザベースではマイクロサービス、マイクロフロントエンドを導入しており、小さい単位でシステムを構築しています。
会社の風潮として小さなシステム単位で技術選定ができる、新しい技術に挑戦ができるので日々様々な技術に触れています。

☆ 入社前のスキル
Rails(Ruby) Python React Vue TypeScript Go

☆ 入社後半年のスキル
Kotlin Java Rust F# Rails(Ruby) Python React Vue TypeScript Go

と新しい言語が色々できるようになりました

ここで、色々な言語をキャッチアップしている中で自分なりに最短だと思うような方法が固まってきたのでまとめていきます。

最短で学ぶ方法

1. いきなり開発を行う

一番効率の良い方法はいきなり何かを開発することです。

多くの方は本を読んだり、ドキュメントを読んだりして言語特有の機能や文法などを学んでから開発を進めることが多いと思います。私もその言語に関する本を3冊以上やってから学習していました。
これでは本を読んで実装する時間がとにかくかかり最短ではないです。

いきなり開発なんてできないよと思うのではないでしょうか。
やり方がわかれば可能です

こちらについてはこのあと説明します。

本を読んで学習してから開発をしようが、いきなり開発しようが躓くところは変わらないと思います。
結局何かを参考にするので、それならいきなり開発したほうが効率が良いです。

2. プログラミングに慣れる

新しい技術をキャッチアップするときに大事なのは、似たような技術を知っていることだと思います。
オブジェクト指向の言語を知っていれば、だいたいのオブジェクト指向言語は似ていますし、DIの考え方などもだいたい同じなのですばやくキャッチアップができます

また関数型言語も1つ何かしらやったことがあれば、ある程度キャッチアップは楽にできます

なのでもし時間や機会があるなら、手続き型以外にもやったことのないような言語を体験しておくのは良いかと思います

もしプログラミング初心者でなんの言語もやったことないというのであれば、ゆっくり書籍を学ぶのが最初のやるべきことでプログラミングに慣れてからチャレンジすべきです

最短で学ぶための開発方法

1. いきなり開発を行うについて詳しく説明します。
私は新しい言語やフレームワークを学ぶときに作るものが決まっています

それがTODOアプリを作るです

いままでに多くのTODOアプリを作成しました。
TODOアプリはCRUDがすべて学べたり、フロントエンドでも必要となる基礎的な技術がおおよそ利用できる素晴らしい題材です。またいきなり知らない言語で開発してもシンプルなので短時間でできますし、参考とするリポジトリが新しい言語でも多くあります。

以下が私が半年で作ったTODOアプリです

TODOアプリを作ることで、短期間で技術のキャッチアップを行えますし、シンプルな構成になるので、リポジトリを1津用意しておけば今後ずっと参考にしつづけることができます (どうやってDIするか、DBの設定するかなど)

TODOでなくてもよいのですが、難しいのを作ってしまうと最短で学習することができなかったり、完成しきれなかったりするので私はTODOを作ることにこだわっています (ロジックも考えなくて良い)

事前に学ばないでどう開発するのか

ここに関しては現代ならではの方法でキャッチアップをしながら開発を進めます。
それが

ChatGPTGitHub Copilotです。

環境構築から始まり、だいたいのことはChatGPTが教えてくれます。
またテストコードに関してはCopilotと公式サイトをみて書いていきます

9割くらいのコードがこれで学べます。
またよくわからない言語仕様などは、そのままChatGPTになげて理解するようにすることで最短でアプリが作れます

そもそも暗記などする必要はないので、教えてもらったことを理解しながら実装して、サイド実装するときにTODOアプリを参考にして難しいアプリを作れば良いと思います

他人のリポジトリを参考にする

これが個人的に学習時間を最短にしていると思います

私は基本的に新しい言語でもTDDかつクリーンアーキテクチャでTODOを作るようにするのですが、その際にどうやってファイルを分割していくのか、DIをするのかなどを知るために他の人のリポジトリをまるまる参考にしています

これは社内のコードが大きな資産となっているのも大きいですが、このスピード感を知ってしまうと仮に社内にコードがなくても、知らない誰かのリポジトリを参考にして実装します

この方法のいいところは、どのファイルにどんな機能を書くのかを迷わずに進めることができます。またテストファイルもほぼほぼ同じような感じでかける印象です。

TODOアプリは大体の言語でリポジトリが存在していると思うので参考にもしやすいです

色々な言語を学んでみて

ある程度学習を進めたところで、新しく別の言語始めてもかなりスムーズに学べるようになりました
あの言語と似ている、テストはどのライブラリと似ているなど書きながら思うようになりました

色々な言語をやったことで言語同士の比較ができより技術選択もうまく行くようになるのではないかと思いました

そして何より、学習方法が自分なりに固まって技術を学ぶということのハードルが下がったのがよかったです

私もクリーンアーキテクチャで色々な言語を使ったテスト込みのリポジトリを用意していますので学びたい言語のリポジトリを参考にTODOアプリを作ってみてはどうでしょうか?

おわりに

文字ばかりですごく読みづらいなと思いましたが、読んでいただきありがとうございます。
言いたいことがなんとなく伝わればすごく嬉しいなと思います。

今期の目標は「気づきを与える記事を書く」です。
ぜひともQiitaをフォローいただけたら励みになります

気になることがある方はぜひコメントいただければと思います

参考

91
89
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
91
89