コミュニティ・カレッジからバークレーに編入する方法(目次)

今後地球上の誰かがたまたまこの記事を見つけて「俺もバークレーに行きたい」なんていう人が一人でも出てきてくれたらいいなという淡い期待を胸に留めながら書いてみることにします。多分このテーマ一つ書くだけで本が一冊書けるくらいのボリュームなので目次にまとめて整理してみました。他にこういう情報が欲しいなんていうリクエストがあればお答えします。ちなみにこのテーマでは「バークレーへの編入」というテーマに絞って僕の個人的な経験則に基づいて論を進めていくので情報や意見に偏りが見られると思われため、自分に最も最適で必要な情報だけを掻い摘んで読み進めていくことをオススメします。あとは細かいVISAやコミュニティ・カレッジへの登録みたいなステップは時間があればやると思いますが、期待しないで下さい。そもそもそんな基本的な手続きもできない人がバークレーに受かるとは思えないので。大体のストーリー展開はこんな感じで。大幅に変更する可能性もあります。

題名:コミュニティ・カレッジからバークレー編入する方法

  1. コミュニティ・カレッジ、4年生大学へのトランスファーとは(仕組み、メリットやデメリットなど)
  2. バークレーへのトランスファー(バークレーは生徒に何を求めているのかを細分化、定量化)
  3. 細分化、定量化された情報をもとに何をするべきなのか(リストにあげてみる)
  4. やるべきことをいつ、どこで、どのようにして実行するか(リストを軸に様々な尺度から実現可能性の側面を与えてみる)
  5. とは言っても本当に受かるかわからない。そんなときには(モチベーションのコントロールなど)
  6. 実際に筆者はどのようにして編入に成功したのか(以上を踏まえた上での具体例、コミュニティーカレッジへの入学〜クラス登録〜4年制大学へのアプライを高速でデモンストレーションしてみる、彼を知り己を知れば百戦殆うからず)
  7. バークレーに通うということはどういうことなのか(そこで得たもの、学んだこと、考えさせられたことなど)

大前提として「バークレーを目指す」というスタートラインに立つためには自分がいつ(when)どのようにして(how)バークレー(what)に受かるかを明確に定義する必要があると思います。ただこのブログではコミュニティ・カレッジからバークレー編入する方法を出来る限り体系化してお伝えしたいと思っているので、どのようにして(how)コミュニティ・カレッジから4年生大学(バークレー)への編入と決まるわけです。いつ(when)ですが基本的に特別な事情などが無い限りはコミュニティ・カレッジに2年間(エンジニア関係のメジャーの人は3年程)平均してかかると思って下さい。ここらへんはまた後で解説します。
ということで3日か4日おきに一つ一つ書いていこうと思います。

正規表現part1

正規表現とはあるパターンでもって文字列を検索したり、その検索結果を抽出したり置換したりということができる。エラーチェックによく使われる。
今回はJavaScriptにおける正規表現を学ぶ。




<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強







<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強







<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強








<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の勉強





とりあえずここまで。

どうやって本を読むか

