読者です 読者をやめる 読者になる 読者になる

考えることをやめたら死ぬ男のブログ

英語ペラペラな僕がHIPHOP、ビジネス、ITなどいろんな話題についてぺちゃくちゃ喋ります。

【比較オタクが解説】初心者向けオンラインプログラミング学習はこれがおすすめ

プログラミング学習のビッグウェーブが来ている

最近いろんなところでプログラミング学習の必要性を訴える声を聞きます。

じわりじわりと世界的なムーブメントになってきている印象ですね。

IT界のビッグネームが精力的に動いています。

 

code.org

hourofcode.com

 

 どんだけ需要が高まっているかというと

米国では2020年に100万人のプログラマー不足が起きると予想されているほど、プログラマーの需要は大きい。

アメリカのプログラマーの年収が高すぎる。日本ェ・・・。 - 愚者が賢者になっていくブログ

このように言われています。

アメリカの話ではありますが、中間年収が900万円の仕事の

100万人分の席が空いているってけっこうパンチ力ありますよね。

 

私はまさにゴールドラッシュの再来だと思っています。

「このビッグウェーブに乗るしかない…私も勉強したい!」

と思う方もいると思いますが、まったく知識がないと

なかなか始めるのすら難しいですよね。

 

でも大丈夫。

比較オタクでプログラミング初心者の僕が

しっかりとおすすめの学習方法をまとめました。

 

オンライン講座

オンライン講座の何がいいのか簡単にまとめました。

 

メリット

  • 無料
  • 自分のペースで進められる
  • わからないとこを瞬時にググれる
  • 実際にコードを書きながら進められる

デメリット

  • 自分でスケジュールを立てなきゃいけない
  • コースを終わらせても自分一人じゃ何もできない(これはやり方次第)

 

では実際にどのサービスがいいのか見てみましょう。

Codecademy

f:id:b1840943:20160128012824p:plain

学べるもの:HTML/CSS, Javascript, jQuery, AngularJS, Java, Ruby, Ruby on rails, Python, PHP, SQL

 

これが一番のおすすめ。

ただ英語なので英語がわからない人には厳しいです。

 

でもでもでも画像の通り

上部の説明を読みながら左側に打ち込んで右側で実行できるのはイイ!

自分のコードがどのように動くのかが一目でわかるのは楽しいです。

モチベーション保ちやすいですね。

 

わからない部分があったらフォーラム(掲示板的なやつ)に行って

過去の質問見ればだいたいなにかしらのヒントは乗ってます。

これもCodecademyのすごくイイところですね。

 

Progate

f:id:b1840943:20160128013654p:plain

学べるもの:HTML/CSS, Javascript, jQueryRuby, Ruby on rails, PHP

 

Codecademyは英語でしたがこちらは日本語!

日本語のサービスの中では間違いなくダントツでおすすめです。

 

Codecademyに近いようなスタイルで学習できるのですが

違いはパワーポイントのプレゼンテーションのような形で

事前に少し学んでからこの画面で実践してみる、というところです。

 

若干「あれ?ここなんでこうなるんだ?」ってなることがありますが

そこはググって解決しましょう。

 

ドットインストール

f:id:b1840943:20160128014641p:plain

学べるもの:だいたいなんでも学べる

 

学べるものが多すぎて書けません…

 

上二つとの大きな違いは”動画”であることです。

基本的に動画を見ながら「ふんふん」とうなずいて勉強するスタイル。

 

もちろん最初に自分のパソコンで環境をつくって

実際に手を動かしながらやることもできますが

実は環境をつくるのがけっこう大きな壁です。

ここでやられた惨死体をいくつも見てきました。

 

一本の動画がだいたい3分と短く、細切れに学習できるのは

大きなアドバンテージだと思います。

僕のおすすめはCodecademyやProgateをやりながら

ドットインストールでわからないとこをつぶしたり

復習するというスタイルです。

 

まとめ

  • 英語ができるならCodecademy
  • 日本語オンリーはProgate
  • そしてドットインストールを併用する

 

これだけでプログラミングの知識0から

初心者と中級者の間ぐらいまではいけます。

 

なんにも知らない人にコード書くとこを見せて

ハッキングしているかのように装ってドヤ顔することもできます。

 

簡単なSNSならすぐに作れるようになりますよ。

なんのインストールもいらないのでまずどれかやってみましょう!

英語を話せるようになりたいならその勉強の仕方、間違ってるよ。英語ペラペラな僕が伝授する秘伝の3つの方法。

英語 英語勉強法

はじめに

最近僕のまわりで

「英語を話せるようになりたい」

という声をけっこう頻繁に聞くようになりました。

「どんな勉強してんの?」

と聞くと

TOEIC取るために参考書読んでる」

「”英語は簡単だ”って本を買ったんだ~」

「別に何もしてないけど?」

