F欄 フリーター dossyのプログラミング初心者日記  〜ええんやで〜

自分が思ったこと、試したこと、outputしたことを書き殴ってやる。夢は、賢い人になること!!!

初心者がよくつまずく、単語集(多分ね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

 

 

rubyを進めてみたけど、どうも ”プログラミングしてます!” 感がないです.......

いざ、プログラミングを始めてみたけどもどうも気に入らない。

というのも、最初はとりあえず、hello worldを表示させてみよう!だとか、

文字列と数値を連結させよう!だとか、

掛け算、割り算(演算子)をやってみようだとかいまいち何かを作っている感じが無い。

まぁ、初歩の初歩から始めているのだから当然といえば当然なのだが。。。f:id:fedox-toshi:20180613124632j:plainマチュアにも届かない初心者の中の初心者です。

 

 

それでも、何か目指すべき物が見当たらないのである。目指すべき物が見えないのである。

始めようとするときには、ハテナブログとか、どこかの企業HPみたいな物が作れるのでは無いかと思っていたのですが、そのビジョンが全く見えないんです。

 

プログラミングを始めるときには、何かを作るという目標設定は不可欠だと感じたのですが、如何せん初心者で何が作れるのかもわからない者にとっては目標を作るのも一苦労。

 

そういった、板挟みがあり挫折してしまう人も多くいらっしゃるのでは無いでしょうか??(もちろん、私もその一人ですww)

 

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

今できるのは、こんな文字列を表示させるくらいのものです。

果たして、こんな感じのプログラミングがどうやったらちゃんとしたHPになるのでしょうか?

まだ、まだ勉強は続きます。。。。(引数とかちょいムズです...)

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

早く、こんなの書いてみたいなぁ〜〜

cloud9 を登録して使ってみよう

 

cloud9 正式にはAWS Cloud9というみたいです。

AWS Cloud9Amazonが提供している総合開発環境(IDE)です。

総合開発環境とは................................よくわかりません(笑

 

とにかく、プログラミングを始める初心者にとってもかなり便利な機能だということで今回紹介します。

決してAmazonの回し者というわけではありません。いやほんと!

 

実際に、自分はこのcloud9を使ってプログラミングをしています。

 

プログラミングを始める際に躓くところといえば環境構築なのですが、その最初の壁を乗り越えられる素晴らしいものなのです。

 

cloud9を使えるようになるステップは

1.会員登録

2.ワークスペース作成

です。

 

アカウント作成には、クレジットカード番号が必要となりますが、

                     新規お申込みのお客様は 1 年間の無料利用枠をご利用いただけますので、AWS アカウント作成、無料利用枠内のご利用で請求が行われることはありません。

とのこと、なので安心してください。

 

サポートプランはもちろん無料のベーシックプランを選択し、登録完了です。

aws.amazon.com

 

https://cdn.pixabay.com/photo/2016/03/22/15/28/directory-1273088__340.jpg

 

次に、ワークスペース作成です。

どうやらcolud9を使う場合はリージョン(地域)が限られているようです。日本から一番近いシンガポールにリージョン(地域)を設定しなおしましょう

 

ログインすると、AWSサービスの下に検索窓のようなものがあるので、そこにcloud9と打ち込んでください。

すると、ワークスペース作成が可能なページに飛ぶのでcreate environmentをクリック!!!

ワークスペースの名前などはご自由に(できるだけ簡潔に)、

・ settingでは Create a new instance for environment(EC2) ・t2.micro(1GIB RAM)

以上の二つを選択しましょう。(初期推奨でこの設定になっているはずです。とくに何も触らずにnext step -> create envirionmentしましょう)

 

hak-prg.hatenablog.jp

 

以上が、cloud9が使えるようになるまでの過程でした。

分からない人は、「cloud9使い方」とかで検索してみては?

https://cdn.pixabay.com/photo/2016/08/09/18/17/dumbo-1581304__340.jpg