😪

世界一参考にならないプログラミング独学方法【過去一年の振り返り】

2022/11/29に公開

はじめに

今回は、自分が今のスキルに上げるまでどのようにプログラミングを勉強してきたかを備忘録としてまとめてみました。

注意

  • 世界一1参考になりません
  • 効率悪かったです
  • プログラミング好きだからできたことです
  • 自分語りなので本当に参考になりません

結論

  • 最初はProgate
  • 一日0~24時間勉強
    • 丸2日ほど寝ないでプログラミング三昧というのもよくあった
    • もちろん全く勉強しない日もあった

著者の一年前のスキル

  • html?何それ?状態
  • Scratchがギリギリわかる
  • プログラミング用語(オブジェクト指向など)を全く知らない
  • 簡単とおすすめされたPythonで一瞬で挫折
    • Pythonのprint文で挫折
  • テキスト言語が全くわからない
  • 今の中学生や小学生の技術の知識もない
  • そもそも何がわからないのかわからない

著者の最近のスキル

  • 自走できるようになった
    • 技術書が読めるようになった
    • ネットで調べて理解できるようになった
  • 自分が作りたいものを色んな言語で作れるようになってきた
    • PHP,Go,Python,JS,Scratch...
  • 効率などを求めるようになった
  • プログラミングについてアウトプットできるようになった
  • 悟ってきた

最初はProgate

自分は最初はProgateからプログラミングの勉強を始めました。とにかく初心者で右も左もhtmlファイルすら知らない人間だったので、一番簡単そうなHTML&CSSからやりました。ただ、デフォルトCSSやpaddingとmarginの違いが全くわからなくて1ヶ月悩んだり、h1などの要素が階層構造を表すのではなくて、ただ文字のデカさの違いとしか判断していないほどでした。
そして、道場コースとかもう全く無理でした。(今でも無理説があるけど、昔よりはできるはずです)
それでも好きだったのでHTML&CSSを終え、JSやらRails、PHPなどたくさん手を出しました。(出し過ぎました)そして、後半はPHPとLaravelをメインで勉強してました。最初にPHPでフルスクラッチでサイトを作って、DB管理などをして、その後にLaravelをやり、DBの扱いやすさに感動しました。フレームワークってすごいなと。。。最近はGatsbyを使って静的サイトを作っていたりするのでLaravelを触っていないのですが、GatsbyでReactを触ったので、React+Laravelでアプリを作ってみたいなと思いました。

余談

ProgateのHTML&CSSでフロントエンドについて余談が思いついたので書きます。フロントエンドでChakra UIかMUIのどちらを使うか悩み中です。
https://zenn.dev/kiyokiyoabc/articles/f688f2cee95f04
このような記事が出てくるのですが、あまり違いについて書かれておらず。GatsbyとLaravelで分けて使ってみると違いがよくわかりそうだなとふと思いました。
Gatsbyの方の自作サイトはTailwinds CSSを使っていたのですが、ChaklaとかMUIのコンポーネント?で作れるのがかなりスッキリしていて感動したのでちょっと手を出してみようかなという魂胆です。コンポーネントでスタイルが作れるのが、なんだかFlutterでアプリを作る時みたいでシンプルで面白いなとも思いました。何気にFlutterのスタイルシステム使いやすくて好きです。エディタの補完も効くし、細かいことはしなくて良いし、スッキリしていて綺麗。
もちろんどんなものにもメリットデメリットありますが、シンプルで細かく設定できるフレームワークを見つけ出したいですね。もしくは自分で作るとか。(CSSが苦手であまりバックエンドなどに比べたら興味がないのでだいぶ後回しになりそうですが。)

一日0~24時間勉強

全く勉強しない日もありましたが、それでもとにかくプログラマーに憧れて、プログラミングが好きで夢中でやってました。
バグを解消しようと調べてみたりするだけで10時間はあっという間に溶けましたし、興味のあることについて調べたり何か制作をしていたら2日過ぎていたこともよくありました。

余談

たまに、「勉強時間めっちゃ長いけどそのスキルレベルってことは効率悪いじゃん」って言われることがあるのですが、確かにそうですよね。自分もそう思います(言われたら悲しいですが、正しいことでもあります)。
ただ、本当に何も知らない人間が誰の手も借りずに独学で勉強してここまで来れたので、かなり良い経験だったと思います。逆に、その大量に溶かした時間のおかげで初学者がどこで躓くのか、どこが難しいかなどがよくわかっているので、そういう考え方をするとその時間にも価値があったんじゃないかなと思いました。

現在のスキル

そして今になりましたが、自作ブログを立てたり大体のソースコードが読めたり、大体のアプリが作れるようになってました。というよりも、確かに何かが作れるようにはなったのですが、プログラミングの本質的な部分や勉強方法がよくわかってきて、自走できるようになってきました。
以前はProgateやった後どうすればいいのかわからなかったり他の解説本やサイトをみても理解不能でしたが、今はもう自分が興味をもったものを調べていくこと(自走)ができるようになってきたので、あとは淡々と知らないことやわからないことを調べて理解していくだけという感じになってきました。

余談

最初の方にも書きましたが、最近はGatsbyで静的サイトを作ったりしています。他にもありがたいことに、プログラミング関係でアルバイトをさせていただいたり、そこで教材を作らせていただいたりもしています。とてもありがたいことです。
そう考えると、今までの時間は無駄ではなかったな、とか結果論ですが思います。
もちろん、自分より短時間で理解してキラキラ輝いているエンジニア、プログラマーを見ていると病みますが、そういうのって大体9割近く環境、運の差なので諦めるしかない気がしています。
これについてもまたzennにまとめてみたいですね。

さいごに

  • もっと効率よく勉強すればよかった
  • 40時間以上ぶっ通しでプログラミングしても全然苦ではなかった
  • 自走できるようになってきたので、あとは淡々とわからないことや知らないことを調べて解決していきたい&さらに効率の良い学習方法を模索していきたい(人生が終わるまではずっとそうだと思う)
    • CoderDojoなどでプログラマーや技術を持っている人がたくさんいるのでどんどん質問したい
  • みんなinputしかしてないのでoutputしたい
    • outputしない人が多いですよね
      • 多分お仕事などで忙しいのだと思います
    • outputする人を大切にしていきたいですね

関連ページ

https://www.chickensblog.com/progate/
https://www.chickensblog.com/scratch-cant-fool/
https://zenn.dev/teba_eleven/articles/aa46297ed1673b
https://zenn.dev/teba_eleven/articles/f9aaf060bb2f1a

Discussion