入社100日経ったので感想文書くよ

ということで、出社日だけ数えて無事100日過ぎましたので振り返りの記事書いてみます。
感想文なので技術の話出てきませんすみません。ただのポエム、日記です。よろしくお願いします。

1カ月時点での記事はこちら。

 

エンジニアになって良かったこと ①知識の習得めっちゃ楽しいと気づけたこと

個人的な話ですが、自分は義務教育の期間で勉強が楽しいと思えなくて大学に進学せず調理の専門学校に行き調理師になりました。

勉強はやらされるものでしかなく、最低限卒業できる程度に勉強しとけばいいやって価値観でそのまま大人になりました。

エンジニアになって、勉強めっちゃ楽しい!!!って初めて思ったんですよ。
知識が増えると世界が広がること。物の見え方が変わること。
昨日動かせなかったコードが動くようになったり、出来ることが毎日増えること。
過去の自分と比較して成長を実感できること。
とかすごく楽しい。
勉強って至高の贅沢だなーみたいな価値観を知れたこと、めちゃくちゃプラスだと思ってます。ほとんどの人はそう思えないまま年取っていくと思うので(少なくとも自分の周りには居ない…)

 

エンジニアになって良かったこと 1.5勉強が習慣化したこと

1と被ってるので1.5にしました。
休日はダラダラしてるかゲームしてるかでずっと生きてきたので、これが一番プラスだったことかもしれません。

相当な自制心無いと習慣化って自分は出来ないんですが、新人エンジニアとして圧倒的に先輩のリソース奪ってるという至らなさと申し訳なさで勉強へのモチベが維持されます。時間作って技術書読むぞ!ってなります。
素晴らしい職種だと思います。

エンジニアになって良かったこと ②カレンダー通りの休み最高!! 

そんなの当たり前では?と思った人は恵まれてると思います。
前職は前述の通りサービス業だったので土日働いて平日休みでした。
それ自体はそんなに気にしてなかったんですが、祝日も大体仕事だったので今、こんなに休んでいいんですか?って思ってますね…。

 

エンジニアになってツラいこと ①必要な知識の大海が果てしない

業務では主にPHP使ってバックエンドの実装をしてるのですが、バックエンドだけでも果てしないくらい必要な知識があります。
下は有名なロードマップですけど、本当にこれくらい必要です。


 

業務していていつも知識不足の劣等感に苛まれます。
さらにバックエンドエンジニアにもフロントエンドの知識は必要だしインフラやクラウドの知識だってもちろん必要です。
果てしない海ですね…。
でもカンストが無いってことはずっとLv上げられるってことでもあります。
どこまで行けるか、この先どんな技術出てくるんだろうとか考えるとワクワクもしません?
同じように思う人はきっとツラくないと思います。

エンジニアになってツラいこと ②うーん運動不足、かなぁ?

バランスよく良かったことと辛いこと同じ数ずつ書こうと思ったんですが…あんまり無いな…。
当たり前ですけど前職の立ち仕事に比べて運動量減ったのでこの先、健康被害出てくるのかなーと思って意識的に通勤で歩くようにしたりしてますけど、今のところ至極真っ当に健康です。
腰は痛いです。何か対策したい。

 

このブログポエムしか書いてないので自信つけて、次は技術の記事書きたい…。

今後の目標、PHP技術者認定試験 初級合格。

PHP Conference Japan 2022 アーカイブ視聴したものまとめ(自分用)

今年からPHPerになった新参者なので初のカンファレンスということで楽しみにしてました。現地には行けなかったのですがアーカイブで気になるセッションを視聴したので忘れないようにまとめてみます。
自分もいつか登壇してみたい…と思いつつ、皆さんの発表が素晴らしすぎて腰が引けつつという…。

 

PHP初心者セッション2022 

初心者なので見ましたがPHPをよく知らない人が見てもきっと身近に感じられるだろうなという徹底した初心者目線が貫かれていて良いセッションでした。
素のPHPCSVのデータをブラウザ上に表示するプログラムが出来ます。すごい。

公式ドキュメント見ながらコード書いて動かしてみるって初心者だとハードル高いと思いますが、ドキュメントのここに着目すればとりあえず動かせるよ!!って敷居を下げてくれてて、勇気もらえると思います。

自分が初心者だった頃の挫折ポイントは「環境構築」「実際に動かしてみるまで(エラーでも可)」の道のりの遠さだったので、ズバリそこを1時間で出来たら挫折ポイント何個かはパスできると思うので。