とかいう返答が返ってきますだいたい。

 

甘い。

 

付き合いたての高校生カップルがもう暗くなっているのに

帰るタイミングを見失って、

「帰らなきゃ…でも帰りたくない…!!」

という状況になってるのを見た僕の気持ちぐらい甘い。

 

いや僕の立場としては苦いのか…これ…?

 

ということでTOEIC高得点を

勉強(机でカリカリするという行為)をせずに

軽々ととった僕が秘伝の3つの方法をお教えいたしましょう。

ちなみにTOEICで高い点数を取るのと

英語が話せるというのは肌感ではあまり関連性がないように思います。

 

これは多少英語の知識がある人向けの方法です。

中学生の教科書は全部わかるよ、ぐらいの人向けです。

 

英語で読む

なぜ

とにかくインプットがまず大事。

インプットがないことにはアウトプットはできません。

何も食わずともうんこするやつがいたら

そいつは悟りを開いてるはずです。

 

インプットで一番いいのは読むことです。

音声はリスニングという意味ではたしかに良いし

最終的には必要っちゃ必要なんですけど

「あー聞き取れなかったー」

つって巻き戻すのとかめんどうでしょ?

 

時間効率を考えたら

調べながら、考えながらできる

”読む”という行為が一番です。

 

でもわからない単語ばっかだし

僕もニュースを英語で読み始めたころは

わからない単語ばっかりでした。

今でもわからない単語ばっかりです。

わからない単語はなくなりません。

永遠になくなりません。

でも前よりはすらすら読めるようになったなーとは思います。

つまりはそういうことなのです。

 

街でカッコいい人が英語でニュースを読んでたとしても

あんまりわかってない可能性はけっこう高いです。

医療系の記事とか見ると今でも吐きそうになります。

呪文みたいな単語が出てきます。

 

でも不思議なことにやってれば

少しずつ読めるようになってきます。

こればっかりはある程度の期間を置くしかないです。

 

たぶん3か月やってみれば

始める前よりずいぶん読めるようになってます。

 

とにかく読みながらわからない単語を一つ一つつぶしていく。

これだけです。

 

なにを読めばいいの?

これはどんな英語を話したいかによって変わります。

というのは読むものによって

使われる英語がまったく違ってくるからです。

ビジネス現場で10代が話すような英語は使っちゃダメです。

ダメじゃないけどダサいです。

 

  • ビジネスで話したいという人

このタイプはニュースを読むのがよいでしょう。

ついでに自分の業界のニュースを読めば

知識もつくし一石二鳥です。

 

  • 英語で友達としゃべりたい

そんな人はゴシップ系のメディアを見てください。

BuzzFeedとかPeopleとかかな。

普通のニュースよりはかなり話し言葉に近いです。

スラングとかもバンバンでてきます。

 

  • 別にしゃべりたくないけど?

帰れ

 

英語につかる環境をつくる

なぜ

言語を話せるようになるためには

とにかくその言語との接点を増やすことが重要です。

できるだけ多くの接点を作ることで

飛躍的に英語力が伸びていきます。

  

どうやって?

モチベーション保つためにも

自分が好きなことと関連づけることが大事です。

音楽が好きなら洋楽をたくさん聞くとか

映画、ドラマが好きなら見る時間を毎日つくるとか

好きなことがないならエロ動画を洋モノに変えるとか。

 

まあその辺は自分の好きなことを

英語でやるようにすればなんでも大丈夫です。

 

おすすめの方法

みんなにできて、超が100個つくぐらい

おすすめの方法があります。

それは

スマホの設定を英語に変える

です。

 

理由は

  • 日常的に使う単語がめっちゃでてくる
  • 常に身につけているものだから接点ハンパない
  • 外人のSiriとおはなしができる。

です。

 

本当にスマホででてくる単語は

日常で使うやつがかなり多いです。

”設定アプリ”なんか日常単語の玉手箱です。

曜日とかもですし、もうどのアプリ開いても

使える単語ばっかりですほんと。

 

これは今すぐやってください。

 

やり方は

設定アプリ>一般>言語と地域>iPhoneの使用言語

で変更できます。

 

マジで今すぐやってください。

そしてわからない単語をつぶしていきましょう。

 

実践的な能力をつける(超重要)

これはある程度の文章を組み立てられる人なら

絶対にやったほうがいいです。

絶対にやったほうがいいです。

大事なことなので2回言いました。

 

I have a pen.

とか文法も含めて理解できるなら絶対やったほうがいいです。

 

名付けて

一人留学

 

ネーミングセンスのなさは仕様です。

 

おそらく英語を話せるようになりたいと思ったら

まず留学が一番効果的だと考えるのではないでしょうか。

なぜ留学で英語が伸びるのかというと

英語で文章を組み立てて、実際に口に出す、という

