【プログラミング】独学でコードが書けるようになる学習サイトまとめ
この記事は、おもにこれからプログラミングを学んでいきたいひと向けに書いています。
オンラインで学ぶよさ
オンラインなら随時、情報が更新される可能性があります。
体系的に学ぶ意味では、紙のほうがひとつにまとまっている場合もありますが、こちらの場合は情報が古くなりやすい点には注意。技術が変化する以上、変化に対応できる媒体であるほうが、正しい知識を得られる可能性は高いですからね。
そういう意味で、オンライン教材が学ぶ上ではいちばんいいと思います。
ということで、おすすめのオンライン教材を紹介していきます。
Webアプリケーション作成のための基礎固め
dotinstall
★★★★★
good
・学べる分野、量が圧倒的に多い
・動画教材で環境構築から学べる
bad
・情報の更新が終わっているものがある
いちばんおせわになっているサイトです。ここでhtmlとCSSの基本を独学習得しました。そして、いまもお世話になってます。なぜなら、とにかく教材が幅広くそろっているので、たとえば、やったことのない技術を学ぼうとおもったときに、ここにくればほとんどの言語が網羅されているからです。
Linuxを使った環境構築も学べますし、本当にすばらしいサイトだと思います。
ドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト
Progate
★★★★☆
good
html,cssの基礎を高品質に学べる
bad
学べる分野が少ない
dotinstallをやったひとなら、こっちは必要ないかなって感じです。でも、2018年現在の評判的には、こっちで勉強しているひとが多い印象。自分にあってるほうでやればOK。
Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
トレンド系技術(機械学習、python)
Aidemy
★★★☆☆
good
最新技術が多い
トレンドのAI関連のことを学べる
bad
難しいところの説明で文章が多い
無料でできるのがもっと多いといいかも
AI関連の技術の基礎を学ぶのに適しています。個人的には、難しいところほど、文章の説明がおおくなってしまっている印象があるので、そこをもっと概念図などでやってくれると理解しやすくなるんじゃないかなとおもってます。
codexa
★★★☆☆
good
トレンドのAI関連のことを学べる
bad
まだできたばかり
学べる分野はAidemyと似ていますが、わりと勉強しやすいです。これから教材が増えてきてどうなるかですね。いまなら(2018.6.16現在)、線形代数、Pandas、Matplotlib、等が無料で学べます。
応用(基礎~)プロダクト作成
Udemy(個人的にベストオブベストな教材)
★★★★★
good
内容が比類ない、かつ質が高い。ものをつくるための内容のひととおりが得られる。
bad
お金がかかる(ものによっては参考書1冊以上)
自分がいちばんおせわになっているのが、このUdemyです。基礎を学んでものづくりしたいときには、2018年現在ではここの教材をやるのがベストだとおもっています。やはりお金をかけた分の質が得られる実感がありますね。プロダクトがつくれることを考えれば、全然痛みを感じない程度の金額です。webデザインから機械学習、ブロックチェーン、VRまで、幅広く学べます。
オンライン学校
たとえば、スタンフォード大学の授業の内容が学べたりします。大学レベルの講義をオンラインで学習できます。
Corsera
機械学習をやりたいなら、スタンフォード大学のAndrewNg先生のMachineLearningの授業は有名ですね。基本的に英語(日本語字幕あり)なので、英語力を身に着けるのにもいいです。
Coursera | Online Courses & Credentials by Top Educators. Join for Free
Udacity
Corseraとおなじような感じです。基本的に英語です。
Udacity - Free Online Classes & Nanodegrees | Udacity
YouTube
言わずとしれたYoutube。実はプログラミング系のことばで検索をかけると結構解説動画が出てきたりします。
オンラインtoオフライン
ストアカ、ココナラ
最近だとメルカリの「ティーチャ」、メタップスの「タイムバンク」、そして、最近サイバーエージェントがはじめた「REQU(リキュー)」など、スキルシェア系のサービスが増えてきています。ストアカやココナラもそのようなものでして、プログラミングスキルのあるひとから、教えてもらうことができるサービスです。このサービスのよさは、自分が教える側にもなることができるところです。ある程度プログラミングが上達したら、今度は自分がストアカやココナラでコードが書けるようになりたいひとに教えてあげると、社会にとってとてもいい循環が生まれるとおもいます。
コーディング力をつける
アルゴリズムにつよくなりましょう。そのためには、競技プログラミングがおすすめ。これをやることで、実装力が鍛えられます。スポーツでいうところの基礎体力です。これらに取り組むとアプリの動作部分をつくる能力を鍛えることができます。
Paiza
スキルチェック
ITプログラマー・エンジニア転職のpaiza転職
AOJ
AIZU ONLINE JUDGE: Programming Challenge
AtCoder
まとめ
プログラミングに必要なものは、やる気と中学レベルの数学の理解です
以上で学べば、だれでもコードが書ける
これらをやれば必ずそれなりにコードが書けるようになります。ただし、天才でもない限り、それなりに時間はかかるものだとおもったほうがいいです。うまれてからいままでいろいろな言語を学んできたとおもいますが、ひとつとして数日で習得できたものはなかったと思います。つまり、プログラミングも言語をまなぶことなので、それなりに時間がかかるわけです。
それをふまえたうえで、まず、エンジニアに必要なメンタルは、すべてを理解しないままに進む適当さです。くりかえしますが、言語習得には時間がかかります。一度ですべてを理解できるわけがないのです。すべてを完璧に理解しないと気が済まないひとは、エンジニアには向いていません。エンジニアはデザイナ(解決者)でもあることを忘れないようにしましょう。
プログラミングを趣味でやるなら全然よいのですが、これを仕事にしようと考えているひとはすこし考える必要があります。だれでも書けるってことは、自然と競争の中に生きることになる可能性がものすごく高いからです。
すると、結局なにが起こるかというと、できるひととできないひとの自然淘汰です。具体的には次の2パターンのひとが生き残ると考えられます。
- コードを素早く書けるひと
- オリジナルなものを作れるひと
前者は、企業のCTOとか、あるいは自分でサービスをゼロからつくって、起業しちゃうような可能性が高いひとでしょうね。ふつうに技術者として優秀であるエンジニアです。いうなれば、エンジニア的なエンジニア。こんなひとはそれほど多くはありません。
エンジニアほど目に見えて生産性が変わる仕事はないと言われるくらいで、結局は「速くコードを書ける→すぐにものがつくれる」っていうわかりやすい事実に、エンジニアの実力はもっともあらわれるものなのです。
話を戻しまして、後者についてですが、このひとたちはクリエイター的なエンジニアとして生き残れるでしょう。webAPIなどが世の主流になるにつれて、あたらしいサービスをゼロから作るというよりも、既存の有名大規模サービスが提供するAPIを利用して新しい価値を提供できるエンジニアにも十分に価値があります。こちらのエンジニアだったら、情報系学科出身のバリバリのギークなエンジニアである必要はありません。
世の中のひとがなにを欲しがっているかをちゃんと感じ取ることができて、それをプロダクトとして形にできればよいのです。
というわけで、コードを書くことを仕事にしたいと考えているひとは自分がどっちなのかをちゃんと見極めたほうが、将来的には明るいです。
そして、わりとマーケッターのひとがエンジニアになると、いいプロダクトをつくる可能性が高いのではないかなと考えています。でも、マーケティングする人でコードが書けるひとってあまりいませんよね。こういうところにチャンスがあります。エンジニア的なエンジニアにはなれなくても、クリエイター的なエンジニアになる分には、難しい技術を使えなくても、発想力があればなれます。
そして逆もしかりで、コードが速く、正確にかけても、プロダクトをつくるアイデアがないひともいます。
つまりいちばんイケてないエンジニアは「コードを速く正確にかけないし、プロダクトの発想もない人」ってことです。
発想力を活かしたプロダクトとは?
よく、プログラマーになりたいと考えるひとの誤解は、「難しいことをすべて知らなければいけない」って考えることです。極端な話、難しいことをしっていても、役にたつものをつくれなければ意味がありません。簡単なことしかわからなくても、役にたつものをつくれれば、よのなか的にはそれで十分なのです。ってか、それが大切。
今回はこの辺で。
随時追加していきますので、おたのしみに!
ではでは!