🍀

ウェブエンジニアの成長物語:VSCode愛好家がReactからインフラまでこなす多様な開発スタイル

2023/03/25に公開

ご挨拶

こんにちは!なゆえんじんです。
先に言っときますが、私は専門学校や大学を出ているようなつよつよエンジニアではありません。
趣味をこじらせて結果的にエンジニアになったタイプの人です。

デジタルネイティブでありY世代の私は、小学生の頃に通信料超過の経験や無料レンタルサーバに重いCGIを設置して怒られるなど、そんな世代の一員です。
今思えば、とんでもない悪ガキでしたね!

大人になってからは、エンジニアを目指していたわけではありませんでした。(頼まれてエクセルのマクロを作る程度)
しかし、周囲の人よりPCに詳しくて色々助けていたら、自然とエンジニアの道を歩むことになりました。
元々はさまざまな言語を趣味で少しずつ触っていた程度でしたが、今ではウェブエンジニアが本業となっています。

本業になってからは、メンターの方に助言をもらいながら、社内開発に勤しんでいます。
これからも技術の幅を広げ、読者の皆様と一緒に成長していきたいと思っています。

役立つ情報をお届けできるよう、日々努力しますので、お付き合いいただけると幸いです。
どうぞよろしくお願いします!

ということで、以下は蛇足です。

スキルセットと勝手な感想

スキルセットってちゃんと書いたことないのでよくわかってないです。

Git

これがない世界では私は激しい動悸を起こし息ができなくなります。
バージョン管理なしでどうやって生きていけというのでしょうか。

HTML

HTML5以降もなんとかついていってる(ついていけてない)。
私はたまにWHATWG Living Standardの仕様とにらめっこしてる。

CSS/Sass/Scss

意外と忘れている記法も多い。最近Sassの新しい記法を学びなおした。
なにげにバージョンアップで色々変わること多いからそのたびに対応してる気がする。
そんなに複雑なことはできないけど、基本的なことはできる程度。

JavaScript

一番好き。でも奥が深い。私にとっての技術の入り口。
私がまだ子供の頃に2chのおじちゃんたちがすごいって騒いでいたのを覚えてる。
私の中の印象は、「沼」です。どこまでいっても「できます」なんて言えない。

React

React16あたりから入門。関数コンポーネントはわかりやすくていい。
カスタムHookを自作したり、ContextReducerで状態管理、メモ化などはできる程度。

TypeScript

Reactと一緒に使いたかったのでReactと一緒に入門。
気に入っているのでずっと使い続けたい。

PHP

たしかはじめて使った時にはPHP5, 今書いてるのはPHP8
仕事でLaravelを使うまでしばらく使ってなかったので浦島太郎状態でした。

WordPress

カスタムテーマプラグインを設計してコーディングできる程度。
時代遅れってよく言われるけど、日本では結局人気なので、知ってて損ってことはなかったです。
なにげに付き合いが長いかも?でも自分のブログは持ってません。
脳死でプラグインに頼りまくると簡単に重くて脆弱になっちゃうやんちゃでかわいい子っていうイメージです。

Laravel

バックエンド全然できなかった私にMVCの基礎を叩き込んで叱ってくれたフレームワーク。
彼がいなかったら今の私は存在していないかもしれない。
メジャーアップデートの破壊的変更でごくたまに厳しい一面を見せてくれるけど基本的に優しい。好きです。

Python

基本的な環境構築とコーディングはとりあえずできるけど、仕事で使う機会が少ないので趣味ではこっちを使います。
仲間内で集まってDiscordのBOT作ったりしました。楽しい。

Django

Pythonを使って趣味で友達に頼まれてウェブ用のAPI作るときに使ってる。その程度。

AWS

