いよいよTECH EXPERTでの学習がスタートしました。この記事では、TEC EXPERTのキックオフ(初日)の流れや、学んだこと、自分の中で復習しておきたいことなどを記載していきます。
読者の方のためになること半分、自分の備忘録半分という形ですのでご了承ください。
TECH EXPERTキックオフの流れ
TECH EXPERTキックオフは以下のような流れでした。ツイートもしましたが、想像以上に人が多く「活気がある」雰囲気でした。
TECH EXPERT初日。意外にも同期入校の方がたくさん居てびっくり。短期コースでも50人くらい!
でも何してけばいいのか特に説明はなく、、、
とりあえず教材を進めるって感じっぽいけどこの辺は雑だなあという印象#TECEXPERT— ぷろりーまん@TEC EXPERT57期 (@saralyman222) July 13, 2019
・概要説明(心構えなど)
・チーム自己紹介(少人数チームに分けられているのでそこで自己紹介)
・カリキュラムの大まかな概要説明
・コース別少し詳しい説明
といった感じで、午前9時にキックオフが始まりのんびりとした感じで12時頃までに一通りの説明が終わります。
で、そのあとは特に何の指示もなく「終わりのない自習」が始まります。笑
ツイートにも記載したのですが、正直びっくりするほど勉強の進め方などに関しては解説がないので良くも悪くもマイペースに進めていくしかありません。
ちなみにですが、進捗管理表なるものがあり期日までにカリキュラムを終えられるように、この日までにこのカリキュラムを終えようというのがあるのですが、正直そんなペースでは後に控える中間試験や本試験に全く間に合いそうにないので、進捗表を圧倒的に追い越すペースで進めていく必要があります。
個人的には自分のペースで進められる学習が良いのでそこまで不満はありませんが、「スクール」だと思って通いはじめた人にはなかなか厳しい環境なのではないかな?と思いました。
やっぱり事前学習をしておかないとやばかった
前回の記事で、「事前学習をしておくべき」という話をしましたが、教材の中身や学習の進め方、他の人たちの話などを聞いて総合的に考えると、やはり事前学習をしておかないと「置いていかれる可能性がかなり高いな」と思いました。
というのもTEC EXPERTの教材というのは結構雑な作りで(良く言えば効率的)、progateなどのように1つ1つを丁寧に教えてくれる訳ではありません。
progateなどの教材は山を登る際に、1段1段丁寧に上がっていく感じですが、TEC EXPERTでは3段飛ばしくらいで進めていき、たまに「あ、そういえばこれってこういうことね」みたいに細かいことはサラッと解説して終わりです。
とりあえず登ってみてから細かいところは詰めていこうよという感じなのですが、全くの初心者がそれをやって、スキルを上げていくのはかなり難しいと実感しています。
また仮に学習進捗が遅れていたとしても、特にその人に対して特別にサポートするということはないため、なおさら初心者の人ほど事前学習をしてある程度予備知識は持っていた方がいいなと思いました。
今日学習したことの復習&備忘録
今日はRubyの学習をしました。カリキュラム的にはHTMLやCSSもあるのですが、それはprogateなどでほぼほぼ理解できているかな?と思ったので、ちょっと難しそうなRubyを先に進めています。
(Rubyは簡単な言語と言われていますが、初心者がいきなりやると結構難しいなと感じます。簡単というよりは単純に省エネなだけかと思います)
ということで以下、自分の復習がてら諸々記載していきます。
・Rubyで文字オブジェクトを開業したい場合はバックスラッシュnで改行できる
puts "ああああ\nあああ”
ちなみにこれが適用できるのはダブルクォテーションで囲んだ時のみなので注意が必要ですね。
・式=文字オブジェクト、数字、などすべて式という
式展開⇨ #{式}によって得られる値を入力できる
name="ああ"
puts #{name}
ということです。
getsメソッドで入力をさせられる
getsメソッドというのがあり、このメソッドを記述すれば、「入力を受ける」状態にすることができる。なのでユーザーに任意の値を入れて欲しい場合はこのgetsメソッドが有効。
puts gets
name= gets
ちなみにこの時、数字の「1」とか「2」とかを入れても数字として認識してくれないので、その場合は「to_i」を付けると数字として扱ってもらえます。
number=gets.to_i
なおgetsメソッドは少々厄介な性質を持っています。それは勝手に返り値(式の答え)に先ほど記載した「改行を意味する\nを入れてしまうこと」
これを回避するために「.chompという記述」をすることで改行されずに綺麗にまとまります。
gets.chomp.to_i
ハッシュオブジェクト
Rubyの中にハッシュオブジェクトというものがあります。これは複数の値をキーというのを鍵にして管理できる式の事です(適当です)
例えば下記のような感じで、1つの変数に複数の値をキーをフックに持たせることができます。「キー」がフックになっているので、取り出す場合もキーを指名すれば取り出せるので便利です。
example={name:"yamada", myoji: "tetsuto", team:"yakuruto"}
こんな感じで書くことができ、それを取り出すことも容易です。
puts example[:name] この手前に:を持ってくるのがシンボルオブジェクトらしい。
で、重要なことがあるのですが実はこれ以外にもハッシュにキーと値を入力する記述方法はあるのですが、このシンボルオブジェクトで書くのがもっとも速いのでこれを使ってれば良いそう。
またハッシュオブジェクトはもっと便利な使い方もできます。
example={}
先に空のハッシュを作成して...
example[:name]="yamada"
example[:myoji]="tetsuto"
example[:team]="yakuruto"
といった感じで後からハッシュに好きな文字を入れることもできます。
似たようなもの「配列」
ハッシュオブジェクトと似たものに配列というものもあります。ハッシュオブジェクトはキーをフックに値を紐づけていましたが、配列は単純に配列というボックスの中に入っている順番に要素を管理するものです。
name=["yamada1", "yamada2","yamada3"]
puts name
そしてputs nameで表示したい配列の順番を指定すれば、その番号の要素を取り出すことができます。
ちなみに配列の順番は「1,2,3,4ではなく0,1,2,3」なので注意が必要。
また配列には後からでも要素を付け足すことができます。その方法が下記のような記述方法です。
name=["yamada1", "yamada2","yamada3"]
配列を末尾に追加する方法は2つ
name.push("yamada4")
name << "yamada4"
print name #["yamada1", "yamada2","yamada3","yamada4"]
これは変数で定義した内容も同様にできます。
myoji="taro"
name << myoji
print name #["yamada1", "yamada2","yamada3","taro"]
メソッド
Rubyにはメソッドと呼ばれる、「複数の処理をまとめて一元化した式」があります。これは他の言語でいう関数に似たものらしいのですが、メソッドを使えば同じように繰り返す処理などを簡単に記述することが可能です。
※ちなみにメソッドはまだ理解が追いついていないのでこちらのサイトを半パクリ状態で書いていますご了承ください(https://uxmilk.jp/22320)
メソッドは def とendで挟んで記述します。
def メソッドの名前(任意)
処理(何をするか)
end
例えばこんな感じで記述することができます。
def name
puts "yamada"
end
name #=> yamada
メソッドには引数を渡すこともできる
引数とは、メソッドにメソッド外から数値を渡すための方法。例えば数値を5倍にするメソッドを作る場合。
def go
puts 5*2
end
こんな感じで1つのメソッドに対して1つの数値しか定義することができない。しかし引数を使えば外部から数値を放り込むことができる。引数を入れたメソッドは以下のようになり、放り込む余地ができる。
def go(number)
puts number*5
end
こうすることによって、後々numberに好きなものを放り込むことができる。例えば2を入れる場合はこのように記述される。
def go(number)
puts number*5
end
2を入れてみる
puts go(2)
⇨これで10が出力される
ちなみにこの引数はデフォルト値というのも設定することができて、もし仮に何も代入されない場合はこのデフォルト値が使われることになります。
def go(number = 2)
puts number*5
end
この場合にputs go()とすると10が出力されます。
returnを使う意味
リターンはメソッドの戻り値(答え)を返す入力です。というのもどんな式にも答えがあるべきで、例えば先ほどのdef go(number = 2)
の場合は戻り値が10となっています。
puts number*5
end
returnはこの戻り値を明示するものですが、実際にはRubyではメソッドの中で最後に評価されたものが戻り値となるため明記されることはあまりありません。
そんな中でReturnが使われるのは、Returnを使うとメソッドの途中でもメソッドを終わらせることができるという点においてです。
クラスとは?
クラスというのはメソッドのなどの処理を入れる入れ物のようなものです。印刷物で言うと入稿仕様書にあたる感じのものです。
クラスは大文字で始める
class User
end
しかしクラスだけでは何にも生まれず、このクラスを使って版を作っていくのが通称「インスタンス」と呼ばれるものになります。インスタンスはRubyに元々定義されているメソッドnewを使って生成することが可能です。
インスタンスはクラス名.newで生成される
User.new
そしてそれぞれのインスタンスではインスタンス変数という変数を持つことができるが、このインスタンス変数は同クラス内の別のインスタンスでも使うことができる。
印刷の版に例えるなら、版に付けたりとったりできるパーツのようなイメージ。
ということで1日目のまとめ
めちゃくちゃしんどいし難しいので、迷っている方はやめておくことをおすすめします。笑
とはいえ、人生の中でこんなに必死に勉強するのも久しぶりなのでそれはそれで良いのかなとも思ったりします。
とりあえず進捗遅れないように頑張るのみ。