海外には無料で最高のプログラミング学習サイトがあります。しかも、利用した卒業生たちのその後の就職先までLinkedinで確認できます。
私の思いと目的:適切な無料サイトで適切に学習してほしい
紹介するサイトは語学交流しているアメリカ人エンジニアの方から日本語に対応したからおすすめだよ!っと教えていただきました。本当に感謝しています。
プログラミング学習は孤独で先が見えなく辛く感じることも多いですが、効率よく、時間を無駄にせず正しい方法で学習したいという、今まさに自分が勉強を初めて思ったことを伝えたい
紹介する無料のサービスを全部やって無理なら諦めたほうがいい
紹介する無料のサイト以外にも日本の最高峰の大学が無料で提供しているサービスも紹介します。これらをすべてやって、だめなら、向いていないと思うので、プログラミングスクールに通ってまでやらないほうがいい。諦めも肝心です。
プログラミングスクールは満足感や安心感をお金で買うだけ
なぜ人はお金を無駄に払ってしまうのか、それは単純に、お金を払った段階で満足考えられるからです。やった気になれるのです。
勉強したいなと思って、本を買って満足するそいう経験があると思いますが、要するに金額が高ければ高いほど自分を納得させて満足感を得るのです。
- 金額が高いほど、効果が高いだろう
- 金額が高ければ、サポートもバッチリだろう
そう思って数十万払ってモチベーションにするのもありかとは思いますが、その価値があるかどうかは別です。
それだけのお金があるなら、PCを買い替えたり、必要なソフトを買い揃える、webサービスを作るならレンタルサーバやVPSを借りる
勉強がどんどん進んでいくと専門書が必要になってくるケースも多いのでそちらにお金を回すというほうがいいです
progateやドットインストールなども途中から有料になる
プログラミング初心者がとりあえずやってみるサービスとして、最初は無料のprogateやドットインストールなどがあります。
しかし、学習が進んでいくと月額課金でだいたい1000円ぐらい支払いが必要になります。無料から有料いなるとモチベーションが下がって続かないこともあります。
3ヶ月勉強するとして3000円、それなら中古でもいいので書籍を数冊を購入したほうが、勉強の進捗もわかりやすく、手元に資料があればすぐに学習の振り返りやわからないことをすぐに調べることができます。
ネットの時代に、本なんて・・・って思うかもしれません。ネットだと調べたいことしか出てきませんが、本なら調べたい場所とその前後に関係する情報をチェックできるので、忘れていたこともすぐに思い出せるというメリットがあります。
独学を薦める理由:勉強が進むと自分で調べなけれいけないことが増える
pythonの勉強を初めて思ったことは、やりたいことをやるには、更に新しいことを調べていかなければいけない。
webアプリを作りたいのか、計算処理をしたいのかで勉強項目は変わってきますが、プログラミング初心者は何かしらサービスを作りたい、ゲームを作ってみたい等があると思います。
自分の場合はPythonの勉強始めたら、作りたいものができていて、作っているうちに、勉強が必要になってきて、pythonの勉強どころか、気がついたら別のことをやってたということになります。
するとだいたい以下の勉強が必要になります
- 開発環境の整え方
- 学びたいプログラミング言語
- HTMLやCSS
- Javascript
- SQL
- フレームワークの使い方
- APIの使い方
- サーバの知識
- レンタルサーバやVPSの設定
- Linux
- エラーの解決方法
そうすると、もう書籍などだけでは解決できず、自分で調べて、公式の英語ドキュメントを読んだりしなければいけなくなってきます。
ネットで検索しても解決しない問題を解決する力が身につく
プログラミングを初めてコードを書いて実行していくと、なんで動かないの!?なにこのエラーというのを何百回何千回も経験します
タイピングミスだったり、コードの書き方が間違っていたり、サンプルコードをそのまま書いているつもりでも動かかなかったり。こういう問題にたいして、対処できる能力と今期を身に着けなければいけません。
言われたことを言われたとおりやっているだけではこういった問題にあたったときに対処できません
独学の習慣がないと、解決できずそこで諦めてしまい勉強が続けられなくなってしまいます
15分調べてだめだったら質問しましょうとよく言われますが、数日悩んで本当にだめだったらteratailやQiitaなどのエンジニア向けの質問サイトなどを使ってみましょう
プログラムの目的は自分で作ったゴールを達成すること
勉強しながら作りたいものをリスト化するのが大事
プログラミングスクールやプログラミングサイトで勉強している人は、これが終わったら何すればいいの?っという質問をTwitterで時折みかけます。
ただ人に用意されたレールをそのまま勉強しているだけでは、結局詰まってしまうわけです。
大事なのは、プログラミングを学びながら覚えた知識を利用して作りたいものリストを作り実際に作ることが大事です
作りたいものが見つかったら、自分が作りたいものの答えは自分しかわかりません。なんどもコードを書き直してトライアンドエラーを繰り返して自分のゴールに向けて一歩一歩進んでいくのです。
自分が2ヶ月で作ったもの
最初はわかりやすいwebツールを作っています。
- twitterのトレンドワードを定期ツイートする Twitter BOT
- 降水確率が70%超えたらLINEグループに通知を飛ばす LINE BOT
- 仕入先の在庫状況をチェックするツール
- 競合サイトで売上の多い商品を調査するツール
- twitter API v2とv1の使い分けの方法
- 各種サイトをスクレイピングできるようになる
- Djangoを使ってDB連携したレビューサイト
ある程度知識が落ち着いたら画像・音声・テキスト解析を使ったツールを作る予定
ランキングで選ぶ!どのプログラミング言語を勉強すればいいの?
じゃあ独学する。でもプログラミングを勉強したいけれど、どのプログラミング言語をえらべばいいのかわからない。そんな人は人気の言語から選びましょう。
これは日本のIT関係のコンテンツを扱っているサイトのほとんどが指標としているので信頼性が高いものです。
2022年のランキング
1位:Python
2位:C言語
3位:Java
〜〜
7位:Javascript
となっています。上位10位はこちらをご覧ください。
https://www.tiobe.com/tiobe-index/
何を勉強した以下にもよりますが、この3つのどれかを選んでおけば、間違いありません。しかし、学習難易度が高いものを選択してしまうと、挫折してしまいます
Pythonはプログラミング言語の中でも圧倒的簡単と言われています。そしてC言語 Javaが難しいと言われています。
7位にあるJavascriptはウェブサイトを作りたい人には必須のプログラミング言語になるので、動くwebサービスを作りたい人はこちらから勉強するのがおすすめです。セットでHTMLとCSSの勉強も必要になります。
hello worldを表示させる方法で比較して見てみましょう
python
print('Hello world')
C言語
#include <stdio.h>
int main(void) {
printf("Hello, world.\n");
}
Java
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world.");
}
}
Javascript
console.log("Hello world");
こうやってみると、一番Pythonが1行でかけてかんたんですよね。javascriptもかんたんですが、HTMLとCSSの勉強も必要になってくるので、そちらもしたいならセットでやるといいと思います
Javaに関しては文字を表示するだけなのに、これだけ長く書かなければいけないとなると、タイピングミスなどでエラーが起きてなかなか学習が進まなくて挫折してしまうのは仕方がないと思います。
実際私はpythonでプログラミングの勉強をはじめましたが、はじめてのプログラミングなので悩むことは非常に多いですが、挫折することなく楽しく勉強をすすています。
学習目的が特に決まっていなければ、最初はPythonから入ることをおすすめします。ウェブサイトや業務の自動化ができたり、今人気の機械学習などもできます。
もしウェブサイトを作ったりやウェブデザイナーなどのウェブ系の技術を身に着けたいならJavascriptとHTMLとCSSを勉強するのがおすすめです。
PC初心者も安心!実際にプログラミングを書きながら勉強したい人向けサービス
- 本を買ったけど開発環境を整えるところで挫折した
- プログラミングを実行して確認しながら勉強したい
- サービスに登録するのがめんどくさい
ドットインストールやprogate、paizaなどは実際にコードを勉強できるのがいいんだ!っていう人もいるかと思います。
本や独学だと、自分で設定するのが大変という人もいるかと思います。そういう人向けにいいサービスがあります。
https://www.tutorialspoint.com/codingground.htm
メジャーなプログラミング言語からマニアックなものまで対応しているので勉強したい物があれば、まずはこのサイトを使ってすぐにコードを書いて実行して試すことができます。
こちらのサイトならわざわざ登録しなくても、実際にコードを書いて実行することができます。
使い方はかんたんで、
利用したいプログラミング言語をクリック
コードを書いて左上のexecuteをクリックして実行するだけ
ネットさえ繋がっていればどこでも学習ができるので、気軽に勉強ができます
さらにこのサイト様々なプログラミング機能のチュートリアルがあって学習することができます。ただし英語なので初心者の方には少しハードルが高い。
今回は、プログラミングを実行することができる環境を簡単に使えるツール部分だけ利用しましょう
日本語対応の無料プログラミング学習サイトfreecodecamp.org
HTML CSS Javascriptを勉強したい人はかなりおすすめのサイトです。それだけでなく、pythonやデータベースなどなど中級者までも十分対応しているのでこれだけで1年間勉強できてしまいます。
pythonから勉強したい人は、こちらよりも日本の有名大学の講義資料が無料であるのでそれを使うと便利です。このページの下の方で紹介しています。
ドメインのorgから分かる通り、このサイトは非営利団体が提供するサービスで、日本語対応もついにされました。アドセンスなどの広告もなく、あるのは、たまに表示される寄付の表示です。
月5ドル継続か単発の募金依頼がたまにポップされる程度です。それでも安い日本円で600円だもの
当然ですが、Youtubeチャンネルもありますhttps://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ
エンジニアが500万人の登録しているチャンネルです。興味のある人は日本語字幕を表示させてどうぞ
freecodecampの卒業生の就職先Google Microsoft Amazonなど!
実績のインタビュー記事を見てもらえればわかりますが、大手就職も夢じゃありません。もちろん、アメリカの企業なので、英語が必須な部分もありますが、語学さえクリアすれば大手に入ることも可能です。
卒業生は4万人以上いますそして、どこに就職したか確認する方法があります
Linkedinでfreecodecampを使った人たちの就職先やその後をチェックできるのです
この記事を書いている時点で
- Amazon:599人
- IBM:496人
- Microsoft:485人
- Accenture:464人
- Google:361人
上位の中からみんなが知ってそうな会社をピックアップしてます。AppleやSpotifyで働いている人もいますが、上位10以外だったので人数は見れませんでした。
無料のサービスなのに、これだけ大手の企業に就職できるなんてすごいと思いませんか?
なぜこれだけの結果が無料で出せるのか気になりますよね?学習コースがガチでやばいぐらい整っているのです
無料プログラミング学習サイトなのに合計3000時間のコース内容
よくネットでProgateは何回やればいいの?ドットインストールは?みたいな書き込みを見ますが、そんなかんたんに回せるようなレベルの低い内容ではありません。
1日3時間やって3年近くかかります。それぐらいボリュームがすごい。学習できる項目一覧はこちらです。基本は上から順番に受講していきます
レスポンシブルデザイン:300時間
HTML5・CSS3・アクセシビリティ・レスポンシブルデザインのwebサイトを作ります
レッスンの最後には、実際にお手本のサイトをみて、自分なりにHTMLやCSSのコードを書いて、実際にテスト機能を使って要件を満たしているかチェックされる機能もあります。
Javascript:300時間
基礎からアルゴリズム・オブジェクト指向プログラミングが学べます
フロントエンド開発ライブラリ:300時間
HTML CSS Javascript を応用しながらBootstrap Sassを使い、ショッピングカートや他のアプリケーションを構築しながら、強力なシングルページアプリケーション (SPA) を React と Redux で作成する方法を学習します。
データの可視化:300時間
D3.js ライブラリを使用して、様々な種類のデータを表すチャート、グラフ、およびマップを構築。 JSON (JavaScript Object Notation) について、そして API (Application Programming Interface) を使用してオンラインでデータを扱う方法についても学習します。
バックエンド開発と API:300時間
Javascriptはサーバでもりようできるのでそれを利用し。Node.js と npm (Node Package Manager) を使用してバックエンドアプリを記述する方法を学習します。また、Express フレームワークでウェブアプリケーションを構築し、そして MongoDB と Mongoose ライブラリで People Finder マイクロサービスを構築します。
品質保証:300時間
ChaiというJavaScript のテストライブラリをつかってアプリケーションが期待通りに動作することを保証する方法を学習します。
高度な Node と Express の概念を学習するためにチャットアプリケーションを構築します。また、テンプレートエンジンとして Pug を、認証のために Passport を、そしてサーバーと接続されているクライアントの間のリアルタイム通信を行うために Socket.io を使用します。
Python を用いた科学的コンピューティング:300時間
変数、ループ、条件式、そして関数のような、Python の基本を学習します。それから、複雑なデータ構造、ネットワーキング、リレーショナルデータベース、そしてデータ可視化まで
Python を用いたデータ分析:300時間
Santiago Basulto によって作成されたこれらの幅広いビデオコースで、データ分析の全工程を学習します。データを複数の情報源 (CSV, SQL, Excel) から読み出し、そのデータを NumPy と Pandas を用いて加工し、Matplotlib と Seaborn を使用してそれを可視化します。
情報セキュリティ認定講座:300時間
オンラインで人々の情報を保護する基本を学習するために、 HelmetJS で安全なウェブアプリを構築します。また、Python で TCP クライアントと、Nmap およびポートスキャナーを構築します。
githubを使ったりしますので、使い方も覚えましょう
Python を用いた機械学習:300時間
TensorFlow フレームワークを使用して、いくつかのニューラルネットワークを構築し、自然言語処理や強化学習のようなより高度な技術
コーディング面接対策:数千時間
アルゴリズム、データ構造、および数学の知識をテストする何百ものコーディングチャレンジを含んでいます。技能を向上させ、またはポートフォリオに加えるために活用できる多くの宿題プロジェクトもあります。
リレーショナルデータベース (ベータ版 英語のみ):300時間
VS Code、PostgreSQL、そして Linux / Unix コマンドラインを含む本格的な開発者ツールとソフトウェアを使用して、インタラクティブなチュートリアルを完了し、プロジェクトを構築します。
これらのコースは基本的な Bash コマンドから始まります。ターミナルを使用して、ファイルシステムの移動や操作から、Bash 内でのスクリプト、幅広い高度な使用法まで、すべてを学習します。
次に、データベース管理システムである PostgreSQL と、これらデータベースの言語である SQL を使用して、リレーショナルデータベースの作成、操作方法を学習します。
最後に、すべての開発者にとって不可欠なツールである、バージョン管理システムの Git について学習します。
HTML CSS Javascriptをやるならfreecodecamp.orgで十分
実際にコードを書きながら、勉強を進めていき、最後にはテストがあって実際に自分で作って、それをテストする機能まで搭載しています。
以下の 5 つの Web プログラミングプロジェクトを完了し、レスポンシブウェブデザイン認定証を取得しましょう。
トリビュートページを作成する
アンケートフォームを作成する
プロダクトのランディングページを作成する
テクニカルドキュメントページを作成する
個人ポートフォリオのウェブページを作成する
っとこのように5つの課題のページ制作があります
Javascriptについてはデバックの方法やアルゴリズムなどの問題が多いです
5 つの JavaScript の問題
回文チェッカー
ローマ数字への変換
シーザー暗号
電話番号の検証
キャッシュレジスター
Pythonの無料教材は東大・京大の無料教材を使おう
freecodecamp.orgでのpythonの授業はビデオ講義が中心なので、実際に作るというイメージがなかなか伝わりにくいと思います。
それなら、日本語のサービスを使ったほうがいいじゃん!って思いますよね
日本最高峰の大学が無料でpythonや機械学習の教材を無料で提供しています。高い学費を支払わなくても無料で学習ができるのです。
この中から自分にあった教材を選べばいいのです。
東大と京大は有料の書籍レベル以上の内容
東大と京大の無料配布されているpythonの学習資料は、市販されているやさしいPython (「やさしい」シリーズ)をほぼ網羅している内容となっています。
こちらの書籍を買うなら、東大京大の無料資料を読めばいいし、印刷すればいい。でも印刷すると、ページ数がすごいことになるので、印刷するならコスト的には本を買ったほうがいい
わたしも、やさしいPython (「やさしい」シリーズ) の本を持っています。ちょっとわからな書くなったときとかに読み直すレベルです。
わからないことがわからないということを理解するには入門書やこういった無料の講義資料は手元にあったほうがいいです。パラパラめくりながら、あ!これしらなかったってなるので。
東京大学:Pythonプログラミング入門 300ページ以上 無料
東大だからどうせ難しい内容になってるんでしょ?って思うかもしれませんが、小中高生でもできます。パソコンの設定から順番に解説されています。項目ごとに問題があるので、実際に考えてコードを書く習慣も身に付けることができます。
開発環境を整える必要もないのですぐに勉強を始められます。必要なのはgoogleアカウントだけ
目次
Colaboratoryによるノートブックの使い方
数値演算
変数と関数の基礎
論理・比較演算と条件分岐の基礎
デバッグ
文字列 (string)
リスト (list)
条件分岐
辞書 (dictionary)
繰り返し
関数
ファイル入出力の基本
イテレータ
コンピュータにおけるファイルやディレクトリの配置
モジュールの使い方
モジュールの作り方
NumPyライブラリ
内包表記
高階関数
クラス
pandasライブラリ
scikit-learnライブラリ
Jupyter Notebook の使い方
セット (set)
再帰
簡単なデータの可視化
CSVファイルの入出力
Bokehライブラリ
Pythonスクリプトとコマンドライン実行
Matplotlibライブラリ
正規表現
京都大学:プログラミング演習 Python 200ページ以上 無料
こちらは開発環境を整える方法から解説されています。小中高生でも、理解できる内容になっています。無駄がなく、シンプルに解説しています。実際に物を作る、いろんなものを使ってpythonをさらに楽しく使ってみようという遊び心があります。
東京大学の資料をやって、その後に、もっと拡張性が広い部分を学んでみたいなと思ったらこちらをやってみるのもあり。
個人的には東京大学のほうが項目ごと確認問題があるので、そちらのほうが初心者にはおすすめ。
プログラミング演習 Python 2021(Version 2021/10/08 )
コンピュータとプログラミング
pythonの実行環境と使い方
変数と演算、代入
リスト
制御構造
京都の街を作る
関数を使った処理のカプセル化
Turtleで遊ぶ
Tkiterで作るGUIアプリケーション
クラス
ファイル出力
三目並べで遊ぶプログラム開発
pythonの学術利用
Javaの学習は筑波大学の講義動画
こちらは動画形式の講義になります。最初の動画にもありますが、文系で全くわからない人も対象と言っているので、安心して学習ができます。
こちら、三谷純講師が執筆した書籍がありますので、そちらを購入して勉強するのがおすすめです。書籍はなくても大丈夫と説明しているので、お金のない方は買わなくても大丈夫です。でも1冊本があると、振り返りや悩んだときにすぐに調べることができるのであったほうがよき。
授業で使っている書籍は版が古いので合わせるならこちら
最新版をほしいならこちら
授業URL
https://ocw.tsukuba.ac.jp/course/systeminformation/java/
Java言語に触れる
Java言語の基本
条件分岐と繰り返し
Javaの基本構文for,whileによる繰り返し処理と配列
クラスの基本
クラスメソッド
メソッドによる配列・参照の受け渡し
インスタンスメソッド、コンストラクタ
継承・標準入力の読み込み
ポリモーフィズム・アクセス修飾子
抽象クラスとインターフェース
C言語は国立理系のトップ東京工業大学の無料講義資料
国立理系トップの東工大にはC言語の無料教材があります。ボリューム感はそんなに多くないのですぐに終了させることができると思います
プログラミングの準備
算術演算と変数
関数の作成と利用
制御構造
キーボードと画面を使った入出力
配列と文字列
配列と文字列(続)
ファイルへの入出力
ポインタと配列
構造体
ポインタとリスト構造
プログラムの分割
初心者に優しいと評判:苦しんで覚えるC言語
名前から初心者に厳しそうなイメージがありますが初心者を対象にしたC言語の学習サイトです。サイトからC言語の開発用のツールをダウンロードできるので、開発環境を整える必要もほとんどなし。すぐにC言語を学習することができます。
こちら書籍版もありアマゾンの評価非常に高いので、テキストとして手元に本が欲しい人にも安心です
プログラムの書き方
画面への表示
数値の表示と計算
数値の記憶と計算
キーボードからの入力
比較と判断
場合分け処理を行う
回数が決まっている繰り返し
回数がわからない繰り返し
関数の作り方
変数の寿命
複数の変数を一括して扱う
文字列を扱う方法
ポインタ変数の仕組み
複数の型をまとめる
ファイルの取り扱い
マクロ機能
動的配列
複数のソースファイル
機械学習授業は筑波大学の講義
筑波大学の佐久間 淳教授の講義になります。IBMでも努めていた実績のある方の授業になります。講義で使うレポートも各回ごとのページにリンクがあるので確認できます。練習問題などもあるので復習ができます。
この授業は10年以上やっており、当初は情報科の生徒ですら殆ど知らなかったなかで作り上げた学習カリキュラムなので、機械学習って何?からなぜそれができるのか?っという部分から学習することができます。
https://ocw.tsukuba.ac.jp/course/systeminformation/machine_learning/
機械学習概論と単回帰 (1)
機械学習概論と単回帰 (2)
重回帰 (1)
重回帰 (2)
モデルの複雑さと汎化 (1)
モデルの複雑さと汎化 (2)
特徴選択とL1正則化 (1)
特徴選択とL1正則化 (2)
決定的識別モデル (1)
決定的識別モデル (2)
カーネル/確率的識別モデル1 (1)
カーネル/確率的識別モデル1 (2)
確率的識別モデル2/経験損失最小化 (1)
確率的識別モデル2/経験損失最小化 (2)
k-meansと主成分分析(1)
k-meansと主成分分析(2)
ニューラルネットワーク1 基礎とCNN (1)
ニューラルネットワーク1 基礎とCNN (2)
ニューラルネットワーク2 RNNとGAN (1)
ニューラルネットワーク2 RNNとGAN (2)
データベース入門も筑波大学の講義
データベースシステムに関する入門からSQLやデータベース設計について学習できます。
講師の北川 博之教授は日本データベース学会会長もつとめています
講義自体は無料で見ることができますが、教材は本人著書のデータベースシステムを利用します。
動画を見て勉強がしたいと思ったら購入すればよいですね
中古で500円で買えます。学習コストとしては非常に安いです。
https://ocw.tsukuba.ac.jp/course/systeminformation/database-systems-i/
講義一覧
データベースシステムの基本概念 (1)
データベースシステムの基本概念 (2)
データモデリング(1)
データモデリング(2)/リレーショナルデータモデル(1)
リレーショナルデータモデル(2)
リレーショナルデータモデル(3)
リレーショナルデータモデル(4)
リレーショナルデータモデル(5)/リレーショナルデータベース言語SQL(1)
リレーショナルデータベース言語SQL(2)
リレーショナルデータベース言語SQL(3)/リレーショナルデータベース設計論(1)
リレーショナルデーターベース設計論(2)
リレーショナルデーターベース設計論(3)
リレーショナルデーターベース設計論(4)
リレーショナルデーターベース設計論(5)
物理的データ格納方式(1)
物理的データ格納方式(2)
物理的データ格納方式(3)/問合せ処理(1)
問合せ処理(2)
問合せ処理(3)
わからない誰かに相談して動かないコードを見てほしいQ&Aサービス
プログラミングの質問は専用のサイトで質問するのが一番です。でも15分と言わず1〜2時間はしっかり悩みましょう。私は1〜2日悩んで解決しなかったら質問するようにしています。
質問サイト:teratail や Qiita で質問しましょう
質問するときは、答えを聞くのではなく、しっかりと、●●を調べてやってみましたが、解決できませんといった感じで、しっかりと調べたことを書いてそれでうまく行かないということを伝えましょう。●●がわかりません。教えて下さい。 といった検索すること自体を放棄しているような質問はしてはいけません
わからないことがわからないと思います。何がわからないのか、っということを自分でしっかりと調べ把握して質問することが大事です
これだけ最強の無料教材があってできないは言い訳だ!
Python C言語 Java HTML CSS Javascript あなたが学びたいプログラミング関係は無料でできることがわかりました。
開発環境を整えなくてもできることがわかりました
あとは、テキストや講義を開いて、実際に学習するだけです。
困ったら、 質問できるサイトも紹介しました。これで途中でわからなくなっても大丈夫です。
ここまで完全無料でできて、質問もできて、あとは何が必要ですか?もう言い訳はできません。やりましょう!