人生で初めて買った新品のMacBookでプログラマーを目指す記録

26歳の夏、新品のMacBookProを手に入れました。そいつと一緒にプログラマーを目指します。

暗記は苦手

こんばんは、私です。

 

今日は新しいことはちょこっとしかやってないんです。

・sortメソッド

・ORM

この二つだけあとは今までの復習です。

 

・sortメソッド

これは配列の中の値を小さい順、もしくは大きい順にしてくれるメソッドです。今日やったのは、名前とテストの点がデータとして入ってるハッシュが入った配列があって、それらをテストの点が高い順に名前と一緒に並べましょうってやつです。人間がやったら一発なのにコードを書いたらややこしやー!!でも考えてる時間は嫌いじゃない☆

 

・ORM

これはカリキュラムじゃなくて小テスト的なやつにちょろっと出て来たんです。直接長いSQL文を書かなくても短いコードでデータベースの読み書きができますよーって機能らしいです。またちょっとこれも概念チックな感じですね。多分今はまだ分からなくてもいいやつだと思うんですけどなーんか気になっちゃうんですよね。

 

 

…うん。あとは前の復習。

 

それでさ、Rubyやってて今まで分からないところとかあったけどいろんな人に聞いたりネットで調べたりして大方理解して来たんですよ。でもやっぱり分からないところがあって、何となくは分かるからそのまま曖昧にきちゃったけど、今になってそのツケが回って来た感じがしてならないんです。

まあ具体的になんかっていったら「クラスとインスタンスなんですね。変数まででてきたらどれがどれだか???てなります。何でインスタンス変数で扱わないといけないのか、わざわざインスタンス変数を呼び出すためのメソッドって何?とか。

 

復習でやってるツイッターの簡易版みたいなのを作るカリキュラムが結構クラスとインスタンスについて書いてあるから明日もやってみます。

 

復習でやったのは

・Gemの追加

・ルーティングの設定→コントローラーの作成→ビューの作成

DOA(データ中心アプローチ)

マイグレーションファイル

・ツイート画面、ツイート機能の実装

くらいです。

 

・ルーティングの設定→コントローラーの作成→ビューの作成

これは最近わかったつもりでいるので結構自信あります。ターミナルでrake routesを入力してパスを確認っていうのはお決まりの流れですね。これにdeviseが絡んでくるとパスが「えーっと、どれだー?」ってなってしまうので、多分明日やるところにまた出るのでそこも潰していこうかなと思ってます。

 

DOA(データ中心アプローチ)

これは何かアプリケーションとかプログラムとかを作るときに最初にデータ設計からやりましょうっていう考えらしくて最近流行ってる?らしいです。カリキュラムにも書いてたけどカラムやテーブル、ある程度データベース設計について知ってないと、あとでまたカラムやテーブルの追加、ビューファイルの修正とかしないといけなくて自分が困るんで見通し立てないとダメですね。チーム開発ならなおさら。

 

・ツイート画面、ツイート機能の実装

これも流れはパターン化してるので思い出しながらやっていけばいいですね。ちゃんとパターン化してるって分かるようになったんだと思ったら少しだけフフッてなりました(笑)

 

 

メソッドいっぱい出てきて理解したと思ってもすぐ忘れちゃうんです。ほんとに昔から記憶力だけなくて。メソッドの名前と大まかに何ができるかだけでも覚えていれば検索しながらでもできるけど、メソッドしか覚えてなかったりするから問題解くのに時間かかっちゃってたんです。せっかくスマホの単語帳があるんで、気持ち暗記中心の勉強法に変えてみようかな、と。

 

相変わらずタイピングは遅いまま、打ち間違いなんかしょっちゅう。地道にやってくしかないですね、これだけは本当にもう。

 

おやすみなさい。

 

少しだけしか

こんばんは。今日はモヤモヤすることがあって帰りのコンビニでアイス二個とスイートポテトパンケーキどらっていうスイーツを買って美味しく召し上がってるなう、の私です。

 

