3月の学習振り返り

HapinessChainに入会して1ヶ月が経ちました。 1ヶ月ごとに学習の振り返りをしたいと思います。

3月の学習時間

結果:123時間(週6日勉強)

もともと昨年も一昨年も1年で750-800時間を勉強していました。 平日と休日の勉強時間のバランスや体調などを考慮して1ヶ月100時間以上という目標を立てました。

週の中で1日(水or木)は休みを取るようにして、継続して勉強できるようにしています。 どうしても帰りが深夜になってしまうため平日は2-3時間しか勉強できないため 週末にまとまった時間をとって勉強しています。

所感

今回スクールに入って、自分の中での勉強の迷いがやっと消えたと考えています。 数年間 現役のエンジニアの友達や、インターネットなどの情報をもとに自分なりに勉強計画を立てて勉強をしてきましたが、どうしても「成長をしている」という実感を得ることができませんでした。

有名なYouTubeTwitterの投稿、Amazonで高評価のレビューの本、 有名なUdemy講座をやっても全く自分の実力が上がっていると感じることができませんでした。

モダンな技術スタックを使用したポートフォリオ作成など夢のまた夢と感じていました。

エンジニアの友達からは「向いていない」「脳みそが違う」などと言われ諦めかけていました。 でも、どうしてもプログラミングができるようになりたくて、どうしてもモダンな技術スタックのエンジニアになりたくて 先が見えない中、日々ひたすら自己流の勉強をしていました。

しかし、今回スクールに入りカリキュラムに具体的に取り組む中で、 今までの自分に何が足りなく、自分の勉強で何が悪かったか、ようやくわかりました。

  • 勉強する技術の順番が悪い

  • 勉強している教材が悪い

自分に足りなかったのは勉強時間ではない、 今まで自分が使っていた教材、そして勉強する技術の順番が悪かったということがわかりました。

やみくもに自分が身につけたい技術のYoutubeやUdemyを見てチュートリアルを繰り返すようなことや、 LinuxやWebに関する技術の基礎もないにもかかわらずいきなりクラウドのことや、新しい技術のチュートリアルに取り組んでも消化不良になってしまうということがわかりました。

つまり、今までの自分は、努力の仕方や方向性が間違っていたのです。

カリキュラムは、モダンスタックにあふれていて、自分が身につけたい技術を「適切な学習順序」で勉強することができます。 この「適切な順番で学ぶ」ということがとても大切で、「新しい技術はレガシー技術の上に成り立っている」ということを決して忘れてはいけないということです。これはYahooの黒帯のエンジニアの方もおっしゃっているとても大切な考え方になります。

言い換えると、多くの卒業生をモダンなWeb系企業に送り出してきたスクールだからこそ、再現性が高く、信頼性のある学習順序を私達に提供してくれていると信じています。

メルカリやCyber Agent、DMM、YahooJapan、TeamLab、MoneyForwardなどでは当たり前に使用されているモダンな技術を実践的かつ日本語で勉強できるスクールは大学のような研究機関を除いて世界に1-2箇所しかないのではないでしょうか。

私は、このスクールに巡り会えたことを本当に感謝しています。 道は見えました。あとはひたすら努力をするだけです。

3月のQiita

当初からQiitaへは1週間に1回の投稿をすることを目標にしています。

3月の投稿は以下になります。 コンピュータサイエンスの基礎についてが多くなります。 4月からは、より技術的な内容を週1ペースで投稿をしていきたいと思います。

基礎用語まとめ(1)

基礎用語まとめ(2)

Vim操作まとめ(入門)

Linux基礎(重要コマンド一覧)(1)

Linux基礎(重要コマンド一覧)(2)

改善点

もう少し勉強できると感じています。現在は平日1日を休みにしていますが、その日に3-4H勉強をするか、平日の勉強時間をあと1Hだけでも増やせないか4月はよりストイックに取り組んでいきたいと思っています。

4月の目標

  • Qiita 週1投稿

  • 勉強時間 120時間以上(30時間/週)

2024年 読みたいエンジニア本リスト一覧

今まで、youtubeやUdemyで独学で勉強してきましたが、今年はそれも継続しつつ本もたくさん読んでいきたいと思っています。

ITエンジニア = プログラミングができる人というイメージが先行しがちですが、Webアプリケーションというものは、非常に様々な技術や知識が合わさって構成されているものだということは、本格的にアプリケーション開発の勉強を始めてわかりました。

プログラミングだけを勉強してもアプリケーションは開発できません。自分も去年一年はそのようなことをわかりつつ、「即効性」のあるプログラミング言語だけの勉強に特化して時間を使って結局「自分の作品を作る」という目標を達成できずに終わってしまいました。

今年は、かならず「自分の作品を作る」という目標に向かって「急がば回れ」(と一見見えるが実はその方が最速?) エンジニアとしての基礎を身につけるための「MUST READ」だと思われる書籍をピックアップして、この書籍を読んでいきたいと思います。

読み終わったら順次、レビューの記事も上げて行きたいと思います。

コーディングについて
  1. リーダブルコード(Dustin Boswell, Trevor Foucher)
  2. プリンシプルオブプログラミング(上田 勲)
  3. 良いコード/悪いコードで学ぶ設計入門(仙塲 大也)
  4. Clean Code アジャイルソフトウェア達人の技(RobertC.Martin、 花井 志生)
Web関連技術
  1. プロになるためのWeb技術入門(小森 裕介 )
  2. ネットワークはなぜつながるのか 第2版(戸根 勤)
  3. 体系的に学ぶ 安全なWebアプリケーションの作り方(徳丸 浩 )
Linuxやネットワーク関連
  1. マスタリングTCP/IP―入門編―(井上 直也、村山 公保、竹下 隆史、荒井 透、苅田 幸雄)
  2. 新しいLinuxの教科書(三宅 英明、大角 祐介)
  3. [試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識(武内 覚)
コンテナや仮想化
  1. 図解即戦力 仮想化&コンテナがこれ1冊でしっかりわかる教科書(五十嵐 貴之、 薄田 達哉)
  2. 仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん(小笠原 種高)
個別言語
  1. HTML&CSSとWebデザインが1冊できちんと身につく本[増補改訂版](服部 雄樹)
  2. 独習JavaScript 新版(CodeMafia 外村 将大 )
  3. 現場で使えるTypeScript 詳解実践ガイド(菅原浩之)
  4. プロを目指す人のためのRuby入門[改訂2版](伊藤 淳一)
データベース関係
  1. スッキリわかるSQL入門 第4版 ドリル256問付き!(中山 清喬 、飯田 理恵子)
  2. 達人に学ぶDB設計 徹底指南書(ミック)
エンジニアとしての読み物
  1. プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ(フェリエンヌ・ヘルマンス、水野貴明、水野いずみ)
  2. 小さなチーム、大きな仕事――働き方の新スタンダード(ジェイソン フリード 、デイヴィッド ハイネマイヤー ハンソン)
  3. 情熱プログラマー ソフトウェア開発者の幸せな生き方(ChadFowler、 でびあんぐる)