ウェブエンジニアの成長物語:VSCode愛好家がReactからインフラまでこなす多様な開発スタイル
ご挨拶
こんにちは!なゆえんじんです。
先に言っときますが、私は専門学校や大学を出ているようなつよつよエンジニアではありません。
趣味をこじらせて結果的にエンジニアになったタイプの人です。
デジタルネイティブ
でありY世代
の私は、小学生の頃に通信料超過の経験や無料レンタルサーバに重いCGI
を設置して怒られるなど、そんな世代の一員です。
今思えば、とんでもない悪ガキでしたね!
大人になってからは、エンジニアを目指していたわけではありませんでした。(頼まれてエクセルのマクロを作る程度)
しかし、周囲の人よりPCに詳しくて色々助けていたら、自然とエンジニアの道を歩むことになりました。
元々はさまざまな言語を趣味で少しずつ触っていた程度でしたが、今ではウェブエンジニアが本業となっています。
本業になってからは、メンターの方に助言をもらいながら、社内開発に勤しんでいます。
これからも技術の幅を広げ、読者の皆様と一緒に成長していきたいと思っています。
役立つ情報をお届けできるよう、日々努力しますので、お付き合いいただけると幸いです。
どうぞよろしくお願いします!
ということで、以下は蛇足です。
スキルセットと勝手な感想
スキルセットってちゃんと書いたことないのでよくわかってないです。
Git
これがない世界では私は激しい動悸を起こし息ができなくなります。
バージョン管理なしでどうやって生きていけというのでしょうか。
HTML
HTML5
以降もなんとかついていってる(ついていけてない)。
私はたまにWHATWG Living Standard
の仕様とにらめっこしてる。
CSS/Sass/Scss
意外と忘れている記法も多い。最近Sass
の新しい記法を学びなおした。
なにげにバージョンアップで色々変わること多いからそのたびに対応してる気がする。
そんなに複雑なことはできないけど、基本的なことはできる程度。
JavaScript
一番好き。でも奥が深い。私にとっての技術の入り口。
私がまだ子供の頃に2ch
のおじちゃんたちがすごいって騒いでいたのを覚えてる。
私の中の印象は、「沼」です。どこまでいっても「できます」なんて言えない。
React
React16
あたりから入門。関数コンポーネントはわかりやすくていい。
カスタムHook
を自作したり、Context
やReducer
で状態管理、メモ化
などはできる程度。
TypeScript
React
と一緒に使いたかったのでReact
と一緒に入門。
気に入っているのでずっと使い続けたい。
PHP
たしかはじめて使った時にはPHP5
, 今書いてるのはPHP8
。
仕事でLaravel
を使うまでしばらく使ってなかったので浦島太郎状態でした。
WordPress
カスタムテーマ
やプラグイン
を設計してコーディングできる程度。
時代遅れってよく言われるけど、日本では結局人気なので、知ってて損ってことはなかったです。
なにげに付き合いが長いかも?でも自分のブログは持ってません。
脳死でプラグインに頼りまくると簡単に重くて脆弱になっちゃうやんちゃでかわいい子っていうイメージです。
Laravel
バックエンド全然できなかった私にMVC
の基礎を叩き込んで叱ってくれたフレームワーク。
彼がいなかったら今の私は存在していないかもしれない。
メジャーアップデートの破壊的変更でごくたまに厳しい一面を見せてくれるけど基本的に優しい。好きです。
Python
基本的な環境構築とコーディングはとりあえずできるけど、仕事で使う機会が少ないので趣味ではこっちを使います。
仲間内で集まってDiscord
のBOT作ったりしました。楽しい。
Django
Python
を使って趣味で友達に頼まれてウェブ用のAPI作るときに使ってる。その程度。
AWS
AWS
と一言で言ってしまうと怒られちゃいそうなくらいできることが多いけどサービスごとに書いてるとそれだけの記事になっちゃう予感がするのでAWS
と書きます。
よく使うサービスはECS
、ECR
、EC2
、RDS
、S3
あたり。当たり前ですね。さすがに全部は網羅できてない。
たとえば、ゲームの処理捌けるほどのインフラ設計みたいな難しいことはやったことがない。基本的にウェブページ・ウェブアプリをデプロイするのに必須な知識だけ。
Linux
ウェブに必要な環境を構築したり簡単なバッチ処理を作れる程度。alpine
、Ubuntu
、Debian
をよく使う。
最近はDocker
イメージに頼りがたち。だってそっちのほうが簡単なんだもん。
でもクライアントの要望や予算感によってはSSH
でぽちぽちとセットアップしたりメンテしてることもある。
Docker
開発を基本的にLinux
環境で行うので重宝してます。docker compose
をよく使う。
社内開発での経験
スタートアップのウェブアプリ開発に携わってます。
一番最初の私の仕事は、Laravel
で書かれたフロントエンドをすべてReact
でリプレイスするという作業でした。
これが思った以上にめちゃくちゃに重かったです。なぜってこの時点での私はLaravel
もReact
もほとんど触ったことがなかったからです。
最終的にはフロントエンド・バックエンド・インフラまで管理することになり、必要な勉強量が完全にキャパオーバーしてましたが、良いメンターさんに恵まれたのでなんとかやってこれてます。
一番大変だったのはフレームワークと言語の同時アップデートがあり、バックエンドの依存関係総入れ替えみたいなことをしなきゃいけなかった時です。
一番うれしいのは実装した新機能がちゃんと動いているのを見た時です。
毎月のように何か壁にぶつかり、そのたびに新しいことを覚え、フロントエンド → バックエンド → インフラという風に理解を進めていきました。
いまも毎日新しいことの勉強と問題解決の繰り返しの毎日です。
学習方法とリソース
公式ドキュメント
とりあえず公式ドキュメントを読めってよく言うけど本当にみんな読んでるのかな?と疑心暗鬼になることがあります。
でも読まないのは確実に悪手なので基本的に最初に情報探るときは公式ドキュメントからスタートします。
GitHub
GitHub
は、『公開宝物庫』だと思ってます。コードの書き方わからないときはだいたい検索してます。
Udemy
すでに扱ったことがある技術でもイチから学び直したいときや、基礎を学ぶのに便利です。
ざっくりと、周辺知識まで含めて知りたいっていうとき。お気に入りの講師を見つけたらその人が出してる講義を辿っていくと尚覚えやすいです。
動画だから良いというよりは、毎月やってるセールのときに専門書以下の値段で開発環境も含めた詳細な情報と手順が手に入ることがありがたいです。
講師の先生方には足を向けて寝られません。
ChatGPT
最近使い始めました。コーディング能力そのものよりも、技術の概要を理解したり復習してまとめたりするのに役立ちます。
コードに関しては出力されたコードそのものを鵜呑みにしすぎるのはやめたほうがいいかも。そのへんは機会があれば別途記事にしたいですね。
目標と展望
これといって大げさな目標があるわけではありません。
あえていうなら、私が学んだことを通して、誰かの役に立つものをこの世に残してみたいというのが目標です。
Zenn での活動目的
基本的に備忘録です。学習したり、何かトラブルシューティングしたときに、きちんと書いておける場所がNotion
くらいしかなかったのですが、Notion
に書き溜めていくとめちゃくちゃ情報が混雑するんですね。
どうせ記事にするんなら、記事のためのサービスを使うべきだろうと思いました。
また、私は交流が少ないので、いろんなエンジニアさんの意見を聞いたりしたいですし、私と同じような壁にぶち当たった人の役に立てたらいいと思っています。
まとめ
以上、エンジニアとしての私という人間をまとめてみました。
この投稿はGitHub
からZenn
に記事を投稿するためのテストも兼ねた投稿でした。
最後まで読んでいただきありがとうございました。
Discussion