今日のワードはこちら!

・ActiveRecordRelationクラス

・averageメソッド

・roundメソッド

・precentメソッド

・レシーバ

・self

・before_action

・each_with_index

・groupメソッド

・countメソッド

・keysメソッド

・whereメソッド

・mapメソッド

・after_sign_out_path_forメソッド

・authenticate_user!

・paperclip

 

いっぱいある…。ちょっとね今日はあんまり詳しく書くのしたくないんですよ。モヤモヤモードがまだ抜けてないんで。なのでいつもよりかは簡単に振り返ってみます。

 

ActiveRecordRelationクラスは概念的なものですね。whereとかアソシエーションを使ってデータベースから複数のレコードをインスタンスとして取って来た時、その配列はActiveRecordRelationクラスに属するよ、ってことらしいけど正直???。よく分からないけどwhereとかorderとか配列に使える系メソッドが使えるのはこいつのおかげってことらしい。

今は全然ピンと来ないけど自分に余裕ができたらこう言うのも掘り下げていかないとね。ActiveRecordBaseとかいろいろねぇ。

 

んで今日一番の難所だったのがself。クラスメソッドとかのやつじゃなくてレシーバの方のやつね。インスタンス変数として扱えるっていうのがこいつの特徴で、アソシエーションしてるコントローラ下のモデルのテーブルに干渉するのにselfを使ってモデルファイルの編集をしたんですけど、selfって何?、何で直接取り出したい情報のあるテーブルのモデルファイルを編集しないの?、そもそも今までコントローラにしか定義してなかったのに何でモデルファイル?とか疑問続出でまたもやスクールのお兄さんたちを困らせました。もうほんといつもありがとうございます。ただね、selfの正体がピンと来たらアソシエーションとかインスタンスとかビューファイルとかいろんな流れが見えて来て「あ、自分わかってる。成長したな。」って少し、少しよ!少しうぬぼれました。カリキュラムには載ってなかったけどビジネスロジックっていう考え(コントローラには7つのメソッド以外はなるべく書かない的なこと)も知れたので今日イチの難所ではありながらも得るものも大きかったです。

 

あとねえ、今日はメソッドが多くて覚えるのが難しい。暗記は苦手だからどんどんコード打って自然に頭に入るのを待つしかないです。

