プログラミングのはじめかた【ソフトウェア工学】

「最近はプログラミングスキルが重要になってきているらしい。でも何から初めていいかわからないなぁ」

そんな悩みに答えます!

今回は「プログラミングの始め方」について紹介します。どんな人がプログラミングを始めたほうが良いか。どのように学べば良いか、を紹介したいと思います。このようなプログラミングを対象にした工学のことをソフトウェア工学と言います。

私はプログラミング歴が10年です。C、C++、fortran, JAVA、Ruby、Python、swift、go、他多数の言語でプログラミング経験があります。独学から始め、ソフトウェア開発でお金を稼げるようにもなりました。このようなバックグラウンドですので、記事の信頼性は担保できるかと思います。

それではいきましょう。

プログラミングの重要性

プログラミングスキルの重要性が高まっています。これからはITエンジニアだけでなく、事務職をはじめとする多くの人にプログラミングスキルが必要になってくると考えられます。また、機械設計者などのハードウェアエンジニアもプログラミングスキルが重要になってきます。

なぜ、プログラミングスキルが重要になっているのかというと、コンピュータの進化によって、重要なものが変わっているからです。コンピュータの進化によって多くの情報を記録し、処理できるようになってきました。ビッグデータと呼ばれるような「大きな統計数の情報を扱う」ことが今後重要になっているのです。

世界的な大企業がビッグデータを駆使しているということは、聞いたことがあるかもしれません。個人個人の閲覧歴などから、カスタマイズされた広告が表示されることなどが例としてあげられます。

実は小さな企業でも同じことが起きています。書類のデジタル化に伴い、事務処理のプロセスを自動化したくなるでしょう。表計算ソフトの関数をつくることはもうプログラミングを少しはじめているようなものでしょう。営業職であれば過去の顧客データを集めたり、そこから戦略を見出したりできるでしょう。

また、研究者や技術者は、実験で多くのデータを取得することで不確かさを小さくして、実験結果の価値を高めます。やはり、多くのデータを速やかに処理するプログラミング技術というのが求められているのですね。また、シミュレーションや計算にもプログラミングというものは便利ですね。たとえば、解析的に解くことのできない定積分はありますが、数値積分というようなプログラミングを利用して定積分を解く方法があります。技術者や研究者もプログラミングが必要になることは多いはずです。

このように、どんな職種、業界でもプログラミングスキルが求められているかと思います。

プログラミングに向いているのは「面倒くさがり屋さん」

プログラミングは「面倒くさい」と思った作業をパターン化して、プログラムにする作業です。なので、面倒くさいと感じる作業ほど、プログラムをつくるモチベーションが高くなるのです。

面倒くさがり屋の方は、プログラミングに向いているかもしれません。

僕も面倒くさがり屋の一人です。プログラミングを始めたきっかけは、大学4年生のときに大量のデータを処理したときです。表計算ソフトで何度も同じ関数を打ち込んでいるうちにうんざりしていました。そして、プログラミングの世界に入ったわけです。

ソフトウェア開発も立派なものづくり

日本においてIT業界をはじめとする技術がものづくりとして認められていないことに違和感を感じています。例えば、製造業では、ソフトウェア開発を甘く見る風潮があるように感じるのです。近年では少し変わってきているのかもしれませんが、世界はハードからソフトの時代に移り変わり、ソフトからデータの時代に移っているといわれています。これらの技術を使いこなして、世界と肩を並べるものづくりになれるのかなと思います。

ものづくりというのは、世の中が求めている技術を開発することであると思います。ソフトウェア開発を甘くみてはいけないと思うのです。これが90年代以降、期待していた成長率を達成できない理由だと僕は思っています。

プログラミングはいつだって始められる

プログラミングは「やってみること」が大事だと思います。スポーツなどと同じように、実践的な作業を経験して成長していくものだと思います。

言語はなんだっていい

プログラミング言語はたくさんあります。それぞれ個性があって、人によってどれが良いだの悪いだのいいますが、正直なところ言語はなんでも良いと思います。というのも、1つの言語を習得すると他の言語もすぐに習得できるからです。

なんでも良いのですが、できれば利用分野で一番使われている言語を選択しましょう。理由は、身の回りに利用者がいる可能性が高いことです。教え合えるし、もし協力が必要になったときにもファイル交換や分業などが可能になるからです。また、ネット上で検索すれば、似た分野の人がつくりたいプログラムをつくっている場合が多く、参考にできるからです。

例としては、事務仕事ならExcelのマクロやVBA、統計処理ならR言語、データ処理ならPython、web系ならhttpやjavaやcssでしょう。iPhoneアプリ開発がしたいのなら、swiftなどです。理工系の人たちは、おそらく候補として挙がるのは、Fortran、Python、 C、 C++、あたりでしょうか。学校や会社にプログラミングをやっている人がいるなら、彼らと同じ言語を選んだ方が良いでしょう。

迷うなら、C、Pythonなどがユーザー数が多いように思います。

ネットで全て学べる

最初に参考書を買おうとするのはあまりお勧めしないです。というのも、ネット上に多くの情報がたくさんあり、それで十分だと思うからです。また、ネットならではの利点もあります。以下のようなことです。

  • 参考となるコードをコピー&ペーストしやすいこと
  • たくさんの例があること

繰り返しですが、本を買う必要はないと思います。分厚い本をはじめから読んでしまうと、精神的にも重荷になりますし、下手すると苦手意識のもとになる気もします。一方で、しばらくプログラミングに慣れたあとで本を読むことはお勧めできると思います。自分の知識を体系的に書籍の中で学べるからです。

さて、ネットで学んだほうが良いといいました。僕も記事を書いているので、参考にしてみてください。

短期集中ならスクールで学ぶのもあり

お金もかかるので、ウェブでコツコツというのがお勧めですが、短期集中でやってしまうにはスクールで学ぶのも一つの選択肢だと思います。この場合には、2つがおすすめです。

  1. 演習的に学ぶならマンツーマンレッスン
  2. 体系的に学ぶなら映像レッスン

まず、マンツーマンレッスンが良いと思います。理由は、「こんなプログラムがつくりたい」とか「このデータを処理したい」などと、自分で課題をもって進めることができるからです。繰り返しになりますが、プログラミングは演習が非常に大切なので、授業スタイルの講義はあまりお勧めできないのです。また、形式としてオンラインスクールの方が、時間が縛られないことや費用が抑えられる点で優れていると思います。

もう一つが映像レッスンです。近年は非常に多いレッスンスタイルですが、費用が安いという特徴がありますが、自分の聞きたい内容だけつまみ食いできることが利点です。また、本のように体系的に学ぶことができることも大きな利点です。

最後に

プログラミングのハードルはそんなに高くありません。食わず嫌いというか、始めるまでに感じる心のハードルの方が高いように思います。

ネット上には、プログラミングの始め方やQ&Aが無数にあります。ですから、参考書を買う必要もありませんし、レッスンを受ける必要もありません。まずは、ネットで調べながら、プログラミングを勉強してみてください。

短期集中で成果を出したい方や、学習効率を上げたい方はレッスン受講も選択肢に入れて良いと思います。その場合には、オンラインのマンツーマンレッスンまたは映像レッスンを選択することが大事だと思います。

それでは、プログラミングを始めて新しい世界を開いてください。