定期的に帰国すると決まって何冊か同じ本を読む習慣がどこかにある。それでその本の一つが「読書の技法」という本だ。名前の通りどうやったら効率的かつ一番思考力を鍛えられる読書法を実現できるかという方法論が記載されている本だ。いい機会なので自分なりにまとめてみることにする。自分の独断と偏見で掻い摘みながら書いているので詳細な内容や体系的な知識は著書を参考することをオススメする。
読書をするということはどういうことなのか。読書をする目的とは一体何なのか。著者はその目的を「自分の中にある知識を用いて現実の出来事を説明できるようになること」と定義している。読書を通じて専門的な知識を蓄えると同時にそこに隠された論理構造を汲み取って他の分野に応用する、そんな考え方を学ぶことこそが読書の真意だというのだ。
そこで一番最初に読者が行わなければならないことは本の選別であると著者は言う。人生には時間に限りがある。本には役に立たない本もあり、役に立つ本もある。そういった本を上手く見極めて時間を上手く使うことが大切であると。そのために著者は熟読法、速読法、超速読法という3つの手法を上手く使い分けて本を読むことが重要であると述べている。ちなみにこの作業に必要なものはシャーペン、消しゴムとノートである。自分が学びたい分野が一つあるとしたらその分野につき奇数で本を選ぶ。5〜9冊程あれば十分だと思われる。
超速読法:
これはいわゆる本のスクリーニングに使う。やり方は目次を読み、あとはひたすらページをめくっていくだけだ。気になるところはメモをし、そして結論部分の一番最後のページを読む。これを行うことによってその本が「熟読する必要があるのか」「普通の速読の対象にしてノートを作成する必要があるのか」「速読の対象ではあるがノートを作成する必要はないのか」の判定を行う。
速読法:
速読法と似ているが1ページにかける秒数が15秒ほどと多少長くなった。重要なところ(定義、結論や説明部分など)はシャーペンで印をつけ、そのページにポストイットを貼る。迷ったらとりあえず線を引くことをオススメする。分からないところは「?」でもつけておく。一番大切なのは必要とする情報についての明確な目的意識を持つこと。自分はどういった目的をもって何を学んでいるかという意識を持つ。個人的にはブログがアウトプット先になっているのでその辺はブログって便利だなーって思う。
熟読法:

  1. 通読を行なってライン引きを行う。ノート、シャーペン、消しゴムとボールペンを用意し、1回目に引いた部分で特に重要だと思う部分をシャーペンで線を引いて囲む。囲みはどんなに多くても全体の1/10に収めることを意識する。(10日間)
  2. そして囲みの部分をノートに写す。全て写す必要はない。迷ったら書き写す必要はない。具体的には定義、数字、固有名詞などに言及がある部分と、重要とは思うがどうにも意味がよく分からない部分を写す。そして欄外に「わからない」だとか「?」とか書いておく。これはただの写経ではなく理解するための抜き書きであることを忘れてはいけない。ちなみに英語力をつけようとするならば原著も買ってノートに書きだした部分の英語を探し同様に書き出していくと英語力も上達して一石二鳥。
  3. 目次の構成をよく頭に叩き込んで結論部分を3回読む。(3〜4日間)本文の中で挙げられた事例や立論がこの結論とどう絡み合っているかを考えながら通読する。これが結構難しい。
  4. 続けて残りの基本書を処理していく。3日間ほどかけて通読し(シャーペン、ポストイットを使って重要箇所をマーキング)、特に重要な箇所を2日ほどかけてノートに写す。

以上がおおまかな方法論のまとめだ。その他に著者の言及で個人的に面白かった点を列挙してみることにする。

  • 民族問題は勉強するのに時間が掛かるが、一旦大きな流れや論理構造が理解できると民族問題だけでなく人種問題や格差問題や宗教問題などにも応用が非常に利く分野。
  • ロシアの知的エリートは大学入学前に徹底的に教科書を読み込む。特に歴史と国語の教科書は質量共に日本語の量を超える。
  • 毎日読む時間を決めて毎日読み続けることが大切。ちなみにこの筆者はどんなに忙しくても最低4時間と決めているらしい。
  • 本格的な基本書で勉強するときは、その本だけに特化せず、軽い歴史読み物、小説、ビジネス書などと平行して読み進めていくことで能の活性化に役立ち記憶力も良くなる。
  • 能率が落ちてきたら、仮眠を取るか外国語か数学の練習問題を解く。
  • まとまった読書時間を取る。筆者は13時半から19時の間と24時から26時の間らしい。その時のポイントは仕事などで現在必要な本を極力読まないようにする。何度も読み返す基本書や過去に読んだ本などすでに記憶に定着させたものがオススメ。
  • 洋書は最低数十ページは読むようにする。1ヶ月間放っておくと語学力の低下につながるらしい。
  • 細切れ時間が多いビジネスマンでもちゃんと読書時間を確保することが大切。細切れ時間だけでの勉強法では効率が悪い。

読書の技法

読書の技法

レーニン哲学ノート〈上巻〉 (岩波文庫)

レーニン哲学ノート〈上巻〉 (岩波文庫)

レーニン哲学ノート〈下巻〉 (岩波文庫)

レーニン哲学ノート〈下巻〉 (岩波文庫)

HTMLについてざざっと理解する

Railsをやっていて気づいたことの一つとして「ってか俺そもそもHTMLちゃんと書けねえじゃん」って思ったので自分なりにまとめたのをバババッと書いておくことにする。ここは基本中の基本だし最低限書けないと話にならない気がするので。。
Hyper text markup languageの略。ホームページ作成の時とかに使う。HTML構造的な文書を書くことが出来る。HTML(構造的)+ CSS(見た目)。現在ではHTML5が主流となっている。


# タグとは文章に意味付けを行っていく作業のこと
$ <タグ>文章
タグによっては何らかの付帯情報を付けたい場合がある。
その場合は<タグ>
$ <タグ 属性名=値 属性名=値>文章

Hello world

# 左のタグが開始タグで右のタグが属性タグ。左のタグに埋め込まれているのが属性タグである。

# 今からHTMLで書いていくという文章宣言
# 言語設定を日本語にするという意味
# 文章自体の情報
# このページの文字コードをutf8にするという意味
# ファビコンの設定。ウェブページを表示した時に出てくるちっちゃいアイコン
はじめてのHTML

