前回の内容
自分のITライフを振り返りつつ、プログラミング言語の学ぶ順番について考える
目次
大前提と学ぶ意義と大まかな流れ
大前提
1,初心者にとってプログラミングの最初の難関はセットアップ(環境構築)である
2,初心者は大抵の場合興味から始めるが、最終的にはどう役に立たせられるかどうかが継続の鍵
そして大まかな流れ
1,JavaScriptでセットアップを避けてプログラミングを始める
2,Pythonで機械学習、スクレイピング、自然言語など、興味のある分野へと歩み始める
3,C#で型のある言語を学ぶと同時に、windowsアプリについても理解を深める
4,Cでプログラムの動作について深く知る
ではそれぞれについて学ぶ意義を深く解説していきましょう!
最初の一歩:Javascript
プログラミング学習の最初の壁はセットアップであると言われています複雑なコマンドをいくつも実行したり、ブラウザーからファイルをダウンロードして見たり、
windowsやmacによっても動作が異なる可能性もありますし
そしてこれらのセットアップに挫けてしまい、学習にすら入れずリタイアしてしまうという人が結構います
それくらい、セットアップとは複雑なものなのです
そしてJavaScriptはブラウザ上で動く言語です
プログラマーが書いたJavascriptコードをChormeが翻訳して実行してくれます
ですので、
JavaScriptを学ぶ際のセットアップは、Chomeがパソコンに入れるだけで終了します
ここの段階で、変数、条件文、繰り返し分、関数、そして余裕がある人はクラスまで勉強していいでしょう
これができたらグラフなどを作ってみるのもいいかもしれませんね
JavaScriptの図を作る力は大したものです
そもそもJavascriptとはどんな言語か?
Javascriptはなんのために作られているのか?答えはこのサイトを見てからです
http://www.dubfire.com/#!/home/
...めちゃくちゃかっこいいですよね!?
このようなぐるぐる動くサイトを作る際に、JavaScriptは必要とされるのです
飛躍の一歩:Python
さきほどのJavascriptは確かにいい言語で、すぐにプログラミングの感覚を掴める言語ですが、汎用性が高いわけではないと思いますブラウザー上で動くので、自分のファイルの編集には使いずらい
より高い実用性
を求めるのであれば、Pythonがお勧めになってきます(異論は認める、twitterで待ってる)Pythonはシンプルな文法で学習コストが低い上に、機械学習、自然言語処理、スクレイピング、excelの操作など、様々なことがプログラムとして実現できます
お勧め参考書はこれ
まじでおすすめです
なぜなら難易度が低い上に(簡単な文書)やっていることはかなり高度です
そしてこのpythonという言語はかなり奥が深く、
様々な専門分野へ深く入り込むことができます
Python自体を極めるのも面白いかもしれませんね
...ただこの言語にも弱点があります
それは環境構築(Pythonのインストール)が恐ろしく面倒なこと
特に、windowsユーザーはかなり苦しむことでしょうそういう意味ではJavascriptとは対極ですね
しかし、この環境を構築するのに苦労した経験は、のちに必ず役に立ってきます
分からない時にググる経験、エラーログを読む経験、パソコンと長時間格闘する経験...
ポイントは諦めないこと
最初のコンパイル言語:C#
Pythonに飽きてきたなーと思ったらC#をお勧めします!C#はマイクロソフトが開発したプログラミング言語で、windowsのアプリケーションを作成することができます!
例えば、メモ帳や電卓とか!
文字としてのCUIよりも、ちゃんとした画面で自分でボタンの配置とかを決めれるのも面白いですね!
自己満足で終わっていたプログラミングが、誰かに利用してもらうためのプログラミングに変わっていくきっかけ...
そんな機会になりえる言語と言えるでしょう!
できたアプリは例えばGitHubやその他のツールで配るもいいでしょう!
ちなみにC#アプリケーションの開発が、僕の初めてのアルバイトでした
誰かに利用してもらうようなPCアプリを作るにはC#が手っ取り早いでしょう
ところで、現在の大手のSIerがお勧めしている言語といえばなんでしょう?
ご存知Javaですね?
そしてC#はJavaと書き方がとてもよく似ています
C#を学ぶことは、流行のJavaを学ぶハードルを下げるのと同義でもあるのです
(ちなみにJavaはつまらない言語だと思うので、お勧めしません)
最後の難関、最強言語:C言語
さて、さらにプログラミングやプログラムそのものの仕組みについて触れたい方OSがどのように動いているか知りたい方
ここまでくればC言語は避けられないと思います
C言語でできるのは組込み系システム,linuxOSのカーネルのソース
スピードが求められるプログラムなどなど...
ぶっちゃけパソコンをフルに活用したいだけなら、C言語はいらないと思います
物好きの世界です
しかし、社会でも一定数組込みのシステム言語として必要としているのも事実でしょう
PCへのより深い理解は確実です