だからほんとはこの辺も一回終わらせて、あと何回かループしたかったんですけど、RubyRailsのバージョンがカリキュラムと合ってなくてターミナルがエラー出しまくってほとんど進んでません。11時間もスクールにいたのにもったいない。ただでさえ遅れてるのに!なんかカリキュラムの一部を変えたのに別のところに反映されてなくてアプリケーション作ってる途中にそうなっちゃったからターミナルも困惑してるっぽい。まあ私がミスって出したエラーもあるけど♪(´ε` )

 

スクールのお兄さん呼び出しボタン押したけど全然来なくて、届いてないかなって連打しまくったらちゃんと届いててすっごい束縛激しい彼女みたいになってしまった(笑)

たぶん夜だからなのか教える担当の人が足りないんですって。なのに連打してすいません。だから今日はキリのいいところでやめて明日またスクールの人に見てもらって一部新しいバージョンで作り直したいと思います。どうせ復習で何回も作ると思うし。いちいちエラー起きてお兄さん呼ぶよりもっかいやり直した方が楽な気がする。

 

なので今日はこれで終わりにします。寝よ寝よ。明日はきっちりとアウトプットして多少は中身のあるブログにしますんで、勘弁してください。

それでは、おやすみなさい。

午前中はハロワ

こんばんわんこそば。そばよりうどんが好きなコージでーす。

 

今日は午前中にハローワークに行って失業保険の申請と、職業訓練について話を聞いてきたのでプログラミングの勉強を開始したのが午後2時からでした。いつもより短いですね、はい。相変わらず時間が欲すぃー。

 

ではではアウトプットいきましょか!

 

今日はいいかげんカリキュラムを進めないとまじでやばいので新しいことをやりました。ちょっと前にやったメソッドとかも出て来たんですけどやっぱり私の脳みそは記憶力を完全に失ってしまったらしい

 

・orderメソッド

これは前にやったんですよね。.order('カラム名 順序')で降順か昇順にできるやつです。DESCが降順でASCが昇順。.order('id DESC')だとidの数が大きい順に並べてくれます。

 

・limitメソッド

今日初めて知りました。略してはじしり。モデル名.limit(数字)で数字の分だけ情報を取得してくれます。上記のorderメソッドと合わせて最新10件のデータを…みたいに使えますね。実際カリキュラムでやりました。

 

・findメソッド

これは前にやりました。なんなら今もカリキュラムにガンガン出てます。常連さんです。そして私はすーぐ忘れるので接客業ならクビですね。引数に指定したidのデータを1件だけ取って来てくれるやつ。多分こいつのポイントは「1件だけ」ってところだと思います、知らんけど。忘れたくないんだよ、こっちも!

 

・rake routes

メソッドでもなんでもないけど、コンソールでこのコマンド打ったらルーティングが確認できる便利なやつ。まだあんまり使いこなせてない。ルーティング見れば流れが分かるんだからパッと読めればまた違った世界が見えるんだけどなぁ。これも数こなしていくしかないな。理屈は分かるんですよ!ルーティング→コントローラー→ビューの流れは基本!

 

・LIKE句

「らいくく」って読んでいいんだよね?最初は某連絡手段のアプリかと思った(笑)検索で使うやつなんですけど、正直私、検索機能もコードで書くんだーって驚き。いやね、普通に考えたら当たり前だろって思うかもしれないんですけど、素人には刺激が強いんじゃあ!でもこれだけでも結構おもしろかったですよ。where('title LIKE(?)' "a%")って書いたらaから始まるタイトルって意味です。他にも%の位置で終わりの句を指定したり、その句が含まれる言葉を指定することもできるし、_(アンダーバー)を使ってある語句で始まる〇〇文字の言葉、とかもできる。検索ってこうやってされてるんですね。

 

・bundle exec

こいつねー…。いまだによくわかんないんですよねー。Rubyのバージョンが同じで複数のアプリケーションを管理してるときに使う的なことだったと思うんですけど、これ付けなくても実行できたりするし、エラー出たとしてもまた付けてやり直せばいいっぽいです。全然説明に納得できないのでいずれこいつはもっと掘り下げたいなと思います。

 

・form_forヘルパーメソッド

すっごいどうでもいい話なんですけどヘルパーメソッドのことを勝手に略してヘルパメって行ってるの私です。今日はこいつに苦戦しました。フォームをRubyとかで2、3行で書くのをこれで簡単にしたっていうこれまた便利なやつなんですけ逆に1行で書かれてて何でこれがこうなるの?ってなっちゃいました。この後振り返るrequireとmergeも出て来てこれは流石にスクールのお兄さんに質問投げつけました。投げかけたんじゃないです。強い力で投げつけるんです。「ちょっと自分もなんて言っていいか分からないので調べてきていいですか?」って言われてもういじめてる気分(笑)他の人はこんなこと聞かないんでしょうね、めんどくさくてゴメーン☆けどこっちは金払ってるんだよ!質問して何が悪い!…やっぱ自分悪質なクレーマーですね。お兄さんのおかげでちゃーんとわかったのでお礼は言いました。あとは覚えるだけ!

 

・redirect_to

これはアクションに定義された新しいビューに飛ぶのが一連の流れだけどももうすでにあるビューに飛ぶ時に使うやつです。例えばツイッターでコメント投稿したら「投稿完了しました」って出るんじゃなくてそのままコメント元のツイートとその下に新しくコメントしたツイートがダーって出てくるみたいな…わけわからんなこれ。とりあえずも一度同じページに戻る時とかに使うの!

 

・requireメソッド

ハッシュの中にハッシュが入ってる時に掘り下げる時に使います。resoucesメソッドの時にやったネストを思い出します。これもアプリケーション作る時によく出て来そうです。

 

・mergeメソッド

ハッシュの結合に使います。form_forではparamsの構造がform_tagとは違うからparamsというハッシュの中にハッシュができてそいつとparamsの他のキーとバリューを合わせて手に入れたい、みたいな時に結合が出て来ます。これも頻度高そう。覚えないとですね。

 

スクールのお兄さんからRailsは概念的なところが難しいですよね、でもそれを自分で考えるのも大事ですよ」って言われたんですけど、全くその通りなんですね。ただ今の自分はクレーマーなんで「こっちは金払ってんだ、考えても分からなかったから聞いてるんだろうが!」精神(言葉悪すぎ)を持っているので気にしません(^ω^)

いずれは嫌でも自分で考えて答えにたどり着かんといけない時は来るんですよ。その時のためにある程度考える訓練みたいなことをするのはいいことだと思うんです。ただ自分で考えて対処するって情報の引き出しをいっぱい持ってないとすごく難しいと思うんですよ。例えば奨学金の免除や減額の制度があるなんて知らなければそれを利用しようと思わないですよね?だって知らないんですから。だからそういう知識や概念、流れだとか前提だとか、そういうものを自分の中に溜め込む期間だと今は割り切っています。

なので、その辺は見逃して(╹◡╹)甘えさせてよー(笑)

 

あーあ、今日もまた日付超えてしまった。1時間以上かけてるし。もうねブログ書いてる時タイプミス多いの!間違えて消してを同じところで5回繰り返すとか、もうね。タイピングは練習してるんだけどな。継続は力なりって言うけど。

 

ではおやすみなさい。明日はペース上げてやりきるぞ!

時間が足りない_:(´ཀ`」 ∠):