一連の動作を強制される機会が圧倒的に増えるからです。

 

その一連の動作をくりかえすことによって

自然にすらすらとフレーズがでてくるようになるのです。

 

そしてそれは自分一人でもできます。

 

Example

たとえば今日は日曜日であなたは少し遅めに起きたとします。

昨日飲みすぎたーとか考えながらスマホを手に取ります。

酔っぱらったあなたの変な写真を友達がSNSにアップしてるのを見てイラつきます。

そしてふと考えます。

「あー腹へったー」

↑ここ!!

 

このタイミングで

「あー腹へったー」

を英語に訳してください。

 

そしてそれを実際にぼそぼそと口に出してください。

できるだけきれいな発音で言ってみてください。

どうせ誰も聞いてないので。

 

これを繰り返します。

あなたが頭の中でふと考えたことを

全部英語に訳して、声にします。

 

おそらく

「あれ?これなんて言えばいいんだろう…」

と思うことがあります。

それが大事なんです。それは伸びしろを具現化したものです。

すぐグーグル先生に聞いてみましょう。

 

「おなかがすいた 英語」

「焼肉食べたい 英語」

「金欠やべえww 英語」

とかで検索すればなんでもでてきます。

 

これを繰り返せば本当にすごいスピードで上達します。

今でも僕は一人の時はずっと英語でぶつぶつ言ってます。

完全に不審者です。

でも英語がうまくなるなら気にしません。

 

もう一歩踏み込む

しかしそれだけだと実践ではボロボロにやられる可能性が高いです。

ではどうすればいいのかというと

自分で会話を作ってみてください。

 

先ほどの例でいえば、もし外国人の友人が目の前にいたとして

「あー腹へったー」

とあなたがつぶやいたあとはおそらく

「なにか食べに行こうよ」とか「なに食べたい?」というように

会話が展開されていくかと思います。

それを自分一人でやっちゃってください。

 

それを英語で展開していくのです。

わからなかったらググる。それだけです。

 

これに慣れてくると、ふとした瞬間に

「あー腹へったー」

が英語で自然に出てくるようになります。

 

正直な話

ここで紹介した方法は誰にでもできる

簡単で

しかもかなり効率の良い方法です。

 

最後の最後にこんなこと言うのは申し訳ないのですが

これぐらいもできないのであればたぶんあなたは

英語を話せるようになりたいとはあまり思ってないです。

 

きっとあなたがやりたいことは他にあるので

それに時間を費やすほうがいいと思います。

 

まとめ

何も食わずともうんこするやつがいたら

そいつは悟りを開いてる。

インプット→アウトプット

Ruby on Railsで出てくるStrong parametersっていったい何なんだ

Ruby Ruby on Rails プログラミング

 

たぶんStrong parametersって

ログイン機能とかつけるんだったら

かなり大事なものだと思うので覚書。

 

簡単に言うとどういうものか

こっちのバリューは変えたくないけど、こっちのバリューは変えたいときに使う。

こっちのバリューを変えられると困るんだよなーってときとか。

 

実例

params.require(:user).permit(:email, :password)

Strong parametersはこんな感じの書き方をするんですけど

これは:userが持つ:email、:passwordというキーのバリューだけを

変更することを許しますよーって意味になります。

 

たとえばログイン機能のある投稿サイト(Twitterとか)を作るとして

:email、:password以外にも:user_idとかのキーを作成すると思うんですね。

そのときに:user_idをこちらが意図しない形で変更されると

非常にカオスなことになってしまいます。

f:id:b1840943:20160126195639p:plain

いろんなツッコミあると思いますが

ここはひとつ龍角散といっしょにごくっと飲み込んでください。

 

このケースでuser_idが1の人のuser_idが3に変更されたら

大変なことになるわけですよ。カオスです。

 

サービスを使ってくれてるAさんのプロフィールには

Bさんのツイートが流れてたりとか

かわいい女子高生のアカウントなのに

うさんくさい起業家の情報商材への誘導ツイートとか

流れてたりとかしちゃうかもしれません。

(2つ目の例は現実に起こっているという部分がカオスです)

 

Railsの基本中の基本になってくるStrong parametersが

実はよく理解できてなかったのでとりあえず書いてみました。

 

まとめ

かわいい女の子の写真をプロフィール画像にしている

Twitterのアカウントはだいたいおっさんがやってる

【超初心者向け】プログラミング始めたいやつはこの言語を選べ!

プログラミング

誰お前

初めまして、こりこり砲です。

 

僕はプログラミング初心者です。

今年の目標は一つサービスを公開すること、と決めて始めました。

初心者による初心者のためのブログにします。

なぜそのようなブログを始めようと思ったかは後述します。

 

プログラミング界は初心者に冷たい

プログラミングを勉強しようと思って

まず初めに引っかかったのは

