<課題>
プログラマーになるためには何をどう学ばなければいけないのか? プログラマーを目指す際これが一番最初の難題だと思います。
1.スタート
僕は最初、学習方法をネットで調べeラーニングと言うものがあり、その中でも 「Paiza」「Dotinstall」「Progate」と言うサービスが人気があると言うことを知りました。そこで、僕は物は試しと思い全部やってみて、実際に成果物が作れる「Dotinstall」が良い教材と感じました。
「百聞は一見に如かず」と言いますが手を動かしながらものを作ることが楽しく効率的に学習できる方法だと思います
2.実践と実感
学習してきた言語の中でもJavaScriptは覚えやすく作ってると言う感覚を得やすく学んでいて楽しかったです。そこで僕は僕のWebサイトを作り、そこにJavaScriptで作品を作っては都度公開していきました。作っている物のレベルが上るにつれ成長を実感できたのでこの時はとても楽しかったです。
※僕のWebサイト ➡︎ https://borubo.github.io/Portfolio/
しかし、ここで問題が起こりました。プログラマー界隈の事を調べているうちにフロントエンド(見た目を作る仕事)を目指すと、沢山のデメリット(単価が安かったり、オーダーが右往左往するなど)が有ると知りこのままフロントエンドを目指して良いのか迷いが生まれました。
2.転換と挫折
そこでフルスタックエンジニア(何でも屋)を目指そうと思いバックエンド(環境構築)の勉強も始めました。ですが環境構築は直感的に分かる物ではなく、状態や状況が理解できなかったり単語や概念の意味もなかなか飲み込めなくて何どもエラーにぶつかります。調べて解決できるものもあれば分からないので違う方法を試したりもしましたが最終的にどん詰まってしまうことがよくありました。
大半の人はプログラマーになることを諦めるそうですが、それはぶつかる壁が多いからではないか?と思います。壁にぶつかった際の乗り越え方なんて学校では学べ無いですしね . . . .
3.苦痛と逃亡
今までコンスタントに成果物が作れていたのに急に行き詰まることが増えてしばらく成果物作れなかったために、僕は成長を実感できなくなってしまいました。そこでフロントエンドのスキルとして有効であるBootstrapを学び僕のWebサイトを作り直してみました。やっぱり見た目を作ることは楽しい。ですがこのままでいいのか疑惑が晴れることはありませんでした。
4.認知と教材
学習の途中でプログラミング系のインフルエンサー(情報発信をしている人)がいることを知りその方々のyoutubeを良く見るようになりました。中でも勝又健太さんと言う方はエンジニア界隈の内容を具体的かつ詳細に発信されており最短でエンジニアに成りたいのであればこの方のアドバイスを実践していけば間違いないと感じました。そこでこの方が書かれた本「Web系エンジニアになろう」を読みました。
正直素人はIT業界のことなんて全く知らないので、学ぶべきことが分からないのだと思います。だからプログラマーを目指す方は最初にIT業界全体の事を知るべきで、そういう意味では「Web系エンジニアになろう」はとても良い教材だと思います。
5.基礎と教養
今朝のことなんですが「基本情報技術者」と言う本を読みました。この本にはパソコンやインターネットの動く仕組みからサービスを作る過程までまさにITの根っこの部分をイラストで面白おかしく解説されています。700Pもあり専門的な技術や概念の話もあるので読むのに3日かかりました。
正直パソコンが動く仕組みを知らなくてもエンジニアにはなれると思いますが、「知識の幅が選択肢の幅になる」と思いこの本を読みました。
今の時代ITは電気、水と同じく生活インフラと言っても過言では無いので、一般教養として「基本情報技術者」は普及されるべきと感じました。
6.初学者に伝えたいこと
これからプログラマーを目指す方はまず「Web系エンジニアになろう」と「基本情報技術者」を読むことをお勧めします。その上で目指す物さえ決まれば学ぶべきことが見えてくると思います。
そして「壁に当たっても砕けるまでぶつかり続けろ!」と言う方もいるかもしれませんが僕が思う最悪なパターンは「嫌いになって諦めること」なので急がないのであれば立ち止まったり振り返ったりしても良いと思います。ただし、時間は有限であり「手遅れ」に成る前に達成しなければならないので「飛び込むタイミング」だけは決めておいた方が良いと思います。「飛び込むタイミング」までにどれだけ準備できるかが大切だと僕自身に言い聞かせながら今日も僕はプログラミング学習を続けています。