プログラミングの書籍にしても、サイトにしても、入門とか初心者向けとか謳ってるのにこいつ何もわかってない。
ガチの初心者や造詣や地頭の悪い人達(いいと思ってるだろうが)にそんな説明してもわかんねーよ!
って思う事がかなり多い。

そこで、挫折する人向けにマジに嗜みの無い人向けプログラミング講座を書いてみたいと思う。

まず初心者向けの言語で挙げられるものは、一部除いて千差万別だけどこれも結構悩みの種であったりする。
というのも、どれもメリットデメリット一長一短であり、いまいちこれだ!って言えるのは少ない。
割と言語選びも重要だと思う。

いや、寧ろどの地獄を選ぶかで大きく人生が変わると思うので、言語選びこそ時間をかけたいと俺は思う。

大体〇〇がオススメ!って書いて、その理由って書いてあっても使用率くらいでしょ?
最近だとRubyがいい例だけど、Pythonガン推しされてる時だって、「すげー仕事が舞い込む、使用率の高い言語!」とか言うけど、本当にその目的なら最強のシェアを誇るJAVAで覚えるべきとしか言いようがないし。
そのJAVAを選択するにもリスクとかをちゃんと、説明してくれるところがまあ見たことがない。
結構重要だと思うんだけどね。

・一般的に初心者向けとされる言語(それをオススメしない理由など)

じゃまず、仕事に役に立つよ!って言えば必ず上がる互換性も実用性も高いJAVA。
実働してる人でも的確に理解している人が限られる、オブジェクト指向の考えや仕組みから覚えなければならない地獄の入り口だったりする。
それに記述もCに近くやや冗長で難解である。(つまり所謂”おまじない”という理解しがたいクソキーワードが増える)

当然同様に基本はCだよね!なんて言っても、昔の言語ってことは、かなり記述が冗長で難解なのだ。
しかも今C使う場面ってあんまりないからね。本当に基礎の基礎をしっかり基礎りたい人向け。なら総合的にJAVAで選ぶべきだし…。

逆に新しく、活躍の場もそこそこある一時期流行ったPythonはどうかというと、JAVAの様なオブジェクト指向の言語でそこを覚えるのがやはり大きな壁になるし、何よりPythonもピーキーだから俺からすれば全くもって入門向けではない。

プログラミングの基礎を学んだ人間からすれば「なんて無駄の少ない言語なんだ!」ってなるかもしれないが、前提知識を持たない人間がPythonを見た場合、恐らく変な勘違いをすることが増える。
本来記述するべき命令文をインデントなどで(ある意味で)省略するような言語の為、ある意味で基礎が築けないといえるのだ。
だから俺はPythonは第二以降の言語にすべきだと思う。

そしてここまで挙げたもので共通するのが、環境を用意するが面倒くさいって事。
よくあがる環境環境っていうのも、言語を取り扱う為の素材と道具を用意するもので、ガチ入門者はもうこの時点で何言ってるかよくわかんないと俺は予想できる。
その意味を覚えなくても考えなくても済むのがIDE(直訳で統合開発環境。 つまりプログラムをする為のツールセット)導入。

・本当に手軽に使用できる言語とは

でも環境がどうのコンパイルがどうのだとか、そういうのが必要なく、直感的にテキストでぶち込んでダブルクリックとかで動く言語もある。
それがシェルスクリプト(Windowsはバッチ)、VBS(Windowsのみ)、javascript、この辺りである。

・VBSやVBA

初めから用意されてることが多いある種IDEとしてはVBA(Excel)である。
これはVBSの記述と殆ど同じなので色んな事に役に立つ。
互換性に欠けるが、RPA、Word、Excel、Accese、一粒で殆どのWindows業務の即戦力となる。
Windowsの企業は当然クソほど多いので、仕事があるかどうかにフォーカスしたら実は下手すりゃJAVAよりVBを習得した方が多くの仕事ある事はなぜか言及はされない。(JAVAだと開発に関わる案件が多いと思うが、マネジメントの知識や経験を前提に組織的に仕事をするので、その界隈の仕事に足踏み入れるのにハードルが高い気がする。 VBは職種や業種が限定されないため、IT以外にも多岐にわたる)
VBSはメモ帳一つで動かせる上、Windows標準だけあって、動作等を自動化したりできる。(簡単にマクロが組める)
要するにExcelじゃなく、ただの会計ソフトでもマクロ組めてしまうので、VBA覚えるだけで色々出来るようになる訳だ。
表計算だと変数や配列の概念も視覚化されるし、関数とかいう入門もあるしね。

・JavaScript

JavaScriptは基本はブラウザありきの言語なので、先にHTMLを習得する事が必要となる。
どこまで必要かというと怪しいが、別にフロントエンド(外部設計。 例えばゲームコントローラーのボタン配置とか考える人)として仕事するつもりでなければ、仕組みさえ分かればいいので今のポリシーでは絶対許されない初期の記述方式でも別に問題はない。
でもjs習得するならフロントエンドとしての将来性を見越す気がするのでちゃんと覚えたほうがいい。

・バッチやシェルスクリプト

バッチやシェルスクリプトはどうだろう。
この辺りは言語として融通が利きにくかったり、実行優先度やら仕組みがハチャメチャだったりするので、正直初学者向けではない。
ただ当然業務上では必要性がかなり高い代物なので、一つ言語覚えたらさわりだけ覚えておいたほうが良い。

・初学者に多いゲームが作りたい人向け

ついでにゲームを作りたい人向けだとどうだろう。
詳しくはないがUnityかC++とかだと思うのだが、軽くてライブラリ導入がほぼ必要ないHSPも良いと思う。(elona等の言語)
UnityはHSPの上位互換みたいなものだと思っているが(詳しくないが、C#でゲーム用ライブラリが詰まってる感じ?)、このHSPも基本はグラフィカルなツールやゲームを製作する為の環境が用意されているので直感的に学びやすい。意外にライブラリも豊富で、その辺りの学習にもなるかもしれない。
導入も楽なのでいったんこちらでプログラムの基本的な仕組みを覚えるのも手だ。

互換性もエンコーダーなど作って徐々に上げてるらしいが、問題としては当然マイナー言語なので、単体では仕事に全く生かせない事である。
ただUIフォームなどがライブラリ無しで直感的に作れる為、学習者のやりたい事を前知識や準備なしでやらせてくれる挫折しにくい言語なのは確かだと思う。

と、ここまで言ったが、Unityはかなりど素人でも簡単にゲームが作れてる実績があるのでC#、Unity一択だと思うんだよね。
C#の経験がないからこれと言ってアドバイスはできないが、C++やC#ってのは確かオブジェクト指向の壁があるタイプだからそこだけ注意して欲しい。
といってもオブジェクト指向でプログラミング組まなくても組めるんだけどね。
特に趣味でやってる人はそういう人多いんじゃない?
それにUnityってのは所謂フレームワークなので、フレームワークっつーのは何かを作るために直感的に作成できるようなツールで、RPGツクール連想すればわかりやすいのかな。アレは親切すぎるけど、ああいうのがフレームワークなのよ。
プログラムを組んでもらうためのツール。条件を指定すれば勝手にコーディングしてくれるツール。
極端な話ツールの使い方わかればプログラム知識がなくても作れるのよ。(だからUnityで爆発的にゲーム制作者が増えたのだと)
逆に言えばゲーム制作とかプログラム詳しくてもいきなりunity触れと言われてもすぐにはできない、昨日の多さに頭と目が痛くなる。

今日はここまで。