あと、発表内容とは関係ないですが話し方が流暢で一時間のセッション飽きずにあっという間でした(歴戦の猛者感)。

 

フラットなPHPからオブジェクト指向で自動テストのあるPHPへ、そしてフレームワーク

これはぜひ社内のみんなにもお勧めしたいと思いました。(自分も定期的に見返したい素晴らしいセッション)

オブジェクト指向がそもそも良く分かってないままPHP書いてましたが(石投げないでください)、スッと話が入ってきて本当にずっと目から鱗でした。オブジェクト指向についてここまで噛み砕いて説明してくれてる資料ってほとんど無いのでは。

あと、言語について勉強してると「フレームワーク使って動かしてみよう」っていう方法の情報は多々あれど、そもそも何のために使うのか?っていう目的に焦点当てた情報はほとんど無いと思うので目から鱗でした。

スライドの最後に紹介されてたツイート教訓にしたいと思います。

弊社はテスト駆動開発(TDD)実施してないですが取り入れていきたいという意識ではあるので、まずは個人でPHPUnitでテスト書いて使ってみようと思います。

 

AWS CDK に魅入られた PHPer がオススメする IaC から入るインフラの話

プロポーザルにあるようなことを入社してから本当に実感してきました。
インフラのとっつきにくさ、それに加えてクラウドというさらに抽象的な技術、でもAWS使わないとか今後あり得ないよねというジレンマ。

社内でもAWSの知識みんな身に着けようねという気風になってるのですが、なかなか腰が重かったところ、コードでインフラ構築が記述できるなんて素晴らしいなと。

 

SPAセキュリティ超入門

エンジニアにとっては徳丸先生の本は必修科目だと思うのでおススメ不要かと思いますが、このセッションもぜひ見ましょう。
SPA作らなくても見ましょう。
フレームワーク使ってればSQLインジェクションなんか起きないっしょと高をくくってる方も見ましょう。

 

PHPで学ぶシステム設計 依存関係のコントロール編 

https://speakerdeck.com/nrslib/dependency-control

これ見て即、成瀬さんのyoutube登録しました。

依存関係ってプログラム書かない人に馴染みない概念な気がします(自分も知らなかった)がエンジニアになってからは嫌というほど聞く言葉になりました。

「依存関係逆転の法則」は初めて聞きましたが、依存を制御することの大事さがとても良く分かりました。このセッションも定期的に見直したい大事な概念だと思います。

プログラムの中の依存関係だけでなく、組織(人同士)の中の依存関係にも置き換えてお話されててとても学びが深かったです。

 

Laravel を低速化する技術

逆転の発想のタイトルからして素晴らしいんですけど、内容もとてもタメになりました。

今まさにLaravelで開発してるシステムがクソ重くて頭抱えてるので本当に助かります。(多分N+1なんだろうなー調べてみよう)

 

リリースして11年経過したPHPアプリケーションにPHPStanを導入した

業務でいつもお世話になってるチャットワークさんのセッション。
PHPStanは静的解析ツールというもので、コードを実行せずに型エラーとか文法おかしいよとか教えてくれるツールです。

今回の発表でレガシーシステムに、導入した際に最初はエラーが2万件ほど発生したがそこをBaseLineとすることで既存のエラーは対象外として導入したというお話があり、弊社でもコードレビューの負担が大きいのが問題になってるのでぜひ導入したいなと。

個人的には自動テストより静的解析の方が導入コストは低そうだなと思いましたので社内で提案してみたいと思います。

 

転職して1カ月経ったので入社前と入社後のギャップを書き出してみる

Web開発のエンジニアとして働き始めて1カ月が経過しました。

初心忘るべからず、ということで個人的な備忘録も兼ねて、未経験でエンジニアに転職して感じたギャップを書き出してみます。

転職するためにスクールに通ってる方もたくさん居ると思いますので、まあこんなやつも居るんだなーという一例として読んでいただければ。

 

入社時の私のスキル感

まず簡単に私が入社した当時のスキル感を書いてみます。

  • テックアカデミーのフロントエンドコースを2カ月受講してHTML、CSS、JS、jQuery、Vue.jsなどの基礎的な部分を勉強
  • その後独学で8カ月ほど、コーダー目指してデザインカンプのコーディング練習して簡単なデザインの見た目は再現できるようになる
  • ボタンやスクロールの制御やアコーディオンメニュー、スライダーなどはググってコピペしながら実装できるレベル
  • WordPressを使用したサイトの構築をUdemyや書籍でざっくり理解している
  • PHPでGET,POSTできることは知っている
  • gitはバージョン管理に使われることは知っている

