🔰

何も考えずに勉強したい人のためのプログラミング系教材まとめ

2024/09/08に公開

特に目的もなく、いい感じに勉強ができるプログラミング系の教材まとめメモです。

★☆☆☆:ただのゲーム。でもちょっと勉強になるかも?

教材まとめなのに初手ゲームを紹介します。
一切勉強せずに遊んでるよりはマシみたいな感じです。自分を誤魔化して徐々にモチベを上げていきましょう。

ゲーム:Hacknet

https://store.steampowered.com/app/365450/Hacknet/?l=japanese
チート級ハッキングツールを使って色んなサーバーに入りファイルを盗んだり、伝説のハッカーの死因を探ったりするゲームです。
お手軽ハッキングツールでハッキングするゲームなので、セキュリティの勉強になるわけではないですが、CUI 操作で ls コマンドを使ったりポートの名前が出てきたりします。
ターミナルが怖い方、これで慣れましょう。

ゲーム:マルウェア

https://store.steampowered.com/app/3019370/_/
こんな名前ですがゲームです。いや、ゲームですらないです。延々とインストーラーを実行するだけの苦行
いわゆるネタゲーなのですが、クリア後の謎解きで、そこそこ専門的な知識が必要になります。
あと、利用規約を読むことの大事さも教えてくれる。

★★☆☆:楽しくてちょっとためになる

勉強になったり為になる内容があるけど、勉強要素抜きでも楽しめるやつです。
勉強したくないけど、勉強したってことにしたい人にオススメです。あの手この手で勉強継続記録を伸ばしていきましょう。

動画:脆弱エンジニアの日常

https://www.youtube.com/@full-weak-engineer
「脆弱だな~」で有名なやつです。
知識がなくても雰囲気で笑えるコントがアップロードされてたりします。
知識があるともっと楽しいので、このチャンネルを見て勉強のモチベを上げましょう。

ゲーム:while True: learn()

https://store.steampowered.com/app/619150/while_True_learn/?l=japanese
天才ネコの言葉を知るために AI だとか機械学習を勉強するゲーム……
の皮を被った、ただのパズルゲームです。
でも、ステージをクリアするたびにガチな機械学習の教材に誘導されます。

ゲーム:バグハンター2 REBOOT

https://www.freem.ne.jp/win/game/30836
ミノ駆動さん作のバグを対峙する RPG ゲーム
純粋に RPG として遊べる一方で、技名などが全部バグとかリファクタリングに関する用語になってます。
副読本として、同作者による「良いコード/悪いコードで学ぶ設計入門」をあわせて読むと良い感じ。
https://gihyo.jp/book/2022/978-4-297-12783-1

ブラウザゲー:VIM Adventures

https://vim-adventures.com/
マウスを使わないエディタ、よく宗教戦争が起きているエディタ
そう、VIM です。
VIM の勉強ができるチュートリアル的なゲームを通して、タイピング速度で差をつけろ。

無論、VSCode 派の方も問題なく VIM はできます。
https://marketplace.visualstudio.com/items?itemName=vscodevim.vim

慣れてきた人はタイムアタックで、さらに差をつけろ。
https://vim-racer.com/

★★★☆:勉強になるし役にも立つ教材

お待たせしました本編。勉強のための勉強コンテンツです。

入門サイト:苦しんで覚えるC言語

https://9cguide.appspot.com/index.html
プログラミングはじめましての人向け
他のサイトと比べてやや硬派、良く言えば誤魔化しの説明が少ない。
私はこのサイトで育ちました。

競技プログラミング:AtCoder

https://atcoder.jp/?lang=ja
みんな大好き競技プログラミング
入社試験とかでコード書かされたり、アルゴリズム力が必要になったり、とにかくコードが書きたかったり。
そんなときは、競プロの問題をやりましょう。
競争なんてしたくないよな人は、本番には出ずに過去問だけやっても良し↓。
https://kenkoooo.com/atcoder/#/table/

問題集:Project Euler

