🐙

プログラミング学習を始めて約8か月経ってできるようになったこと

2022/10/06に公開

はじめに

31歳完全未経験から独学でプログラミング学習を始めて、10月20日で8か月。
はじめはほんとにエンジニアになれるのか、プログラミングできるようになるのか!?といろいろと不安を抱えていましたが、約8か月経って徐々にプログラミングができるようになってきた実感があります。

これまで7社からカジュアル面談のオファーを受けて、うち4社カジュアル面談、その後うち1社は面接を受けて内定をいただきました。
これから自発的な転職活動を行っていこうと思っていますが、来年の4月までにはエンジニアとして働き始めたいなと考えています。

そんなこんなで今一度、今まで学習してきたことを振り返って、これまでに何ができるようになったのかをまとめてみようと思いたったので以下にまとめます。

僕が何者なのか気になる方はこちらを参照ください。
https://zonoryo17.notion.site/f847889044e64be5b699382f2b00774f

プログラミング学習を始めてできるようになったこと,経験したこと

  1. 言語, 技術など
    • HTML/CSS
    • JavaScript(TypeScript)
    • React
    • Next.js
    • Supabase
    • Prisma
    • Git/GitHub
    • Docker
    • CSSフレームワーク(TailwindCSS,MUI,ChakraUI)
    • その他(Node.js,Vercel,Firabase,Postman,NextAuth,Notion etc.)
  2. チーム開発(4人チームで実装する部分を分担してブログアプリを作成)
  3. Git Flow/GitHub Flowを用いた開発
  4. コードレビュー(される,する(チーム開発で少し))
  5. ドキュメントやQiita,Zennなどを読む,ある程度読めるようになった
  6. 簡単なWebサイトの作成
  7. 簡単なWebアプリの作成
  8. 画面設計,機能設計,テーブル設計,ディレクトリ構成の作成

現在やっていること

  • ポートフォリオ作成

今後やっていきたいこと,実施予定のもの

  1. 言語,技術など
    • バックエンド言語学習(PHP/LaravelまたはNestJS:どちらも表面的に触ってますが深く学びたい)
    • TypeScript(現在も使用してますがしっかり学びたい)
    • GraphQL
  2. ポートフォリオのバックエンドをリプレイスする(NestJSまたはLaravelを検討中)
  3. ポートフォリオサイト,ポートフォリオのリファクタリング
  4. ポートフォリオの機能追加,アップデート
  5. 動きのあるWebサイトの作成方法
  6. 所属研究室のホームページ作成

各項目の詳細