こんばんは、今日は日付が変わる前に投稿し終えたいのでちょっと早めにブログに取り掛かってます。

 

さて、今日もアウトプットしていきましょうか。

 

つっても別に今日は目新しいことはなーーんもやってないですよね。ずっとHTMLのところを復習してました。私が中学生くらいの頃に自分たちのホームページを作るのが流行ってHTMLを少しだけかじったことがあったんですね。当時はガラケーで無料ホームページ作成ツール(フォレストページとかモバスペとかですね)を使ったり、前略プロフとかもめっちゃ流行りました。

…んで正直言うとそんなに分からないこともなかったんで今回のカリキュラムもサーっと流してやっちゃってたんです。ただそのせいでほとんど頭に入ってなくて、思い出すのに時間がかかったり、うっすらとしか思い出せなかったり。なのでもう一度基礎からカリキュラムをやり直してます

 

・ブロック要素とインライン要素

これ最初にカリキュラムでやったはずなのに全然覚えてない。いや、これまでも何度か出てきたワードなのに聞き流してました(゚∀゚)

ブロック要素は、まぁそのままの意味で一つのブロック。高さと横幅が指定できてCSSが指定しない時は左右いっぱいで上下改行されます。対してインライン要素は、テキストを装飾するやつで文中の一部の文字を指定してあれやこれやするやつですね。ブロック要素だと<div>、インライン要素だと<span>がよく現れますね。

 

・リセットCSS

これ!実はテストに出たんですよ!御察しの通り、忘れてました。「なんやねんそれ。知らんわ!」って思ってたんですけど、答え見て「あーこんなんあったわ…」ってなりました。リセットCSSとは、最低限の見た目を確保するためにブラウザは独自のCSSを持っていて、そいつとWebページ作成者が用意したCSSが影響し合ってレイアウトが崩れる可能性があるからリセットCSSです!どうだ!大方合ってるだろう?ワイルドだろう?

 

・floatプロパティとclearfix