https://projecteuler.net/
素数の判定とか、数学の問題をひたすら集めたサイト
競プロをしたくないという逆張りオタクの方におすすめ

チュートリアル:Pro Git Book

https://git-scm.com/book/ja/v2
プログラミングできる人はみんな Git をやった方が良いよって言う
バージョン管理ソフトの Git の教材。ガチな本が全部無料。

ブラウザゲーム:Learn Git Branching

https://learngitbranching.js.org/?locale=ja
勉強なんてしないんや、体で Git を覚えたいんやって人向け
ブラウザ上で Git のコマンドを打つと、コマンドの結果が分かりやすく図で表示されるゲーム的なやつです。
大丈夫、Git は怖くないよ。

チュートリアル:正規表現

https://regexone.com/
文字列を処理するときは正規表現を使うととても便利
でもみんな雰囲気で使ってます。
そんな正規表現の基本文法を試しながら学べる手頃なチュートリアルです。

チュートリアル:The Rust Programming Language 日本語版

https://doc.rust-jp.rs/book-ja/
硬派なプログラミング言語こと Rust の公式チュートリアルの日本語版
文法の入門から、超簡単な Web API まで、超丁寧に教えてくれます。
Rust 興味なくても、他の言語の解像度が1段上がったりするのでオススメです。

問題集:基本情報技術者過去問道場

https://www.fe-siken.com/fekakomon.php
みんな大好き IT 技術者系の資格の過去問ができるサイト
ぶっちゃけ資格とらなくてもアプリは作れるけど、ふとした瞬間に、「あれオレって何を知ってて何を知らないんだ?」って状態になるので、座学は大事。
他にも、応用情報技術者やら、ネットワークスペシャリストやらもあります↓。
https://www.fe-siken.com/link.html

チュートリアル:The Missing Semester of Your CS Education (日本語版)

https://missing-semester-jp.github.io/
MIT の学部生が受けてる授業の日本語版
コードは書いてるけど、Linux 使ったことなくね? な人向け。
プログラミング言語には含まれてないけど、なんか知っておいた方がいい入門的な内容まとめ。

ゲーム:Turing Complete

https://store.steampowered.com/app/1444480/Turing_Complete/?l=japanese
ゲームという名の論理回路シミュレーター
簡単なビット演算から、アセンブラが動くところまでステップバイステップで勉強できます。
パズルゲームが好きな人や CPU の仕組みが気になる人はどうぞ。

ゲーム:Bitburner

https://store.steampowered.com/app/1812820/Bitburner/
JavaScript で自動化するのが目的のゲーム
クッキークリッカー × プログラミング
簡単なコードからガチなコードまで、ハッカー気分でプログラミングを学べます。

入門サイト:Developer Roadmaps

https://roadmap.sh/
色んなエンジニアになるために何を勉強すべきかがまとまっているサイト
バックエンド ~ AI まで本当にいろいろ揃ってる。
何を勉強すればいいか困ったら、とりあえずここを見る。

動画:プログラミング系 VTuber

https://zenn.dev/etrnl_tamayura/articles/intro-virtual-programmer
過去に私がまとめた記事
プログラミング系 VTuber は結構いる。実際に人がプログラミングしてるところを見ると勉強になるし、作業用 BGM にしてもいい

問題集:Python Type Challenges

https://github.com/laike9m/Python-Type-Challenges
型のない Python を使っていて本当にこれでいいのかと思っているひと向け。
Python で型を扱う方法が学べる問題集です。


こっからは Web 系

動画:ムーザルちゃんねる

https://www.youtube.com/channel/UCLPHXwLp90A5R69Eltxo-sg
ガッツリ勉強ってわけでもなく、意識が高いわけでもなく、良質なエンジニアトークが聞きたい人へ
Web フロントエンドのエンジニアがゆるくしっかり技術トークをしてるチャンネルです。
特に、最近の Web フロントエンドの流行り廃りに振り回されて疲れてしまった人にオススメ。

チュートリアル:mdn web docs

