プログラミングに興味があるのだけどなんか難しそう…何から手を付けたら良いのだろう?全くの初心者でもできるようになるのかな?
このような疑問に答えていきます。
本記事のテーマ
本記事を読むと、次のようになります。
- プログラミング学習の全体感がわかる
- 自分に合った学習方法を検討できる
- 何から手を付けて良いかわかる
結論
プログラミング学習法は、主に下記の3通りになります。
- 独学
- プログラミングスクール
- 研修制度のあるシステム開発企業へ就職
それぞれメリットデメリットはありますが、個人的には「独学で興味を持ったら、システム開発企業へ就職」というキャリアパスが最も難易度が低いのではないかと考えています。
記事の信頼性
私は新卒でSIerという「対企業向けにシステムを開発する企業」に就職しました。エンジニアとして、システム開発の全工程(要件定義や設計、開発、テスト、リリース、保守まで)を担当してきましたし、現在はAndroidのアプリも作成していますので、経験者の視点からお話ししていきます。
プログラミング学習の全体像
プログラミング学習の始め方の前に、「プログラミングとは何か?」や「どのようなことを学ばなければいけないか?」ということをご紹介していきたいと思います。
プログラミングとは「機械に対して機械語で指示を出す」ことを言います。
日本人同士であれば日本語で、米国人同士であれば英語でコミュニケーションをとると思いますが、対機械の場合は日本語も英語もわからないので、「プログラミング言語」と呼ばれる言語でコミュニケーションを取っていきます。
人間が使う言語と同じく、プログラミング言語にもJavaやPythonなど様々な種類があります。
各言語は活躍できるフィールドがあり、システム開発をするのであれば、次のような知識が必要になります。
上図のように、一言にプログラミング学習と言っても、エンジニアとして働くのであれば非常に広範囲な知識が必要になってきます。
各領域で1つは学んで欲しいですが、どこから手を付けて良いかわからないと思いますので、次の章ではプログラミング学習の始め方について解説していきたいと思います。
プログラミング学習の始め方
プログラミングを始めるには、下記の流れで進めることがお勧めです。
- 目的を明確にする
- 必要な機材(PC)を購入する
- 基礎学習+アウトプット
- 専門知識の習得
- 就職
- 転職・フリーランスとして独立
目的を明確にする
まず、あなたがプログラミングを学ぶ目的を明確にしましょう。
なぜなら、趣味でアプリを開発したいのか、エンジニアとして働きたいのか、仕事でExcelのマクロが必要なので学びたいのかなど、目指す場所によって勉強する内容が変わってくるからです。
趣味やExcelのマクロ程度であれば「独学で基礎学習+アウトプット」で十分だと思いますし、エンジニアとして就職したいのであれば、プログラミングスクールに通うか研修制度のあるシステム開発企業に就職したほうが早道だと思います。
あなたはどのような目的でプログラミングを学ぼうとされているか、今一度振り返ってみてはいかがでしょうか?
ちなみに私は大学で学んだプログラミング(C言語の超基礎)が楽しかったので、IT企業に就職しました。
必要な機材(PC)を購入する
プログラミングに限らず、勉強をするにはアウトプットする必要があります。
数学などでも、練習問題に取り組みますよね?
プログラミングの場合はPCを使って実際に実行していくので、PCを持っていない方は購入することをお勧めします。
MacとWindowsで悩まれる方も多いと思いますが、個人的にはWindowsが良いのではないかと思います。理由としては下記の通りです。
- 企業で使うPCはWindowsが多い
- 様々なメーカーから発売されており、好きな機種を選べる
- 安い
大半の方は、最初は「対企業向けに開発を行う企業」に就職することになると思います。
未経験の人を雇うのは、圧倒的に受諾開発企業が多いからです。顧客企業で使うPCの大半はWindowsであり、開発にWindowsを使うことが非常に多くなります。(私もずっとWindowsで開発しています)
もちろん、MacでWindowsを使うこともできるので、お好みのPCを選べば良いと思います。(自分の気に入ったPCを使うと気分も上がりますし)
もしどのPCを選べば良いかわからない方は、オススメを貼っておきますので参考にしてください。
基礎学習+アウトプット
さて、環境が整った次は、プログラミングの基礎学習を行っていきます。
プログラミングの基礎は何といっても「プログラミング的思考」の習得です。
人間は人間の思考プロセスがありますが、機械には機械の思考プロセスがあり、これを「プログラミング的思考」と呼びます。
例えば、「ポットのお湯をコップに注ぐ」という動作を例にとってみましょう。
人間であれば、「お湯を注ぐ」と捉えている動作も、機械に指示するには次のように分解してあげる必要があります。
- 右手でポットを掴む
- 掴んだポットを持ち上げる
- ポットをコップに近づける
- ポットの注ぎ口をコップに向けて傾ける
- コップに規定量が注がれたら、ポットを地面と水平の状態に戻す
あくまでも1例ですが、このように細かく分解してあげる必要があります。
プログラミング的思考については、ここでは書ききれない情報量なので、こちらの記事を参考にしてみてください。
なぜプログラミング的思考が重要かというと、設計の基礎だからです。
大半のシステムは「プログラミング的思考」で考えた処理の流れを、プログラミング言語で翻訳しただけです。
もちろん言語特有の知識を持っていると効率的なシステム開発ができますが、システムというのはあくまでも道具であり、「どのような道具を作れば目の前の課題を解決できるか?」と考えられなければ宝の持ち腐れとなってしまいます。
知識を知っているだけでは意味がなく、知識を活用すること(=知恵)で価値を生み出せるというわけです。
なお、プログラミング的思考を勉強するのであれば下記がお勧めです。
paizaは様々な問題が用意されており、プログラミング思考を学ぶのに非常に役立ちます。
就職への流れも用意されているので、腕試しとしてトライするともしかしたら企業からオファーが来るかもしれません。
稚拙ではありますが、過去に私がまとめた電子書籍もありますのでご紹介させていただきます。
また、こちらの内容はYouTubeでも公開していますので、ご興味があればぜひご視聴ください。
専門知識の習得
さて、エンジニアとして働くことを目指すのであれば、様々な専門知識の習得が必要になってきます。
この章では、どのような流れで勉強すれば良いかをご紹介していきます。個人的にお勧めなのは、下記の流れです。
- サーバーサイドの勉強
- フロントサイドの勉強
- SQLの勉強
- 上記を総合演習
※上記と並行して「基本情報技術者(資格)の取得」を目指す
情報処理技術者試験というIT系の国家資格があるのですが、その中の「基本情報技術者」はITに関する知識を体系的に学べるので、初学者にお勧めです。
私も新卒の時に就職していた会社で取得させてもらいましたし、当時の上司からも「基本情報技術者も持っていないということは、免許を持たずに車を運転しているようなもの」と弄られました。
結構広範囲ですので、他の勉強と並行しながら勉強することが重要です。実際にSQLやサーバサイド、フロントサイドを勉強しているとリンクしてくる内容もあるのでより理解が深まると思います。書籍としては下記がわかりやすいです。
サーバーサイドは先述のプログラミング的思考を使うメイン部分になります。
プログラミング的思考で学んだ内容を書くプログラミング言語に落とし込むので、取り組みやすいかと思い1番にさせていただきました。
次はフロントサイド、特にHTMLやCSSです。こちらは比較的簡単な内容ですし、普段見ているWebページの裏側も知れるので結構面白いと思います。
最後にSQLです。SQLはデータベースを操作する言語で、どんなアプリケーションであってもほぼ使うことになる技術ですので、ぜひマスターしていただきたい事項です。
そして最後の総復習として、これらを組み合わせたアプリケーションを作成していきます。パーツパーツの教材はインターネット上で無料で公開されていますが、体系的に整理され、質問もでき、開発環境も用意されているのは企業の研修やプログラミングスクールになりますので、不安な方はそれらの選択肢をお勧めします。
転職はエージェントでもいいですが、最近では無料でプログラミングを学びながら転職支援をしてくれるサービスもあるのでオススメです。
オススメのプログラミングスクールは別途まとめていますので、興味のある方はぜひご覧ください。
就職・転職・フリーランス
さて、専門知識もある程度ついたら就職です。世の中には様々なシステム開発会社がありますが、大別すると「自社サービスの開発」と「受託開発」の2通りです。
就職の難易度が低いのは「受託開発」です。
様々な企業がシステム開発を依頼してきますが、IT業界は人材不足であり、スキル不足の人でも就職できるのが現状です。
私は現在メーカー側でシステム開発の発注をすることもありますが、技術の話が通じず、正直プロと名乗ってほしくないような人でも、単価100万円/月以上は普通にいます。
受託開発を蔑みたいわけではなく、それくらい就職の敷居は低いということです。
受託開発企業に就職するのであれば、顧客と直接契約を結ぶ企業に就職するのが望ましいです。
顧客と近いほど仕事の幅は広く、スキルアップする可能性も高くなります。
自社サービスの開発は、自社の売上に直結する仕事ですし、非常に人気があり就職の難易度は比較的高いです。
やりがいは大きいですが、いきなり就職するのは中々難しいので、受託開発の企業で経験を積んで「自社サービスの開発」へ転職するのが一般的な流れとなりますが、「TECH CAMPエンジニア転職」というプログラミングスクールでは、60%以上が未経験から自社サービス開発企業に就職しています。
第三の道がフリーランスです。
月収100万なども可能で、自分の成果次第では単価を上げることも可能です。
会社員に比べ切られやすいですが、技術のある方は重宝されるため、案件が切れないように囲い込むこともあります。
受託開発企業の正社員は技術を知らない人も多いので、かみ砕いて説明できるコミュニケーション能力があると、なお重宝されます。
最近ではエージェントも台頭してきており、仕事を探す手間が省けます。キャリアを積んだ方はフリーランスという選択肢を入れてもいいかもしれません。
まとめ
今回はプログラミングの始め方について解説しました。
プログラミングは難しそうな印象を持たれがちですが、やってみると意外と簡単だったりします。
まずは無料サービスを使いながら独学で感覚を掴み、本格的に仕事にしたい方はプログラミングスクールで学ぶ、もしくは研修制度のあるシステム開発企業に就職するという流れがお勧めです。
不安な点は無料相談の中で相談してみましょう。きっとあなたと同じように不安に思いながらも一歩を踏み出した人の話を教えてくれます。
少しでも迷われているのであれば、paizaなど無料のサービスへ登録してみてください。
リスクはありませんし、行動しないと見えてこないものもあります。
本記事が少しでもお役に立てば幸いです。