これややこしくて理解するのに時間がかかりました。もちろんスクールの兄ちゃんに喧嘩売って(=質問して)やっとわかりました。まず:beforeと:afterの擬似要素。擬似要素が何か分からなくて調べて、contentにclearにdisplay…。一つ一つ調べましたよ。つまりfloatさせたブロック要素の直後に擬似要素をぶっこみます→その擬似要素は回り込みを阻止してくれます→そしてそいつはブロック要素なので親要素いっぱいに広がります→親要素はそのブロック要素(擬似要素)が最後尾だと認識します→ただcontentは""で空なので目には見えてないけどデータ的には存在してるので大丈夫!他の人が見たら何言ってんのこいつってなるかもしれないんですけどいいんです!このブログはアウトプット用だから!数年後にはちゃんとわかりやすい言葉で説明できてるといいな。

 

・marginとpadding

この辺は難しくないんだけどたまにあれ?どっちだっけ?ってなってしまう。あと指定する時は15px 20px 40px 50pxって上右下左の時計回りの順番ってのを勘違いして何故か下が一番最後って思ってしまうから注意しないと。これはどんどんコード書いて体と脳に覚えさせるしかないですね。

 

・line-heightプロパティ

忘れがちなやつです。行間の幅を指定できますね。ちゃんと存在を覚えとかないと。

 

・table要素

tr要素とth要素とtd要素がごっちゃになって??ってなってしまいました。tr要素で表の横方向を作って、th要素で見出しをいれて、td要素で中の情報をいれます。私の考えた覚え方は「とりゃー(tr要素)って横の表書いて、ハイッ!(th要素)って見出しつけたらデータ(td要素)入れろ」です。tは共通してるのでその後のアルファベットで無理矢理つくりました。クセがすごい!

 

・form要素

input要素とtextarea要素に、name属性value属性にplaceholder属性、select要素とoption要素。数は多いけど実際見て結びつけて行ったら頭に入ってきやすいです。name属性value属性はRailsでも使うと思うのでセットで覚えておきたいですね。

 

・positionプロパティ

ヘッダー固定の問題で出てきました。static(初期値)relative(相対)absolute(絶対)fixed(絶対で固定)の4つ。ヘッダー固定ではfixedを使いました。この辺は充分に復習できてないので明日またやります。

 

主な内容はこんな感じです。HTMLとCSSはできて当たり前の風潮があるそうなのでないがしろにせず基礎はしっかりおさえていきます。分からなくても調べて完成させることができればいいので!

新しいカリキュラムもやって、復習もやって、時間が全然足りないです。勉強時間がもっと欲しいなんて思える日が来るとは…。足りないくせに集中できてなくて進まないってのもある。これはどうしたらいいんだうか。うーん。

 

今日は日付が変わる前に更新できそうです。明日は早くおきて朝一でハローワーク行ってきます。おやすみなさい。

 

Linuxコマンド(基本)

覚えてたら意外と便利と言われたのでまとめます。

 

cd (change directory)

ディレクトリの移動に使う

cd projects → 現在いるディレクトリからprojectsディレクトリに移動

cd.. → 今いるところから一つ上のディレクトリに移動

cd ~/projects → ホームディレクトリからprojectsに移動

cd / → ルートディレクトリに移動

 

ls (list)

今いるディレクトリの直下のファイルやディレクトリを表示

 

pwd (print working directory)

今いるディレクトリをパスで表示

 

mkdir (make directory)

ディレクトリ作成

 

touch

ファイル作成

 

cat

cat index.html.erb → index.html.erbの内容を表示

cat -n index.html.erb → index.html.erbの内容を行数をつけて表示

 

 

とりあえずこの分は覚えたい。

自分用の参考書代わりに

今、プログラミングスクールに行ってるんですが、そこで習った内容と自分で調べた内容を合わせて自分用の参考書代わりになるものを作ります。

 

復習も兼ねて、たまには自分で書いたコードを上げてみたり。

HTML(haml)、CSS(SCSS)、RubyRuby on Railsを中心にjQueryも少々。

 

完全初心者からやってるんで基礎的な内容になります。あしからず。

もし何かアドバイスとか誤字脱字とか間違ってるよ!とかあればぜひ教えてください。