if太ブログ

資本主義疲れた。

プログラミング2ヶ月独学してみた感想や反省点をまとめてみた

どうも、自営業失敗で、アラサー無職実家暮らしのif太です。

それでは今回の記事では、8/1からプログラミング独学を開始し2ヶ月が経過したということで、この2ヶ月を振り返る動画をあげていこうと思います。

この2ヶ月間でやってきてよかったこと、反省点、

  • 自分の目的や理想も考えずにテックキャンプに入った
  • 脳の負荷が少ないところをだらだらしていた
  • Rubyを舐めていた
  • 独学で勉強できることがかっこいいと思っていた
  • エンジニア系YouTuberの意見を鵜呑みにした

この2ヶ月間、いろんなことがありましたが、無理やりなんとか一言でまとめると、「自分の無能さ」とひたすら向き合う時間でしたね。

一応、かなりの進学校だったし、自営業で4年近く自分の力だけで飯を食っていてきて、セルフイメージがかなり上がっていましたが、実際プログラミングは、これまでの学習行為の中でもかなり上位に位置しています。

プログラミングの独学2ヶ月をしてみての感想と失敗と学び

自分の目的や理想も考えずにテックキャンプに入った

f:id:ifta-phil:20201115024152j:plain エンジニア転職をしようかな〜と迷い始めた7月に、テックキャンプに

あ、でもよく考えたら「10週間でエンジニアになれなくていいや」と気付きましたね。むしろ良い転職をしたい。それなら、テックキャンプは悪手だわ。ってことに気付きましたね。

そもそも、プログラミングの学習を始める前は、とりあえずインフルエンサーだったり、エンジニア業界で有名な人の発言だけを鵜呑みにしていました。

でも、「なんで自社開発企業」を目指すんだろうか? 「なんで受託開発はダメなんだろうか?」「SESはなんでダメなんだろうか?」

ということを問い直しましたね。

 

ってことで、僕が考える最強の組み合わせは「自社開発の傍ら受託開発をしている」ような企業ですね。

なぜなら、僕が最初に新卒から働き始めた時に、自営業を始めたのも、自分の力で自分で決めたいってのが強く、自社のサービスを広げることこそ働く価値だと思うからですね。

さらに受託開発がある企業ってのは、経営が安定すると思います。自社サービスに妥協をしないためにも、受託で資金を稼いでいる企業っていうのは安心度が高いですね。

僕は、自分でサービスをやっていたり、アフィリエイト報酬だったりで稼いでいて、受託の仕事を一切受けていませんでした。

だからこそ、収入が下がるときはガクッと下がるし、

「受託をこなせば、収益が上がる」

という状況は非常に重要なことだからですね。

 

 

特に未経験からのエンジニア転職エピソードって、再現性がありそうでないんですよ。なぜなら、未経験ほどその人のこれまでの人生の総合格闘技になるから。

つまり、医療系テック企業なら前職が医療系の人が圧倒的に有利だし、医療系テック企業に転職した医療従事者の話なんて再現性皆無ですよね。

でも、今からそのバックグラウンドをいじくりまわそうとするのは流石に遠回りすぎるので、だったらスキルをじっくり伸ばす以外に

 

なので、自分の現状を考えて、

「本当に早く転職しなければいけないのか?」

「どういうエンジニアになりたいのか?」

「最初の1年は犠牲になってでも、とりあえずエンジニアになって、早く転職するのが正しいのか」

それを色々考えてみるといいでしょう。盲目的に有名なプログラミングスクールに入ることはなくなると思います

脳の負荷が小さいところにだらだら時間をかけすぎた

 

バックエンドエンジニアでRuby言語を使う人で、結局つまづくのってRailsの学習なんですよ。僕もHTMLやCSSやJavaScriptを学習しているときは、

[lnvoicel icon="https://ifta-phil.com/wp-content/uploads/2020/08/ifta-e1600359008316.jpg" name="if太"]なるほど、こんなもんか。[/lnvoicel]

とたかをくくっていました。ところがどっこい、JavaScriptあたりからオブジェクト指向って概念が出始め、その後

 

