プログラミングは難しい

ソフトウェア開発

業界や職種、システムなどによって使われるプログラミング言語はまちまちです。流行に左右されて既存アプリケーションを別の言語でリファクタリングする必要が出てくることもあります。そういったタイミングで新しい言語を取り入れていくのがソフトウェア開発者の定めになります。今回はプログラミングを学習する方に向けて、段階的な学習方法とそれぞれのメリット・デメリットなどを解説したいと思います。

はじめに

最近はプログラミングという用語がかなり一般に広まってきました。小学校でもプログラミング学習が必修化されるなど、身近な存在になってきているのは確実です。またプログラマーやソフトウェアエンジニアといった仕事はリモートワークとも相性が良く、未経験からこれらの職種への転向を目指す方も多くいます。そういう方に向けた宣伝文句として、「プログラミングは簡単で、誰でもできるようになる!」という言葉を耳にします。確かにプログラミングを始めることは一昔前より簡単で、経験人数も増えているはずですが、誰でもできるようになるというのは言い過ぎな気がしています。プログラミングはやはり難しく奥が深いものであり、だからこそこれらの職種は専門職として扱われているはずです。なのでプログラミングを使ってこれから稼ぎたいと思っている方は、それなりに覚悟を持たないと大切な時間やお金を浪費して途中で諦めてしまうことに繋がります。逆に覚悟を持って取り組まれる方は以下のような学習方法を参考にして、是非途中で諦めることなく学習を続けてみてください。きっと長く使えるスキルとなり、人生を豊かにする助けになるはずです。

学習ステップ例

ここではプログラミングの具体的な学習方法を挙げてあります。現在は色々な教材があるのでやり方にこだわる必要はありませんが、以下のようなステップで学習を進めることで段階的に理解を深めることができるのでおすすめしています。

言語を眺める

まずは勉強対象のプログラミング言語をざっくり眺めてみましょう。細かい文法などは置いておいて、コードにどういった処理が書いてあるのか、どういう設計になっているのか、など理解できる部分だけでも眺めてみましょう。ただし最初はできるだけ模範的な記述方法を身に付けたいので、一般的な教本や実際のアプリケーションであればある程度有名なものなどを見てみましょう。自分がJavaを学ぶ際にはGitHubにあるOpen JDKのコードを参照しました。規模が大きくとても全部を見る気にはなれなかったですが、よく使う型やリストなどのメソッドや機能についてコードレベルで見てみることはとても勉強になりました。また他の言語に触れたことのある人であれば、この時点で言語の違いをざっくり知ることができると思います。

Hello Worldを作る

ある程度視覚的にその言語に慣れたら、よく出てくるHello Worldのプログラムを作ってみましょう。コンソールや画面に”Hello World”と出力するものですが、どのような言語でも教本やサイトにサンプルコードが載っているので、まずは真似をして作ってみましょう。読むでけでなく、このように手を動かして書いてみるというのが重要な意味を持っています。英語を勉強するときも同様ですよね。

またこのときにコンパイラやパッケージ、IDEなど、その言語の実行環境もできるだけ揃えましょう。ブラウザだけで簡単に擬似的に実行することも可能ですが、今後実際に言語を使っていくのであれば、自分で環境を整備する作業は必ずできなければなりません。その作業も含めて言語を勉強するということでもあるので、できるだけPCにそのような環境を作成することにもチャレンジしてみましょう。

基本要素を学ぶ

サンプルレベルで読み書きをしてみたら、いよいよ本格的な学習に移ります。教本や学習サイトなど体系的で基本要素を網羅している教材が適しています。本であれば例えば「やさしいシリーズ」がおすすめです。大学の情報学の授業でも使われており、基本的な要素を初学者にもわかりやすく解説していて、サンプルコードも付いています。


本やコードを読んで勉強することももちろん大切ですが、ここでもできるだけサンプルコードを自分で動かしてみましょう。全てでなくても構わないので、自分が気になった部分など手を動かすことで理解をさらに深めることができます。学習サイトを使う際も同様で、ブラウザで入力したり動画を見るだけで終わりにするのではなく、手元の実行環境を使って実際にプログラムを動かしてみましょう。少し手間ではあるのですが、言語や動作について体を使って理解することができるようになります。それなりに時間がかかるフェーズですが、基礎を作るのが何よりも大切ですので焦らずじっくりと学習を進めましょう。

既存コードを理解する

上記までで言語の基本的な機能はほぼ使えるようになっているはずです。何も見ないでプログラムを書ける必要はなく、文献やサイトで調べながらでも基本的な機能やライブラリを使える自信が付いていれば十分です。

その状態になったら次はその言語で書かれている実際のアプリケーションのコードを読んでみましょう。「言語を眺める」で見ていたものでもいいですし、オープンソースの別のものでも構いません。今度はただ眺めるだけでなく、できるだけメソッドや行単位でそのコードが何を実行しているのかを精読してみましょう。規模は大きいかもしれませんが、意外と自分が知っている基本要素で書かれている部分がほとんどだということに気付くかもしれません。わからない部分はもちろん調べながらで構わないので、できるだけ自分の力でアプリケーションをコードレベルで理解できるように努めましょう。言語への理解をまた一段と深めることができます。

アプリケーションを作る

ここまできたら最終的にオリジナルのアプリケーションを作ってみましょう。クラス設計や機能は独自で構いませんが、規模は大き過ぎず、また基本的な要素やライブラリで実現でき、プラットフォームに大きく依存するようなものは避けましょう。自分で一から作るとなると、理解していたと思っていた部分がまたわからなくなったり迷ったりすることも出てくると思います。そういった疑問と向き合い、自分の力で乗り越えていく作業が何より大事であり力になります。最終的に望んだアプリケーションが出来上がったときの喜びも味わえます。是非ここまでやり遂げて、その楽しみを覚えてプログラミングを自分のものにしていきましょう。

参考文献

プログラミング言語の学習方法についてはこちらの「CAREER SKILLS」が参考になります。筆者は海外の方ですが、日本でも適用できる内容がほとんどです。上記の学習方法について細かく記述している部分もあるので、さらに学習を進めたい方などは是非参考にしてみてください。

まとめ

今回はプログラミングと日々向き合う方に向けて、言語の学習方法について具体的なステップを示しながらご説明しました。決して楽な道ではありませんが、ここに示した方法例を実践して少しでも多くの方がプログラミング技術を身に付け、エンジニアとして一緒に成長していけたら嬉しい限りです。

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました