初めてプログラムを作ってみたよ。
こんにちは。さとくみ(@kumi53)です。
レビュー投稿のプログラムを学びはじめたよ。
手順としては、
- レビューを表示させる: puts、改行(\n)、変数、式展開
- レビューを書けるようにする:gets、chomp(文字列の末尾が改行されない)
- レビューを使って情報処理をする:#{}(ハッシュオブジェクト)、keyとvalue
- メニュー画面を作る:条件分岐(if,then,elsif,else,end)
- レビューを書いた後にメニューに戻る
- レビューを複数書けるようにする
- レビューを読めるようにする
現在、1~4を完了したところで学んだことを活かして、試しにコードをかいてみたよシリーズ。
---------------
内容:個人の基礎情報を入力する
▼ファイルを作成
# 変数を定義
person = {name: "kumi",age: "40",gender: "woman"}
puts person
▶︎ターミナルで実行
ec2-user:~/environment $ ruby sample.rb
{:name=>"kumi", :age=>"40", :gender=>"woman"}
見事実行された。
▼ファイル変更:
# 1つキーを取り出す
puts person[:name]
# 新しく、キーに趣味hobby、そのバリュー(内容)にテニスを追加
person[:hobby] = "tennis"
変数を追加する時、文字列にすることを忘れないように。
ここでいうと、tennis ではなく、”tennis” とすること。
# もう一度変数であるpersonを表示
puts person
▶︎ターミナルで実行
ec2-user:~/environment $ ruby sample.rb
{:name=>"kumi", :age=>"40", :gender=>"woman"}
kumi
{:name=>"kumi", :age=>"40", :gender=>"woman", :hobby=>"tennis"}
見事、実行された。
——
▼作成したファイル。
post = {} #空のハッシュを宣言する
# 以下で要素を追加する
puts "名前を入力してください。"
post[:name] = gets.chomp
puts "年齢を入力してください。"
post[:age] = gets.chomp
puts "性別を入力してください"
post[:gender] = gets.chomp
line = "---------------------------"
puts ""
#入力スペースと、その内容の表示がわかりやすいように1行開ける
# 内容を表示させる
puts "名前:#{post[:name]}\n#{line}"
puts "年齢:#{post[:age]}\n#{line}"
puts "性別:#{post[:gender]}\n#{line}"
▶ターミナルで実行!
ec2-user:~/environment $ ruby sample.rb
名前を入力してください。
kumi
年齢を入力してください。
40
性別を入力してください
woman
名前:kumi
---------------------------
年齢:40
---------------------------
性別:woman
---------------------------
できました!
何だか、プログラミングらしくなってきた!そして、ほんの初歩的な入力フォームだけれど、作ることができて楽しかったー。
というわけで、残りの5~7も頑張ります!
変数と定数の反復練習をしてみたよ
こんにちは。さとくみ(@kumi53)です。
今日はいい天気でしたね。
本当はカリキュラムを進めないといけないんだけど、、、ガッツリ真剣に勉強するほどの時間が確保できないので、変数と定数の反復練習をしてみたよ。
____
# numberという変数の中身を、”hello world!”.lengthの結果である12と定義する
2.4.1 :002 > number = "hello world!".length
=> 12
#1 numberを実行すると、格納された12が出力される
2.4.1 :003 > puts nember
NameError: undefined local variable or method `nember' for main:Object
Did you mean? number
from (irb):3
from /usr/local/rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'
↑上記のエラーは、number のスペル入力ミス。
優しいので、「number」じゃないの?と聞いてくれている。
エラーメッセージも読み取れるようになるといいね。
#2 ここからはいろんな表示をチャレンジ。
2.4.1 :004 > puts "number"
number
=> nil
↑これはnumberを、文字列と認識させる ””ダブルクォーテーションで囲んだため、変数ではなく文字列が出力された。
#3 通常入力してみると
2.4.1 :005 > puts number
12
=> nil
正解だ。
#4 今度は一つ形容詞を増やしてみる。
2.4.1 :006 > puts "my number"
my number
=> nil
↑これは、#2と同様に、"my number”という文字列で認識された
#5 {}中括弧で囲ってみる
2.4.1 :007 > puts "my {number}"
my {number}
=> nil
↑定数の時に出てきた{}中括弧を何となく試しに使ってみた例。
これは、#2と同様に、"my {number}”という文字列で認識された
#6 定数で習ったように、numberを#{}で囲ってみると
2.4.1 :008 > puts "my #{number}"
my 12
=> nil
↑見事表示された。
#{}は文字列中で、変数・定数を読み込むために使うもの。
続きを読む
Rubyの基礎文法にふれた
こんにちは。さとくみ(@kumi53)です。
今回は、初プログラミング体験的な感じで楽しかった!覚えることが沢山なのでメモしておこう。
■Ruby 5つの基本事項について学んだ
- 文字列:文字列オブジェクト、”” か ’’ を使う
- 数値:数を表す、数値オブジェクト
- メソッド:オブジェクトを処理する
- 演算子:計算処理、比較処理など
- 変数:変数、定数を設定することで、ソースコードが見やすくなったり、修正するときの手間が少なくなる。変数の値を変えるだけで完了できる!
文字の連結は + と #{} の2種
よく使うのは、#{} です。覚えて使いこなそう!
今回学んだ処理メソッド
puts:文字を表示させる
length:文字列の文字数を数える
to_s:数値オブジェクトを文字列と認識させる
オブジェクトとメソッドを繫ぐときは、「. ドット」を使用。
例えば、Hello Worldの文字数を数える場合は
”Hello World”.length
となる。もちろん、半角も1文字カウントされる。
■演習問題
演習問題です。わすれずに、反復練習しよう。
-----
・演算子
#20は1より大きいか?
#1は20より大きいか?
#2 × 5は10と等しいか?
#10は20と等しいか?
・比較演算子
#2 × 3は6以上か?
#2 × 3は6より大きいか?
#4 × 5は20以下か?
#4 × 5は6より小さいか?
・not演算子
#2 × 3 は6ではないか?
#2 × 3 は10ではないか?
・変数と代入
#変数に値を代入 名前は野菜
#文字数を調べる
#変数を出力
・定数
# 定数を設定 動物は自分の干支
# 定数を出力 私は干支年に生まれました
---------
昨日はぽやっとしかわからなかったけれど、今日はほぼ全問正解したよ。嬉しい。
でも、忘却曲線というものがあるので、忘れずに反復練習すべし!
Rubyプログラムに入る前に覚えて押さえておこう
こんにちは。さとくみ(@kumi53)です。
ようやく、ようやく、プログラミング学習らしくなってきました!とワクワクしています。新しいことは本当に楽しい!と思っていられるのも今の内かもしれませんが(笑)
■プログラム実装の流れ
プログラムを実装する手順は3STEP。
1)プログラムを書くためのファイルを作成
ctrl + s でファイル名を付ける。
↓
2)プログラムを書く
上書き(ctrl + s)を忘れないこと。
↓
3)プログラムを実行する …ターミナルで。
■Rubyの基本用語
オブジェクト
全てのデータ。数字、文字(列)、色、時間などなど。
メソッド
処理をする命令郡。表示してね、数を数えてね、など。
コメント
何をしているのかわかりやすくするように書くメモ。長くなるソース文に注釈を入れることで、自分も他人も読みやすくなる。ソース文の後ろに #をつけてコメントを記述する。
■3つの初歩的なエラーに気をつけよう
- 全角スペースの使用:全角スペースはコード内では使用しない。但し文字列内ではOK。日本語を混在させるときに注意。
- スペルミス:メソッドのスペルミスは痛い
- 閉じタグが無い:「この対象はココまで」ということを知らせるためのもの。条件設定などで指定する範囲が設定されないことになる
半分復習っぽい部分もあったね。でも、概念はちゃんと理解しておかないと!
プログラミング前に覚える基本用語
おはようございます。さとくみ(@kumi53)です。
昨日、プログラミングを実際に行う際に必要となる言葉について学びました。が、ふにゃふにゃとしか理解できなかったんですね。
それで、オフィス帰りの電車でサイトを見たり、それを見て今朝通勤する車内で脳内整理をして、やっと少し腑に落ちました。試験前の勉強方法が役にたつものね。
というわけで、用語の整理です。
■ターミナル
PCに命令をするリモコンのようなもの。命令をする方法は2つ。
ちなみに、今学習環境はAWS(Amazon Web Service)の無料版で行っている。ターミナルに表示されるのは、
ec2-user : ~/environment $
$はプロンプトといわれるもので、コンピュータが命令を受付できる状態ですよ、命令を待っていますよ、という状態であることを示す記号。
PCを使うようになってから早20年。$はドルで使うのかな~くらいにしか思っていなかったのね。日本語版キーボードだったら¥が欲しいわぁ!と思っていたんですけど、こういう使われ方もあるのね、と初めて知った。
■ディレクトリ
ディレクトリとは、コンピュータ内で複数ファイルを整理するためのファイルの入れ物。いわゆるフォルダのこと。完全イコールではないけれど、そう覚えておくのが便利かな。
ディレクトリはコンピュータ内で階層構造になっている。それと、どのディレクトリのことを指しているのかを分かりやすくするためなのか、3つの呼び方がある。逆にややこしく感じたのは私だけなのか。。。
ホームディレクトリの概念がイマイチつかめなかった。他に調べた結果、自分の今の理解内容としては、
ログインした時に利用できるディレクトリで、PCやサーバー上で、自分が自由に使える範囲のもの。
ということ。これ、多少に違うかもしれないけれど、後でわかってくるかもと思い、一旦これで置いておくとする。
■Linuxリナックス
Linux自体は深く考えなくていいよ、的な説明がありました。が、覚えがあったので、一応前回のメモを振り返る。
PCに命令を与えるためのもの、という解釈でいいのかなと。コマンド(命令を指示する)にはいくつかあって、本日習ったのはこの2つ。
- lsコマンド(list command):フォルダやファイルの一覧を表示させる
- csコマンド(change command):ディレクトリを移動するためのもの
■パス
フォルダやファイルの所在を示す文字列のこと。階層ごとに「/ スラッシュ」で区切る。パスの指定方法は2つ。
- 絶対パス:ルートディレクトリから指定、パスの先頭に / をつける
- 相対パス:現在使用中のディレクトリ=カレントディレクトリから指定する。/ は付けない。入力が楽になるので。相対パスを使う方がおすすめ。
学習を進めていく中で理解を深めていきます。
▼参考にしたサイト
プログミングのイメージ
こんにちは。さとくみ(@kumi53)です。
少し寒さが和らいだ名古屋。
今夜の満月で&皆既月食が楽しみです。
さて、今日はプログラミングの流れを学んだよ。
プログラミングの流れ
プログラミングの流れは至ってシンプル。
- プログラムを書いて保存
- PCに対して、書いたプログラムを実行するように命令を出す
①プログラムを書いて保存
これは、普段wordやExcelで行っているのと同じ。何らかのソフトを利用してプログラムのファイルを作成して、保存する。基本はテキストエディタで制作。
②PCに対して、書いたプログラムを実行するように命令を出す
①で作成したプログラムファイルをPCに読み込ませて、実行させる。簡単な計算プログラムからwebサービスまでと幅広く、柔軟。
実行させるためには専用のソフトウェアがを利用する。Macではこの専用ソフトウェアのことを「アプリケーション」とも呼ぶ。
実行したい内容の指示書を書く(プログラムを書く)
↓
それに基づき指示をだす(命令をする)
↓
実行される(プログラムの結果が反映される)
という流れのイメージでとらえました。こうやって見てみるとシンプルなのですが、この中の「プログラムを書く」という部分がきっと複雑なんでしょうなぁ。1つ1つ、用語を覚えていくとしましょう!
デジタルマーケティングについて学んだ
こんにちは。さとくみ(@kumi53)です。
今日はデジタルマーケティングを学びました。初級編です。ちょうど、良いタイミングで再認識できました。
デジタルマーケティングは、今までのwebマーケティングが更に発展したものだという感じです。ちなみに、何が違うんだろう?と考えたところ、
なのかなーというのを直観的に感じました。
デジタルマーケティングに取り組むといい理由
デジタルマーケティングは、実務者の方は「デジマ」というそうだ。ということで、これ以降はデジマと省略して書こうと思う。
さて、デジマが優れているところは何か?
それは、非デジマと比較すると格段にターゲティング精度が高いということ。個人をピンポイントに、最適化したアプローチができるようになること。つまり、ユーザ(顧客)について下記のような情報を得ることで、効果的なアプローチを考え実行、検証するというサイクルの精度が高くなる。
- いつ
- どこで:自社サイト、FBで、実店舗で
- 誰が
- 何を
- どうやって
- どうした
デジタルマーケティングの3つの要素
デジマは3つに分けられる。
- データ取得:Googleをフル活用
- データ分析:セグメントとファネル
- 施策実行:4つの手順(集客、接客、CV、リピート)
■データ分析
重要な概念はセグメントとファネル。
まずは、とにかくセグメントすること。膨大なデータを色んな切り口で分けてみてみる。そこから次にやることが見えてくる。
次にファネルは、目的までの過程別で数字をみる。例えば、見るだけなのか、サイトを回遊したのか、資料請求したのか、購入にいたったのか、などなど。
セグメントとファネルを組み合わせて分析することで、ボトルネックを見つけることができる。
■施策実行
施策実行は4つに分けて考える。
- 集客:認知されているのかどうか
- 接客:顧客にとって魅力的か、親切であるかなど
- CV(コンバージョン):目的が達成されたかどうか
- リピート
肝になるのがUX(顧客体験)。1~4までを通して全体で考えてユーザ側の気持ちに立ってマーケティング戦略を考えることが重要ということ。
▼参考:スタバのカスタマージャーニー
point > SEOの3要素
このうち、SEO対策に手を打つならまずは「テクニカル」から。ここが解決されないと、ポンコツのままなのでSEOの改善にはつながらない。
広告 > 3つのレイヤーとそれぞれの指標値で考えよう
■接客:直帰、MA
point > LP(ランディングページ)
LPとは、サイト内でユーザが最初に見るページのこと。制作側が意図的に作ったページのことではない。つまり、ユーザが何かしらの意図で検索して辿り着いてくれたページのことなので、こちらがLPとして制作したページに辿り着くわけではない。それはブログ記事かもしれないわけで、そのページがユーザにとって有益であれば他も回遊するかもしれない、的な。となると、どのページもおざなりに作ってはダメなのです。
MAとは、マーケティングオートメーションのこと。シナリオ、トリガーとアクション、スコアリングがポイント。
ユーザが接触してくれた内容、時間帯、どこから?どのページ?どのくらい来てくれている?CVにいたった導線は何か?などなどを、数値化してみるということ。これによって、アプローチを変えていく。その結果、LTV(ライフタイムバリュー)で資金投下を考えられるようになる。
ユーザの動き、心理を科学的に考えることはサービスを開発したり、運用していくためには大変重要。今回は基本的なことがおさらいできてよい機会となりました。