なので、途中で信じられないどん詰まりを経験するので、それだったら、

 

すると、どんどん焦ってくるんですよ。だいたいプログラミング学習をするときって、期限を決めて勉強を開始する人が多いはず。僕はよくわからず、テックキャンプが2ヶ月なので、「3ヶ月でエンジニアになる」って決めたんですよ。

それだと、2ヶ月でRailsの学習を完了させて、3ヶ月目はポートフォリオを作って、転職活動をしなければいけないんですよ。

 

でも、RailsってRubyまでの学習と比べて、極端に難易度が上がります。学習のコストがバカ高いんですよ。

「あれ、全然進まへんやん。」

「このまんまじゃ俺、いつまでたってもエンジニアになれないんじゃないか・・・」

っていう焦りにつながります。そして、プログラミングってのはただでさえ挫折しやすいのに、

 

なので、早く就職したい人ほど、

「あれ、意外と勉強イケるな〜」

ってところほど、サクサク進めた方がいいですね。特にHTML、 CSS、あたりはまだ脳みその負荷は小さいので、そこはサクッと1週間程度で学んで、Railsに時間をかけた方がいいでしょう。

 

よくRubyは簡単だから駆け出しエンジニアにオススメされると言われます。しかし、普通にめちゃくちゃ難しいです。かなり学習コストは高いです。

 

 

 

もし、相対的にPythonやGoなんかより簡単だったとしても、プログラミング自体絶対値として難しいんですよ。特にバックエンドのサーバーとのやりとりをするサーバーサイド言語なるものは、とにかく目に見えない世界ゆえにイメージもし辛いんですよ。

特に、理解に苦しんだのがRailsのMVCモデルですね。

なので、プロゲートに悪戦苦闘している中で、

 

こういう大きい主語を使うやつって別に、

 

独学で勉強することに中二病的憧れを抱いていた

「独学かっこいい!」っていう風に思い、

とはいえ、これは教材代金が節約できるから、とか、独学の方が合理的に良いという判断ではなくて、とにかく僕が中二病で、イキリ体質だからなんですよ。

「独学で」エンジニアに

僕のここ10年間はとにかく「承認欲求」と「自己顕示欲求」ってものが

なので、

 

というわけで、「俺は独学でウェブ系自社開発企業に」

 

そもそも、みんながすごいと思うことにしか興味がなかったんですよ。でも今思えば、

  • 受託開発企業じゃダメなのか?
  • なんで自社開発企業がいいのか?

みたいなことを考えると、別に死ぬほど自社開発企業である必要はないなって気付きましたね。

 

 

エンジニア系YouTuberの発信に一喜一憂した。

 

エンジニア系YouTuberの

特にプロゲートでのマウントの取り方は異常ですね。お前ら揃いも揃って、「マトリョーシカかよ」ってレベルで、プロゲートは周回するな! って発信しているんですよ。

f:id:ifta-phil:20201115024210j:plain でも、彼らがそもそもプロゲートで学習を開始したのか、はなはだ疑問ですね。

そもそも、言語自体に思い切り難易度の差があるので、プロゲートは簡単なものもあるけど、Railsになると初心者だと絶望的に

 

プロゲートで学習していないようなエンジニア系の発信者が、「プロゲートは簡単」と括って発信することで、初学者がゴリゴリ悩み始めるんですよ。

ってな教訓もあったので、そもそもYouTubeはその人のバックグラウンドつきで見ることにしますね。

「実務も経験せずに、テックキャンプのメンターしかやってない奴」

「エンジニア転職のデメリットを語ってるけど、お前SIerやんって奴」

「MENTAサービスをやっていて、とにかく独学は無理だという結論に持っていきたい奴」

「ワードプレス案件を獲得したことで、『エンジニアとして2ヶ月で稼いだ』と言っている奴」

などなど玉石混交ですね。

目的のために手段を選ばなかったり、YouTubeの毎日更新のために、適当な暴論振りかざす奴もいて、結局は己が感じたことが正解だな〜って思いましたね。

 

f:id:ifta-phil:20201115024219j:plain

「プロゲートを1周で理解できなければ、プロゲートは合ってない」だの、

 

 

