感想と要約「 プログラミング入門講座 基本と思考法と重要事項がきちんと学べる授業」

SHARE

感想と要約「 プログラミング入門講座 基本と思考法と重要事項がきちんと学べる授業」

読書メモです

対象の読者

完全なプログラミング未経験者だがきちんとプログラミングを習得したい人

社会人の一般教養としてプログラミングの基本を身につけたい人

子供向けのプログラミング教育に興味がある人

プログラミングスキルの想像以上の価値

高まるプログラミングスキルの価値

プログラミングを学ぶ過程ではコンピューターへの命令の出し方 を学ぶことにより論理的思考法の習得に役立つ

また思い通りに動かないことがあるならば 一つ一つ課題を設定し クリアしていく必要がある

これは問題解決能力の向上につながる

 

エンジニアになりたいわけでもなく 子供プログラマーにしたいわけでもない

そんな人でも プログラミングを習得することは価値があることだ

 

また世界的に深刻なエンジニア不足であり 特に日本のエンジニアが不足している

裏を返せばプログラミングができる人の需要が非常に高く プログラミングスキルを身につければ引く手数多で食に困ることはなくなり、転職就職のために資格試験の合格よりも実践的なプログラミングスキルを身につけたいという人が急増している

プログラミングスキルの必要性

最近の事例ではUberやAirbnbのように 新興企業が新しいアイデアとテクノロジーで従来の競争ルールを完全に変えてしまうことがある

今後はどのような産業どのようなサービスであっても it の基礎知識やプログラミングスキルが求められる

日本でも建材プログラミングの義務教育化が2020年に向けて検討されている

効率よく確実にプログラミングスキルを習得する方法

プログラミングとは 大きく二つの観点に分けられる アイデアを発案して設計する作業と開発する作業にある

今までのプログラミング教育の問題点は アイデアを考えることよりも 特定のプログラミング言語の文法を学習することを先に行っていたことにあった

そのために最初の理論学習の段階で多くの人が挫折してしまった

 

一方現在のプログラミング教育では実際に何かを作る過程を経験しながらプログラミング言語の文法は学んでいく

こうすることで今学んでいることを 習得することで何かが実現できるようになるといったイメージができるようになった(こっちの方が楽しい)

最良のプログラミングの学び方

プログラミング学習サービスや教材アプリを利用する

ワークショップスクールに通う

書籍やWebの情報などで学習する

主な学習サービスの概要と特徴

hour of CODE

自分で組み立てたプログラムをすぐに確認できる

スターウォーズやアナと雪の女王などが登場する

これほどナチュラルな形でプログラミング学習できるサービスは他にない

 

4歳以上対象に設計されてる学習サービスで 勘のいい子供なら3歳でも操作できる

基本的な流れはブロックを組み合わせることでプログラミングおすすめていく学習スタイル

lightbot

視覚的な操作によってパズル感覚でプログラミングでき 低学年の子供でも楽しめる

Swift プレイグラウンド

IPad 用のアプリ hour of codeやScratchよりもレベルは上だが 使いこなせるようになると様々なアプリを制作できるようになる

レゴマインドストーム EV 3

モーターの回転速度の変更はセンサー情報の取得や各機器の制御などを アイコンを組み合わせるだけで実現できる

アーテック社 robotist

全国の焼酎甲幼稚園保育園などの1113000校で使用されているロボット

8歳以上推奨

子供と一緒に楽しく遊びながら学ぶ用途にも使える

どのプログラミング言語を学ぶべきか

そもそもなぜプログラミング言語は多数あるのか

プログラムはあらゆるところで使われており全ての用途に使える万能なプログラミング言語は存在しない

  • スマホのアプリ開発に向いている言語
  • 数学や統計に高度な数式計算に向いている言語
  • 高度なグラフィックスを操作できる言語
  • ウェブサイト制作に向いている言語
  • 自動車などの特定の処理を制御するために使用する言語

目的別のプログラミング言語

IPhone アプリを作りたい人はどういう人 はSwift

Android アプリを作りたい人は Java

PlayStation 4家 WiiU などのゲームソフト制作では C シャープ web サービス Web デザインの世界では JavaScript HTML CSS 統計解析ビッグデータ分析などの世界では R Python