「どの言語から始めればいいの…?」

というところでした。

 

おそらく初心者の皆さんもまず考えるところじゃないかな、とは思うのですが

いくら調べてもまともに答えてくれてる人にはたどりつけません。

というか何を言ってるのかさっぱりわかりません。

なぜなら

「プログラミング経験者目線で語る」

ことが非常に多いからです。

 

やっぱり最初はJAVAがいいよ。汎用的な言語だし、すぐに動作確認できて感覚的に理解できる。

 

node.jsがでてきてフロントエンド/バックエンドどっちもできるからJavascriptだね。フレームワークも良い。

 

Rubyの美しい文法は初心者にやさしい。

 

こんなん初心者が見たらこの時点で挫折すること間違いなしですよね。

僕も「日本語喋れや」って思ってました。

まず文法が美しいとかいう意味がわからんわ。

 

初心者にやさしいひとたちが必要

言うまでもなく、プログラミングスキルは必須になります。

今までは英語が世界共通語と言われてましたが

これからはプログラミング言語世界共通語になるでしょう。

 

www.nri.com

 

10~20年の間に49%が代替可能という推計結果も出ています。

この流れは間違いなく加速していくことでしょう。 

 

しかし世界中がプログラマーを求めているにもかかわらず

プログラマーを育てる環境がまだまだ整ってません。

IT大国アメリカですら整ってないような状況なので

日本なんかはもうほとんど”無”です。

無我の境地です。

 

そんな状況の中、初心者だからこそ初心者にやさしく

教えることができるんじゃないかと思い、

アウトプットすることで学習効率が上がる、というのが主な理由なのは秘密

このブログにつづります。

 

だから今からプログラミングを始めよう、勉強したい、と思ってるあなたに

プログラミング初心者目線でお教えいたしましょう。

 

ガチ初心者は黙ってHTML/CSSをやれ

ちょっとプログラミングからは外れるんですけど

そもそもHTMLの知識がないとプログラミングをやっても

分厚い壁にぶつかります。必ず。

HTMLの知識がないリアルガチ初心者はここから始めなきゃいけないです。

 

でも安心してください。

HTMLとCSSはなんにも難しくないです。

たぶん英語で言えば

「Hello」とか「Sorry」が「こんにちは」と「ごめんなさい」

って意味なんだなー、と覚えるぐらいの難易度です。

 

HTMLとCSSをなんの教材でもいいのでやってください。

おそらくどの教材やっても最終的にはレンタルサーバーかなんかに

アップロードするんじゃないかなーと思うんですが

それら一連の作業によって

どのようにウェブサイトが表示されているのかとか

サーバーとかドメインってなんだろうとか

その辺の知識も多少はついてくると思います。

それがプログラミングの大事な土台になります!

 

HTMLとCSSはわかる。俺はプログラミングをやりてえんだよ

そんなあなたはJavascriptをやりましょう。

他の言語は目をくれる必要もないです。

プログラミングってこんな感じなんだなーと理解するには

一番良い言語だと思います。

 

オブジェクト指向とかいう現代プログラミングの必須レベルの考え方を

なんとなくつかむことができますし

Javascriptが使われてないウェブサイトって存在しないんじゃないか

ってレベルで必須級の言語です。

 

しかもいろんな人がなんか頑張ってるおかげで

Javascriptの未来は明るい」

みたいな状況になりつつあります。

 

必須な言語×明るい未来=黙ってやれ

 

という方程式が出来上がります。

一石二鳥の方程式です。

(一石)×(一石)=二鳥

ですね。

義務教育で習うやつです。

 

(お酒が飲める)×(女の子としゃべれる)=キャバクラ楽しい

 

と同じ方程式です。

 

Javascript覚えちゃったら他の言語の障害にならないのか

結論から言えばならないです。

というかさっさと一つの言語を一通り理解することが

他の言語を効率よく学習する第一歩になるでしょう。

 

プログラミングは初心者ですが英語はプロ級なので

外国語という観点から言うと

ある程度英語の基礎を固めたあと、

第3言語を英語と同時進行で学習するのが

おそらく最も効率いい方法だと思います。

これはプログラミング言語も同じだと思います。

 

結局学習っていうのは記憶に定着させなきゃいけなくて

記憶に定着させるということは何回も思い出すことが必要です。

つまり接点が多いほうが有利なんです。

 

2言語であれば

日本語→英語 英語→日本語

だけですが、

3言語であれば

日本語→英語 英語→日本語

英語→スペイン語 スペイン語→英語

日本語→スペイン語 スペイン語→日本語

と圧倒的です。

接点が増えることが想像できると思います。

プログラミング言語もこのような形で学んだほうが

効率がいいと思われます

 

まとめ

リアルガチ初心者→HTML/CSS

HTMLはわかる人→Javasctipt

キャバクラ→楽しい