こういうツルハシビジネスに対して、一切文句を言いたいわけではないんだが、ツルハシビジネスが本業になると、情報発信に本音がなくなって、「恣意的な情報発信」になるんだよ。

f:id:ifta-phil:20201115024237j:plain

例えば、プロゲートで1周やってわからなかったら、誰かから学んでください。みたいな。

実際Railsの学習でプロゲート1周やって、まともに理解できる初学者なんて多分いない。少なくとも、僕も僕が入ったRUNTEQというプログラミングスクールにもいないと思う。

でも、こういったエンジニアの発信を聞くと、惑わされてしまうのが初学者です。

 

実際、プロゲートを何周も何周もしても、本当の実力がつかないってのは確かにそうかもしれないんですが、当然HTMLとRailsでは話は全く変わってくるんですよ。

HTMLのプロゲートを吐くほどやるくらいなら、とっとと適当にウェブページでも作れよって思いたくなる気持ちはわかるが、Railsのプロゲートは普通に難しいんですよ。

 

なので、そもそも「プロゲート」と一括りにするのが間違いなんですよ。そもそもHTMLやCSSに比べて、Railsの学習コストはべらぼうに高いので、同じ議論に載せること自体ナンセンスですね。

さらにいうと、われわれ初学者ってのは毎日毎日脳に信じられない負荷をかけてプログラミングを学習しているので、もはや、プロゲートを何周もして、自己満足だろうが、挫折しなければ勝ちなんですよ。

 

ってなわけで、ポジショントークの全てが悪だとは言わないし、多かれ少なかれポジショントークになるのは仕方ないとして、その発信者がどういうポジションにいるのかはしっかり考えたほうがいいですね。

 

そして、自分がわからなくて、時間をかけて学ぶべきだと判断したら、それは時間をかけてじっくり学ぶべきものなんですよ。あなたや僕のような初学者は、自分が難しいと感じたら、それが難しいところなのです。

別に、他人が「それは簡単だよ」って言ったとして、それはフル無視で、「難しいので助けてください」って言える人間でありたいと思いますね。

そもそも、「難しいけど、誰にも頼らずに独学して、勉強し、『俺は独学で勉強した。別に大したことなかったわ』」って言いたかったんですけど、

これって普通にカッコ良さでもなければ、強さでもなんでもないんだよ。田舎のヤンキー中学生の肩パンをしあう、謎の強さの指標なんだよ。

そして、僕はこのプログラミング学習を通じて、「わからない」し、「難しい」とYouTubeを通して、世界に発信していこうと思っているんですよ。

これこそ、本当の強さであり、わからないことをわからないといえ、他人に

これは、「素直な自分」へのリハビリ行為と言っても過言ではありませんね。

 

 

結論から言うと、とにかく脳の思考停止との戦いの日々でしたね。

というのも、常に新しい概念が次々に飛び出し、脳みその受け入れ停止が起こるんですよ。これまでの人生でなかった概念が次々に飛び出し、その概念を前提に次の話に進むもんだから、なし崩し的に、何も理解できない状況が出来上がったんだよ。

好きなこともないのに、『好きなことで生きていく』というキャッチフレーズに憧れたYouTuberのようで、その上に何を積み上げたって、土台がグラグラなんですよ。

 

また、そんな脳みそのシャットダウンや、挫折の危機にいる状況で追い討ちをかけるように、エンジニア系YouTuberの

というか、こういうエンジニア系YouTuberって完全に未経験で初学者の状態からプロゲートを使ったことがない人が多くて、HTMLとかCSSのプロゲートだけを見ている場合が多いんじゃないかな?

ですが、当然なんだけどプロゲートとまとめて括って話をできるはずもないんだよ。HTMLのプロゲートとRailsのプロゲートは同じレベルのはずがないんだよ。

 

なので、プロゲートは初学者にとって最適だというのは間違いないものの、本気の本気の初学者にとってはどんなに易しい表現をしたところで限界があるんだよ。

もちろん、これらのYouTuberのいう通り、プロゲートを

 

そもそも我々初学者ってのは、一歩踏み外せば奈落の底。それくらいの断崖絶壁のギリギリを歩いているんですよ。だから、なかなかうまくいかないんですよ。

 