redmonkによる人気ランキング

ギットハブと stack Overflow 内の会話の動向などをもとにひつランキングを発表

JavaScript Java PHP Python C シャープ C プラプラ Ruby CSS c objective C

Java

OS や機器を選ばずあらゆる環境で動作する

web システム サーバーインフラ Android アプリの幅広い 場所で使われている

大きな教務システムに 採用されやすく企業のニーズの高い

ただしアメリカでの Java 言語の開発案件が 前年比マイナス30%になっているらしく将来性は下がっている

C/C++

実効速度が最速であり パソコンのソフトやゲーム機械制御などのハードウェアやゲームなどの幅広い分野で使われている

その他証券取引システムなどリアルタイム処理が求められる業務システムにも使われることが多い

Java よりも更に難易度が高く 初心者が最初に学ぶ言語としてはお勧めできない

C#

VR などを含む3 D ゲームを制作できるようになる

3dゲーム用のライブラリーが多数用意されている

一方でゲーム開発以外は汎用性が低くそれ以外では Windows 上で動作するアプリの制作くらいしかない

Python

Google の三大言語 C プラプラ Java Python

Python はデータ解析にも強いためビッグデータ解析人工知能機械学習などでも利用されている

学習の難易度も低い

Javascript

ほぼ全ての Web サービスに利用されている

最近は スマホアプリやデスクトップアプリゲーム開発などでも利用されている

近年急速に人気が高まっている

 

文法が簡単であり ライブラリーは充実しているので 学習の初期段階から色々な機能をすぐに実装できる

Web デザインや Web 制作に興味がある人におすすめ

ちなみに  Java とは名前が似てる が全く関係ない

PHP

Web サービスの開発で広く利用されている

非常に多くの会社で利用されているため仕事として考えた場合に国内で最大級の求人数が期待できる

WordPress の開発案件も多くフリーランスのエンジニアを目指す人にとっては最適な言語の一つと言える

実際クラウドソーシングで PHP 関連の案件も多い

Ruby

少ないプログラムで簡単に Web システムを開発できる

一方でRubyだけでなくRuby on railsも同時に学習しないといけないので 学習コストはやや高い

なんかよくわからないけど 起業を考えてる人やベンチャー企業への就職を考えてる人におすすめらしい

Objective C/Swift

Objective C は 2014年より前は iPhone アプリや Mac OS のアプリ開発として使われていた

2014年からはSwiftが発表されて、使われるようになってる

新しい言語であるため文法がシンプルでわかりやすい

一方で歴史の浅い言語なので学習用の情報が少ない

Visual Basic . Net

Windows 上で利用するソフトウェアやアプリ開発プログラミング言語

扱いやすい言語であるが Windows 以外の環境では利用できないので 汎用性が低い

CSS

ページを装飾するためのスタイルシート

Web デザイン Web 制作に興味のある人にとっては欠かせない言語

R

統計解析専用の言語 データ分析統計解析の世界を使われている

フロントエンドとバックエンド

  • フロントエンドとは 例えば Web services で言えばブラウザやスマートフォンなどのクライアント側
  • バックエンドとは Web サービスを実現しているサーバーサイド側

HTML CSS JavaScript などがフロントエンドであり PHP Ruby Python などがバックエンドになる

本格的にプログラミングを学ぶための手引き

コーデックアカデミー

ステージごとに記されているコメントに従って 実際にプログラムを入力しその出力結果を確認していく

Code COMBAT

ハイクオリティなゲームを通じてプログラミング言語を学ぶことができる

codingame

既に何らかのプログラミング言語を習得済みの人向けのサービス

ある程度プログラミングの知識がある人にとってはこれほど面白くてやりがいのある学習ゲームは他にない

感想

「今の時代はプログラミングを勉強する環境が整ってるな…」というのがまず思った感想

4歳からプログラミングができると聞いてビックリしたけど、確かにそれだけ簡単に始められるようになっているんだ

何となくわかった気になっていた各言語の特徴や、プログラミングの勉強法などをおさらいできたので、エンジニアの自分が読んでいてもかなり為になった

次勉強する言語は著者のオンラインサービス「コードキャンプ」を使ってみようかな

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です