プログラミング学習を始めてできるようになったこと,経験したことの各項目について、以下に細かく書いてみます。

  1. 言語, 技術など

    • HTML, CSS
      すべてはここから始まった。でも知っている。これらは底なし沼であることを。超変態エンジニアさん(めっちゃ誉め言葉)がCSSだけでいろいろやっているのを見て感動してます。はじめは各タグの違いとかCSSの当て方とかわからな過ぎて辛かったのを覚えてます。でも大丈夫。続けてたら絶対にわかるようになります。
    • JS, React, Next.js
      プログラミングを始めたときにJavaScriptを中心に学ぼうと思って始めました。VanillaJSからモダンJSを学んで,アプリケーションを作るのにすごく楽になったことに感動しました。この辺はこれからもっと勉強してスキルを高めていきたいと考えています。React Hooksや状態管理ライブラリ(ReduxやRecoilなど)についてはまだまだ勉強中です。
    • Supabase
      ポートフォリオのバックエンドとして採用。フロントエンドの学習をメインに進めてきたため,BaasであるSupabaseはめちゃくちゃ助かってます。認証やAPIはもちろんPostgreSQLが採用されているため,SQLの知識も使えるし(まだ自分でSQL文書いてクエリ投げたりしてないので活かせてないですが)RLSなども設定できるため非常に便利で魅力的なサービスです。多分これから個人的にガンガン使っていくと思ってます。2プロジェクトまで基本無料。
    • Prisma
      所属しているコミュニティーのチーム開発で使用しました。初めて触ったときはバックエンドやAPIの知識がほぼ皆無だったので非常に難渋しましたが,ある程度理解できればすごく便利なサービスです。そしてドキュメントがわかりやすい。こちらも使っていきたい。個人開発で簡単なアプリなどの実装で使用してます。そしてエラーがめっちゃ出る。使いこなすにはまだまだこれから学習しないといけないなと感じてます。
    • Git/GitHub
      バージョン管理システム。プログラミング学習を開始して割と初期に学習を始めました。はじめはほんとにわけわからなくて心折れかけましたが,続けて学習していくうちに理解できるようになりました。後に記載するチーム開発やFlowを使った開発で実際に使っていく中で落とし込めた感はあります。基本的な使い方については理解できたのではないかと考えています。必須。難しいけど頑張ろう。
    • Docker
      Docker fileの作成は0から自作はまだできませんが,作りたい環境を検索しながら構築することができるようになりました。MySQLとPHPMyAdminの環境などを作って開発に挑戦してみたりしました。チーム開発で使用し,自分の中で理解できた感じがします。
    • CSSフレームワーク
      CSSフレームワークとはなんぞや!?の状態からいろいろ触っていくうちに使えるようになりました。個人的には好き順で Chakra UI > TailwindCSS >> MUI って感じです。BootstrapやMantine UI,Semantic UIは軽く触ったことがある程度です。その他はわかりません。なにせめっちゃ便利。
  2. チーム開発(4人チームで実装する部分を分担してブログアプリを作成)
      所属するコミュニティーのチーム開発に参加させていただきました。Next.jsを使ってブログアプリを機能で分担しながら実装していきました。実際にチーム開発の雰囲気や進め方,Git/GitHub(PRなど)の使い方やDocker,MUIの使い方を学べて,非常にいい経験になりました。多分独学でチーム開発を経験できることは多くはないと思うのでとてもありがたかったです。

  3. Git Flow/GitHub Flowを用いた開発
      ポートフォリオ作成にあたってメンターさんとのやり取りでGit Flow/GitHub Flowを用いて開発を行っています。ブランチの切り方やPRの出し方,コンフリクトの解消なども含めてこちらも非常にいい経験ができていると感じてます。多分実務でも同じような流れでGit/GitHubを使っていくことになるのかなとイメージしているので,今のうちから経験できて,流れも理解しながら使えるようになったのは大きいなと感じています。

  4. コードレビュー(される,する(チーム開発で少し))
      コードレビューをしてもらう経験もとても重要だなと感じてます。先ほども書いたように,PRの出し方に注意しないといけなくて,ただPRを出せばいいという訳ではなく,どのようにブランチを切ったり,どのようにPRを出せばレビューしやすいかとか,ブランチ名やコメントの残し方,補足資料のまとめ方,インデントに気を付けるなど,見てもらう人のことを考えながら開発するようにここで意識が完全に変わりました。エンジニアの方からすると当たり前のことなんだと思いますが,こちらも転職前に経験できたことはとても大きいと感じてます。また,チーム開発では少しだけコードレビューをする機会がありました。ただ私自身が全然わからなかったため,レビューといえるほどのものではなかったですが,他の方が書いたコードを読むのもすごく勉強になりました。

  5. ドキュメントやQiita,Zennなどを読む,ある程度読めるようになった
      これは個人的にめちゃくちゃ進歩。プログラミング始めたときはドキュメント見ても本当にわけわからなかったし,こんなん読まないといけないの!?読まんでもいけるんじゃない...って思ってましたが,絶対必要でしたすみません謝ります。意識的に読むようにもなりましたしある程度読めるようにもなったかなと感じてます。記事などは基本日本語記事を検索してますが,エラー解決できなければStackOverflowなどの英語の情報も拾うように意識してます。情報量が違いすぎる...

  6. 簡単なWebサイトの作成
      ポートフォリオサイト含め簡単なWebサイトの制作ができるようになりました。メールフォームの実装もできました。まだ動きがあるようなオシャレで感動的なサイトの作成はできませんが,今後そのあたりも学習してみたいです。

  7. 簡単なWebアプリの作成
      Todoアプリやブログアプリなど簡単なWebアプリの作成はできるようになりました。それぞれ認証機能や基本的なCRUD機能の実装ができるようになりました。まだまだサクっと作るにはもう少しスキルを身につけないといけません。また,現在ポートフォリオでそれなりにガッツリとWebアプリケーションを作成中です。

  8. 画面設計,機能設計,テーブル設計,ディレクトリ構成の作成
      ポートフォリオ作成にあたって,0の状態からいきなり開発に入るのはめちゃくちゃ効率悪いなと思ったのと開発していくイメージができなかったので,それぞれ画面設計や機能設計,テーブル設計,ディレクトリ構成を作成してからポートフォリオ作成に着手し始めました。手間はかかるんですが個人的にこれはやっててよかったなと感じてます。効率がやっぱり全然違う。やるべきことが明確になっている分,開発に集中できるのは強いなと感じます。こちらはメンターさんにもお褒めいただけました😊

おわりに

ざっとこんな感じでしょうか。

こうやって振り返ってみると,少しずつ,でも着実にできることは増えてるなぁと感じます。

上記の言語, 技術もまだまだ勉強中で,もちろん完ぺきではありません。
プログラミング学習8か月だともっとバリバリできる人も多いかもしれません。
いろんな知識やスキルを身に着けるのに他の人より時間がかかってるかもしれませんが,そこは量でカバーしてます。

独学で学んできた分ずいぶん遠回りしたなぁという印象もあります。
上に書いた今までできるようになったことがどこまで転職に活きるかはわかりませんが,個人的にはすごくいい経験をさせてもらってきたなと感じてます。
無駄なことはないと言い聞かせながら学習に取り組んでいます。
これから引き続きプログラミング学習を続けてエンジニア転職を成功させます!

かなりの長文になってしまいましたが,ここまで読んでくださりありがとうございます🙇‍♂️
自分用のまとめ記事として書き始めたのですが,もしこれからエンジニアを目指して学習される方の参考になればと思い,大幅に加筆しました。

エンジニア転職が達成できたら,エンジニア転職成功までの過程を別記事にまとめたいと思います。
その際は,上記でまとめた内容のどれがどのくらい評価されたのか,これはあんまり評価されなかったなど,エンジニア転職の参考になるような記事をまとめたいと思います。

とりあえずスタートラインに立てるように頑張りますので応援よろしくお願いします!!!

Discussion