パスワードを忘れた? アカウント作成
10528978 story
プログラミング

初心者が学ぶのに最適なプログラミング言語は? 131

ストーリー by hylom
まずはアセンブラだ 部門より
あるAnonymous Coward 曰く、

lifehackerにて、定番の宗教戦争ネタとも言える「初心者が学ぶのに最適な5つのプログラミング言語」なる記事が上がっています。

はてなブックマークではPerlやPHPへの言及、定番の関数言語押しやC++へのdis、何を作るかそこからなどのコメントが有りました。皆様はどのようにお考えでしょう。

今年もまだまだこれからですが、言語ネタは尽きることがありません。皆様思う存分ご堪能ください。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by SteppingWind (2654) on 2014年01月16日 17時46分 (#2528159)

    プログラムを学ぶには何らかのプログラミング言語を学ぶことが必要だけど, プログラミング言語を学ぶことがプログラムを学ぶことではないってことは注意しといた方がいいですね.

    それと, 何故プログラムを学ぶのかという目的によっても推薦する言語が異なってくるので, 明確な目的/目標を決めておくのも重要かと.

    • by Anonymous Coward on 2014年01月16日 20時29分 (#2528277)

      プログラミングの醍醐味というのは、自分で「目の前の機械を操ってる感」だと思うんですよ
      コンピュータを操ってる感と言えば一番簡単なのは何かを表示することなわけで、
      本当の「入門」なら(文法は滅茶苦茶でも)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]

      親コメント
    • by Anonymous Coward

      概ね同意です。
      ただ、プログラムを学ぶ上でパラダイムは重要で、そしてパラダイムを学ぶには、やはり複数の言語を学ぶのが良いと思うのです。

      • by Anonymous Coward

        ところが人間、抽象度の低いものから学ぶとなかなかそれから脱却できないものです

        足し算をブロックの数を数えることでしか学べない子もいるし、そうでない神童揃いの/.Jerみたいなのもいます

  • by je1ocv (46043) on 2014年01月16日 17時44分 (#2528157) 日記

    これまで全くプログラミングに触れたことがないならHSP [hsp.tv]がいいと思います。
    メリットとしては
    ・文法が簡単
    ・簡単にGUIが作れる
    ・グラフィック・3D方面にある程度強い(ゲームを作りたいと思ってプログラミングを始める人も多いでしょう)
    ・スマホアプリも作れる(らしい。私はやったことないけど)
    などがあります。プログラミングとはどんなものなのか体験して楽しむには適していると思います。本格的にプログラムを書きたくなったら他の言語を学べばいいと思います。

    デメリットはたくさんあります。遅いとかWindows以外で使えないとか。それが気になったら他の言語を学べばいい。

    --
    640GBはすべての人にとって未来永劫充分なメモリだ。
    • by Anonymous Coward

      > デメリットはたくさんあります。遅いとかWindows以外で使えないとか。

      自分の主観ですが、HSP製のゲームはWineでも結構な確率で正常動作しているイメージがあります。
      (Windowsに依存したAPIを使ってないものは動作しやすいかも?)
      OpenHSP [onionsoft.net]のような互換環境が整えば
      クロスプラットフォームのゲームを作る言語ならHSP!と言えるまでになりうるポテンシャルは持っていると思います。

      • by Anonymous Coward

        >(Windowsに依存したAPIを使ってないものは動作しやすいかも?)
        WINEってそのWindowsに依存したAPI(Win32API)をエミュレータする物なんだけど

        むしろ直接Win32APIを叩いて作った方がWINEではどのWin32APIが実装されているか確認を行い動くか動かないかの判断がしやすいだろ。

  • Excelマクロ (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2014年01月16日 18時05分 (#2528177)

    タコ殴りだろうな。
    でも、実行環境の入手性と実用度は莫迦に出来まい。

    • by Technobose (6861) on 2014年01月16日 18時35分 (#2528197) 日記

       構造化プログラミングの基本は押さえているし、実用的な機能も備えているから、プログラミングを教えるにも覚えるにも良い言語だと思いますね。
       ただ、同じVBAなのに、ExcelとAccess、Wordで微妙に関数に違いがあったりするのはひどいと思うけど。

      /*
      Excelで複雑な計算をさせるとき、「わかりやすい」という理由でワークシート上で組む人がいるけど、ちょっと込み入った計算ならVBAにしたほうが見通しが良くなるしわかりやすい。
      */

      親コメント
    • by Anonymous Coward on 2014年01月16日 18時14分 (#2528184)

      基本的にVB6そのものだから、情報も山ほどあるからねぇ。
      VB6は何かと馬鹿にされるけど、構造化例外さえあれば今でもそこそこ戦えてたと思う…。

      ところでExcelマクロは.netに移行しないのだろうか。

      親コメント
    • by Anonymous Coward

      ExcelではないにせよBASICで入門した人はここには多かろう。
      俺もだ。

      • by Anonymous Coward

        小学生のころ、MSXマガジンの後ろの方に載っていたBASICのプログラムを読んでも、全く意味が分からなかった。ただ、盲目的に「写経」して、出来上がったブロック崩しとかで遊んだだけ。今では「5つ」のうち、少なくとも、C/C++/Java/JavaScript/pythonの文法は理解しているつもりだけれど、(触れる機会がなかったので)いまだにBASICの文法は覚えていない。

        一方、当時、私より長大なプログラムを頻繁に写経していた私の兄は、いまだにプログラミングができない。

        つまり、子供のころに触っても、きっかけになるかどうかは本人次第じゃないかなぁ、と。少なくとも、私は大学でCを半強制的に教え込まれるまでは、(「写経」でない)プログラミング自体はできなかったと思う。だから、言語より、入り方の方が重要だったのかな、と。

        MSXマガジンにも何回かプログラミング講座があったし、確か、8クイーンを解く問題とか、力士がお姫様を助けに行くRPGを作る連載とかもあって、読んだ記憶はあるけれど、私には身につかなかった。

    • by Anonymous Coward

      プログラミングの勉強用と考えれば悪くないと思う。
      ただ、「言語を学ぶ」の意味に依っては余り良くは無いかも知れない。

  • 法学部出身ですが、選択科目に「電子計算機概論及び実習」なる科目があり、QuickBasicの入門編みたいな授業を受けました。

    直接何かの役に立ったわけではありませんが、楽しかったな。

    今は、細々とJavaの入門書を手に自習しております。

    // 知るって、楽しい。
    --
    死して屍、拾う者なし。
  • 今や幾多のスクリプト言語があるので今更とも思われるかもしれませんが、簡単だし少し書けば確実に結果が目に見えるし、それでいて実用的だしいいと思うんだけどなあ。
  • print "hello world"
    とだけ書けば hello world と表示してくれるようなやつ。
    記事の中で言うなら python か ruby。
    C とか Java は最小のプログラムを書くにもゴテゴテしたクラス定義なんかが付いて回るんで、そういうのが学習の妨げになり得ると思う。
    「そういうことになってる」とか「とありえず書いとけ」は初学者にはできるだけ無い方がいい。

  • 変数とか制御構文とか関数とか、最低限の概念を理解して

    あとは、必要な分野のライブラリが豊富な言語を選べばおーけー

  • by genkikko (36404) on 2014年01月16日 17時25分 (#2528141) ホームページ 日記

    くりかえせ 4 「まえへ 50 みぎへ 90」 ぺんをあげろ くりかえせ 2 「みぎへ 90 まえへ 25」 ・・・

    中学校で習いました@昭和56年生まれ

  • by Anonymous Coward on 2014年01月16日 18時13分 (#2528181)

    分かりやすさでいえばプチコンmkII [smileboom.com]なんかいいと思うんですけどねぇ。
    基本BASICだし。

    • by Anonymous Coward

      BASICはブログラミング適性を測るのにいい言語だったよなあ、と思ってちょろっとググってみたらSmall Basicというのがあるんですね。

      入手は簡単ですし、公式で公開されているプログラミング入門が意外とわかりやすくて、初心者はこの入門に沿ってとりあえずやってみればいいんじゃないかと。多分、数時間で終わります。

      最後までやり終えられたら目的に応じて元記事の言語やプチコンmkII 、HSPなどに挑戦すればいいですし、やり終えられないようならプログラミング以外の趣味を探すのをお勧めします。

  • 繰り返しでごめんなさい。でも、変数、制御構文、関数、はおおくの場合に必須と思います

    で、そのうち、初心者に向いてる言語はあると思う。とっつきやすいとか、環境が構築しやすいとか。

    でも、トータルで言えばあまり変わんないんじゃないかと思う。解決したい課題があるならなおさら

    結局、コストを後で払うか前払いかの違いじゃないのかとか。一見前払いですんでるようでも、なかなか、なかなか

    どう?

  • by Anonymous Coward on 2014年01月16日 18時48分 (#2528207)

    Wirth大先生のOberon(Oberon-2)の独自環境の部分を切り離した、Oxford Oberonというコマンドライン・コンパイラがある
    その名のとうりOxford大学の先生が大学での教育用に作った処理系

  • by macintrash (30773) on 2014年01月16日 23時48分 (#2528369)
    いわゆる仕事との成果物としてソフトウェアを出力したことがない人間ですが・・・
    - 今までの経験で一番基礎となっているのは、小学生のときに学んだZ80のマシン語(アセンブラなし)です、これでプログラムというものがすべからくメモリ上の物であることを学びました。
    - 高級言語で、これに近いものがC言語だと思います、いちどポインタのポインタ、関数ポインタ地獄に落ちればよいのだわ、おほほほ。
    - オブジェクト指向、テンプレート、インターフェースを学ぶのにはC#がよいと思います、値渡しと参照渡しが厳密に分かりにくいですが、非同期通信を秘匿するのでとっつきやすいかと思います。
    - 子供がプログラミングをしたいと言い出したら、Javaをやらせると思います、クラスやインスタンス、メソッド、プロパティの概念など難しいことが多いですが、スマホやタブレットなど身近なデバイスで動くことが利点だと思います。
    - 帝国に忠誠を誓うなら、もちろんObjective-Cです、独特な文法、Macでないと出来ないなど、帝国への忠誠心は高まるばかりです。
  • by Anonymous Coward on 2014年01月17日 0時16分 (#2528377)

    コーディング中にエディタがスペルミスを指摘してくれたり、
    デバッガでbreakpointしかけて変数の中身を見たり、
    そういうのがやりやすい環境が重要だと思う。

    となると、ちょうどVisual Studio無料版があることだし、
    対応している言語から選ぶと、初心者向きにシンプルなのはCかなー。
    C#でも良いかもしれない。

  • 論理学と数理論理学と数学の証明問題
  • by Anonymous Coward on 2014年01月16日 17時36分 (#2528149)

    実行環境が最も入手しやすいし

    • 括弧の対応が分かりづらいから、勧めない:b

      親コメント
    • Web系でいいなら、まず必要なのはJavaScript(以下JS)/HTML5/CSS/git(の操作)/正規表現でしょうか?
      他の言語でもそうだけどフレームワークやライブラリを選定する能力は常に鍛えた方がいい。
      直接プログラムとは関係ないけどweb計に進むならCSSプリプロセッサは早めに学習しとくといいと思う。

      んで、覚える言語減らすためにもサーバサイドはnode.jsでいいと思う。
      JS自体はあまりきれいな言語じゃないけどnode.jsからはじめたら汚いコード書くの難しいと思うよ。
      名前空間を汚さない事、メモリリークしない事が身につくんじゃないかな?

      そこまでいけばクライアント側のJSは全く難しくない!
      node.jsが出る以前から出回ってるフレームワークが使えるしnode.jsで問題無いコードが書けるのであれば
      ブラウザで動くJSなんてたかが数分~数時間だし、ざっくり書いても怒られない程度の物がかけるハズ

      親コメント
    • by Anonymous Coward

      私もそう思うんですが最初からjQuery使うとプログラミングの基礎が全く分からなくなくなるような気も。
      自分の周りでは他の言語を覚えた後で使った人しかいないので、最初からjQueryの人が他の言語に移れるのかどうか分からないんですよね。

    • by Anonymous Coward

      JavaScriptはあまりお勧めできないですね。
      Node.jsとかと、Webブラウザ等、またWebブラウザでもjQueryの有無等で実行環境も使い方も全然違うんで、分かってる人には問題無いけど初心者にはあまり向いていないかと。
      初心者にはIDEをインストールしてプログラミングを始めた気になれるC#かJava、またはチュートリアルを手軽に実行できるLL言語が良いんじゃないですかね。

  • by Anonymous Coward on 2014年01月16日 19時27分 (#2528239)

    言語自体は何をやってもいいんだと思います。続けることがプログラマー脳を作るので。

    子供ならスマートフォンが一番入手しやすいコンピュータなんじゃないでしょうか。
    フリック入力でプログラミング、大いにアリだと思います。
    大人でプログラミングを始めるのなら、Javaを選んでおけば大抵は何とかなります。
    プログラマー脳を作らないと言語の良し悪しなんてわかりません。

  • by Anonymous Coward on 2014年01月16日 19時31分 (#2528240)

    エリック・レイモンド氏はまず Python を使え、と言ってる。http://cruel.org/freeware/hacker.html
    3DCGソフトウェアの組み込みインタープリタとして Python が採用されていることも結構あるから、
    悪くない選択肢ではなかろうか。
    その後 Java, C/C++, Perl, LISP だそうだが、いまなら C# も入ってくるのではなかろうか。

  • by Anonymous Coward on 2014年01月16日 19時33分 (#2528243)

    私の母校では、伝統的に最初に習うプログラミング言語がPascalです。
    教科書の著者がそこの教授なので、利権が関係しているとかいう噂もあったりなかったり。

  • by Anonymous Coward on 2014年01月16日 19時50分 (#2528253)

    組み込んでるソフト多いから覚えておくと便利

typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...