
「プログラミングって難しそうだけど、自分にできるかな。」

「プログラミングを始めたいけど勉強方法が分かりません。」

「文系出身だけど、なにから手を付けたらいいか分かりません。」
これらの疑問にお答えします。
この記事を読めば、プログラミングスキルを0→1(ゼロイチ)にする勉強方法が分かります。
ちなみに、ここでいう”1”とは「プログラムを使って何かしら自分で作ることができる」と定義しています。結論からいうと、文系出身だろうと、社会人だとうと独学でプログラミングスキルを身につけることは可能です。
自分にできるか不安を感じている方が多いと思うので、以下にポイントを置き、話をすすめます。
- とにかく自分で何か作るまでの具体的な道のりを示す。
- モチベーションが維持できるように、なるべく障壁を作らない方法を伝える。
- 0→1達成後の選択肢ついて伝える。
今後のキャリアや進路を考えている方はもちろん、仕事や趣味をより良くしたいと考えている方にも参考になるように、私の経験を踏まえ書いたつもりです。この記事を読み進めつつ、プログラミング学習を前向きに考えてもらえばと思います。
私の話を少しさせて下さい。
- 仕事で必要になったので、プログラミング学習を開始。でも文系出身でスキルゼロ。
- 現在、プログラミング歴は5年程度。
- 仕事だけではもったいない(?)ので、趣味の競馬予想をプログラミングでほぼ自動化。
以下は、Webスクレイピングから予想出力まで、ほぼ自動化しています。
<競馬予想の記事一覧>
他にも、このブログにWebアプリを実装しました。
<ランダム競馬予想ツール>
現在もプログラミングを活用して、仕事の業務効率化やゲーム作成などに勤しんでいます。
1.パソコンに慣れる
まず、パソコンの扱いに慣れましょう。
えっ、ここから?と思われた方は読み飛ばしてください。
でも、あまり馬鹿にはできませんよ。
今やスマートフォンでいろいろなことができるようになって、パソコンを使わない人が増えたという話も聞きますが、プログラミングは基本的にパソコンでやるものです。スマートフォンでできるアプリもありますが、パソコンは画面が大きく、複数のモニタを使用して作業領域を拡張できるので、作業効率はスマートフォンの比ではありません。
パソコンをお持ちでない方は、まず購入を検討してみてください。
スペックは、CPUはi5シリーズ、最低限メモリ容量は8GBほしいですね。ストレージはSSDで500GBあれば十分です。
WindowsかMacかについては、お好きなほうでいいと思います。
ちなみに私はWindowsを使用しています。
古いPCですが、メーカーはDELL、CPUはi7シリーズ、メモリ容量は8GB、SSDは500GBで今のところ作業に支障なしです。
タイピングの向上
プログラミングでは、コードを打つ速度や正確性が、そのまま作業効率につながるので、ブラインドタッチができるようになると、コーディングがはかどります。
できなくても、プログラミングができないわけではないですが、プログラミングを覚えることに比べれば難しいことではないので、学習の障壁としないためにも前向きに取り組みましょう。
タイピングは、タイピングソフトを使用するのもありですが、「タイピング 無料」で検索するとWeb上で練習できるサイトがあるのでおすすめです。大学生であれば、論文やレポート作成があると思うので、そこまで苦にならないかもしれませんが。
パソコンの知識習得
タイピングと同じくらい、パソコンの基礎知識や操作方法の習得も大事です。
パソコンの基礎知識については、「パソコン 基礎知識」で検索すれば、解説サイトやYouTube動画が出てくるので、上位結果のサイト等を2つ3つ確認して、分からない用語が出てきたら調べましょう。
プログラミングを勉強していく過程で、分からないことを調べることは必須になるので、練習だと思って取り組みましょう。
知識の習得は、どうしても単調になりがちなので、無料のテストやゲームを利用するなど、楽しく取り組めるように工夫してみてください。アウトプットにもなるので、知識の定着に役立ちます。
あなたが楽しくできる方法で、ぜひチャレンジしてみてください。
ショートカットキーを覚える
こちらもパソコンの知識を覚える要領で取り組みましょう。
たとえば、「Ctrl+Sキー=保存」を覚えるだけでも、作業効率が変わってきます。
まずは、このあたりを覚えると便利ですよ。

