初心者が学ぶのに最適なプログラミング言語は? 131
ストーリー by hylom
まずはアセンブラだ 部門より
まずはアセンブラだ 部門より
あるAnonymous Coward 曰く、
lifehackerにて、定番の宗教戦争ネタとも言える「初心者が学ぶのに最適な5つのプログラミング言語」なる記事が上がっています。
はてなブックマークではPerlやPHPへの言及、定番の関数言語押しやC++へのdis、何を作るかそこからなどのコメントが有りました。皆様はどのようにお考えでしょう。
今年もまだまだこれからですが、言語ネタは尽きることがありません。皆様思う存分ご堪能ください。
学ぶのはプログラムか言語か (スコア:5, すばらしい洞察)
プログラムを学ぶには何らかのプログラミング言語を学ぶことが必要だけど, プログラミング言語を学ぶことがプログラムを学ぶことではないってことは注意しといた方がいいですね.
それと, 何故プログラムを学ぶのかという目的によっても推薦する言語が異なってくるので, 明確な目的/目標を決めておくのも重要かと.
Re:学ぶのはプログラムか言語か (スコア:1)
プログラミングの醍醐味というのは、自分で「目の前の機械を操ってる感」だと思うんですよ
コンピュータを操ってる感と言えば一番簡単なのは何かを表示することなわけで、
本当の「入門」なら(文法は滅茶苦茶でも)HTMLのIMGタグくらいでいいんじゃないかと思います
# HTMLはプログラム言語じゃないけど
文科系の大学生にプログラミングを教えて思ったこと http://d.hatena.ne.jp/shi3z/20131016/1381884291 [hatena.ne.jp]
条件分岐とか繰り返しとかを機械にやらせるのは、高度すぎて入門には不適切だと思います
他の分野の成績にかかわらず、それまでの学習メンタルモデルによっては、何がなんだかさっぱりわからないそうなので
http://d.hatena.ne.jp/JavaBlack/20120520/p1 [hatena.ne.jp]
http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp]
Re: (スコア:0)
概ね同意です。
ただ、プログラムを学ぶ上でパラダイムは重要で、そしてパラダイムを学ぶには、やはり複数の言語を学ぶのが良いと思うのです。
Re: (スコア:0)
ところが人間、抽象度の低いものから学ぶとなかなかそれから脱却できないものです
足し算をブロックの数を数えることでしか学べない子もいるし、そうでない神童揃いの/.Jerみたいなのもいます
HSP (スコア:2)
これまで全くプログラミングに触れたことがないならHSP [hsp.tv]がいいと思います。
メリットとしては
・文法が簡単
・簡単にGUIが作れる
・グラフィック・3D方面にある程度強い(ゲームを作りたいと思ってプログラミングを始める人も多いでしょう)
・スマホアプリも作れる(らしい。私はやったことないけど)
などがあります。プログラミングとはどんなものなのか体験して楽しむには適していると思います。本格的にプログラムを書きたくなったら他の言語を学べばいいと思います。
デメリットはたくさんあります。遅いとかWindows以外で使えないとか。それが気になったら他の言語を学べばいい。
640GBはすべての人にとって未来永劫充分なメモリだ。
Re: (スコア:0)
> デメリットはたくさんあります。遅いとかWindows以外で使えないとか。
自分の主観ですが、HSP製のゲームはWineでも結構な確率で正常動作しているイメージがあります。
(Windowsに依存したAPIを使ってないものは動作しやすいかも?)
OpenHSP [onionsoft.net]のような互換環境が整えば
クロスプラットフォームのゲームを作る言語ならHSP!と言えるまでになりうるポテンシャルは持っていると思います。
Re: (スコア:0)
>(Windowsに依存したAPIを使ってないものは動作しやすいかも?)
WINEってそのWindowsに依存したAPI(Win32API)をエミュレータする物なんだけど
むしろ直接Win32APIを叩いて作った方がWINEではどのWin32APIが実装されているか確認を行い動くか動かないかの判断がしやすいだろ。
Excelマクロ (スコア:2, すばらしい洞察)
タコ殴りだろうな。
でも、実行環境の入手性と実用度は莫迦に出来まい。
同感 (スコア:2)
構造化プログラミングの基本は押さえているし、実用的な機能も備えているから、プログラミングを教えるにも覚えるにも良い言語だと思いますね。
ただ、同じVBAなのに、ExcelとAccess、Wordで微妙に関数に違いがあったりするのはひどいと思うけど。
/*
Excelで複雑な計算をさせるとき、「わかりやすい」という理由でワークシート上で組む人がいるけど、ちょっと込み入った計算ならVBAにしたほうが見通しが良くなるしわかりやすい。
*/
Re:同感 (スコア:1)
VBAはIDEが付いているのも良い。
Re:Excelマクロ (スコア:1)
基本的にVB6そのものだから、情報も山ほどあるからねぇ。
VB6は何かと馬鹿にされるけど、構造化例外さえあれば今でもそこそこ戦えてたと思う…。
ところでExcelマクロは.netに移行しないのだろうか。
Re: (スコア:0)
ExcelではないにせよBASICで入門した人はここには多かろう。
俺もだ。
Re: (スコア:0)
小学生のころ、MSXマガジンの後ろの方に載っていたBASICのプログラムを読んでも、全く意味が分からなかった。ただ、盲目的に「写経」して、出来上がったブロック崩しとかで遊んだだけ。今では「5つ」のうち、少なくとも、C/C++/Java/JavaScript/pythonの文法は理解しているつもりだけれど、(触れる機会がなかったので)いまだにBASICの文法は覚えていない。
一方、当時、私より長大なプログラムを頻繁に写経していた私の兄は、いまだにプログラミングができない。
つまり、子供のころに触っても、きっかけになるかどうかは本人次第じゃないかなぁ、と。少なくとも、私は大学でCを半強制的に教え込まれるまでは、(「写経」でない)プログラミング自体はできなかったと思う。だから、言語より、入り方の方が重要だったのかな、と。
MSXマガジンにも何回かプログラミング講座があったし、確か、8クイーンを解く問題とか、力士がお姫様を助けに行くRPGを作る連載とかもあって、読んだ記憶はあるけれど、私には身につかなかった。
Re: (スコア:0)
プログラミングの勉強用と考えれば悪くないと思う。
ただ、「言語を学ぶ」の意味に依っては余り良くは無いかも知れない。
電子計算機概論 (スコア:2)
直接何かの役に立ったわけではありませんが、楽しかったな。
今は、細々とJavaの入門書を手に自習しております。
// 知るって、楽しい。
死して屍、拾う者なし。
ここまでAWKなし (スコア:2)
実行内容だけを書けば通る言語がいい (スコア:2)
print "hello world"
とだけ書けば hello world と表示してくれるようなやつ。
記事の中で言うなら python か ruby。
C とか Java は最小のプログラムを書くにもゴテゴテしたクラス定義なんかが付いて回るんで、そういうのが学習の妨げになり得ると思う。
「そういうことになってる」とか「とありえず書いとけ」は初学者にはできるだけ無い方がいい。
本当に初心者なら、近くに詳しい人がいる言語でしょう (スコア:1)
変数とか制御構文とか関数とか、最低限の概念を理解して
あとは、必要な分野のライブラリが豊富な言語を選べばおーけー
Re:本当に初心者なら、近くに詳しい人がいる言語でしょう (スコア:2)
近くに詳しい人が居ない場合は、どうすれば良いだろうか。
Re:本当に初心者なら、近くに詳しい人がいる言語でしょう (スコア:3, 興味深い)
わたしも特にメンターはなかったです
年少者なら、ゲームでも、進捗報告 Excel マクロでも、とにかく欲しいものに似たもの手に入れて、あとはそれを改造していると、いろいろ不満がたまってくるので、いろいろ Google してればいいんじゃないでしょうか
人生の先輩でおられるなら、ゲームでも、進捗報告 Excel マクロでも、とにかく欲しいものに似たもの手に入れて、あとはそれを改造していると、いろいろ不満がたまってくるので、黄昏るか、Google してればいいんじゃないでしょう、か
Re:本当に初心者なら、近くに詳しい人がいる言語でしょう (スコア:1)
大学に進学すればいいんじゃね?
LOGO (スコア:1)
くりかえせ 4 「まえへ 50 みぎへ 90」 ぺんをあげろ くりかえせ 2 「みぎへ 90 まえへ 25」 ・・・
中学校で習いました@昭和56年生まれ
Re:LOGO (スコア:3, 参考になる)
最近はスクラッチ [mit.edu]がかつてのLOGOの役割を果たしていそうですね。
Re: (スコア:0)
http://portal.nifty.com/kiji/140110162950_1.htm [nifty.com]
これですね。
「フローチャートを知らない世代による原初のフローチャート」というのに感動しました。
やりたいことに向かっていく、ってのは筋道たてたほうがうまく行くんですね。
ぷちこん (スコア:1)
分かりやすさでいえばプチコンmkII [smileboom.com]なんかいいと思うんですけどねぇ。
基本BASICだし。
BASIC (スコア:0)
BASICはブログラミング適性を測るのにいい言語だったよなあ、と思ってちょろっとググってみたらSmall Basicというのがあるんですね。
入手は簡単ですし、公式で公開されているプログラミング入門が意外とわかりやすくて、初心者はこの入門に沿ってとりあえずやってみればいいんじゃないかと。多分、数時間で終わります。
最後までやり終えられたら目的に応じて元記事の言語やプチコンmkII 、HSPなどに挑戦すればいいですし、やり終えられないようならプログラミング以外の趣味を探すのをお勧めします。
セマンテクスって意味なくね? (スコア:1)
繰り返しでごめんなさい。でも、変数、制御構文、関数、はおおくの場合に必須と思います
で、そのうち、初心者に向いてる言語はあると思う。とっつきやすいとか、環境が構築しやすいとか。
でも、トータルで言えばあまり変わんないんじゃないかと思う。解決したい課題があるならなおさら
結局、コストを後で払うか前払いかの違いじゃないのかとか。一見前払いですんでるようでも、なかなか、なかなか
どう?
Oxford Oberon (スコア:1)
Wirth大先生のOberon(Oberon-2)の独自環境の部分を切り離した、Oxford Oberonというコマンドライン・コンパイラがある
その名のとうりOxford大学の先生が大学での教育用に作った処理系
アマグラマですが (スコア:1)
- 今までの経験で一番基礎となっているのは、小学生のときに学んだZ80のマシン語(アセンブラなし)です、これでプログラムというものがすべからくメモリ上の物であることを学びました。
- 高級言語で、これに近いものがC言語だと思います、いちどポインタのポインタ、関数ポインタ地獄に落ちればよいのだわ、おほほほ。
- オブジェクト指向、テンプレート、インターフェースを学ぶのにはC#がよいと思います、値渡しと参照渡しが厳密に分かりにくいですが、非同期通信を秘匿するのでとっつきやすいかと思います。
- 子供がプログラミングをしたいと言い出したら、Javaをやらせると思います、クラスやインスタンス、メソッド、プロパティの概念など難しいことが多いですが、スマホやタブレットなど身近なデバイスで動くことが利点だと思います。
- 帝国に忠誠を誓うなら、もちろんObjective-Cです、独特な文法、Macでないと出来ないなど、帝国への忠誠心は高まるばかりです。
Re:アマグラマですが (スコア:2)
clausemitz
Re:アマグラマですが (スコア:1)
Re:アマグラマですが (スコア:1)
解説。
「すべからく」は「須く」と書き、漢文訓読から来た言い回し。
漢文の「須~」は、「すべからく~すべし」と訓読し、意味は「必ず~しなければならない」となる。
「すべからく」は「すべて」と発音が似ているせいか、「すべて」の高級表現の様に誤用されることが多い。
言語よりも作業のしやすさが大事では (スコア:1)
コーディング中にエディタがスペルミスを指摘してくれたり、
デバッガでbreakpointしかけて変数の中身を見たり、
そういうのがやりやすい環境が重要だと思う。
となると、ちょうどVisual Studio無料版があることだし、
対応している言語から選ぶと、初心者向きにシンプルなのはCかなー。
C#でも良いかもしれない。
これも宗教論争だけど (スコア:1)
Re:これも宗教論争だけど (スコア:2)
そこから始まるProlog。
JavaScriptがいいんじゃないのかな (スコア:0)
実行環境が最も入手しやすいし
Re:JavaScriptがいいんじゃないのかな (スコア:2)
括弧の対応が分かりづらいから、勧めない:b
Re:JavaScriptがいいんじゃないのかな (スコア:2)
普通にjQuery込で考えていた。
(ノ∀`)
基本的にはJavaScriptに賛成! (スコア:2)
Web系でいいなら、まず必要なのはJavaScript(以下JS)/HTML5/CSS/git(の操作)/正規表現でしょうか?
他の言語でもそうだけどフレームワークやライブラリを選定する能力は常に鍛えた方がいい。
直接プログラムとは関係ないけどweb計に進むならCSSプリプロセッサは早めに学習しとくといいと思う。
んで、覚える言語減らすためにもサーバサイドはnode.jsでいいと思う。
JS自体はあまりきれいな言語じゃないけどnode.jsからはじめたら汚いコード書くの難しいと思うよ。
名前空間を汚さない事、メモリリークしない事が身につくんじゃないかな?
そこまでいけばクライアント側のJSは全く難しくない!
node.jsが出る以前から出回ってるフレームワークが使えるしnode.jsで問題無いコードが書けるのであれば
ブラウザで動くJSなんてたかが数分~数時間だし、ざっくり書いても怒られない程度の物がかけるハズ
Re: (スコア:0)
私もそう思うんですが最初からjQuery使うとプログラミングの基礎が全く分からなくなくなるような気も。
自分の周りでは他の言語を覚えた後で使った人しかいないので、最初からjQueryの人が他の言語に移れるのかどうか分からないんですよね。
Re: (スコア:0)
JavaScriptはあまりお勧めできないですね。
Node.jsとかと、Webブラウザ等、またWebブラウザでもjQueryの有無等で実行環境も使い方も全然違うんで、分かってる人には問題無いけど初心者にはあまり向いていないかと。
初心者にはIDEをインストールしてプログラミングを始めた気になれるC#かJava、またはチュートリアルを手軽に実行できるLL言語が良いんじゃないですかね。
Re:JavaScriptがいいんじゃないのかな (スコア:1)
おなじく、JavaScript がどうも馴染めない。
プロトタイプベースは、なんか継承など言語仕様として隠蔽されて欲しいところが表に出てきていて気色悪いし、変数の動的スコープも、変数同士の依存関係・影響範囲がプログラムで明示出来なくて、バグの温床。
少なくとも、大きなプログラムを書く気がしない。
(まぁ、ブラウザのスクリプトなので、大きくしないのが原則なのか)
上を見ないでいられる環境 (スコア:0)
言語自体は何をやってもいいんだと思います。続けることがプログラマー脳を作るので。
子供ならスマートフォンが一番入手しやすいコンピュータなんじゃないでしょうか。
フリック入力でプログラミング、大いにアリだと思います。
大人でプログラミングを始めるのなら、Javaを選んでおけば大抵は何とかなります。
プログラマー脳を作らないと言語の良し悪しなんてわかりません。
Python (スコア:0)
エリック・レイモンド氏はまず Python を使え、と言ってる。http://cruel.org/freeware/hacker.html
3DCGソフトウェアの組み込みインタープリタとして Python が採用されていることも結構あるから、
悪くない選択肢ではなかろうか。
その後 Java, C/C++, Perl, LISP だそうだが、いまなら C# も入ってくるのではなかろうか。
殆ど知られていないけど (スコア:2)
Pythonの前身のABC言語はBasicみたいな対話式かつ構造化されていて、結構いいセンいっていたと思ったんだけど。
Re: (スコア:0)
Pythonは2系と3系で混乱しやすいから、初心者には向かないよ。
Pascal (スコア:0)
私の母校では、伝統的に最初に習うプログラミング言語がPascalです。
教科書の著者がそこの教授なので、利権が関係しているとかいう噂もあったりなかったり。
Re:Pascal (スコア:1)
本物のプログラマになるならFortran。
#麿はキッシュイータだからPascal。
Luaはどうだろう? (スコア:0)
組み込んでるソフト多いから覚えておくと便利
Re:PHPやPerlはやめておけ。 (スコア:2)
たしかにJavaは必ずしも最先端じゃ無いけど、
だからってC#を進めるのはお門違いだろ……
その流れだと、普通は最先端の言語を進めるんじゃね?