一般的にプログラミングは理系の人間が得意とする分野であり、文系の人間が出る幕ではないとされることが多い。
本記事では、実体験をふまえ文系のプログラミング学習に関する考察を行う。
1、問題意識
ホームページやアプリケーション、ゲームなど、日常的にたくさんの人が利用するサービスにはプログラミング技術が不可欠である。
プログラミングを行うにはそれ相応の能力が必要であり、ほとんどの人は縁のない世界だとされている。
しかし、最近ではインターネットや出版物を用いて独学でプログラミングを学ぶことが比較的容易になったばかりでなく、プログラミングスクールやインターネットでプログラミングを学べる動画を視聴できるサービスも登場し、現在ではもはやプログラミングを学び始めることに対するハードルはほとんどないと言っても良い。
ここで1つの問題意識が生じる、それは文系の人間がプログラミングを学ぶことができるのかという問題である。
高等教育においてプログラミングを学ぶ機会は理系の学生の方が多く、文系学生は統計学など一部の分野を専攻する学生を除いてプログラミングに関わることは少ない。
SNSやネット掲示板においても、文系の人間がプログラミングを学ぶことはハードルが高く、エンジニアなどそれを仕事とするのは尚更困難である、とよく言われる。
本記事では、筆者の実体験を基に文系の人間のプログラミング学習について考察する。
2、学習のための下準備
プログラミングを学び始める際には、どの言語をどのような手段で学習するのかという点が問題になる。
学習する言語を選ぶ上で、筆者は現在より多くの人に使われている言語を選ぶことにした。
今世界で特に多くの人に利用されている言語として、Python、C言語、Javaを挙げることができる。
今回はこれら3言語を中心に学習を行っていく。
3、学習方法の検討
プログラミング言語を学習したい場合、いくつかの手段が考えられる。
1つ目は、書籍を使う方法である、この方法の場合、学習する事柄が体系的にまとめられていることが多いためスムーズに学習を進めることが可能になる一方で、書籍によっては初学者には分かりにくいものも多いため、かえって学習に対するモチベーションが減退しかねないというデメリットもある。
2つ目は、インターネットにおいて利用できるコンテンツを使う方法である。
今までであればインターネットでプログラミングを学ぶ場合、ブログやホームページなど、多くがテキストで構成されているコンテンツを利用する必要があり、解説が詳しいものもそれほど多くはなかったため、インターネットを用いて独学でプログラミングを学ぶことは難しかった。
しかし現在では動画共有サイトYouTubeに世界中のユーザーが投稿したプログラミングに関する動画が多くあるばかりでなく、ProgateやUdemy、Courseraなど、オンラインで手軽にプログラミング学習ができるサイトが数多く存在しているため、独学で学習するハードルは下がったといえる。
今回どのようにしてプログラミングを学ぶかを考えるため、書籍とインターネットで無料で使えるコンテンツを使って学習を進めることにした。
4、学習開始以前の筆者の能力
プログラミング学習を始める前までは、プログラミング言語の名前(Python、Javaなど)は少し分かる程度で、それ以外のことはほとんど分からない状態であった。
高校時代は理系であり、数学は比較的得意であったためプログラミングで時折登場する数学には抵抗なく取り組むことが可能である。
またプログラミング学習とはあまり関係がないかもしれないが、英語力もある程度あり、読み書きは容易に行うことができる。
5、学習の開始、開発の挑戦
まずはJavaに挑戦した。
どのように文法事項を学べば良いかについてほとんど分からなかったため、無謀ではあるがいきなり開発に挑戦することとした。
Javaを用いて何かを開発する場合、多くの人はAndroidアプリを開発するだろう。
Androidは世界シェアトップのモバイルOSであり、アプリケーションを開発することができれば多くのユーザーに利用される可能性もある。
それに加えてAndroidアプリを開発できるソフトウェアである"Android Studio"は無料で利用することができるため、気軽に開発を始めることができると考え、Androidアプリ開発に挑戦することにした。
6、挫折と計画の再考
インターネット上の記事等を用いて自分なりのアプリケーションを開発しようと思い数ヶ月にわたって奮闘を続け、Javaの文法に関する知識も少しは付いた。
しかし、如何せん文法知識がおぼつかない状態で開発を行うことは困難であり、自分がソースコードを書いていても何を実現しようとしているのかが一向に分からず、最終的には挫折することとなった。
この経験からプログラミング言語の文法知識が少なく、スムーズにソースコードを書くことができる状態でなければ開発に挑戦することは無謀であると悟り、新たな手法を模索する必要に迫られた。