railsに入るとつまづくところ paramsとか

最近railsを触っているのですが、

route,controller,viewの三要素をまず理解しなくては始まらないですよね〜。

 

routeは通り道を作ってあげる。

controllerはDBへのアクセスを司る部分。

viewは、実際に画面にどう表示させるか。

 

と言う、認識でいいんですねよ。多分。。

 

 

route

controller        ←→           DB

view

 

こんな感じかな??

ちなみに、viewからもcontrollerにデータを送れる。formを使ってね。(※これが、ちとめんどい)

formを使うと、viewからcontrollerに”paramsと言うデータの名前”で情報を送れる。

そのparamsから、データを引っ張り出してdbに保存する流れーーーー

 

 

最初は、paramsがなんなのか全くわからんかったけど、とりあえずviewから送れるdataなんやね〜〜と覚えておこう。

f:id:fedox-toshi:20180622210546j:plain

 

Sublime Text3 でエラーが出たよ

 

sublime textを使おうと、設定をいじっていたらこんなエラーに出くわしました。

 

 

 error本文

Error trying to parse settings: Unexpected character,expected a comma or closing
bracket in Packages/User/Preferences.sublime-settings:6:2


調べてみると、

, がなかったり、}で閉じられていません。。。。と言う類のエラーでした!!

