プログラミングをはじめてみようかと思うけど、習得するのにどれぐらい時間がかかるのだろうか。
プログラマーとして仕事するぐらいになるには勉強時間がどのぐらい必要か知りたい!
こういったお悩みを解決します。
■本記事の内容
本記事で以下の内容をお伝えします。
・プログラミングの勉強を効率よくする3つのポイント
・プログラミングを学ぶための3つの方法
■本記事の信頼性
この記事を書いている私は、プログラミングを仕事として始めて10年以上ほど経ちます。
今も現役のシステムエンジニアです。
今からプログラミングをはじめようと思っている方向けに書いていきます。
私自身、情報系の大学を卒業し、新卒でシステム開発の業界に就職しました。
10年以上勤めていてたくさんの新人を見てきました。
今回は、自身の体験も踏まえてどの程度の期間を勉強すれば、プログラマーとして概ね仕事していくことができるかを書いていきます。
プログラミング習得に必要な勉強時間の目安
プログラミングの勉強時間がどの程度必要なのかを書いていきます。
一般的に言われている内容と私の経験も合わせて書いていきます。
実務経験3年(5764時間)で新人(初心者)脱却
もしかしたらプログラミングに限らずかもしれませんが、実務経験3年ほど経験すれば新人から脱却するイメージです。
実務の内容にもよりますが、3年経験すれば一通りのシステム開発の流れが理解できるようになります。(プログラミング以外のことも含めて)
開発環境についても概ね理解できているレベルで、プログラマーとしては問題なく仕事ができるかと思います。
だいだい、3年過ぎたぐらいから次の上流工程である設計作業を任されたり、新人を教育したりします。
理系でもともとプログラミングを大学で勉強していた場合などはもっと早いかもしれませんが、文系で未経験の新人もこの期間を過ぎるとプログラマーとして問題なく働いていける人がほとんどです。
従って、1日8時間を月20日として3年間行うとなると5,764時間になります。
限定されたプログラミング言語や環境の場合は3カ月(480時間)
私が新人の頃の感覚ですと3カ月ほど実務経験積めば、指定されたプログラミング言語と開発環境でのプログラマーとしての作業は問題なく一人でできるようになっていました。
もちろん、はじめは分からないことばかりなので、上司や先輩など教えてくれる人がいる前提にはなります。
今まで見てきた新人の子とかでも、3カ月ぐらい同じ実務を経験していれば、設計書を渡して軽く説明すれば、製造と単体試験ぐらいは問題なくできるようになっていました。
従って、1日8時間を月20日として3カ月行うとなると480時間です。
はじめにお伝えした3年間の5,764時間に比べると短く感じるでしょう。
ただ、仕事の案件によってプログラミング言語や開発環境が変わることが多いため、その都度勉強していく必要があります。
プログラマーに関わるところだと主に以下の部分が案件ごとに変化する可能性があります。
- コーデイング規約
- 構成管理ツール(git、svnなど)
- 進捗管理ツール
- バグ管理ツール
- 試験方法
仮に同じプログラミング言語でも案件ごとにルールがあり、そのルールに従っていくことになります。
まず1つ目ですが、プログラミングする際にコーディング規約と呼ばれるものがあります。(ない場合もあります)
簡単にどういったものかといいますと「みんな好き勝手にコーディングするのではなくて、概ね同じような書き方に統一しましょうね」といったルールです。
コーデイング規約を守ることによって、自分が作成したプログラムでなくてもコードが読みやすくなり理解しやすくなります。
プログラミング作業以外にも試験の実施方法や構成管理ツールや進捗管理ツール、後はバグ管理ツールなどの使い方を覚えることが多いです。
構成管理とは、プログラミングで作成したファイルの管理だと思って頂ければいいです。
システム開発を行う場合、ほとんどが複数名のチームで実施します。
自分が作成したプログラムや他の人が作成したプログラムを共有する必要があります。
後はスケジュール通りに進捗しているかの進捗管理など、プログラムの不備があった場合にそれらの事象や対応などを管理するバグ管理など必要になってきます。
Excelで管理してたりもしますが、
これらについても案件や会社によってソフトを導入したりなど様々です。
プログラミングの勉強を効率よくする3つのポイント
プログラミングの勉強を効率よく進めて、時間を少しでも短くしたい方へ3つのポイントで説明していきます。
実務に近い形で勉強するのが効率的
プログラミングの勉強をする目的にもよりますが、その目的に沿った形で勉強していくほうが効率的です。
プログラミングをするということは、WEBアプリなりスマホアプリなり何かしらのシステムを完成させることが目的になります。
このシステム完成させるという目的に沿って勉強する形です。
プログラミングの教本などを買って、勉強することも大事ではありますが、やはり実際にプログラミングをしたほうが理解は深まります。
プログラミングだけでなく、例えばいつかスマホアプリを作ってみたいのであれば、どういったアプリを作るかを設計してみて、いつまでに完成させるかスケジュールを考えて、そのスケジュール通りに進めていくといった形です。
もし、仕事としてプログラミングをしていきたい場合、仕事はプログラミングだけでなく設計やテストなどもあります。
実際に自分がやりたかったことをイメージしつつ、それを実践していきましょうということです。
教えてくれる人がいるかいないかで理解の速度が段違い
プログラミングを勉強していると分からないことがたくさん出てきます。
知らないことを調べる時間はかなり時間がかかります。自分がつまずいたところは大抵他の人も同じように経験していることも多いため、自分よりできる人に聞いたほうがもちろん早いです。
※ただ、何も調べず聞いてばかりだと人によっては嫌がれるので、まずは自分でGoogleなどで検索して調べる癖もつけましょう。
私自身、10年以上システム開発を行ってきていますが、その中の経験として知識や手法を知っているか知らないかで速度が変わってきます。
いわゆる0から1にするのが難しいのです。
分からないことやうまくプログラムが動かない場合は、自分なりに今まで経験してきた解決方法を試すことになります。
これらの経験は自身で勉強して身に着けるか、誰かに教えてもらうかのどちらかになります。
ただ、自分の力だけで身に着けるにはそれなりの時間がかかります。私もプログラムが自分の思った通りに動かない場合はGoogleで検索してよく調べています。
この調査の時間がそれなりにかかってしまいます。
なので、知識として知っているだけでも検索するアプローチも変わり、自分が欲しい情報にたどり着くスピードがあがります。
仲間を作る(一緒に勉強する)
教えてくれる人がいるというのと似ていますが、同じ境遇の人がいると相談することができます。
仮に勉強しているプログラミング言語が違ったとしても、考え方的にはほとんど同じなのでアドバイスしあうことができます。
直接的な解決方法がもらえなくても、新しい切り口の考え方を知ることによって、別のアプローチのきっかけにもなります。
この考え方を試してみよう!みたいな感じです。
1人で考えていると先入観などで視野が狭まることが多いです。
違う人の意見を聞いてみることで良い方法などが思いつくことがあります。
プログラミングを学ぶための3つの方法
プログラミングの勉強方法として、
もし、以下のポイントが実施できそうであれば実施してみましょう。
とりあえず就職してみる
新卒の方であれば、一度挑戦してみるのもありです。
やはり、実際に仕事しながら学ぶほうが効率がいいです。
以下のポイントが揃っているので、継続することとモチベーションの維持がしやすいです。
教えてくれる人がいる。
お給料がもらえる
最終的な目標にもよるかと思いますが、小さい会社(スタートアップ企業やベンチャー企業)あたりを狙って就活すればチャンスはあるかと思います。
経験積んだあと、フリーランスとして個人事業主といった形に変更するのもよし、独立して起業するのもいいかと思います。
とにかく少しでも仕事として実績を積むのが大事です。
プログラミングスクールを利用してみる
お金がそれなりにかかりますが、教えてくれる人や一緒に勉強する仲間ができるので継続して勉強するモチベーションが維持しやすいです。
特にプログラミング未経験の場合、何から手をつけたらいいかも分からないことが多いと思います。
このあたり容易く解決することができます。
後、就職までサポートしてくれるスクールがあるので、活用してみるといいです。
無料体験や無料カウンセリングとかがあるので、一度試しに話だけでも聞いてみるのもいいかもしれませんね。
私がおすすめするプログラミングスクールを以下にまとめていますので、よかったら利用してみてください。
おすすめプログラミングスクール(現役SEが紹介)【2020年度】
後、プログラミングスクールで無料体験できるところをご紹介しておきます。
TechAcademyの無料体験になります。1週間程度の期間で体験できます。
無料なので、まずプログラミングスクールが自分に合いそうか気軽に試してみてはいかがでしょうか?
独学で進める
今からプログラミングの勉強をはじめてみようと思われている方の中には、とりあえず独学で頑張ろうと思っている方や、本業の合間に勉強しようと考えておられる方もいるかと思います。
先ほど3カ月間(480時間)があれば、限られた環境だが概ねプログラマーとして仕事ができるようになると書きました。
しかし、これは毎日8時間を実務として経験を積んだ場合になります。
独学となるこの実務に沿った勉強が難しいです。
後、継続して勉強するためのモチベーションの維持が大変になってきます。
教えてくれる人がいればいいですが、そういった知り合いがいないと難しいとは思います。
ただ、教えてくれる人でなくても同じように独学で頑張って勉強しているかたもたくさんおられます。
TwitterなどのSNSを利用すると同じように勉強されている方がいますので、プログラミングと同時にSNSもはじめてみると良いです。
私もTwitterをやってますのでよければフォロー頂けると嬉しいです。
最後に
やはり、教えてくれる人がいると勉強の効率があがります。
コメント