勉強していたころはコーダーからフロントエンドエンジニアになることを想定していたのでバックエンドはほとんど触ったことない状態でした。入社が決まってから2週間くらいで突貫で勉強した程度です。そもそもフロントとバックの境目も良く分かってない状態でした。

では、以下にギャップを書いていきます。

 

ギャップ①プログラミングスクールと実務の違い

そもそも、フロントエンドの勉強してきたのに今開発で使ってるのはLaravel(PHP)なのでその時点でズレがあるんですがそこは割愛します。

速度への意識

スクールや独学で勉強していた時は、要件を満たしていれば課題は合格だったのでレスポンスの速度とか、処理の速度とか意識せずコード書いてました。

しかし、実務では処理速度遅いとか、画面の描画が遅いと必ず改善してくれって話になります(そりゃそう)。
なのでそもそも、テストしてあまりにももっさりしてたら例え要件通り動いていてもロジック考え直すなり、別の実現手段を考えなきゃいけません。

処理速度というのは実務で初めて意識した部分です。

 

誰でもエンジニアになれるという言葉の裏に何があるか 

私はネットの広告見て、勉強さえすれば副業できるんだな、エンジニアになれるんだなと思って勉強始めたカモなんですが、実際エンジニアとして働き始めた今、この謳い文句には先の言葉が書かれてないなと思っています。

相応の努力を続ければ未経験からエンジニアになれるというのは合ってるけど、エンジニアとして仕事を続けていくにはなるまでよりもさらに努力も勉強も必要だしそれが苦だとやっていけないなというのが私の肌感です。

そして、商売としてやってるスクールなどは間口を狭めるようなことは当然書かないので誰でもなれるという部分だけ書かれてますが、未経験でエンジニアになった人間は最初の数年は死ぬほど勉強しないとダメだなと自分は思ってます。

その書かれてない部分は転職してから挫折する原因にもなり得るなとも思います。

スクールの課題は当時めちゃくちゃ大変だったんですが振り返ると今より楽だったなと。

ただ、誤解無きように書くと、スクールに通わず(なれるかは置いといて)エンジニアとして働いてたら耐性無くてそれこそ挫折してた思うので自分はスクール受講して良かったと思ってます。ただ、就職した先を想像するのはスクール単体では難しいのでギャップに感じるかもという。

 

ギャップ②教えてくれない前提

これは会社によってかなり差があると思いますが、私の場合、未経験ですと面接で言って入社させてもらったので、しばらくはコード書かずに先輩の書いたコードのテストとかして1カ月くらいは自分ではコード書かないんだろうなーと思ってたら、最低限の環境構築とか社内ルールなど教えて頂いて、分からなかったらググってそれでも分からなかったら聞いてーという感じで初日からコード書かせてもらってびっくりしました。

もちろん、手取り足取り教えてもらえるとは思ってなかったですが、ここまで個人に任せてもらえるとは…と驚いた次第です。

でもそれは、放置じゃなくて、基本的に自己解決できないとこの仕事できませんよってことだと私は解釈してます。

最初は面食らいましたが今では考える&調べる時間をいただいてありがたいなーと思ってますし、教えてもらって1時間で実装したロジックより、エラーと丸1日闘いながら苦しんで実装したロジックの方がはるかに記憶に残るし勉強になりましたし、自己解決できるまで考え続けるってことが苦だとやっぱりエンジニアとしてやってくには厳しいと思うので適正見るうえでも、ある程度の放置プレイは正しいのかなと思います。

もちろん、いつまでもこの調子じゃ駄目なので作業スピード上がるよう日々精進ですけども。

ギャップ③人の書いたコード読む力めっちゃ必要

改めて言葉にすると実務なら当たり前だよなーって感じですが、スクールや独学で勉強してるときって解説とセットでコード読むか、自分で考えて一からコード書いてみようってパターンが多くて、他人の書いたコードの意図を読み解く練習ってする機会あまりないですよね。

私はここがめちゃくちゃ躓きました。

例えば、この変数$fって何のためにあるんだろう?とかこのif文は何を判定してるのか?とか読み解く力がめちゃくちゃ必要(かつ自分に圧倒的に足りない)と感じました。

機能追加で結果的にたった一文追加するだけだったとしても、Webシステムの膨大な量のコードの中からどの行に新しいコードを追加するのが適切か、見極めるのに1時間かかったりします。
ここにコードを追加したことでどこまで影響範囲があるのか調査するのにさらに1時間かかったりします。

力不足をめちゃくちゃ実感します。

 

総括、先は長いのでひたすら頑張る