論理演算を覚える
学ぶプログラミング言語によりますが、ほとんどの言語で論理演算の理解が求められます。
論理演算とは、コンピュータが行っている、「1(真)」と「0(偽)」を使った演算のことです。
いきなり難しく感じたかもしれませんが、まずは、代表的な「論理積」(AND)、「論理和」(OR)、「否定」(NOT)、排他的論理和(XOR)が理解できればOKです。その過程で、コンピュータがなぜ「1(真)」と「0(偽)」で演算しているのか、仕組みも理解できると思います。
コンピュータの仕組みを理解することは、プログラミング学習に必ず役立ちます。ここは多少時間がかかっても、しっかり身につけましょう。文字だけ追いかけても頭に入らないので、エクセル関数のAnd、OR、NOT、XORを実際に使ってみると理解もスムーズです。
ここまでの学習期間は、長くても一か月程度を目途にします。
プログラミングに触れていない状態なので、時間をかけすぎると中だるみします。興味関心が薄れる前に次に進みましょう。
2.興味のあるプログラミング言語を学習する
パソコンの扱いに慣れたら、プログラミング言語の学習に入りましょう。
もともと興味のある言語があるなら、それを選択します。作りたいサービスやアプリが明確であるなら、必要な言語を選択してください。よく以下のように仕分けされることが多いので、自分が作りたいものがどんな言語で作られているのか調べてみましょう。
とはいえ、アプリやサービスよって様々な言語を使用する場合もあるので、あまり難しく考えすぎず、必要なものを取り入れる心構えを持つようにしましょう。
適当な言語がなければ、比較的理解しやすいといわれているHTMLやCSSから入ることをおすすめします。ネイティブアプリ系の言語は、Web系に比べると取っつきにくいところがあるので、挫折する確率は多少上がるかもしれません。
- Web系アプリ/サービス:HTML/CSS/PHP/Ruby/Javascript/Java
- ネイティブアプリ系:C/C++/C#/VB
学習方法について
書籍とWebサービスのどちらがいいかという話ですが、結論から言うとどちらでもOKです。
私はどちらも利用したので、その経験を踏まえ、双方のメリットをお伝えしておきます。
Webサービス
- 無料でも、ある程度詳しく教えてくれる。
- 動画教材の場合は、視覚と聴覚からインプットできるので、理解しやすい。
- 学習の進み具合が分かるので、勉強している感がある。
書籍
- 種類が豊富で、自分にあったものを選択できる。
- 専門的な情報を低コストで入手できる。
- Webサービスに比べ、体系的に学ぶことができる。
どちらもコンテンツの質に左右されるのですが、大切なことは次の2点です。
- 分からないままでも良いので全体を通して学習すること
- 手を動かしながら繰り返し学習すること
例えば、Webサービスで提供される動画教材の場合、動画を止めながら実際に手を動かし、分からないことはその場で調べることを繰り返すと良いでしょう。実際に私もその方法で取り組みました。動画教材は見ているだけで勉強した気になって、頭に入ってないことがあるので、手を動かして知識が定着するように努めましょう。
以下に、私が使用したサービスと書籍をいくつか紹介しておきます。
Webサービス
サービス | 概要 |
---|---|
ドットインストール | 1レッスンあたり3分程度の動画で構成されており、すきま時間で学習できる。プログラミング未経験者よりは、学習経験のある人向け。 |
プロゲート | スライド形式での講義で、プログラミング未経験の方でも馴染みやすいように工夫されている。Web開発者を目指す人向けにロードマップが用意されている。 |
paizaラーニング | ITエンジニアの求職を支援するプラットフォームであるpaizaが提供するプログラム学習サービス。多くのプログラミング言語に対応。プログラミングスキルが測定でき、特定のレベルを達成するとスカウト率が上がるなどゲーム性がある。 |
書籍
1冊ですべて身につくHTML & CSSとWebデザイン入門講座 [ Mana ]
退屈なことはPythonにやらせよう ノンプログラマーにもできる自動化処理プログラミング
3.自分がほしいツールやサービスを考えて作ってみる
基礎的な知識を付けつつ、Webサービスや本の課題を完成させる。ここまでにかかる時間はだいたい3か月程度でしょうか。
プログラミング学習を迷っていた頃に比べて、「意外と自分でもできるなぁ。」と、成長を感じるようになったのではないでしょうか。ここまでくると、何か作ってみたくなるかもしれません。
では、そろそろつくってみましょう。
自分がほしいと思うツールやサービスを考えてみてください。今までは、どちらかといえば知識をつけることを優先してきました。ここで「自分がつくりたいものを作る」という動機付けをすることで、勉強の継続率や理解度が高めましょう。
作るものは小規模で問題ありません。というより、いきなり壮大な構想は実現するのにパワーも時間もかかるので、現時点でのスキルや理解度と相談しつつ考えましょう。
やりたいことや考えたアイデアは、頭のなかだけでなくテキストとして残すと、このあとの作業がやりやすくなります。
実際に私がやったことを例にざっくり挙げておきます。
例)競馬予想の自動化
やりたいこと:オリジナルの競馬予想を自動化する
<やりたいことと現状を分析>
やりたいこと①:データ収集を自動化
【現状】
・データ収集は主にWebサイトから入手している。(手動で)
→Webスクレイピングという技術があるらしい。→Pythonでできるらしい。→勉強する。
→Webスクレイピングには、HTMLとCSSの知識が必要。→勉強する。
やりたいこと②:オリジナルの競馬予想を自動化
【現状】
・収集したデータを点数化し競馬予想している。
・点数化や集計はエクセルで計算している。
→エクセル集計はVBAで自動化できるらしい。→勉強する。
と、上記のような感じでやりたいことと必要なことを整理して、勉強が必要な部分に手を付けていくイメージです。
もし、この時点で、続けることに苦痛を感じる方は、無理に継続せず別の何かに取り組んだほうがいいかもしれません。
プログラミングを将来的な仕事にするにせよ、趣味にするにせよ、「なんか続けられそうだな」という感覚が大事だと、私は思います。
これまでの学習は無駄ではありません。ITのスキルや知識は、はじめたことよりも数段アップしているはずです。もったいないと思うのであれば、これまでの努力を「ITパスポート」という国家資格という形で残すのも選択肢の一つです。
4.実際に作ったものを使う→直す
作ったものは、自分や身近な人に使ってもらいましょう。
「ここはこうしたほうがいいな。」や「もっと○○な機能が欲しい。」といった改善点が見つかるはずです。いくつか改善点を見つけたら、それを実現するためにはどうすればよいか考えて、実際に作ったものを改善しましょう。
この一連の作業で、更にレベルアップし、「何となくプログラミングが分かる。」感覚を持つことができると思います。
学習していた当初、素通りしていた情報が理解できたり、自分は何が分からないのか自覚できたりするようになります。あとは、これらの情報をもとに調べる、手を動かすことを繰り返し、力を伸ばせばよいのです。
ここまで来れば、少なくともプログラミングスキルは1になっていると思います。
5.まとめ
以上、独学でプログラミングスキルを1にする方法をお伝えしました。
お伝えしましたが、この記事を読んで即ITエンジニアになれる!みたいなことをいうつもりはなく、当然プロを目指すならそれなりに時間はかかると思います。ただ、自分の手でひとつ何か作ることができれば、あとは自分の中で応用するだけですし、自信になると思います。
どこをめざすにしろ、プログラミングスキルを身につけたければ、学習(Input)と作る(Output)を繰り返すことが重要です。
楽しんでいきましょう。
次のステップ
私は、いまのところ趣味という形で自分のためにプログラミングスキルを活用していますが、最後に0→1にした方に向けて次のステップを提示して終わりたいと思います。
趣味としてプログラミングを続ける
社会のIT化が進むので、プログラミングはスキルという側面から、徐々に教養に変化していくと思います。そんな時、何か興味ある分野でプログラミングに触れ続けることは、仕事や私生活でプラスになります。
ゲームは自分で作って遊べるのでおすすめです。Unityというプラットフォームを使えば無料で開発できます。興味がある方はチュートリアルでゲーム開発を体験してみましょう。
Unity Learn
アルバイトやクラウドソーシングをしてみる
ある程度、学習が進んで実務レベルのスキルが身につけば、「仕事にする」という選択肢が出てきます。その場合、まず経験を積むという意味でアルバイトやクラウドソーシングを利用するのはアリだと思います。
アルバイトであれば、「プログラミング 求人 未経験」で検索してみましょう。興味とスキルがマッチしそうな案件があれば応募してみてはいかがでしょうか。どんな仕事があるのかクラウドワークスで見ることができるので、登録するだけでも有用です。Webサイト作成ならココナラも選択肢のひとつとして持っておいても良いでしょう。
スキルのフリマ【ココナラ】
プログラミングスクールで学ぶ
ここまで学習を進めてみて、将来的に仕事にしてみたいけど、独学では不安。という方は一度検討してみてもいいかもしれません。独学でいくぜ!という方は、学習を進めながら上記のアルバイトやクラウドソーシングで知識と経験を積み上げるルートになります。
ただ、費用がバカになりませんので、IT系の職に就く決意の固い方向けです。プログラミングスクールはたくさんあるので、どこにするか迷われている方は、いくつかのスクールへの相談や説明会参加から始めるのもいいかもしれません。以下がおすすめです。
無料カウンセリング【転職型スクールNo.1】DMM WEBCAMPエンジニア転職
TECH::CAMPオンライン説明会
現役エンジニアのオンライン家庭教師CodeCamp
ご清聴ありがとうございました。