karlley's tech blog

学習メモや記録とか

一ヶ月はとてつもなく早く短い

始めたばかりのブログなのに全く更新できませんでした.. やっと振り返る時間と精神的余裕ができたので、反省点も踏まえてこの一ヶ月何をしていたか振り返ってみたいと思います。

progate のRubyRailsをやった

プログラミング初学者御用達「progate」をまずは始めてみました。 過去にhtml/cssjavascript,phpなど訳も分からず手を出していた時期にお世話になったサービスです。もはやその時に勉強したJavaScriptphpも頭の中からは殆ど消えていますが...

久しぶりにprogateを触ってみた感想

  • 説明が噛み砕いてあり非常に分かり易い
  • 良くも悪くもかなりゆっくりレッスンが進んでいくイメージ
  • 正直1週するだけではなかなか覚えられない > 反復して覚える感じ

このサービスが無かった時代にプログラミングを身につけた人は本当に凄いと思います。 現在はprogate以外にもプログラミング学習サービスはたくさんありますが、さすがTwitterで騒がれるだけあります。めちゃくちゃ噛み砕いて説明してくれるので全くの初心者でも楽しんでプログラミングを覚える事ができると思います。

で、私が今回手を付けたのが「Ruby」と「Ruby on Rails」です。反復して覚える必要があると書きましたが、実際のところどちらも1週しただけです。 これには理由がありますので後述します。

Ruby」のレッスンは割と短めでサラッと終わらす事ができましたが、「Ruby on Rails」のレッスンは個人的に結構ヘビーで眠気と戦いながらなんとか終わらせる事ができました。progateが終了後の私のRubyRailsへの理解度ですが、おそらく4,5割も理解しているかな?ぐらいです。

progateは1週だけにしました

理解度が低くちょっと不安もあり、progateのレッスンを2・3週するか迷いましたが、過去に挫折した経験があるので今はとにかく前に進んでいる感覚が欲しかったのが最大の理由です。 現時点での本丸であるRailsTutorialに少しでも近づいてる感覚があれば挫折しにくいと私は考えました。 実際にRailsTutorialにチャレンジしてみて知識が足りないと感じたら、またprogateに戻ってインプットし直せばOKかなという感じで次にステップに進みました。

学習時の反省点

  • 勉強中に眠くならない為の工夫が足りなかった > ポモドーロ・テクニック系のアプリを導入
  • 理解度 < スピード に気づくのが遅かった

ローカル開発環境の構築で死に目を見た

ドットインストールでRubyRailsを学習する為にローカル開発環境に手を付けましたが、ここで私は死に目を見ました笑

VirtualBoxVagrant,CentOSを使ってローカルに仮想サーバを立てるレッスンがドットインストールにあり、過去にやった事もあったので軽い気持ちで開発環境の構築に挑みました。上記のツールに加えて前々から気になっていた

も一緒に使ってみようと思ったのですが、これがエラー地獄への入り口だったのです...

zshとprezto,vimの導入自体はできたのですが、パスが通らずコマンドが使えなかったりvimプラグインでエラーが出たり散々でした。 しかもバージョンを気にせず環境構築していたのでRuby,Railsのバージョンの違いによるエラーなども同時に頻発。

  • 次々と吐出されるエラーを解決するのに時間が掛かる
  • 時間が空くと勉強した内容を忘れそう...
  • 進んでいる感覚がないので猛烈に焦る

この3つが同時に襲って私のメンタルを相当疲弊させました。 この時点で5日ぐらいを浪費。 ググりまくって知識は付きましたが、肝心の勉強はストップしたまま。 おそらく環境を作り直したら上手く行く気がしていたので、ゼロから環境を再構築したらフツーに上手くいきました笑 今回ハマった内容については後日Qiitaにアップしようと思っています。

今の目標はとにかくRubyRailsを覚える事なので、気になるzshvimは一旦置いといて、学習がすすんだら導入しようと思います。 今回は大人しく素のbashとエディタは使い慣れたAtomを使用する事にしました。

エンジニアは常にエラーとの戦いというイメージがあります。 エラーを解決する為の技術や知識も大切かもしれませんが「エラーに負けないタフな精神力」が何よりも大事なんだと痛感しました。

反省点

  • 環境に拘り過ぎた
  • 目的意識が分からなくなってるのに気づくのが遅い
  • バージョン揃えるの大事

ドットインストールでの学習をはじめた

私が一番好きな学習サービスです。マジで大好きです。

  • 説明が端的で素敵
  • 音声で説明される事で頭に入り易い
  • 速いコーディングの仕方も同時に学べる
  • 有料会員ならソースコードも見れるので間違い探しが速い
  • 学習速度が爆速になる