書いてて凹んできましたが、入社して感じたギャップって全て自分の経験や知識の無さから来てるんですよね。
ただ、ありがたいことに今のところ全部モチベーションに繋がってるのでいい環境で仕事させてもらってるなと改めて思いました。

実装に時間かかってひたすら申し訳ない気持ちなので早く経験積んで成長して貢献したいなと思っております。

 

未経験からエンジニアに転職するまでの変遷をまとめてみた

タイトルの通りですが、プログラミングほぼ未経験の人間が、先日、学習開始から約10カ月でWeb開発の会社にエンジニアとして入社させていただいたので今までの変遷まとめを書いてみます。

自分はただただ運が良かっただけなので、これからエンジニアへの転職を目指してる方の参考にはならないと思います。すみません。
こういう一例もあるよという体験記としてお読みいただけると幸いです。

 

 

プログラミング学習を始めた動機

副業目的でした。
実は、インフルエンサーのブログでWeb制作は簡単に稼げますよという記事を見て真に受けてそこからテックアカデミーというオンラインスクールのフロントエンドコースを受講して学習を開始しました。

今考えると恐ろしいですね。黒歴史です笑。
なので駆け出しの方がマーケティングの上手い商材屋さんの商材買ってるのを見ると他人事とは思えないので、嘘や虚飾の情報だらけなWeb制作界隈ををなんとかしたいなーと思ってますが、経験値低いので今自分にできることは実務の中で得た知見をQittaに技術記事として書くことくらかなーと思いますので微力ながら頑張ります。

きっかけはどうあれプログラミングを学習し始めたことは人生のプラスになりました。
商材屋さんありがとうございます。

 

学習を続けるうちに本業にしたいと思うようになる

スクール自体は2カ月で終わりで、教材を見ながら同じコード書いたのと、最後にオリジナルサイト1個作っただけで、副業するには圧倒的にスキルが足りないと思って、デザインデータからのコーディングをしばらくやりました。
ビスコムさんのプラクティスブックにはお世話になりました。

ep.ebisu.com

 

今はたくさん無料でデザインデータを公開してくれてる方が居るので、他にも何個かサイトを作りました。WordPressもUdemyで勉強しました。
学習したものを下記に列挙してみます。

 

無料の教材

 

有料の教材

 


学習を続けるうちに、副業じゃなく本業としてコード書きたいなと思うようになりました。


なので、学習と並行して今までの制作物をまとめたポートフォリオのサイトを作り、転職活動を始めました。

転職に至った経緯

転職活動は1カ月行いました。
地方都市なので求人が少なく求人サイトだと数件しか無かったので、通勤可能な範囲のWeb制作会社を片っ端から調べて採用ページから応募してました。
2社は書類選考落ち。
1社は求人を仲介してる人材紹介会社からそこはヤバそうだから応募しない方がいいっすよと応募を辞退。
4社目が入社させていただいた今の会社です。
4社だったら応募少ない方じゃんと思われるかもですが通える範囲&Web制作に携われる求人はもう数件しか残ってなくて後が無い状態だったので首の皮一枚で生き残った感じです。

最初に応募してたのはコーダーの求人で、今の会社にも「Webサイト制作したいです!」と応募したんですが、「うちはWebサイト制作は徐々に減らしていきます。今後は主に開発ですよーそれでもいいですかー?」と聞かれ「システム開発未経験ですけどコード書きたいです!がんばります!」て感じで答えたら採用していただきました。
奇跡ですね…。

 

というわけでありがたいことにエンジニアとして駆け出すことができました。
Web制作とWeb開発の違いがよく分かってないまま面接で答えていたので採用していただいてから入社するまでの期間、開発について急いで勉強しました。
paizaラーニングの

  • PHP入門、基礎
  • DB/SQL入門
  • Web技術入門
  • シェルコマンド入門
  • Webセキュリティ入門
  • Webアプリ開発入門(PHP+MySQL
  • GIT入門

などを片っ端からやってました。
実務ですごく生きてます。やっといてよかった。


コーダー目指してたらプログラマーになってたという自分にも予想外の展開でしたが入社して1週間経って、開発も楽しそうだなって思ってて結果的に良かったなと。
周りみんなエンジニアで言語の話とか社内でできるのも楽しいですし自主的にキャッチアップバンバンしてて刺激になりますし、10カ月前、プログラミングの勉強始めて良かったなーと。
実務経験なしで30過ぎてるのに採用していただいて有難さしかないので早く使えるエンジニアになれるよう頑張ります。

 

[rakuten:book:18593228:detail]