AWSと一言で言ってしまうと怒られちゃいそうなくらいできることが多いけどサービスごとに書いてるとそれだけの記事になっちゃう予感がするのでAWSと書きます。
よく使うサービスはECSECREC2RDSS3あたり。当たり前ですね。さすがに全部は網羅できてない。
たとえば、ゲームの処理捌けるほどのインフラ設計みたいな難しいことはやったことがない。基本的にウェブページ・ウェブアプリをデプロイするのに必須な知識だけ。

Linux

ウェブに必要な環境を構築したり簡単なバッチ処理を作れる程度。alpineUbuntuDebianをよく使う。
最近はDockerイメージに頼りがたち。だってそっちのほうが簡単なんだもん。
でもクライアントの要望や予算感によってはSSHでぽちぽちとセットアップしたりメンテしてることもある。

Docker

開発を基本的にLinux環境で行うので重宝してます。docker composeをよく使う。

社内開発での経験

スタートアップのウェブアプリ開発に携わってます。

一番最初の私の仕事は、Laravelで書かれたフロントエンドをすべてReactでリプレイスするという作業でした。
これが思った以上にめちゃくちゃに重かったです。なぜってこの時点での私はLaravelReactもほとんど触ったことがなかったからです。

最終的にはフロントエンド・バックエンド・インフラまで管理することになり、必要な勉強量が完全にキャパオーバーしてましたが、良いメンターさんに恵まれたのでなんとかやってこれてます。

一番大変だったのはフレームワークと言語の同時アップデートがあり、バックエンドの依存関係総入れ替えみたいなことをしなきゃいけなかった時です。
一番うれしいのは実装した新機能がちゃんと動いているのを見た時です。

毎月のように何か壁にぶつかり、そのたびに新しいことを覚え、フロントエンド → バックエンド → インフラという風に理解を進めていきました。
いまも毎日新しいことの勉強と問題解決の繰り返しの毎日です。

学習方法とリソース

公式ドキュメント

とりあえず公式ドキュメントを読めってよく言うけど本当にみんな読んでるのかな?と疑心暗鬼になることがあります。
でも読まないのは確実に悪手なので基本的に最初に情報探るときは公式ドキュメントからスタートします。

GitHub

GitHubは、『公開宝物庫』だと思ってます。コードの書き方わからないときはだいたい検索してます。

Udemy

すでに扱ったことがある技術でもイチから学び直したいときや、基礎を学ぶのに便利です。
ざっくりと、周辺知識まで含めて知りたいっていうとき。お気に入りの講師を見つけたらその人が出してる講義を辿っていくと尚覚えやすいです。
動画だから良いというよりは、毎月やってるセールのときに専門書以下の値段で開発環境も含めた詳細な情報と手順が手に入ることがありがたいです。
講師の先生方には足を向けて寝られません。

ChatGPT

最近使い始めました。コーディング能力そのものよりも、技術の概要を理解したり復習してまとめたりするのに役立ちます。
コードに関しては出力されたコードそのものを鵜呑みにしすぎるのはやめたほうがいいかも。そのへんは機会があれば別途記事にしたいですね。

目標と展望

これといって大げさな目標があるわけではありません。
あえていうなら、私が学んだことを通して、誰かの役に立つものをこの世に残してみたいというのが目標です。

Zenn での活動目的

基本的に備忘録です。学習したり、何かトラブルシューティングしたときに、きちんと書いておける場所がNotionくらいしかなかったのですが、Notionに書き溜めていくとめちゃくちゃ情報が混雑するんですね。
どうせ記事にするんなら、記事のためのサービスを使うべきだろうと思いました。
また、私は交流が少ないので、いろんなエンジニアさんの意見を聞いたりしたいですし、私と同じような壁にぶち当たった人の役に立てたらいいと思っています。

まとめ

以上、エンジニアとしての私という人間をまとめてみました。
この投稿はGitHubからZennに記事を投稿するためのテストも兼ねた投稿でした。
最後まで読んでいただきありがとうございました。

GitHubで編集を提案

Discussion