現時点での自分の技術の棚卸し
以下の記事を読んでとても良いと思ったので、現時点での、「自分のできること、できないこと」を正直にリストにまとめみた。
(リストをレベル別に分けるのはしんどかったので、全部まとめて書いた。)
あくまで現時点のスナップショットに過ぎないので、できない部分も得意な部分も伸ばしていきたい。
更新日: 2020/5/17時点
フロントエンド
Nuxt.js
個人サービス規模の簡単なSPAやSSRをフルスクラッチで作れる
雑なAtomic designなどを使用して、ある程度コンポーネントを分割して設計できる
Vuexは使えるが、Todoレベルでしか使ったことがなく、巨大な複雑なシステムをフルスクラッチで組んだことはない
ライフサイクルをなんとなく把握している
React
ほとんど書いたことない。友人の個人開発のコードを読んだことあるだけ。
Angular
知らない
jQurey
プログラミング覚えたてのときにコピペで使った程度
Javascript
proptypeが何なのかは最近知った
オブジェクト志向をJavascirptで実装できることは聞いたことがあるが、実際にやったことはない
TypeScript
ほとんど書いたことないので書きたい
node.js
ごくごく簡単なCLIツールが作れる
ごく簡単なAPIを作れる
Expressはtodoくらいしかやったことない
CSS / SASS
BoostapやBulma、Tailwindcssなどのフレームワークを使える
BEMなどは存在は知っているが全然分からない
FlexBoxはわかる、Grid Layoutは存在は知ってるが使ったことはない
CSSアニメーション
hello worldレベル
WebGL
全然触ったことがない
WebPack
最近まで全然触ったことなかった
ビルドのために使用するのは知っている
設定をほんの少しカスタイズしたことはある
フルスクラッチで設定を書いたことはない
Prettier / Linter
Nuxt.jsで初期設定を使っている
自分で導入したことはない
StoryBook
存在は知っているが一ミリも使ったことがない
バックエンド
Laravel
APIを個人サービス規模でフルスクラッチで作れるレベル。
Laravel MixやBlade Enginを使ってViewも個人サービスレベルでフルスクラッチで作れる
DIの概念がわかる
Repositoryパターンは会社の既存のコードを参考にして書いたことがある
複雑なDB設計などはしたことがないので、分からない
シーダーやテストも少しだけ書いたことある
PHP
雰囲気で書いてる
素のPHPで簡単な掲示板サイトを作れるレベル
あんまり自信ない
Ruby
ほとんど書いたことない
Ruby on Rails
掲示板をチュートリアルで作った
SQL
簡単なJOINをして欲しい情報を取得できる
普段はORMapperを使ってるので複雑なSQLは書いたことがない
データベース設計
複雑なシステムを設計したことがないので、あまり分からない
Python
twitterボット作ったくらい。なにも知らない
C
授業で習っただけ
ポインタの概念はわかる
その先は知らない
組み込み系
Aruidino (Esp8266)でごく簡単なIoTデバイスを制作できる
Elm
todoリスト作ったことあるだけ
Go
Atcorderで10問くらい解いてみただけ
Rustとか elixir
名前しかしらない。1ミリも触ったことない
WebAssembly
全然知らない
機械学習
全然知らない
認証認可
Oauth
概要を本を読んで、Auth0を使って認証を組み込んだことがある
JWTトークンが何か分かる
Oauth2.0の認可の方式が分かる
OIDCが認証の仕組みだと知っているが、実際に使ったことはない
セキュリティ対策は詳しくない
SSO
詳しくない
2段階認証
詳しくない
ロールの設計
自分でバックエンドに組み込んだことがない
設計
DDD、クリーンアーティクチャ
名前しか知らない
デザインパターン
勉強中
多言語対応
やったことない
Swagger
簡単なAPIのopenapi.yamlを書いたことがある
モバイル
React Native
簡単なアプリをExpoとFirebaseを使って作って実際に使っている(未リリース)
Kotilin
ハンズオンでTodoリスト作ったくらい
Swift. Flutter
1ミリも触ったことない
デスクトップアプリ
Unity
WebSocketと組み合わせたデモを一日で作っただけ
Electron
まったく知らない
インフラ
Firebase
Auth、Firestore、Cloud Function、Cloud Storage, Hostingなど一通り使ったことがある
Firestore
使ったことがあるが、複雑なデータ構造の設計をしたことはない。複雑なルールは設計したことがない
ローカルエミュレータ
Cloud Fuctionしか試したことがない
AWS
VPCの概念はわかる
IAMユーザーの概念は分かるがちゃんと運用できてない
EC2を立てたことがある
ECSを立てたことがある
ロードバランサーを立てたことがある
S3を使ったことがある
Lambda
AWS SAM+Lambda+API GateWay+node.jsで簡単なAPIをフルスクラッチで作ったことがある
DynamoDB
ごく簡単なアプリケーションの設計をしたことがある
「DyanamoDBらしい」設計がいまいち分かっていない
CI/CD
Circle CIを使って簡単なLaravelのCI/CDをdeployerを使って書いたことがある
あんまり複雑なことをしたことがない
IaC
Teraform
簡単なチュートリアルの本をやった程度。詳しくは知らない。
Ansible
簡単な本を少し読んだだけで実際に実行したことはない
Packer
名前だけしかしらない
Docker
既存のDokcerfileを変更したり拡張したりはできる
フルスクラッチで書いたことはない
kubernetes
名前だけしか知らない。
何やってるか詳しくない
Netlify. Vercle(now.sh). Heroku
使って個人サービスを運用している
JAM Stack
今から試してみるところ
Git
雰囲気で使っている
GitHub
GitHub Flowに則った開発ができる
チーム開発
半年くらいインターンで業務での経験がある
スクラム開発
ちゃんとやったことない
低レイヤー
セキュリティ
XSS
存在は知っている
CSRF
存在は知っている
SQLインジェクション
存在は知っている
アルゴリズム
あんまり詳しくない
TCP/IP
IPアドレスが何なのか、DNSが何かは分かる
OSI参照モデルで、どうパケットが通信されるかは知っている
http smtpなどプロトコルがいくつかあるのは知っている
通信の暗号化のしくみ(SSL)は公開鍵方式を使っているのは知っているが、具体的にどう実現されているかは知らない。
正直あまり詳しくない
ミドルウェア
Nginx、Apache
使ったことはあるが、設定をちゃんとチューニングしたことはない
サーバーの設定
VPS上のCent OSでLaravel をホスティングして実運用している
正直ちゃんとできてはいない
Raspbery PiにNuxt.jsとLaravelをホスティングして運用している
OSのしくみ
詳しくない
アセンブラとか
詳しくない
CPUのしくみ(論理回路)
学校の授業でシミュレータで簡単なCPUを作ったことある程度
企画
たくさんの個人開発サービスを立ち上げた
ある程度ユーザーが「使ってくれる」サービスを考えることができる
ほぼすべてのサービスが1000RT超え
ユーザーが直接お金を払うようなモデルのサービスをまだ作ったことがない
考えたことはある
デザイン
たくさんの個人開発サービスのデザインをした
UX
ユーザー行動を意識したUXを設計できる
ワイヤーフレームを引ける
UI
そこそこ最低限はできてるつもり
知識不足から適切なUIの選択に手間取る
フォントに詳しくない
適切なマージンや、適切なUI部品の選択がわからない
色の選択について、雰囲気で行っている
Figma
ある程度思い通りのUIが作れる
色を共通化したりはできる
コンポーネント化をうまく使いこなせていない
パスを自分で引いて複雑な図形を作ったりできない