{ "ignored_packages": 
[ 
"Vintage" ]   ←←ここにカンマ(,)が必要!!!
"word_wrap": true, //自動改行}

こんな感じで直すと動きましたよ。

でも、環境設定のところで、エラーとかホントやめてほしいです。。。。。

今から、いざやろうとしても時間が取られてやる気が落ちてしまいます⤵︎

 

ちなみに、macを買いました。windowsとの差がゴイスーですよ。

初心者がよくつまずく、単語集(多分ねw)

プログラミングを始めた、初心者がつまずきやすい単語を集めてみました。

つまずくというか、よくわかりずらい単語かな。。

 

f:id:fedox-toshi:20180613124549j:plain

 

引数

ディレクトリ(ホーム、カレント、ルート)

戻り値。返り値

css float

css margin pading

レシーバ

 

とりあえず、こんなもんですかね。まだまだ、あると思いますが....................

引数に手間取るのではないかと思いますが何回か考えて、ある程度理解すればどんどん進めて行くほうがいいのかもしれませんね。

先は長い。。。。

 

よしきた!!"ハイパーテキストマークアップランゲージ"の時間だぜ

 

今まで、rubyを学んできましたが理解できたところでどうなん??

となっています。

 

なので、次にhtml,cssを勉強して行こうやないかと。

 

htmlぐらいはもしかしたら学校で情報の時間にチラッと触ったことがある方がいらっしゃるかもしれません。

HTML(Hyper Text Markup Language) ← 響きだけはカッコイイ。中二とか使いそう。。

f:id:fedox-toshi:20180613124549j:plain


 

htmlは、文字を表示させる言語とでも言いましょうか。

cssは、文字を装飾する言語とでも言っておきましょう♪

 

実際このブログにも、使われている物なんですよ。

右クリックで、検証を行うと文字列がたくさん並んでいると思います。

<html>とか<head>とか

<body>とか<div class="">とかね。

 

これがいわゆるhtmlで、htmlは文字を表示させる言語です。

 

これだけだとなんとも寂しいのでcss(装飾)を用いて鮮やかにしてくのがイイでしょう。以下が、css

h1,h2,h3,h4,h5,h6 {
}.title {
font-weight: bold;
} .title--big {
font-size: 1.5em;
font-weight: bold;
i {
font-style: italic;
font-size: 1.8em;
}
}
header.header {
@include basePadding;

こんな感じなんだぐらいでいいと思います。(テキトーに)

html cssは自分自身はかなり、はや足で終わらせました。確かに、基礎は出来てないかもしれませんがまたあとで戻って来ようと思っています。

 

とにかく、早くweb applicationを作れるところまで持っていきたいので。。。

f:id:fedox-toshi:20180622210538p:plain

 

引数って、なんかわかりにくいよね

 

引数ってなんて読むの???

いんすう??

引数 (ひきすう)だそうです。

 

でも、とにかくわかりにくい(初心者には)

調べてみると、

 

例えば「料理」という関数「材料」という引数を渡して料理をしてもらうイメージ。

 

うん。わからん!!!

さらに、一言で言うと、

プログラムや関数に渡す値

だそうです。

 

f:id:fedox-toshi:20180630121754j:plain

そもそも、引数はこんな時に使用します。 

class Hello
def self.hello(aaa)
puts "こんちわ!#{aaa}"
end
Hello.hello("bbb")
Hello.hello("ccc")
Hello.hello("")

#実行結果 

  1. こんちわ!bbb
  2. こんちわ!ccc
  3. こんちわ!

 

 

引数に当たる部分はaaaの部分ですね。

簡単に言うと、aaaの部分だけ任意にデータを挿入できて、そのほかの処理は変えずに実行できるものです。

hello メソッド(def self.hello)の中身は、"こんちわ!()"を出力する処理です。

 

もしも、引数の中身を指定しない場合は 3の"こんちわ!"だけ出力されます。(この場合引数には("")が必須です!もし入れないとエラーが起こります)

 

引数を使うと、aaaの部分を、bbbに変えたりcccに変えたりできます。もちろん、他の物にも変えれます。

 

引数は"引っ張ってこれる変数"の略じゃないかなと思います。

基本、変数が使える範囲(スコープ)が限定されていますが、それでも使いたいって場合に引数を使う。

f:id:fedox-toshi:20180630121745j:plain

 

こう言う特性を使って例えば、引数を名前にして、処理を新規登録を行う処理にすると、名前だけ引数に与えてやれば勝手に新規登録してくれるみたいなことだってできちゃうかもしれません。(あくまで、予想ですが。。)

def registration(name)
#新規登録する処理をかく
end

nameに"dossy"を入れると新規登録してくれる!

 

まぁ、でも結局慣れやと思います。勉強だけでなく何にしても慣れが必要ではないでしょうか?

あんまり、引数で考え込まずに気楽に次々行くんやで〜〜〜

f:id:fedox-toshi:20180622210538p:plain

 

超初級プログラミング問題 fizzbuzzを解いてみる

プログラミング問題を解いて見ようと思います。

プログラミング問題は、プログラマーの技術を測れる物らしいのですね。

例えば、これレベルが解けたらなかなかのレベルだ!!!とか、

こんなのも解けないのなら初心者だな!!!とか。

f:id:fedox-toshi:20180613125017j:plain

 

まぁ、初心者なんだから解けなくても当たり前ですよね.......

そこで、今回はfizz buzz問題を解いて見ようと思います。

超有名問題みたいですよ♪♪♪

 

fizzbuzz問題

1〜100までの数字を出力してください。ただし、「3の倍数」のときは数字の代わりに文字列でfizz、「5の倍数」のときはbuzz、両方の倍数である「15の倍数」のときはfizzbuzzと出力。

 

 なるほど、ちなみに出力結果は以下のようになれば正解です。

1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizzbuzz
16
17
fizz
19
buzz
fizz
22
23
fizz
buzz
26
fizz
28
29
fizzbuzz
31
32
fizz
34
buzz
fizz
37
38
fizz
buzz
41
fizz
43
44
fizzbuzz
46
47
fizz
49
buzz
fizz
52
53
fizz
buzz
56
fizz
58
59
fizzbuzz
61
62
fizz
64
buzz
fizz
67
68
fizz
buzz
71
fizz
73
74
fizzbuzz
76
77
fizz
79
buzz
fizz
82
83
fizz
buzz
86
fizz
88
89
fizzbuzz
91
92
fizz
94
buzz
fizz
97
98
fizz
100

コードとしては、while 文(繰り返し)を使いますよね?

正直初心者には結構な重労働(頭の)でしたよ。ホント

 

感想としては、このような処理を書くことを悩んで悩んで、組み立てると頭がよくなる気がしましたww

私は、初見では解けずに答えを見た派です。

 

下に、解答を載せておきますのでよければ見てみては?? 

解けなくても、ええんやで〜

解答1を表示する
num = 1 
while num <=100 do
if num %15 == 0
puts "fizzbuzz"
elsif num %3 == 0
puts"fizz"
elsif num % 5 == 0
puts "buzz"
else puts num
end
num = num+1 end


解答2を表示する
num = 1 
while num <=100 do
if (num %3 == 0) &&(num % 5 == 0)
puts "fizzbuzz"
elsif (num %3) == 0
puts"fizz"
elsif (num % 5) == 0
puts "buzz"
else puts num
end
num = num+1 end

 

f:id:fedox-toshi:20180622210546j:plain

 

プログラミングには、数学知識が必要か??

 

私は、文系出身です。

そんでもって、プログラミングには数学知識がないとダメなんじゃないのかと思うこともあります。

 

※プログラミングって理系出身の人がやるべきものなんじゃないか?

※文系にはプログラミングが難しいのではないか??

なんて、思ったこともありました。

 

結論を言うと、"条件つき"でそうです。

 

今から、プログラミングを始めようとしている人に関して言えば、数学的知識は必要ないと言えます。

でも、高度なもの(ゲームプログラム、AI機械学習)に関して言えば数学は必要です。

 

と、肌で感じました。(実体験)

例えば、以下のサイトでは機械学習を1から学ぶと書いてありますが、

 

deepage.net

 

文系には馴染みがないΣ(シグマ)やゴリゴリの数式が出てきます。

ですが、初心者の自分が今勉強しているRubyに関して言えばそのようなことはないので安心を!

 

そもそも、AIの領域は最先端の技術が盛り込まれています。

最近では、自動運転やコールセンターの受付の自動化など広く知られています。

そんな世界の最先端に初心者があーだこーだ口出しはできんのです。

 

世界の最先端についていくにはそれ相応の知識がなければいけません。(あたりまえやん)

 

 プログラミングを触ってみるのであれば、数学的知識は必要ありません。

しかし、これだけは言えると思います。

プログラミングを極めたいのであれば、数学的知識は必須であると。

 

プロでも、数学があまりできない人はいると思います。(多分日本人限定)

ですが、一流になるにはやはり必要になってくる要因ではあると思っています。

 

 

f:id:fedox-toshi:20180617141446p:plain

 

 

プログラミングには、アルゴリズムと言う物が存在し、その計算量は数学的知識をもっているか否かで変わってくる、とも言われています。。。(詳しくは知りませんww)

 

 

最後に、初心者の方はそんなに怯えないで((((;゚Д゚)))))))

気楽に行きましょうww