こんにちは、プログラマー歴20年のtomozoです。
本日はプログラミング学習について紹介します。
プログラミング学習を始めようかなって思ってるけど、何から始めたらいいのか悩んでいる方向けの記事です。
せっかくプログラミング学習しようかなと思ったのですから、
一度軽い気持ちでもいいので始めてみるのがおすすめです。
後で、あの時始めていたらなぁって後悔したくないですよね。
例えば、今を時めくG(google)A(Apple)F(Facebook)A(Amazon)などIT系企業にとって
ソフトウェアが会社の柱となる技術です。
これからの時代、プログラミング(= ソフトウェア)ができる人はますます需要があります。
アイデアとプログラミング技術があれば、世界を動かすことだってできるかもしれません。
逆にプログラミング技術がなければ、発想を広げたりやりたいことがあっても自分でやってみることができません。
tomozo
この記事を読めば
- プログラマーの仕事と言語の選び方
- プログラミング学習の始め方
- 学習サイトの特徴
が分かるようになります。
目次
プログラミングにはどんな職業がある?
プログラミング学習を始めようかなって思ったきっかけは、就職や転職のためいう人が大半と思います。
プログラマーと言っても色々な仕事があるので紹介します。
学習した先を知らないと「やりたい内容と学習した内容が違う!」ってなり学習が遠回りしてしまうかもしれません。
プログラマーは大きく分けると下の5つに大別されます。
- Web・オープン系
- モバイル・アプリケーション系
- 汎用系
- 制御・組み込み系
- 社内情報システムエンジニア
専門家であればもっと細かく分けたりするかもしれませんが、まずはこの位は知っておけば十分です。
tomozo
では、それぞれどんなことをするのか簡単に見ていきましょう。
Web・オープン系
Web系は、Web上のアプリケーション開発を行います。
例えばWebブラウザでサイトやページを表示したりするシステム系のお仕事で、
お客様から依頼された案件や自社のサイトの案件を行ったりします。
Web系にはフロントエンドとバックエンドという役割に分かれています。
説明は難しいので今回は割愛します。
オープン系は複数のコンピューターを接続して動くシステムを構築するお仕事です。
例えば、病院のデータベースとか電子カルテなどがあります。
モバイル・アプリケーション系
モバイル・アプリケーション系はスマホで動くソフトウェアを作るお仕事です。
あなたのスマホで多くのアプリが動いていますが、それらを開発していくことになります。
汎用系
オープン系と対照的に、一台の大型コンピュータ(汎用機と呼ばれる)でシステムを構築するお仕事です。
例えば保険会社のデータベースの顧客データベースなどのシステムがあります。
制御・組み込み系
家電や自動車などのその機器専用のハードウェアに決まった制御を組み込むお仕事です。
主にマイコンと呼ばれるCPUに書き込むプログラムを作成します。
社内情報システムエンジニア
自社のシステム構築・運用保守、社内システムの問い合わせ対応、社員のパソコンの対応などを行います。
なにかのプログラムをゴリゴリ書くというよりはプログラミングの知識を持ちつつ、
多岐に渡って自社のシステム運用をしていく感じです。
なりたい職業ややりたいことからプログラミング言語を選ぼう
なりたい職業ややりたいことに必要な言語を勉強しましょう。
プログラミング言語といっても非常にたくさんの種類があります。
tomozo
1つしっかり理解した言語があれば、他の言語もある程度読めたり、少し勉強すれば理解できるようになりますので、あれこれ勉強せずにこれって決めた言語を学習してください。
中途半端に広く浅い知識があっても実践では役に立ちません。
仕事内容別によく使う言語を整理してみました。
Web系 | オープン系 | モバイル・アプリケーション系 | 汎用系 | 制御・ 組み込み系 |
社内情報 SE |
||||
フロントエンド | バックエンド | iOS | Android | Webアプリ | |||||
HTML/CSS | 〇 | ||||||||
JavaScript | 〇 | 〇 | 〇 | ||||||
Java | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | ||
PHP | 〇 | 〇 | 〇 | 〇 | 〇 | ||||
Ruby | 〇 | 〇 | 〇 | 〇 | |||||
Perl | 〇 | ||||||||
Python | 〇 | 〇 | 〇 | 〇 | |||||
C | 〇 | 〇 | |||||||
C++ | 〇 | 〇 | |||||||
C# | 〇 | 〇 | 〇 | 〇 | |||||
Swift | 〇 | ||||||||
Kotlin | 〇 | ||||||||
COBOL | 〇 | ||||||||
FORTAN | 〇 | ||||||||
RPG | 〇 | ||||||||
PL/SQL | 〇 |
プログラミング言語は流行や新しい言語が出てきたりするので、やりたいことと流行を意識して学習してください。
プログラミング学習の方法と順番
目標とプログラミング言語が決まったら実際にプログラミング学習を始めます。
学習する方法と順番は以下がいいです。
step1.プログラミング学習サイトでオンライン学習
step2.手を動かしプログラミングを実践(可能なら就職してしまう)
step1.プログラミング学習サイトでオンライン学習
現在はオンラインのプログラミング学習サイトで勉強できます。
次の項目で詳しく紹介します。
本で学習する方法もありますが、初学者はオンラインのほうが手軽で分かりやすいです。
それでも本のほうがいいという方は、学習する言語で人気のある本を3冊位読むのがおすすめです。
3冊の内訳は、入門書・中級者向け・手引き的な本です。
tomozo
step2.手を動かしプログラミングを実践(可能なら就職してしまう)
基礎的な学習が終わったら、実際に自分が作りたいものを自分で自分のプログラムを書いていきましょう。
完璧を目指して基礎学習を何度も繰り返したり、別の言語の勉強を始めたりしてはいけません。
実際に自分で考えて書く、これに勝る習得方法はありません。
プログラムに正解なんてないので、動かせたいように動けばそれが正解です。
また学校のテストとは違うので分からなければ、調べた時に理解すればいいのです!
カンニング・コピペし放題です。
プログラマーのスキルには検索力も必要です。
いかに必要な情報に早く正確にたどりつけるか?が重要です。
よくstep1が終わったとたん何をしたらいいのか分からなくなって、中途半端に
終わってしまうことがあるのですが、非常にもったいないです。
tomozo
集中して一度しっかり身に付けてしまえば、忘れにくくなりますので自分の作品を作りましょう。
可能なら未経験者募集の会社に就職してみたり、自分にできそうなクラウドソーシングの案件を受注してやらなければいけない環境を作ってしまうのが理想的です。
プログラミング学習のサイトでできること
プログラミング学習サイトでは、体系的に教科書に出てくる基礎から中級レベルの内容を学習できます。
私がいくつか学習した限りでは、広く浅くって感じかなと思います。
基礎的なこと知らないと何も始まらないも事実ですが、これだけ知っていれば本職として一人で仕事ができるかといえば、残念ながら通用しません。
英語の単語・文法をいっぱい知っているからといって、通訳のお仕事ができるかっていえばできませんよね?
発音はもちろん、専門的・背景的な知識も必要であったりしますよね。
プログラミングも同じです。
例えばCやC++をを知っていたら組み込み系のお仕事がいきなりできるかと言ったらできません。
マイコンという素子や回路図など必要な周辺知識は多岐に渡ります。
少し厳しいことを書いてしまいましたが、まずは第一歩を踏み出しましょう。
プログラミング学習サイトのメリットは無料でも開始できる
今は、無料である程度基礎的なことが勉強できる時代になっています。
何も知らない状態から始めるのであれば、まずは無料の範囲で始めてみるのもいいでしょう。
小学生の算数から習うような感じです。
大事なところやもう少し深く知りたいなっていうところからは有料になってくるのですが、無料で始めてもっと学びたいと思ったら、身銭を切って勉強を進めましょう。
それほど高額ではないのでどうしようかなと悩む時間がもったいないですよ。
自分のお金を使うと、元は取ってやろうっていう気持ちが生まれるのでやる気が変わります。
有料にするとサポートも付いてくることが多いので、わからないことを質問できるというメリットもあります。
今の時代はスクールに通ったりして何十万もかけなくても、
パソコンとネットがあればどこでも十分勉強できる環境は整っていますので
お金をかけて勉強を開始したほうが早く習得できます。
まとめ
プログラミングにはどんな職業がある?
- Web・オープン系
- モバイル・アプリケーション系
- 汎用系
- 制御・組み込み系
- 社内情報システムエンジニア
言語はたくさんあるので、なりたい職業ややりたいことから学びたいプログラミング言語を一つ選んで集中的に学習しよう
プログラミング学習の方法と順番
- step1.プログラミング学習サイトでオンライン学習
- step2.手を動かしプログラミングを実践(可能なら就職してしまおう)
プログラミング学習のサイトでは体系的に入門から中級レベルのことが学べる
プログラミング学習サイトのメリットは無料でも開始できる
有料で学習したほうが本気になれる
プログラミング学習は難しいところもありますが、学習すれば分かるものではないので
時間をかければ必ず習得できます。
自己スキルアップになるのでぜひやっていきましょう!