まあ、所詮これらのエンジニア系YouTuberってのは自分が完全初学者の状態時に、プロゲートを使っていたわけではなく、ただただ、キーワードとして

初学者を惑わして稼ぐ腐れ情報商材屋なので、無視してOK。挫折しなけりゃ勝ち。そのような心持で

 

そもそもプログラミングってのは、当たるか当たらないかのビジネスと違って、諦めさえしなければいずれ必ずできるようになるんですよ。

なので、その日を信じて、コツコツ毎日挫折しない程度に頑張るだけですね。

 

とにかくRailsって便利なんだろうと思うんだが、便利さになれるのって死ぬほど大変なんですよね。

老人がスマホやパソコンに取り残されているのもわかりますね。

基本的に我々のために便利になるために作られているフレームワークだってことがわかるんですが、とにかく難しいし、なれないですね。

プログラミングの難しさってのは、理解できないってことよりも「慣れなさ」なんですよ。

「コントローラの中で定義されたメソッドのアクションがビューを返す」

っていう言葉をみて、実際に図を見て、「へ〜」っていっている内容自体はわかるんですが、一切実感が伴わないんですよ。今まで生きてきた人間界と異なる挙動をしまくるので、それが自分の中でかなり辛かったですね。

 

たった2ヶ月で実務をこなすことは可能なのか?

僕の所感で恐縮ですが、2ヶ月で実務をこなすレベルになれるのか? って疑問に思うかもしれませんが、もしかしたら「フロントエンドエンジニア」なら可能かもね。ってレベルですね。

バックエンドを2ヶ月で学びきるのはまず無理だと思いますね。

 

フロントエンドなら、早めにJavaScriptに取り掛かって習熟して、とっととポートフォリオを作っていたら、可能かもしれません。また、副業でワードプレス案件を受けたり、LP案件を受けたりするくらいならできるかもしれませんね。

Twitterを見ても、早い段階でプログラミングの副業をやっている人の多くは、この手のウェブ制作が多いです。

 

だけども、僕としては安易なLPなり、

LPってのはただただ法則に当てはめるだけでなく、その会社のコンセプト

 

実は、フロントエンドエンジニアの方がバックエンドエンジニアよりも

一方、バックエンドってのは、最初の学習ハードルが跳ね上がる代わりに、

 

これは理系にしか伝わらないたとえで申し訳ないのですが、力学と電磁気学の入試問題の難易度の関係に似ていますね。はっきり言って、初学者の学習の難易度は圧倒的に電磁気学の方が難しいんですよ。

一方で、力学は初学者でもすんなり学習できるんですよ。これは力学が目に見える世界を表しているので、どこがどこに力が働いているかを考えれば、あとは意外とすんなり頭に入るんですよ。一方で電磁気学ってのは電気と磁気なので、目に見えない世界を数式化するんで、非常に理解が困難なんですよ。

しかし、実際のところ最終的に入試問題で難易度が無限に跳ね上がるのは力学なんですよ。電磁気学ってのは目に見えない分そこまで難しくしようがないんで、後々得点源になりやすいんですよ。

 

理系の一部の人にしかわからんマニアックなたとえなんですが、簡単にいうと最終的にはフロントエンドエンジニアってのはセンスだったりに関わってくると思われるし、最終的に論理だけではどうにもならない部分が出てくるんですよ。

なので、初学者にとっての学習のハードルが極めて高いサーバーサイドのバックエンドエンジニアを時間をかけても目指していこうと思いますね。

優しいエンジニアの先輩や同期と繋がる進め

この2ヶ月間、何度も「自分にはプログラミング向いてないんじゃ・・・」って思ってきたんですが、雑食系エンジニアサロンの交流会で一度話をした方や、プログラミングスクールのRUNTEQで知り合った人など、いろんな方のおかげで挫折することなく今までやりきることができています。

 

とはいえ、自分の自信がなくなるような状況でも、挫折せずにいられたのは、プログラミングスクールのRUNTEQの同期の人だったり、雑食系サロンの人たちだったりしますね。

