プログラミング初学者の為の教材
概要
何も知らない人向けに、教えることやプログラミングの教材をまとめる。( 教える内容ではない )
なお、コンピュータサイエンスのような学術的な内容は別で学んでもらうことを想定している。
( IPA試験の内容は学術的なのでここでは対象外 )
事前準備
初学者がプログラミングで何を作りたいのか明確にしておく。
これはモチベーションの維持と、何の言語から始めるかに影響する。
学習サービス
初学者が独学で学ぶことが出来るサイト、最初に教える。
Progate
Paiza
ドットインストール
読んだほうが良い記事・本
心構え
勉強会に積極的に参加する
イキらない
学んだことをアウトプットする ( ブログ書く, コード書く )
一人で悩み続けないで他人に質問する
人工知能は幻想、世間で人工知能と呼ばれているのはデータサイエンス
Slack, Trello, Qiita 等のツールを覚える
Twitterをやる
必要な知識
入門
ITで出来ること ( 作業の自動化, 妄想の具現化, 金稼ぎ... )
各言語の紹介
プログラミング入門 ( Hello, World! )
基礎
環境構築力, 検索力 ( 自力でエラーを解決する力 )
プログラミング技術基礎 ( 基本制御構造, OOP )
Git 入門 ( 概念, コマンド, GitHub )
アルゴリズム基礎 ( ソート, 探索, データ構造 )
システム設計入門 ( UML, アーキテクチャ, DDD )
Linux 入門 ( インストール, コマンド, httpサーバ構築, Vim )
応用
プログラミング技術応用 ( SOLID原則, GoFデザインパターン, ユニットテスト)
データベース基礎 ( DBMS, SQL, ORマッパ )
セキュリティ入門 ( Web, 低レイヤー, プログラミング )
HTTP通信基礎 ( API, JSON, GET / POST とか )
AWS入門 ( EC2, S3, CloudFront... )
関数型プログラミング入門 ( 型システム, イミュータブル... )
開発
Webバックエンド開発 ( PHP, Rails, Java, Scala, Kotlin... )
Webフロントエンド開発 ( JavaScript, React, Vue.js )
Androidアプリ開発 ( Kotlin )
iosアプリ開発 ( Swift )
ゲーム開発 ( Unity, DXライブラリ, Cocos2D-X )
はじめの一歩
好きな言語で Hello, World! を表示させる
基本制御構造を覚える
トランプとかマルバツゲームとか作ってみる
OOPを覚える
トランプとかマルバツゲームをOOPで書き直す
ユニットテスト作る
GitHubにリポジトリを作り、作ったゲームをコミットしてみる
次の一歩に進む