# 本文

こんにちは!

HTMLを使用するときに多少なりともstyleタグが必要に迫られてくる。俺は個人的にCSSをまだ勉強していないので(HTMLが終わったら進む予定です)具体的に入り込むのはまだだが、簡単な操作くらいだったらCSSの知識がなくてもできなくはない。例えばページの背景色を変更したい場合など。






はじめてのHTML



こんにちは!

とりあえずはここまで。

rake routesというコマンドが意外と便利

「rake routes」というコマンドを使うと意外と便利。「ファイルが増えていくとさすがにファイル名だけではどれがどことつながってるのかわからない!」とか俺みたいな雑魚がほざいてるやつにとってはこういうコマンドがめっちゃ便利だったりする。これをterminal上で打ってみると、


User-no-MacBook-Air:books user$ rake routes
Prefix Verb URI Pattern Controller#Action
books GET /books(.:format) books#index
POST /books(.:format) books#create
new_book GET /books/new(.:format) books#new
edit_book GET /books/:id/edit(.:format) books#edit
book GET /books/:id(.:format) books#show
PATCH /books/:id(.:format) books#update
PUT /books/:id(.:format) books#update
DELETE /books/:id(.:format) books#destroy
root GET / welcome#index
例えば「ブックスのページの元ページってどこにあるんだろう」みたいなときとか「これってbooksのindexでいいの?」なんていう時にこれで一度ファイルのルーティングを確認しておくと仕事が捗ったりする。俺みたいなやつには便利だよっていう話。

ファイルのネーミングについて

色々と作業をしていて個人的に厄介だと思っていることがファイルのネーミングである。前の記事で紹介したように基本的にファイルの命名は「アクションとテーブル名の組み合わせ」である。理由はそのファイルを見ただけで何のためにそのファイルが存在するのかが一目でわかるからである。あとは規則的に決めておくことでそのファイルを起動する必要になった時にトラブルが起こりにくい。ネーミングにおいてのtipsは以下のとおり。
生DBは複数形、小文字(今回のプロジェクトではbooksとなっている。複数の情報を入れておくという意味で)
Modelないのファイルに関しては基本的に大文字単数形で表現したほうがいい。(booksという概念を扱うから)
Migration fileはg migration AddColumnToBook。ちなみにAddColumnというのはアクション名でBookがクラス名にあたる。もっと簡単に言うと、クラス(オブジェクトを入れる箱)が基本的に単数形でオブジェクトは複数あるから複数形になると考えると分かりやすいかもしれない。

Scaffoldで作ったdabaseに新たなフィールド(カラム)を追加してみる

実際にscaffoldで作ったんだけど新たにフィールドを作成する場合は一度destroyコマンドを使って消してから再度フィールドを全て含めた上でもう一回作りなおすのがいいが、ある程度自分で手を加えてしまったので消すのは面倒臭いという場合は、modelのフィールドを追加するために新しくg modelの中のmigration fileを追加する。そのファイルの中に行う必要のあるアクションを記入する。migration file建築内容の指示書。db:migrateを行うことによって命令することができる、と考えれば良い。


# マイグレーションファイル作成コマンド
$ rails generate migration クラス名
クラス名は何でもいいが「アクション+テーブル名」が慣例。これで/db/migrate/タイムスタンプ_クラス名.rbというファイルが作られる。 しかしこのままだと実際のDBには反映されないので、db:migrateコマンドを実行する。念のため他のアクションコマンドも記載しておく。後々使えそうだし。

# 実行
$ rake db:migrate
# ロールバック
$ rake db:rollback # ロールバックを使用することによって一つ前の状態に戻ることが出来る。
# 確認
$ rake db:migrate:status

# すでに実在しているフィールドを変更する
$ rails g migration ChangeColumnToUser

# 変更内容
def up
change_column :users, :uuid, :string, null: false, default: 0
end

# 変更前の状態
def down
change_column :users, :uuid, :string, null: true, default: 0
end
end


フィールドを追加/削除する
$ rails g migration AddColumnToUser フィールド名:フィールドの種類

/db/schema.rbに全ての指示が記載されているのでそこに変更が記載されていれば成功したという意味。
class AddColumnToUser < ActiveRecord::Migration
def change

# 追加
add_column :users, :piyo, :string

# 削除
remove_column :users, :piyo, :string

# 追加する場所を指定する場合
add_column :users, :piyo, :string, :after => :uuid
end
end

成功するとこんなかんじではきだしてくれる。

参照:
rails generate migrationコマンドまとめ
Railsのmigrationの基本とレシピ集