mkkon’s diary

プログラミング学習日記

Ruby基礎

はじめに

プログラミング学習を開始してから気がつけばもう1ヶ月以上経過していました。毎日少しずつ分かることが増えていきますが、カリキュラムを進める度にわからない用語が出てきて調べて、の繰り返しで時間もかかります。 自分用の忘備録としてと、練習のためMarkdown記法で書いてみました。不慣れなため読みにくいかもしれません。

Ruby基礎文法

文字列

" " or ' ' で囲む。" " + " " で文字の連結

メソッド

処理をまとめたもの

lengthメソッド

.length で文字列の文字数

数値

"10"は文字列、10 は数値

to_sメソッド

.to_s 数値を文字列に

to_iメソッド

.to_i  文字列を数値に

記述そのもの

式展開

#{ 式 } で文字列の中に連結できる。全体の文字列は" "で囲む。' ' では文字として出力される。

演算子

< > + −など

代数演算子

計算に使う演算子 + - ※ / % は割った余り

代入演算子

= 代入する 変数=値

自己代入演算子

自分に代入する += -= ×= /=

変数の命名規則

  • 中身が分かる
  • 小文字で始める
  • _ と数字から始めない 2文字目以降なら可
  • 日本語、予約語、スペースは含めない

putsメソッド

ターミナルに値を出力する

getsメソッド

ターミナルで値の入力機能を起動する

chompメソッド

末尾の改行を取り除いた文字列を返す

input = gets.chomp 

バックスラッシュ記法

\ (optionキー)+(¥キー) 全体の文字列は" "で囲む。' ' では文字として出力される。

  • \n 改行
  • \t タブ
  • \b バックスペース
  • \ バックスラッシュ

配列[  ]

1つの変数で複数の値を持ち、順番で値を管理する。

 変数 = [ 要素 ]

配列演算子 <<

配列に新しい要素を追加

添字

配列の各要素に割り振られた番号。0から始まる。

変数 = 配列[添字]

要素の変更(再代入)

配列[添字] = 値

lengthメソッド

配列に使う場合は要素の数

[A,B,C].length  => 3 

数が不明なものの配列の最後の要素を取り出す

配列[ 配列.length - 1]

ハッシュ{ }

キー(名前)とバリュー(データ)のセットを要素としてもつ値

変数 = { キー1 => バリュー1 , キー2 => バリュー2 , キー3 => バリュー3 }

=> はハッシュロケットという

変数.keys で全てのキーを取得

変数.values で全てのバリューを取得

シンボル

先頭に : (コロン) 見た目は文字列、中身は数値(コンピューターの処理速度が早い) ハッシュのキーにはシンボルを用いることが多い

以下の3つは全て同じ意味

hash1 = { "name" => "taro" }
hash2 = { :name => "taro" }
hash3 = { name: "taro" }

値の追加、変更、取得

hash3[:age] = "15" #ハッシュに値を追加
hash3[:age] = "18" #ハッシュの値を変更
puts hash3[:name] => taro #ハッシュの値を取得

配列の要素にハッシュを追加して管理する

friends = [ ]  #配列
friend = { }  #ハッシュ
puts "名前は?"  #ハッシュに値を追加
friend [:name] = gets.shomp
puts "年齢は?"
friend [:age] = gets.to_i
friends << friend  #配列に新しい要素を追加

比較演算子

 >,>=,<,<=,== true(真)false(偽)を返す

論理演算子

!はnotの意味。!= は等しく無い時にtrueを返す

条件分岐処理

条件式は真偽値を返す

if 条件式1
  #条件式1が真のときの処理
elsif 条件式2
  #条件式1が偽、かつ
  #条件式2が真のときの処理
else
  #条件式1,2どちらも偽のときの処理
end

繰り返し処理(ループ処理)

timesメソッド 指定した回数繰り返す

ブロック(do ~ end)を引数としてtimesメソッドに渡す

数値.times do |ブロック変数|
  #繰り返す処理(0から始まるブロック変数が使える)
end

eachメソッド 配列の要素に対して要素の数だけ繰り返し処理が行える

配列.each do |ブロック変数|
  #繰り返す処理
end

使い方はこう

colors = ["あか", "", "きいろ"]
colors.each do |color|
  puts"色:#{color}"
end

do ~ end のブロックは {  } と書くこともできる

メソッドの定義(自分で作る)

def メソッド名
  #実行する処理
end

メソッド名で実行されるまで def ~ end は読まれない

メソッド名の命名規則

  • 小文字で始まる
  • 単語を繋ぐ場合は_アンダーバー
  • 数字で始めるのはダメ

戻り値 

  • メソッドで定義した最後の行の結果が戻り値
  • return文 return ○○ としたらそれがメソッドの戻り値
  • 通常は最後の行にreturn文が省略されている

スコープ

定義した変数が使える範囲のこと

  • メソッド内で定義した変数はメソッド内でだけ使用可能
  • メソッド外で定義した変数はメソッド外でだけ使用可能

timesメソッドとeachメソッドは例外

  • メソッド内で定義した変数はメソッド内でだけ使用可能
  • メソッド外で定義した変数はメソッド内でも使用可能

