サンフランシスコベイエリア生活

MBA留学のために渡米、シカゴで3年暮らした後、サンフランシスコに落ち着きました。アメリカでの日常生活、仕事、日々思ったことなど書いています。

勉強

Udemy 日本語版

オンライン C to C の教育プラットフォーム、Udemyが日本語版をローンチし、講座を開くことに興味がある人向けに説明会(ミートアップと呼んでました。)を開いていたので行ってきました。サンフランシスコで出会った人のつてであった人が最近就職してこの日本語版講師集めを担当しているので、ちょっと顔を出してみようかな、と思ったのでした。

Udemyのオフィスはスタートアップが多くあるSOMAにあります。オフィスに入ると、スタートアップっぽく開放的なレイアウトで、広いダイニングスペースがあります。ランチは無料で提供されるとのことです。スタートアップといっても既にシリーズDまで調達して海外展開もしている会社なので、それなりの人数がいます。

集まった日本人は学生も含む比較的若い人が多く、けっこう知り合い同士。が多いみたいで驚きました。私のように、主催者の誰かを知っている、みたいな人が多かったみたいです。

今日は簡単なコンテンツの作り方と、SEO対策のコツの説明をIsseiさんがしてくれました。ベネッセと提携して、既に日本語のコンテンツ、日本からの受講者(英語コンテンツ含む)もいるそうです。日本語サイトのオープンが4月ということを考えると、かなりのスピード感です。

日本語サイトは1ヶ月で準備したとのことで、私も去年ローンチに向けて準備した経験を振り返ると、その期間の無謀さがよくわかります(笑)。そして、日本語サイトに英語が残ってたりもします。コンテンツ集めに加えて、ぜひローカライゼーションも頑張ってほしいところです。

サービスとしてはとても便利なので、コンテンツが増えれば日本でもさらに伸びていきそうですね。


 

オンラインの学習サイト Lynda.com

Lynda.comというオンラインでビデオ学習を提供する会社(最近LinkedInに買収された)が3週間トライアル無料というキャンペーンをやっていたので(たぶんいつもやってると思うけど)試しにサインアップしてみました。無料期間の後の値段は、基本プランが$25/月で、1年前払いだと$20/月。演習ファイル付きのプレミアムだと$35/月、年間前払いで$30/月になります。年間前払いのプレミアムだと、さらにオフライン利用もできるようです。

勉強する気がある人には、良質のコンテンツがたくさんあって、かなりいいと思います、これ。仕事に関係のあるプログラミング系の番組を主に見ていたのですが、ビデオを見る方が、テキストを読んでるだけよりも頭に入ってきます。ただ、手は動かさないと身に付かないので、演習つきプランのほうがいいのですが、ちょっと高いですね。

Lynda.comがいいのは、「プログラミング基礎(Foundations of Programming: Fundamentals)」とか、事前知識として知っていたほうがいいものを初心者向けに解説してくれるところです。この「プログラミング基礎」を見て、JavaScriptがどうWeb Applicationで使われているのかがすっきり分かりました。だからといってプログラミングができるようにはならないのですが、会社のディベロッパーと会話をするのに役立ちます。

検索もしやすく、見たコンテンツによっておすすめのプレイリストを作ってくれるし、レベル表示も的確なので、自分に合ったコンテンツが見つかります。英語が苦手でも、台本が載っているので、理解しやすいと思います。

Yelpの評価は1つ星か5つ星ばかりで極端なのですが、1つ星はほぼ支払いのトラブルのようでした。自動更新なので、解約を忘れるとずっと支払いが続いてしまいます。注意しましょう。
 
Lynda.com 

Git 紹介ビデオ by Scott Chacon

同僚が進めてくれたGitの紹介ビデオを見ました。「紹介ビデオ」と言っても、プログラマー向けに行われたと思われる説明で、途中で挫折しかけました。説明している人も開発者なので、バックエンドで何が起こってるかも無駄に解説してくれてます。くじけずに見続けると、後半かなり頭のすっきりする内容が出てくるので、Gitのコマンドは分かるけど、構造的に理解したい、という人は見てみることをお勧めします。(注:ビデオは英語で、スピーカーはかなり早口です。)

学んだこと:
1. Git とは Distributed Version Control (分散型バージョンコントロール)である。
反対の概念が Centralized Version Control (集中型バージョンコントロール)で、Perforce は Centralized Version Control だそうです。集中型の場合、一つの決められたサーバーにマスターコピーがあり、個人は常にそのマスターを参照します。デメリットは、サーバーがダウンすると全てが失われること。分散型はその名前の通り、全員がマスターを持っています。

2. Git はgit clone で全てコピー(クローン)した上でローカルで作業する。
git clone ってコピーをしているということは分かったのですが、 Distributed Version Control という特性上、ローカルで作業をする上で必要なステップだということが分かりました。。

3. git pull = fetch + merge
ビデオでは図解してくれてたのでよくわかりました。例えば2人で同じリモートのマスターに変更を加えていて、うち一人がリモートに先に push をしてしまうと、2番目の作業者は push ができません。なぜなら、2番目の作業者は1人目が push する前のマスターの情報しか持っていないので、「変更点」だけをマスターに加えることができないのです。そこで、一度情報を取得(fetch)した上で、その情報を自分のローカルのブランチに加え(merge)ます。ここで、ローカルでもリモートのマスターを同じ最新情報が手に入るので、自分の変更だけを push することができるようになります。この作業を一気に行うのが pull というわけです。

4. git log branchA ^branchB
このコマンドは、ブランチAが持っている情報で、ブランチBが持っていない情報をリストアップします。例えば、git log origin ^masterとすると、まだマスターに反映されていない情報がリストアップされる、ということです。その逆もできますね。複雑なことをしないので使ったことはありませんが、スピーカーはよく使うコマンド、と言ってました。

Introduction to Git with Scott Chacon of GitHub


 

分かりやすい GitHub 初心者向けチュートリアル

私はプログラマーではありません。しかし、GitHub を使うプログラマーと仕事をし、自分でも若干使う必要があり、騙し騙しなんとか使ってました。一応、同じチームの人に最低限の人ことは教えてもらったり、自分でもコマンドを忘れる度に Google で調べてみたり、ということはしていたのですが、何をしているか分からずに教わったステップをなぞっているだけだと応用が全くきかないのです。

そこで何か勉強できる教材がないか探して見つけたのがこの記事。一つ一つのコマンドが何を意味しているのか、かなりゆっくり説明してくれるので、まさに初心者にぴったり。この記事(Part1 と Part 2)を読んで実践することで、今まで記憶した通りに進めていたステップの意味がようやく分かりました!

この記事はまず、GitHub は「プログラミングのためだけのツールではなく、使うのにプログラマーである必要はない!」という前置きがあって安心します。そして、Git とは何か、GitHub とは何かの説明から入ってくれるのがとても親切です。このおかげで、私がまず混乱していた、「自分がいまどこで作業しているのか」がよく分かりました。ローカルとリモートの関係はけっこう分かりにくいのです。

記事自体は2013年に書かれたものでちょっと古いのですが、今でもこの基本は変わっていないと思います。Part 2の最後におすすめのトレーニングコースが紹介されているので、自習してみようと思います。

GitHub For Beginners: Don't Get Scared, Get Started

GitHub For Beginners: Commit, Push And Go

 
プロフィール

Saitamakiwi

ギャラリー
  • モントレー
  • モントレー
  • ハーフムーンベイ
  • カイルアの朝食
  • ハワイ5日目
  • ハワイ3日目
  • ハワイ2日目
  • ハワイ1日目
  • サンフランシスコからの一泊旅行(2):Bodega Bay