概要
本当に初心者の状態で、これからプログラミングを始める人向けのポイントについてまとめておきます。
技術的に何から始めたらいいのか、どういう事をイメージして取り組めばいいのかのまとめです。
そもそも、プログラミングとは
使われる意味としては、2つある。
- コンピュータ言語を記述すること。言語記述(コーディング)
- 言語記述(コーディング)を含めた、プロダクトやサービスを生み出す一連の作業
IT サービスを分けると大きく3ジャンル
- Web アプリ(Webブラウザを通して利用するサービス)
- ネイティブアプリ(スマホアプリ、PCにインストールするツールなど)
- 組み込み系(ロボット、IoT、ドローンなど)
初心者が短期間で成長できる学習方法
- 学んだ知識を絵で説明する
- 紙/ホワイトボードを使用して、文字と図形で説明する
- 小学生が聞いてもわかる説明をゴールにする(小学校5〜6年生)
- 実践形式で学習する
- 実際に何かを作りながら成長するイメージ(何かすでにあるもののマネでも良い)
- 言語やフレームワークの公式のチュートリアルとかでもOK
- Progate(プロゲート)
- ドットインストール
- Udemy(ユーデミー)(お金を多少かけてもいい人なら)
- 有識者に質問できる環境を確保する
- 現役のエンジニアと個別に対面で話せる環境を目指す
- 知恵袋的なサービスでは「質問力」が必要になるが、初心者にはハードル高い
プログラミング学習のコツ
プログラミングの勉強をする上で意外と重要なポイントは...
『全てを覚えようとしないこと』
その理由は👇
-
現役エンジニアでも ネット検索頼り
- 医者や弁護士の様に、多くの知識を暗記して仕事しているわけではない
- 現場では、ネット検索でほとんど解決している
- 逆に、ネットが使えないと仕事がほとんどできないエンジニアもごまんといる
- 「検索能力」がエンジニアには重要
-
現役エンジニアにも 不得意領域がある
- みんな何でも知ってるわけではない(特に日本は)
- 役割分担して作業することが多いので、知らない分野もたくさんある
- 例:「Web画面できるけど、バックエンド書けない」「バックエンドわかるけど画面書けない」「アプリ作れるけどインフラやネットワークあまりわからない」「プロジェクト管理や資料作成はよくやるけどプログラム書けない」
-
後回しで良い知識も たくさんある
- 別に知らなくても何も実務で困らない知識もたくさんある
- 優先度の低い知識は、後回しで良い
- 例:「HTMLとはハイパーテキスト・マークアップ・ランゲージの略である」「HTMLはプログラミング言語ではない」
-
経験を積んでいく内に 自然と身に付く
- 暗記より実践を優先する
- ネット検索で解決してる内に、自然と覚えていく
- エラーにぶつかった時が一番の成長チャンス
- 経験ベースの方が「なぜ?」が身に付く
人はなぜ成長できるのか
【成長のメカニズム👇】
小さな成功体験 + それを支援する環境 =「努力感」のない努力
➡︎ 結果、成長をもたらす(※ 個人的意見です)
- 小さな成功体験:「学んだ知識を絵で説明する」「実践形式で学習する」が該当する
- それを支援する環境:「有識者に質問できる環境を確保する」が該当する
- 「努力感」のない努力が、ガンガン能力を伸ばし、自然と実績と自信を生み出す
- 数字や行動量だけをあげれば、他人から見たら「努力」。しかし本人は「夢中なだけ」
おススメのIT学習フロー
まず、パソコン(PC)を購入し、必要なソフトをインストールして「開発環境」を整える。
その後のオススメの流れ。
- ❶ 最初に学習すべきは Web フロントの言語
- HTML:画面のレイアウトや構造を決める
- CSS:画面を装飾する、細かいレイアウト調整を行う
- JavaScript (JS):画面に動きをつける、通信等の処理を行う
- ❷ 次に、Web フロントでよく使われるライブラリやフレームワーク、エコシステムに触れる
- jQuery:昔から使われているライブラリ
- Bootstrap:デザインでよく使われるフレームワーク
- Angular(もしくは Vue, React)
- ❸ Web バックエンドの言語・フレームワーク、DBに触れる
- node.js、Nginxの導入
- TypeScript(もしくは JavaScript)で簡単に書いてみる
- MySQL を導入してみる
- ❹ クラウドサービスに触ってみる
- クラウドサービスを契約して、無料枠で Web サービスを公開・運用してみる
- ❺ モバイルアプリの学習へ...
なんだかんだで基礎からやると、未来で差がつきます。
まとめ
とりあえず、手を動かす。ガンガンいこうぜ!