自営業で仕事の比率を下げながら、未経験職歴なしがエンジニア転職を目指してプログラミング学習を開始して、1ヶ月経過しました。
当初8月独学して、9月からテックキャンプに通おうとしていました。
んで、1ヶ月の学習を終えてみた感想は、案外自分でやってもなんとかなりそうだな〜、でした。
ただ、Ruby on Railsが死ぬほど難しいので、ポテパンキャンプのようなRailsに特化したプログラミングスクールもありかな〜と思ってます。
この間の反省について色々解説していきます。
2020/8/1から学習を開始しまして、今2020/8/29です。この約1ヶ月間でできたことをご紹介していきます。
未経験でゼロからプログラミングを始める僕がどれくらいの
[topic color="green" title="僕の状況"]
本業はブログやYouTubeで自営業をしていたので、ほとんどの仕事をストップしています。
他の人が仕事の合間に時間をとって学習しているよりは時間をかけています。仕事をやりながら学習しようって人にはあまり役に立たない可能性はあります。
[/topic]
1週目:HTMLとCSSの基礎を一通り
1週目はHTMLとCSSの基礎的な部分を学びました。本業がアフィリエイトだったり、ブログを起点としたビジネスだったのでHTMLは余裕でした。
ただ、CSSは新しい概念で一通り勉強したものの、まだ不安な部分だらけです。この辺りはポートフォリオを作りながら学んでいこうと思います。
CSSをまともに学習したことはありませんでしたが、ワードプレスを触っていたり、時々カスタマイズするときにいじっていたのでなんとな〜くはわかっていました。
[lnvoicel icon="https://ifta-phil.com/wp-content/uploads/2020/08/ifta-e1600359008316.jpg" name="if太"]へ〜こういう感じで使うのか〜[/lnvoicel]
ってことが体系的に理解できました。
1週目に使った教材
僕のメイン教材はこちらです。Udemyで購入しました。ちなみに、これ1個でウェブ開発の基本部分は網羅されています。
- HTML
- CSS
- JavaScript
- AWS
- Ruby
- MySQL
- Ruby on Rails
- Git
上記のウェブ系企業への転職に必要なスキルはこの講座で身につきます。
しかし、やや基本的なところの説明が弱かったり、知らん言葉いきなり使ってるやん、ってところがあります。よって、書籍で学習の補充をすることをオススメします。
僕が使った書籍はこちら。スラスラ読めます。
[itemlink post_id="412"]
2週目:CSSの途中とBootStrap
つまづいたところ
CSSの中でBootStrapあたりの学習は納得感が少なかったです。例えば、ハンバーガーメニューの中身ってどういう構造なのかわかりにくかったんです。
ハンバーガーメニューとはスマホ表示した時の右上の三本線が出ているところです。
BootStrapを使うと色々実装が楽になります。でも、その点自分が何をやっているのかがわかりにくいです。
CSSの面白いところは外部のフォントだったり、外部から使えることを呼び寄せて自分のウェブサイトに使えるところです。
ただ、CSSあたりからできることが膨大になります。なので、1回学習しただけだとすぐにスルスル頭から抜けていきます。
padding、border、marginなどもやや詰まった気がします。ただ、2〜3回ほど読み直していると徐々にわかってきます。
HTMLとCSSで最初の2週間が終わりました。
完全に反省なんですが、HTMLやCSSはウェブ系エンジニアとして学習する上で、簡単な方です。基本で大事ではあるんですが、あまり時間をかけすぎずに進んだ方がいいです。
どうせ、Railsを学習するタイミングでHTMLの学習も必ずやるので、とっととRailsを学習した方がいいです。;
3週目:JavaScriptのオブジェクト指向でよくわからなくなる
オブジェクト指向ってなかなか難しいっすね。
難しいと言うか受け入れにくい概念。JavaScriptに入ってからすごい感じます。
HTMLもオブジェクトと考えるのかな?#駆け出しエンジニアと繋がりたい— if太@落伍者 (@ifta_phil) August 11, 2020
JavaScriptに入ってから途端にプログラミング感が増してきました。
- if else文
- while文
などの構文というものが出現してきました。
オブジェクト指向という概念が出てきててこずりました。今でもオブジェクトが何か、明確に答えがわかりません。
こういう今までの生活では出てこないような概念が新しく出てくるので、JavaScriptあたりから徐々に手強くなってきます。
オブジェクト内のプロパティもオブジェクトで・・・っての繰り返してなんだか頭こんがらがってきた#JavaScript#プログラミング初心者#駆け出しエンジニアと繋がりたい
— if太@落伍者 (@ifta_phil) August 11, 2020
ただ、ウェブで必要不可欠のJavaScriptを学ぶことで上のTwitterの埋め込みもJavaScriptでできていることがわかりました。
これまで当たり前に使ってきた世界が、明らかになった気がします。プログラミング言語の楽しさも感じられるようになります。
2週目に使った教材
同じです。
ただ、JavaScriptあたりからもっと詳しく解説して欲しいな〜と思うことが増えました。もちろん、網羅して基本を全て学べるという点では良い教材です。
このUdemyの授業だけでは少しきつくなってきたので非常に易しいJavaScriptの書籍を使うことにしました。
この本はかなり平易な言葉で書かれていて理解しやすいです。
[itemlink post_id="413"]
オブジェクト指向などわかりにく概念が出てきます。でも、この辺りは放置して進んでもOKです。ウェブ系企業に入社したい人はRubyを学習すると思います。
Rubyはオブジェクト指向をこれでもかと使うので、JavaScriptでわからなければ放置してRubyに進んだ方がいいです。
3週目:AWSやRubyの学習開始
AWSの学習
AWSとはAmazonWebServiceの頭文字をとったウェブサーバーです。
AWSのCloud9の使い方を学びました。Cloud9はウェブ上でテキストエディタとターミナルが混在しているようなものです(現時点では詳しくわかりません)。
なので、ウェブ上で開発も実行もできるサービスです。
AWSは開発環境でよく使われるようですが、まだCloud9の設定をしただけなので AWSの学習が十分にできているかというとそうではありません。
なので、Railsの学習が終わったらなるべく早く、AWSの理解を深めていこうと思います。
[itemlink post_id="414"]
追記:2020年11月12日
今思えば、別にAWSの勉強ではなくCloud9使ってただけだな。
Rubyの学習
Rubyからクラスという概念が出てきた大混乱でした。
オブジェクト指向とクラスが混ざってきて、『クラスもオブジェクトだ』『クラスの中で定義される関数のようなものをメソッドという。そしてメソッドもオブジェクトだ!』など。
もはや何がなんだかわからなくなってきました。
とはいえ、今では理解できています。Udemyだけで学習していましたが、Progateでの学習を始めました。ProgateとUdemyを併用していると徐々に内容が徐々にわかるようになりました。
先ほどからご紹介しているUdemyの教材だけで、初学者がRubyを理解するのはかなりきついでしょう。
また書籍も購入し、書籍で復習していました。同じ内容でも3人から学べば、同じ内容を3つの視点で読むことができます。
4週目:My SQLとRuby on Railsの学習中
そして現在ですが、MySQLとRuby on Railsの学習を進めています。
MySQLの学習を始めましたが、Linuxの知識が必要だな〜とすごく感じます。MySQLはターミナルの操作で操ります。ターミナルはLinuxのコマンドの知識が必要です。
この辺りもプログラミング初学者のつまづきポイントになる可能性は大いにあります。
[itemlink post_id="103"]
MySQLは基本的に
デプロイ、Docker、
などなどまだ聴き慣れない言葉ばかりですが、1ヶ月勉強すればざっくりは内容を掴むことができます。
また、プログラミングは1回みただけでは何がなんだかわからないことも多いです。でも、難しいわけではなく知らない単語を知らない単語で解説されるからなんです。
「コントローラの中で定義されてメソッドのことをアクションと呼ぶ」
みたいな。
でも、こういう全く理解できないものほど実は簡単なんです。ある程度用語に慣れれば簡単にこれらの壁は突破できます。
総括:1ヶ月プログラミング学習進度とイベント
時間があれば独学は可能
プログラミングを1ヶ月独学してみました。独学すべきだと感じました。
プログラミングスクールは不安な人は参加してみることをオススメします。僕も実際再来週からテックキャンプを申し込んで入金しています。でも、返金申請するでしょう。
というのも、プログラミングっていうのは人に聞いて教わるものではなくて、使いながら慣れていくものだからです。
結局2〜3回その技術に触れていると自然と覚えていくものです。たとえ忘れても使っているうちに徐々に覚えなおしていきます。
また、初心者だわからない時って質問の仕方がわからないんですよ。つまり、プログラミングスクールのようないつでも質問できる状況って実はなかなか意味ないんじゃないかなって思います。
そして、実際テックキャンプの転職コースだと2ヶ月ほどですよね。だいたい、本気で人に頼りたくなる時って基礎的なプログラミング学習を終えた後です。学習を終えてポートフォリオを作るようなタイミングで質問したいことが出て来るはずです。
なので、その時にMENTAなどのサービスを使って人に聞いた方が実はその方がお金を効率的に使うことができます。
プログラミングの難しさは「知らないこと」
プログラミングって最初勉強するときにすごく難しく感じるんです。でも、その理由は完全に「知らないから」なんですよ。
JavaScriptあたりから出てくるオブジェクト指向もかなりきつい。DOMとか。
知らない言葉で知らない言葉を説明されます。
多分、これは徐々に慣れてくる問題かなと思いますが、やっぱり今はきつい。。。。
9/7からテックキャンプに参加するお
実は9/7からテックキャンプを申し込んでいます。ある程度Udemyで基礎ができてきたのでは。。。。というか何となくさらっと全体像を学んだ気がします。
全然身についてはいないと思いますが、
脳みその中にインデックスくらいはできたんじゃないかと思います。
とりあえず、9月7日からはテックキャンプにお世話になりながら、11月くらいにはエンジニアになれるように努力していこうと思います。