みっきーの備忘録。

学んだことや思ったことなんかを色々と。

初めての競プロ。

 

競技プログラミングAtCoderに初めて参加した時のお話。

 競技プログラミング AtCoderとは?

atcoder.jp

AtCoderはオンラインから参加できる競技プログラミングコンテストのサイトです。

リアルタイムのコンテストを週に1回程度開催しています。

バーチャルコンテストもあり、いつでも問題を解くことができます。

 

なぜ競プロを始めたのか

わたしは大学2年生の授業でC++の演習を履修していました。

この先のC++の授業がないため、C++好きだしもっと極めたいなぁと悩んでいたところ先輩がやっていることを思い出して、AtCoderを始めました。

 

初めての競技プログラミング

 初めて参加したコンテストはキーエンス プログラミング コンテスト 2020でした。

めちゃくちゃ時間をかけてA問題までしか解けませんでした。

難しかったです。

当時、C++を授業で習いましたが全く歯がたちませんでした。

こんな世界があるのか!すごい!かっこいい!

と感動したのを覚えています。

まだまだ勉強したりないことを痛感しました。

アルゴリズムやデータ構造、たまに数学...。

 

参考にしているおすすめの記事

qiita.com

初心者にもめちゃくちゃわかりやすくかいてくれていています。

ありがたい記事です!!!

初学者がC問を解くにはやっぱりある程度のアルコリズムやデータ構造の知識が必要になってくるんだなって思います。

私みたいな初学者ではない方は、螺旋本や蟻本にてをつけているんだろうなぁ!

 

おわりに

まだまだ、(C++に限らず)学ぶことが多く時間が全然足りない状態ですが、

ぼちぼちと灰色から色付きを目指して頑張っていこうと思います!

新しい趣味が増えて嬉しいです。

 

 

マイグレーションの勘違い

Sinatraを使ってデータベースをつくりたい!

何も知らなかった私「あ、ちょっとカラム名綴りミスしたわ!」

schema.rbを訂正して...、command+Sっと。

あれ...?反映されてない??(それはそう。)

 

SinatraでDBをマイグレーションする

マイグレーションファイルを作成する。(引数のNAMEは慣習でcreate_***sとするらしい!)

 $rake db:create_migration NAME=create_hogehoge

マイグレーションファイルを編集する

  カラム名や型とかを指定する

マイグレーションファイルをデータベースに反映させる。

  $rake db:migrate する

 

マイグレーションファイルとは

dbのための設計図。

テーブルに関連する操作を記述する。

操作を記述するファイルなので、一回適応すると変更は反映されない。

 

schemaとは

 $rake db:migrate コマンドが通ると、自動的にschema.rbが作成される。

schema.rbにはマイグレーションコマンドが実行されるたびにデータベースの内容が自動的に反映される。

マイグレーションファイルが正しく実行されたかを確認するために使うもの。

 

もう間違えない。

大先輩がschemaを書きかえちゃうのはよく初心者がよくやりがちなミスだからみんな気をつけてね、とたまたまおしゃっていたので(偶然!!)すぐに解決することができました。

 

また、変更したあとに更新することも忘れがちなので気をつけようと思います。

 

ターミナルコマンドもそうだけど、意味を知らずに脳死で打ち込むのはよくないなって改めて思いました。