特に女性エンジニアはあんまり「〇ヶ月でエンジニアになった方法!」みたいなのに興味を持っている人が少なくて、肩肘はらずに、

臨戦態勢の男は嫌いだよ。

特にサーバーサイドの言語であるRuby。そしてRailsはとにかく難しいんだよ

・HTMLやCSSってのはなんのかんのブログで4年飯を食っていたので、なんとか理解しやすかったんですよ。しかも、書いたものがそのまま表現されるのでまだ理解しやすかったです。

デプロイのようなサーバーにぶち上げたり、gitとかコマンドを使うこともなかったので、それはよかったですね。

 

・JavaScriptやRubyも途中から出てきて、なかなかそれはそれで大変だったんですが、それでもまだなんとかなりました。オブジェクト指向っていう新しい概念だったり、インスタンスメソッド、インスタンス変数などの理解はかなりてこずったものの、それでもまだ

 

・Railsからは地獄の日々でしたね。

とにかく、脳が受け付けない。新しい概念であるMVCモデルが登場するんです。

ブログとかなら、URLをはると、そのサイトのウェブページ に

 

やはりルビーサーバーサイドの言語っていうのはとにかく我々の身近な感覚として全然違うんだよ。例えば僕はブログで4年間生計を立ててきたわけなんだが、これまで使ってきたリンクとかの概念と全く異なるんだよ。例えばリンクっていうのは次のウェブページへのリンクを貼るっていうのが普通だと思うんですがレールズのリンクっていうのは基本的にアクションって言うメソッド関数を呼び出すために使われるんですよでこーゆーこれまでと異なる概念異なる感覚って言うのにすごく苦労して2カ月間だったなと言う感じですというか最初の1ヵ月ってのは基本的にHL CSSジャバスクリプトルビの学習だったんですよジャバスクリプトルビの学習を個別でしてる時はよかったですよ。しかし実際にそれらのジャバスクリプトの知識が混ざって出来上がっているレールズがですねやはり非常に難しかったなぜならですねこれは新しい僕らの概念としてNVCモデルってものが出てくるんですけども米モデルモデルビューコントローラと言うものがで今までが詰めるとCSS位。

・オブジェクト指向

・MVCモデル

などなど、これまでにない概念だったり、考え方が次々に

 

 

[topic color="red" title="この2ヶ月で学習した"]

・プロゲート有料課金しています。

・Udemy

・その他参考書

[/topic]

 

を駆使して2ヶ月間学習してきました。この教材をこの機会に学習していきますね。

 

というわけで非常に脳の負荷が高い2カ月間でした。そして新しい概念を学ぶことによって僕の脳みそっていうのがどんどんシャットダウンしていったんだよ。なので月日が流れ無職の期間が長く長引くのに反して、全く勉強が進まないことに焦りを感じた2カ月間でした。

ですが、これは言えるのは、これは言えるのはまずプログラミングっていうのは慣れれば何とかなるものだなと言うふうに感じましたね。というかこーゆー全くこれまでになかった概念をいきなり全部受け入れてすんなり理解するって言うことの方が難しいんだよだからこのタイミングでプログラミングを挫折する人がいっぱいいるってなすごく納得できたしほんとに難しいなと思ったんだけどもやはりねここで乗り越えてしまえばまぁ後は大丈夫かなっていうふうに思いますね。というか、完全にこれは持論なんですが、最初に難しくハードルが高いものほど実は慣れてしまえば簡単って言うふうに僕は思っています。例えば大学の勉強で電磁気学とか量子力学とかこの辺の理解っていうの非常に最初難しいんだよ。確率とかが出てきてこれこれまで目に見えなかったものが突然ベクトル演算などの新しい概念によって計算しなければいけなくなるそういう難しいこれまでに受け入れがたい概念ていうのは逆に言うと慣れてしまえば簡単になる一方で例えば物理で言うと力学のようにイメージしやすいとっつきやすそうなものほどものほど後々に難しくなっていくんだよ。なので実際のところ就職が難しいのは生きてみるやCSSの方だと思うんです。 おそらく多くの人はフロントエンドエンジニアになろうとする者が多いんじゃないかなと思いますというのもバックエンドエンジニアってな非常に理解がしにくいんですよ。だからこそフロントエンドなら自分でもできそうって言うふうに考えると思うんですよ。