など良い点を挙げたらキリがないですが、私がドットインストールが好きな理由の一番は

自分の好きな環境で学習できる

という点です。

progateはブラウザ上で全て完結されているので環境構築などをパスできるのでプログラミング初学者にとっては非常に有り難いと思いますが、個人的にはちょっとリアリティーに欠けると感じていました。 ドットインストールはエディタや仮想サーバなどを自前で用意する必要がありますが、その方がよりリアルで私の好みでした。 これは私の個人的な意見ですが、全て用意されている環境よりも自分好みの環境の方が学習へのモチベーションが保ち易さが全然違うと思います。

勉強を続けられるのかは結局のところ「モチベーションを保てるか」が全てだと思いますので、モチベーションが上がる環境を探すという事は勉強方法を考えるよりも重要なんじゃないかと思います。

「モチベーションが上がる環境を探す事は勉強方法を考えるよりも重要」なんて偉そうな事を言いましたが、私はここで1度死に目を見ていますのでエラーに遭遇する覚悟は必要だとは思いますが笑い

現在ドットインストールはRubyを2週、Railsを2週しました。 今後はHerokuやGit、MySQLpostgreSQLなどデータベースのレッスンを進めていこうと思います。

反省点

  • 1週目で理解しようとし過ぎ
  • エラーにビビりすぎ(トラウマ?)

現在は割と順調ですがまだまだやれてない事が山積み

現在はドットインストール中心に勉強しています。 理解度としてはまだまだ全然で、まだ自分で何かを作り出せるとはとてもじゃないけど思えません。 ですが、少しづつですがプログラミングをするという行為に慣れてきたという感じはあります。 今後以下の内容を学習をしようと思っています。

HTML/CSS,JavaScriptなどのフロント周りは全くの初心者という訳ではないですが、実務レベルで使えるかと問われたら全く自信がないのです...

一般的にRailsを学習する一般的な流れは

  1. HTML/CSS, JavaScript, jQureyなどのフロント周り
  2. MySQLなどのデータベース周り
  3. コマンドラインやgit
  4. 上記の内容をある程度理解してRailsTutorial
  5. Railsポートフォリオ作成

こんな感じではないでしょうか?

私はHTML/CSS, JavaScript, jQureyなどはちょっとだけカジッた事があったので(過去に勉強していたが挫折...) 今回は自分が一番興味のある事から始める事でモチベーションが保てるのではないかと考え、一番興味のあったRubyRailsから学習をスタートしました。 webサービスを開発するに当たってフロント周りは必ず必要な知識なのでこれからweb系のプログラミング言語を学ぼうと思っている方は上記したような無難な学習ルートを選択する事をおすすめします。

1ヶ月目の良かった点と改善点と今後の目標

本当にあっと言う間に1ヶ月が過ぎてしまいました。 前に進んでいる充実感もある反面、全然ダメだった事や反省点は腐る程あります。

良かった点

  • 興味のあったRubyRailsから始めた事でモチベーションの低下を防げた
  • とにかく「前に進む」を意識した事でエラーなどトラブった時に「今何をするべきか」明確な判断ができた
  • Twitterを始めた事で孤独感から解放された

改善点

  • ブログ投稿サボりすぎ > ブログを週一に投稿し、PCDAをもっと早く回す
  • エラー解消したらそのまま > Qiita等にアウトプット
  • Twitterにツイートしたら満足 > 仲間を増やせるような良質なツイートを心掛ける

今月の目標

  • フロント周りは一旦無視してRailsTutorialに手を付ける
  • MySQL, postgreSQLなどのデータベースを7割ぐらい理解する
  • gitを使ってのバージョン管理の全体像を理解する

まとめ

学習スピードはかなり遅めだと思いますが、コツコツ続ける事が大事だと私は信じています。 まずは継続する事ができたので1ヶ月目は60点といったところでしょうか...

今月は長期の旅行があり、時間的にちょっと厳しいかもしれませんが自分がやりたくて決めた事なので頑張ります。

そして1ヶ月学習して一番大きな収穫がありました。 それは

プログラミングは楽しい

と感じた事です。

未知のエラーに遭遇した瞬間や思い通りに学習が進まなかった時は正直しんどいです。 ですが、エラーが解消した時や思った通りにプログラムが動いた瞬間の気持ち良さを知ってしまうと「もうちょっと頑張って先に進んでみようかな」と思えるようになりました。 今後はエラーが起きても「イベント発生」と思えるぐらいのレベルを目指して、執念深くエラーと戦ってプログラミングを楽しんでいきたいと思います!