最近のプログラマ
便利なツールが発達しすぎたせいで、簡単にプログラミングを始められるようになったのはいいのだが、最近のWeb系の言語は便利すぎてメモリを知らない子が結構いる
ガベージコレクションもよくできているし、メモリ
メモリの理解
C言語をやらなくても、配列やクラスの初期化、変数などは本来、メモリがわからないと理解できないはずなのだそしてメモリがわかればポインタがわかるので、参照渡しもわかる
これから覚える人へ
理解するためのステップが下記に簡単にまとまっているのでよく読もう
便利なツールが発達しすぎたせいで、簡単にプログラミングを始められるようになったのはいいのだが、最近のWeb系の言語は便利すぎてメモリを知らない子が結構いる
ガベージコレクションもよくできているし、メモリ
C言語をやらなくても、配列やクラスの初期化、変数などは本来、メモリがわからないと理解できないはずなのだそしてメモリがわかればポインタがわかるので、参照渡しもわかる
理解するためのステップが下記に簡単にまとまっているのでよく読もう
最近オンラインの学習サービスが増えてきました
サービスの概要、料金、システム、特徴などをまとめてみます。


概要:Pythonの学習サービス
ブラウザだけで完結
名前の通りPython特化型。Pythonに特化した学習サービスは珍しい。
料金:
特徴:
HTML/CSS
Ruby on Rails
担当講師制
オンライン家庭教師
問題を解いていく系
裕福になるためには、2つの環境を整えなければならない。
~中略~
ベンチャー企業は測定と梃子のある環境を提供してくれる。小さいことで測定が可能になり、新しい技術を発明してお金を儲けることが梃子になる。
測定と梃子を手に入れるために、CEOや映画スターになる必要はない。
難しい問題に取り組む小さな集団に参加すればいいんだ。
ベンチャー企業は測定と梃子のある環境を提供してくれる。小さいことで測定が可能になり、新しい技術を発明してお金を儲けることが梃子になる。
僕は、ポール・グレアムという人が書いた「ハッカーと画家」という本を読んで、プログラマとして生きていくことを決めた。そして、スタートアップを立ち上げることも決めた。
ハッカーと画家には「富の作り方」という章がある。とても刺激的な内容だ。
富は自らの手で作り出すことができる。富とは、みんなが欲しがるものだ。みんなが欲しがるものを作り出すことがお金持ちになる近道だ。
簡単に要約すると上記のようなことが書いてある。
当たり前のことかもしれない。だけど、とても大切なことだ。
(言い忘れたけど、著者はLispプログラマで超優秀なハッカーでありながら自身のサービスViawebをYahoo!に4960万ドルで売った文字通りの億万長者だ)
お金持ちになる方法は、雇用主からたくさん給料をもらうことじゃない。当時の僕は、自分の収入を増やすには良い会社に勤めてたくさんの給料をもらうしかないと思っていた。だけど、今ではそれは一番効率の悪いやり方だと思う。特に日本では、ね。
ここ数百年ではスタートアップを立ち上げるか、スタートアップに参加することがお金持ちになる信頼できる方法だと著者は言う。僕もこれに賛成する。特に、君がプログラマなら、なおさらだ。
If you wanted to get rich, how would you do it? I think your best bet would be to start or join a startup. That's been a reliable way to get rich for hundreds of years. The word "startup" dates from the 1960s, but what happens in one is very similar to the venture-backed trading voyages of the Middle Ages.
お金は富そのものじゃない、とも。
南極大陸のど真ん中にいたとしたら、どんなにお金を持っていても何も買えない。
(お金が使えない場所では、お金は富じゃない)
Wealth is the fundamental thing. Wealth is stuff we want: food, clothes, houses, cars, gadgets, travel to interesting places, and so on. You can have wealth without having money. If you had a magic machine that could on command make you a car or cook you dinner or do your laundry, or do anything else you wanted, you wouldn't need money. Whereas if you were in the middle of Antarctica, where there is nothing to buy, it wouldn't matter how much money you had.
herokuとか使うなら悩まなくていい
AWS使うなら迷う問題「apche使う?」or「Nginx使う?」
Nginx + Rails ではアプリケーションは動作しない
そもそもwebサーバーとアプリケーションサーバーの違いを確認しておく
Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳)
Nginx + Unicorn + Rails の構成を取るのが一般的(らしい?)との記述があったので、その通りの構成にした。
参考:Unicorn と Nginx と Rails の関係
本番だとうまく動かないこと請け合い。
Railsって、クソだね!
migrationを一言で説明するなら「SQLを書くことなくRubyでデータベース内にテーブルを作成することができる機能」です。SQLを書かなくていいというところが重要です。テーブルの作成だけではなく、テーブルの削除、変更もできます。
さすがにそんな人はここ見てないと思うけど、そもそもDataBaseってなに?って人はコチラ
SQLを実際に書くよりもわかりやすい記述ができます
あとは、データベースの履歴管理もやってくれます。
一人でやっている時はそれほど必要性を感じないこともありますが、複数人で開発する時にはほぼ必須の機能です。
これがないと誰かがテーブルを新しく追加したとか、カラム名を変えたとか、データ型をintからlongに変えたとかやる度に、自分の開発環境もそれに合わせてSQLを実行しないとアプリが動きません。
使いこなすと便利なので必ず覚えましょう。Railsを学習する上では絶対にスキップできない必須の機能です。
次回はmigrationの使い方を学びます。
いつまでもメンテされる保証がないので、動かないときは自分で直せるようになっている必要がある。ソースコードを自分でフォークして修正するか、一生懸命開発者にプルリクを投げるか。
隠蔽され過ぎててどこをどういじればいいか分からない。結局、他人が書いたソースを一から読む羽目になって、自分で書いた方が早かったとなりガチ。
依存関係で余計なgemまで引っ張ってきて重たくなる。
メンヘラな女の子の「きちゃった・・・」に通じるものがある。
標準メソッドをオーバーライドしてくれちゃう奴も・・・
こういう罠があることは十分に認識しておこう
kakurenboの重大な欠点はActiveRecordのdestroyを完全に置き換えようとして、ActiveRecordの深い箇所まで改変し、保守が高コスト・高頻度になっていることです。
大前提として、自分でもその機能は時間をかければ実装することができるとかの場合にだけ積極的に使おう。自分がどういう風に実装すればいいのか説明できない場合は使うべきではない。少なくとも内部実装がどうなっているかは確認しよう。
何度か使ったことがあるgem、盛んに修正が行われているgem、コミニュティが活発なgemを使おう。そして、できるだけ小さい機能だけを提供しているgemにとどめておこう。なんでもやってくれるgemはコントロールが難しい。
基本的にはGemを積極的に使うことを推奨したいけど、基本がわからないうちは用心して使おう。Gem使わないRails開発なんて正直なんのメリットもないですしね。
http://weblog.rubyonrails.org/
Rubyの生みの親、松本氏が上梓した本。安定、安心のオライリー出版。
Rubyを学習するはじめの一冊にふさわしい本。
たとえ読まなくても手元に置いておくだけでプログラミングの能力が上がるような気がする。
Rubyでパーフェクトになりたい人は必携の一冊。
Rubyの開発の切れ味を一味も二味も鋭くしてくれる。魔法が使えるようになると言われている。
詳しい内部実装は後回しにして、とりあえず現場で動くコードを書きたい人向け。ただし、Rubyについては十分に知っておく必要があるので、Rybuの言語仕様は必ず事前学習しておく必要がある。
MJ
クックパッド
Ruby on Railsとは?
フルスタックフレームワーク
特徴
豊富なGem
Heroke
小規模開発向き?
他のフレームワークとの違い