最近知り合いにプログラミングを教える機会がちょいちょいあるので適当にまとめておく。
僕自身が趣味プログラマーなのでなんとなくって感じ。
あとは個人的にプログラミングの勉強でお金を使ったことがない人なのでとりあえず無料な範囲でまとめてます。
学習サイトなど
まずはここから
Progate
動作環境: ブラウザ/スマートフォン
対応言語: Go, HTML&CSS, Java, JavaScript, PHP, Python(3), Ruby, SQL, Swift
スマホっていう媒体の上で最大限に入力しやすい環境を備えた実践型練習環境。
PC上でも動作を確認しながら実践練習できるのでかなり有用。
「スライド」を使ったレッスン内容の再確認も容易。
その代わり、無料で勉強できる範囲はかなり狭め。
例えば、スマホ版JavaScriptではif文、switch文までしか勉強できず、ループ処理や配列などの内容は勉強できない(PC版でもループ構文まで)。
なんとなくの雰囲気を掴むには最も効果的な気がする。
paizaラーニング
動作環境: ブラウザ
対応言語: C, C#, HTML, Java, JavaScript, SQL, PHP, Python(3), Ruby
Progateに近い感じの実践型練習環境。
レッスン内容の解説は動画で行ってくれる。
人のよっては動画のノリが苦手な人もいるかもしれない。
無料でできる範囲は言語ごとにムラがあり、
C、C#、Python3では全編完全無料で学べる(2019/6/27現在)。
JavaScriptの例ではループ(whileのみ、forは配列処理と同時に学ぶっぽい)とNode.jsの標準入力、配列初歩の初歩までが無料の範囲となっている。
ちなみに、スマホでは開くのに狭すぎて辛いと思う。
CODEPREP
動作環境: ブラウザ
対応言語: Bootstrap, CSS, HTML, Java, JavaScript, PHP, Python(3), Ruby, Rust, Scala, jQuery
虫食いのプログラムを自分で補完して実践練習する。
用意されている全部のレッスンが無料で利用できることが一番の目玉。
スマホ上でも少し狭いけどギリギリ動かせる…かな。
ちなみにProgateのスライドやpaizaの動画といったような学習資料がなく、資料は薄めなので他と合わせたり検索で情報を探したりって必要は出るかもしれない。
ドットインストール
動作環境: ブラウザ
対応言語: いろいろ
講義っぽい感じで淡々と動画で学習する。
プログラムの動作環境は自分で用意する必要があり。
魔法言語 リリカル☆Lisp
動作環境: Windows
対応言語: Scheme?
概念を勉強する形のツールなのでこの中に混ぜた。
文章を読んだ後にツール上で実践という形でLISPとは何か、を勉強する。
マンガで分かるLispも合わせてなんとなくLISPを知るにはいいかも。
オンラインコンパイラ
動作をたしかめる
Dcoder
動作環境: スマートフォン
対応言語: Brainf*ck, C, C#, C++, CSS, Clojure, Common Lisp, D, Elixir, Erlang, F#, Go, Groovy, HTML, Haskell, Java, JavaScript(Node.js), Kotlin, Lua, NASM, Objective-C, Pascal, Perl, Prolog, Python(2,3) PHP, R, Ruby, Rust, Scala, Scheme, Swift, Tcl, VB.Net
スマホで使えるオンラインコンパイラ。
どこでも気軽にスマホで試せる環境として優秀。
対応言語の豊富さが凄まじい。
このラインナップならCOBOLとかFortranとかBASICがいてもいいのではと思わないでもない。
あとはVB.Netはvbncという古い実装が使われているので他のコンパイラを使った方が良い。
ちなみに競技プログラミングを行うこともできるようだ(ただし全部英語)。
paiza.IO
動作環境: ブラウザ
対応言語: Bash, C, C++, C#, Clojure, Cobol, CoffeeScript, D, Elixir, Erlang, F#, Go, Haskell, Java, JavaScript(Node.js), Kotlin, MySQL, Objective-C, Perl, PHP, Python(2, 3), R, Ruby, Rust, Scala, Scheme, Swift, VB.Net
paizaが運用している日本製オンラインコンパイラ。
アカウント作っていれば勝手にサクサクプログラムが保存されるのが魅力。
(ゴミプログラムが溜まっていることも…)
VBはvbncなので他のオンラインコンパイラを使うことを推奨。
.NET Fiddle
動作環境: ブラウザ
対応言語: C#, VB.Net, F#
.Net言語に絞って運用されるオンラインコンパイラ。
オンラインコンパイラでは珍しく、Windows機がサーバーになっている模様。
VBがスクリプト風に入力できたり、(あまり知らないけど)ASP.Net MVCってやつも動かせる。
Rextester
動作環境: ブラウザ
対応言語: Ada, Bash, C++, C, Common Lisp, D, Elixir, Erlang, F#, Fortran, Go, Haskell, Java, Javascript(Node.js, SpiderMonkey), Kotlin, Lua, NASM, Objective-C, Ocaml, Octave, Pascal, Perl, PHP, Prolog, Python(2, 3), R, Ruby, Scala, Scheme, Swift, Tcl
多数言語で動作するオンラインコンパイラ。
元々は.Net用サービスとして立ち上げた経緯があるようでVC++, C#, VBはWindows機で動作する(F#はLinux)。
.NetのWindows環境は.NET Fiddleがあるけど、VC++があるのは珍しいのではないだろうか。
C++は他にもGCCとClangも対応する。
codeground
動作環境: ブラウザ
対応言語: AWK, Ada, Algol, BASIC, Bash, Befunge, Brainf*ck, C, C#, C++, Clojure, COBOL, ColdFusion, D, Dart, Elixir, Embedded C, Erlang, F#, Factor, Falcon, Fantom, Forth, Fortran, Free Basic, GO, Groovy, Haskell, Haxe, ICON, ILAsm, INTERCAL, Java, JavaScript(Node.js), Julia, Jython, Kotlin, Ksh, LOLCODE, Lisp, Lua, Malbolge, Octave, Mozart/OZ, NASM, Nimrod, OCaml, Objective-C, PARI/GP, PHP, Pascal, Pawn, Perl, Pike, Prolog, Python(2, 3), R, Rexx, Ruby, Rust, Standard ML, SQL, Scala, Scheme, Simula, Smalltalk, Swift, Tcl, Unlambda, VB.Net, Verilog, Whitespace, Yasm,
なんかすごい多くの言語を対応しているオンラインコンパイラ。
Algolみたいな歴史上でしか語られない珍しい言語もある。
VBはvbncなので他のオンラインコンパイラを使うことを推奨。
ideone.com
動作環境: ブラウザ
対応言語: AWK, AWK, Ada95, Assembler 64bit, BC, Bash, Brainf**k, C, C#, C++, C99, Clips, Clojure, COBOL, CoffeeScript, Common Lisp, D, Dart, Elixir, Erlang, F#, Fantom, Forth, Fortran, GNU アセンブラ, Go, Gosu, Groovy, Haskell, Icon, Java, JavaScript(Node.js, SpiderMonkey), Kotlin, Lua, NASM, Nemerle, Nice, Nim, Node.js, Objective-C, Ocaml, Octave, PHP, Pascal, Perl(5, 6), Pico Lisp, Pike, Prolog, Python(2, 3), R, Racket, Ruby, Rust, SQLite, Scala, Scheme, Smalltalk, Swift, TCL, Text, Unlambda, VB.net, Whitespace
codeground程じゃないにしてもかなり多くの言語を対応したオンラインコンパイラ。
1つの言語でも処理系を選択できる言語が多い。
例えばCommon LispでもCLISPだけでなくSBCLが選択できるようになっている。
TypeScript playground
動作環境: ブラウザ
対応言語: TypeScript
オンライントランスパイラ。
TypeScriptをオンライン上でJavaScriptに変換できる。
HSP部屋
動作環境: ブラウザ
対応言語: HSP3(HSP3Dish)
ブラウザ上でHSP3を書いて投稿できるサイト。
HSP3のソースコードをオンライン上でコンパイルして動作させることができる。
ローカル環境
本格的にべんきょうするとき
Visual Studio 2019
動作環境: Windows, Mac
対応言語: C++, C#, VB.Net, F#, JavaScript(Node.js), TypeScript, Python(3)
天下のMicrosoftによる統合開発環境。
Windowsならとりあえず入れといて問題ないのじゃないでしょうか。
これ一つで多数の言語を扱うための環境が整う。
エディションはCommunity、Professional、Enterpriseの3種類があるが、
個人開発および中小企業であれば無料で使用できる。
HSP3
動作環境: Windows(, Linux)
対応言語: HSP3
ホビー言語、HSPで開発する。
エディタに充実したヘルプとファイルを1つインストールするだけで開発に必要な環境が整う。
初めてのプログラミングならHSPという選択も有りなののでは?と僕は思う。
ただ、ホビー言語だけあって仕事で使える機会は相当限られる。
(本職プログラマには逆にマイナーな感じもありそう)
Mery
動作環境: Windows
対応言語: なんでも
僕の愛用する軽快なタブ式テキストエディタ。
プログラミングやるなら何でもいいのでしっかりしたテキストエディタは持つべき。
シンタックスハイライトを手軽に追加したりできるのも魅力。
宣伝っぽくなるけどマクロの拡張子からコンソール実行とか使うとエディタだけでプログラムのコンパイルとか実行ができてすごく捗る。
Gerny
動作環境: Linux[, macOS, Windows]
対応言語: いろいろ
クロスプラットフォームで動く軽量統合開発環境。
ほぼテキストエディタ。
かなり多くの言語での開発を網羅している。
Linux日本語環境だとPreedit Tweakっていうのを入れておくと結構よさげ。
Nodist
動作環境: Windows
対応言語: JavaScript(Node.js)
Node.jsのバージョン管理ツール。
Node.jsをアップデートするのがとても楽なので公式のインストーラーを落としてくるよりもよさげ。
なお、Windows 32bit環境だと0.9.0以降は動かないので注意。
0.8.8を落とすこと。
Anaconda
動作環境: Windows
対応言語: Python(2, 3)
Pythonでよく使うライブラリをPython環境と一緒にインストールしてくれるパッケージ管理ツール。
ただインストール量が多いので気になる人はMinicondaの方がいいかも。
(各ライブラリは手動で入れる必要がある)
モバイル環境(ローカル)
おまけ モバイルならDcoderあればじゅうぶん
モバイル C
動作環境: Android
対応言語: C, C++
C, C++のモバイル環境。
日本語キーボードが封じられるため日本語の入力はできない。
C# Shell
動作環境: Android
対応言語: C#
C#のモバイル環境。
日本語は変換できない。
JS Run
動作環境: Android
対応言語: JavaScript
JavaScriptののモバイル環境。
Dory
動作環境: Android
対応言語: JavaScript(Node.js)
Node.jsのモバイル環境。
REPLも使える。
文字が小さい。
QPython3
動作環境: Android
対応言語: Python(3)
Pythonのモバイル環境。
REPLも使える。
CL REPL
動作環境: Android
対応言語: Common Lisp
Common Lispのモバイル環境。
REPLとコーディングが両方できる。
括弧がたまに狂う。
日本語の変換はできない。
Schemoid
動作環境: Android
対応言語: Scheme
Schemeのモバイル環境。
REPLのみ。
日本語の変換はできない。
Replete
動作環境: Android
対応言語: Clojure(ClojureScript)
Clojureのモバイル環境。
REPLのみ。
日本語の変換はできない。
あとがき
文章作っていると内容無駄に盛りがちなのが悪い癖。
まとめだからいいのか。