しかし、フロントエンドってのはデザインや、隙間など無限に突き詰められることがあり、センス

とっつきやすいものほど実は就職が難しいと言う僕の勝手な持論がありますので、今最初の難易度の高さっていうのはむしろありがたいことですね。NVCモデルって言うものはやはり理解が最初は難しいものの慣れてしまえばどうせできるんだろうと言う位高尾括って取り組んでいこうと思っております

 

それでは、2ヶ月独学した僕が、僭越ながら、2ヶ月の独学の教訓じみたものをベラベラ喋っていきたいと思っています。

 

 

 

難しいというよりは、もうとことん慣れない。こういうのは多分、慣れたらなんとかなるって感覚はあるものの、全部わからないことだらけなので、HTMLやCSSとかとは全く違って、慣れない。

というのも、HTMLやCSSはあんまりわからないけど、なんとか使うことができてたんですよね。

でも、Railsはとにかく。

オブジェクトって何?

オブジェクト指向って感覚は1ヶ月半くらい学習したけども、あんまりわからないですね。

 

 

 

 

プロゲート難しいですよ。

まあ、本当に余裕な人もいるのかもしれないですが、そもそもプロゲートがなかった頃にエンジニアになった人って、プロゲートを初見で学んだことがない人ばかりじゃないですか。

なので、そういう人の意見なんて聞かずに

 

ちなみにいうと、HTMLやCSSってのは割と簡単なんだが、Ruby on Railsになってから途端に難しくなる。

もう道場コースなんて、

しかも道場コースはプロゲートならではのエラーが起こる。僕はプロゲートならではのエラーで1日中迷い込んだこともある。このエラーとの戦いはかなり辛いものがある。

エラーとの戦いなんて大したこともないんじゃ。

時々ある「2ヶ月で実務」は可能なのか?

 

結論、サーバーサイドエンジニアが2ヶ月で実務までたどり着くことはまず不可能だといえますね。

 

2ヶ月間で実務を経験して、速攻仕事をすることはできるのか?って話なんですが、

少なくともサーバーサイドのバックエンドエンジニアとかはむり。2ヶ月では

まず無理やなと思いますね。

とはいえ、ウェブ制作とかサイト作りとかLP作りとかをプログラミングというのかっていうと結構微妙ですよね。

 

僕は、安易にフロントエンド エンジニアになるのは微妙やなって言います。というのも、フロントエンドはデザイン力だったり、そういうセンスとか要求されるんですよ。

で、そういうものって、本当に才能に

 

 

一方で、サーバーサイドエンジニアは敷居が高いんですが、そのおかげもありまして、結構自分で稼げることになりますね。

 

2ヶ月学習してなる早で転職したい人へのアドバイス

脳みその負荷が少ないところは可能な限り早く進め

HTMLとかCSSとかはフロントエンドと言われますが、まあ負荷は少ないです。

これは、僕がブログで4年間飯食ってたので、慣れ親しんでいたのもあります。完全初見ならかなりきついかもしれません。(とはいえ、ワードプレスだとそこまでHTMLファイル丸ごと触れることはないんですがね)

でも、JavaScriptやRubyはそこそこ。

そして、

 

とにかくプロゲートもRailsは

プロゲートを1周で理解できなくても落ち込まなくてOK

 

他にプログラミングスクールで知り合った人も、プロゲートは難しいっていってますし、サーバーサイドの言語ってなかなかイメージし辛いんですよね。

最初とか、どのファイルとどのファイルが関係しあってるのか全然わからないんですよね。

 

発信し始めて質問とか集まったら、自分がやんごとなきお方だと勘違いしてしまった猿どもなので、気にしなくていい。そもそも、こんな奴らエンジニアの

別に気にしなくていい。

 

 

 

10/1~プログラミングスクールのRUNTEQのRailsチュートリアル開始

 

10/1からプログラミングスクールのRUNTEQに参加しまして、Railsチュートリアルを開始しましたね。