初学者が最初に学ぶのが良いと思われるプログラミング言語(1)

前振り

ネットで探せば掃いて捨てるほど見つかるこの話題。

今年のトレンド10選!とかこれがおすすめ!とか、過激なところではそんなの人に聞いてる時点で向いてない!とか。 皆思い思いの論旨でそれ自体は良いのですが。

そもそもが、皆が思い思いの前提で話しているので「どんな読者が対象?」というのが非常になんというかアレだと思うのです(ぼかす)

「今からプログラムって勉強できるのかな」「ものづくりって今から始められるのかな」というような初学者向けの内容は「プログラミング言語 おすすめ」とかでぐぐっても案外見つからないわけで。 (もちろん検索ワード変えればそれはそれでいっぱいあるんだけども)

そんなわけでいわゆる非エンジニアの初学者志望、というか「プログラムとかよくわからないけどどんなの?」的な人に向けて書ければなと思ったり。

まず何を準備すればいいの?

当たり前ですがプログラムは書いただけでは動きません。
動かすためには大きく2つ、「開発環境」と「実行環境」が必要になります。

  • 開発環境とは?   細かい用語はおいといて…
      プログラムを書いたり、それを実行させる「モノ」に変換するツール。
      コンパイルとかそういう用語を聞いたことがあればソレです。
      それらをひとまとめにした「これがあれば開発全部できるよ」というのを統合開発環境IDE)とか言ったりします。
      具体的にはEclipceとかVisualStudioとか。
  • 実行環境とは?
      開発環境で作った「モノ」を動かす場所です。
      簡単に言うと、例えばiPhone用アプリやAndroid用アプリを作るのに、必ずしもiPhoneAndroidが必要ではないということです。
      当たり前といえば当たり前なんですけど、実際開発環境はほぼPCです。

環境構築はそれなりに厄介なことが多く、初学者が一から準備しようとすると躓きやすく、 「めんどくせぇ、もうプログラミングとかいいかな」となりかねなく、後回しにすることを強く勧めます。

最近はオンライン開発環境も充実してるようで、それを使うのをオススメします。

ざっと見た限りですが、paiza.IOなんかいいのかなと思います。

  • 特徴
    • 選べる言語が多い
    • ボタン1つでコンパイル&実行
    • ユーザー登録不要(登録もできる)
    • ファイルアップロード可
    • 日本語
    • paizaラーニング良さそう

あれ、準備するものPC(とインターネット環境)くらいで良くねぇ!?
というわけでとりあえず始めてみましょう!٩( 'ω' )و

イメージ、だいじ

ええもう始められるんですけど。
最初に1つだけ知っててほしいことがありまして、
作業、結構地味ですよ
いやほんと。

初学者への教え方でとても共感を覚えた話がありまして、以下。

先生が提唱していたやり方は、まず最初に典型的なプログラミングのプロセスを一通りやってみせつつ生徒にも同じことをやってもらう、というものだった。段階としては、
1. サンプルコードを書き写す
2. コンパイルエラーをなおす
3. 動かしてみる
4. 意図しない動作をしているコードをなおす
を一通り体験してもらう。先生が言うには「書いたプログラムが実際に動くまでには 2 つの壁がある。1 つはコンパイルエラーの修正、もう 1 つは自分の思ったとおりにプログラムが動くまでコードを修正すること。これはプログラマーである限り一生付きまとうことなので、いちばん最初にこのことを教えたほうがいい」という
Hello, world から始まらないプログラミング教育

また、同じ記事からですが、

先生曰く、「やたらと出てくる(英文の)エラーメッセージに圧倒されてやる気が削がれてしまう人間が少なからずいる」という。であれば「コンパイルエラーがたくさん出て困ってしまうのは、初心者にはありがちなこと」だと始めに教えるのが良策ではないか、と。
Hello, world から始まらないプログラミング教育

つまり、作業としては、

  • コードを書く
  • コンパイルする
  • 出てきたエラーを潰す or 動かしておかしいところを直す)

を延々、延々、延々、延々…繰り返すことになります(´-ω-)
いやでも(納期間際とかそういう条件は置いといて)つらいわけではなくて、ちょっとずつ組みあがっていったり動くようになるのは楽しいんですよ!
なのでちょっと興味を持った方にはぜひこんな話では怯えず竦まずプログラミングという世界に飛び込んでもらいたいです、はい。

えー…思ったより長くなってしまったので続きます。
言語の話全然してませんね…あうあうあー