引数

メソッドに渡すことができる値

メソッド外にある変数の値をメソッド内で使える

def メソッド名 (仮引数)
  #処理内容
end
メソッド名(実引数)

仮引数と実引数はそれぞれ(第一引数,第二引数,第三引数 ・・・)と数が等しいこと。

クラス

値の元となるもの。値の共通ルールを定義

class クラス名
 #変数やメソッドの定義
end

クラス名は大文字から始まる

インスタンス

クラスを元にして作られるデータのこと

newメソッド

定義しなくても持っているクラスメソッド

変数名 = クラス名.new #クラスのインスタンスを生成
インスタンスメソッド

クラスに定義する、インスタンスが使用できるメソッド

属性と属性値

データの性質となる情報

インスタンス変数

インスタンスが持つ属性を定義する変数

class クラス名
 def メソッド名
  @変数名 = 値
 end
end

インスタンス変数のスコープはそのクラスの全てのインスタンスメソッド

@を付けない変数ではそのメソッド内でしか使えない

呼び出し

インスタンス名.メソッド名(引数)

クラスメソッド

クラスで共通の情報を使った処理に使用

クラスメソッドを定義したクラス自身が使用できる

class クラス名
 def self .メソッド名
  #処理
 end
end

呼び出し

クラス名.メソッド名(引数)

initializeメソッド

インスタンスが生成された瞬間に生成されたインスタンスが実行する処理を定義するインスタンスメソッド

おわりに

マークダウン記法にも慣れていきたい。今後も頑張ります!

HTML/CSS 基礎

はじめに

テックキャンプエンジニア転職夜間休日コースが始まり22日が経過しました。HTML / CSS / Ruby / Ruby on Rails の基礎を学習中。学んだ事を整理するために書いていきます。

HTML / CSS    表示させたい文章や、その装飾をする言語 

ブロックレベル要素
左上を起点として積み木のように縦に積まれていく。高さ幅、余白の指定が可能。
(例 div要素 form要素 ul要素 ) 

インラインレベル要素
横に並んでいく。改行無し。左右の余白は指定可能。
(例 span要素 imag要素 input要素 a要素)

displayプロパティ
HTMLのブロックレベル要素(縦並び)とインラインレベル要素(横並び)を変更できる。

  • display: block; ブロックレベル要素(縦並び)にする
  • display: inline; インラインレベル要素(横並び)にする
  • display: inline-block; 並びインラインレベル要素、中身ブロックレベル要素 
  • display: none; 非表示
  • display: flex; 子要素が横並び
  • justify-content: ○○; 横軸
  • align-items: ○○; 縦軸
  • flex-direcion: ○○;  並び順・方向

positionプロパティ
要素を配置する基準を決め、配置位置を自由に決められる。

  • position: absolute; 基準の位置(左上)からの距離を指定
  • position: relative; 今の場所からの距離,親要素に指定すればabsoluteの基準の位置になる
  • top,bottom,left,lightプロパティと共に使用する  

ボックスモデル

(要素は全て箱のようなもの)という考え方で、文字の位置や要素同士の余白の調整ができる

  • padding 内側
  • border 境界線
  • margin 外側 

calc( ) 異なる単位の計算

  • width: calc ( ○ vw - ○ px )

text-alignプロパティ 

文字や画像に対して水平方向の揃え方を指示 

  • text-align: left; 左寄せ 

img要素

  • <img src = "画像ファイル名" alt = "代替テキスト" > 

form要素

  • 1行テキスト欄<input type = "text" placeholder = "○○" >
  • 複数行テキスト欄<textarea></textarea> 

 

おわりに

html/cssの自分メモのような感じです。

深堀したい部分もありますが、まずはカリキュラムに沿って基礎を学んで力をつけていこうと思います。

 

テックキャンプ始めました

 

自己紹介

・36歳

・夫婦二人暮らし

・正社員勤務(事務職)

 

プログラミングを学ぼうと思ったキッカケ

毎日が平穏すぎたから

・・・

・・・

以上!

本当にこれだけです。

ありがたいことに、仕事でも問題は無く毎日が本当に穏やかでした。

もっと仕事の知識を増やしたりスキルを高めるという選択肢もあります(〇〇検定やら〇〇資格などというものも複数あります)が、自分の中でそれは違うような気がして…。

贅沢な悩みですが。

とにかく!

今の状況を変えたい、何かを始めたい、と思い出会ったのがマコなり社長のYouTube

「プログラミングってなんだろう?」状態から「テックキャンプやってみよう!」となり、今に至ります。

厳密に言うと1〜2ヶ月は悩みました。金額も高額ですし。年齢も気になるところですし。

そのうち悩む事に疲れてポチりました。

短期間で詰め込む自信は無かったので、仕事をしながらできる夜間休日コースに申込み。

転職も考えていますが、年齢的な心配が大きい所です。

 

ブログの活用予定

基本、プログラミング学習のアウトプットにしていきたいと思っています。

このようなブログを書くのも初めてです。人に自分の考えを伝えるのは苦手です。

が、学習のためにもマイペースに投稿していきたいと思います。