https://developer.mozilla.org/ja/docs/Web/Tutorials
HTML + CSS + JavaScript を学ぶならここ以外ありえない(過言)
まぁ、ここが実質本家みたいなものなので、とにかくここで勉強すると良い。
簡単にサイトが作れる系のフレームワークから入って、よく考えたら CSS ちゃんと勉強したことないなって人は特にオススメ。
内容豊富で情報も新しい

チュートリアル:SQL Tutorial

https://www.w3schools.com/sql/default.asp
SQL(に関わらず)初心者向けの文法確認クイズが揃ってるサイト
サクッと一通りの文法をおさらいしたい人にオススメ

チュートリアル:Svelte

https://svelte.jp/
Web フロントエンドのフレームワーク Svelte のチュートリアル
個人的オススメ
環境を作らなくてもブラウザ上で試しながら、色んな機能を学べて楽しい。
チュートリアルが手厚いフレームワークはいいですね。

書籍:達人が教えるWebパフォーマンスチューニング

https://gihyo.jp/book/2022/978-4-297-12846-3
ISUCON ← Web サービスをいい感じに高速化するコンテスト
ただ Web アプリを作ってみただけでは満足できなくなった人向け
特に書籍は、環境構築から丁寧にキャッシュなどを活用してアプリを高速化する方法が学べて楽しいです。
https://isucon.net/


こっからはデータ分析・機械学習系

問題集:データサイエンス100本ノック(構造化データ加工編)

https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
データサイエンスといってるけど、基本は黙々とテーブルデータを整形・加工するだけの問題100問
データ分析の基礎の基礎をひたすら素振りする感じ
Python、R、SQL の3言語用意されていて、とにかくデータを加工したい人にオススメ。

問題集:言語処理100本ノック

https://nlp100.github.io/ja/
自然言語処理の実用的な練習問題100本
今流行りの、いわゆる大規模言語モデル (LLM) に繋がるまでの技術を一通り触れる骨太な内容です。
データの前処理 ~ 基礎的な分析 ~ Transformer モデルの構築まで、実践的なテキスト処理を学びたい人にオススメ。

チュートリアル:機械学習帳

https://chokkan.github.io/mlnote/index.html
東工大の学部生向けの授業のサイト
線形モデル ~ ニューラルネットにクラスタリングまで、基本的な機械学習モデルの使い方とその理論が勉強できます。
たまにこうして、大学の良質な授業資料が無料でアクセスできたりするんですよね。

チュートリアル:データ・マイニング

https://ie.u-ryukyu.ac.jp/~tnal/2021/dm/static/Readme.html
こちらは琉球大学の学部生向けの授業サイト
一つ前で紹介したサイトに比べると、実践寄りの内容
データをあれこれ弄って分析してみたい人にオススメ

★★★★:マニアック過ぎて勉強にはなるけど役に立つかは分からない教材

楽しくて良い教材なんだけど、専門的すぎてどこで役に立つのか分からないやつら

ゲーム:A=B

https://store.steampowered.com/app/1720850/AB/?l=japanese
AをBに置換する命令しかない言語で色んな入力を処理していくパズルゲーム
いくつか機能を追加すると、こんな単純な言語がチューリング完全になったり……
普段のプログラミングとは全然違う筋肉を使ってる感じが楽しいゲームです。

問題集:Type Challenges

https://github.com/type-challenges/type-challenges
あのチューリング完全と噂の TypeScript の型を極める問題集
普段のコーディングなんて、せいぜい easy レベルで済むでしょと思うほどに、アホみたいな難易度
型機能でソートできるって何?

さいごに

そんな感じで、何も考えずに勉強したい人のためのプログラミング系教材まとめでした。
正直こんだけ挙げてますが、全部やったわけでも、全部覚えてるわけでもないです。
それでも、知識が増えるのは楽しいですし、忘れた頃に必要になって、「あっこれどっかでやったやつ!」ってなるとすごく勉強になるので、忘れたとて一度頭に入れたことは身につくんじゃないかなと思ったり……

みなさんのオススメのプログラミング系教材も教えて下さい!!!ノシ

Discussion