副業・転職に良いといわれるプログラミングですがいざ勉強しようと思ったら何をすればいいか分からないですよね。
そんなプログラミングについて現役SEのもやしがまとめてみました。
実際、副業でもプログラミングの案件も結構あり、転職時も求人が多い印象です。
パソコンに詳しくなくてもしっかり学べば問題ありません。
思い立ったらぜひ一度プログラミングをしてみてください。
プログラミングとは?
プログラミングとはコンピューターに指示を出すことです。
命令文を書いてそれをコンピューターが読み取って実行します。
このブログも実はコンピューターに指示を出して文字やデザインやリンクなどを表示しています。
文字の大きさ、色、配置などを指示して表示しています。
プログラミング言語とは
コンピューターに指示を出すプログラミング言語ですが、多種多様に存在します。
それぞれに長所や短所があったり、同じプログラミング言語でもバージョン違いがあったりとほんとに多くのものが存在します。
そのため勉強するにあたっては目的に沿った言語を選ぶ必要があります。
例えば下記のように選んでもよいと思います。
- WEB系ならHTML,CSS,PHP
- アプリ系ならJAVA
- AIなど最先端ならPython
まずはどんな系統のプログラムを学びたいか考えてみましょう。
プログラマーの種類
プログラマーにも大きく分けると3つの種類に分かれます。
Web系プログラマー
ブログやサイトなどWEBにかかわるプログラマーです。
表示されるページから、裏で動く処理までを担当します。
最先端かつセンスが必要な職種ですね。
業務・基幹系プログラマー
企業の社内システムを担うプログラマーです。
給与システムや受注システムなど企業で使っているシステムを担当します。
システムの理解と、業界の様々な知識が必要な職種です。
インフラ系プログラマー、ネットワーク系
サーバーやネットワークの構築・運用していくプログラマーです。
インフラと聞くと物理的なものだけかと思いますが、制御にプログラミングが必要です。
また専門の機械を扱うので実機での練習が必要になってきます。
プログラマーの働き方はさまざま
プログラマーの役割、働き方はただプログラムを書くだけではありません。
最初はプログラムを専門で書くプログラマーから始まることが多いですが、経験を積むとほかの働き方にもなってきます。
ではひとつづつ見ていきましょう!
・プログラマー
仕様書に沿ってプログラムを書いて、システムを作る専門の人を指します。
初心者はプログラマーとして経験を積むことが多いです。
経験者でもプログラムを作るのが好きという人も一定数おり、プログラマーをメインでずっとやる人もいます。
トラブル時、炎上時に助けてくれる「神」としてあがめることもしばしば。
システムエンジニア
どんなシステムを作るのか、どういう環境で動かすのか、という上流工程から実際のプログラム開発~システムの納品まで担当します。
別名、何でも屋。コミュニケーション能力が問われます。
営業
お客様との交渉、案件の獲得、人員の管理などを担当します。
ITの基本知識は必要ですがプログラミングは基本しません。
ただ、トラブルがあると呼び出されることもしばしば。
元プログラマーだったりする人も多いので人手が足りないとプログラムを書いちゃう人もいたりします。
フリーランス
一人でプログラマー、システムエンジニア、営業、その他契約関係などを行う会社に縛られない働き方です。
自由裁量でもうけもすべて自分のものになる反面、確定申告・保険等は自分で行わないといけません。
だた、個人と会社で契約できないことも多いのでどこかの会社を通して働くことも多いですね。
その場合、その会社の営業が仕事をとってきてくれたりします。
プログラミングを学ぶメリット
年収が比較的良い
IT業界は比較的年収がよく、平均約500万という調査結果も出ています。
スキルさえ付いてしまえば転職もしやすい分野ですし、年収アップが狙いやすいです。
参考:「正社員の平均初年度年収」ランキング 業種別1位は「コンサルティング」【2021年2月度調査】(1/2) | ねとらぼ調査隊 (itmedia.co.jp)
アプリが作れる、世に発表できる
自分の好きなアプリケーションを作れますし、世に発表できます。
モノ作りが好きなひとは向いてます。
いちからシステムを作ったりしてそれが本番リリースするときの達成感は大きく愛着がわきます。
また人気のアプリが作れればそれだけで収入源になることも。
スキルが身につく
しっかり勉強すればプログラミングのスキルが付きます。
フリーランスになってもしっかりした技術力があれば食べていけます。
また、副業などでも応用が利くのでいいですね。
IT業界はブラック企業が多いのか?
プログラマーというと長時間勤務・薄給・激務というイメージがついて回ります。
IT土方という言葉もよく耳にします。
実際これはどうなのか。
半分は本当、半分は嘘、というのがもやしの見解です。
業界的にこういうネガティブなイメージがついてしまったため、今ではほかの業種より勤務時間とがの管理がうるさいです。
また契約形態によっては月の稼働時間が決まっており、それを超過するとお客様先が自分の会社へ追加の料金を払うことになります。
お客さんもなるべく追加料金を払いたくないため残業をさせないように声かけるところが多いです。
自分の会社自体も長時間労働や劣悪な労働環境によって裁判沙汰なるリスクも避けたいのでブラック企業も少なくなってきました。
逆に大きなプロジェクトになるとしばしば炎上します。
予期しない不具合や品質不良、人員不足による納期遅れなどでどうしても時間が足りなくなってしまう。
そういう状況になると俗にいうデスマーチが始まります。
一時的に長時間労働や休日出勤もあり得ます。
この業界にいる人は1度は経験するものです。
業界はホワイト化してきたが、一時的にはブラックな環境での作業もある。そんな業界です。
未経験者・初心者の勉強方法
では、未経験者や初心者の勉強方法をまとめてみました。
勉強時間は最低20時間はほしい
最低限の概要習得レベル
・1週間(20時間ぐらい)
業務の簡単なプログラムの作成・修正ができるレベル
・1カ月(8時間×20日で160時間)
ギリギリ独り立ちレベル
・3カ月~(8時間×20日で540時間)
会社の新人研修から考えるに1カ月は勉強が必要だと思います。
あるプロジェクトに入って数カ月たてばある程度はプログラムをかけるようになってる感じですね。
完璧に独り立ちとなると1年以上はかかると思います。
まずは160時間~200時間程度を目安としてください。
独り立ちには業界知識も必要
さらに、独り立ちする場合プログラミング言語の勉強だけでは不十分です。
必要なのはたずさわる企業・システムの業務知識。
たとえば物流システムなら、物流の基本的な動きを知っている必要があります(受注・発注・生産など)
お金がかかわってくるなら債権債務や請求書の締め日の考え方なども必要です。
もやしの場合、新人がプロジェクトに参画するときには業界知識などを説明してますね。
業界知識がないとプログラムの意味が分からないんです。
プログラムが読めて、どんな処理をしているかがわかっても「何でこんなことしてるの??」ってなってしまいます。
処理内容がわからないと修正もできない・・・。
そんなことが起こるんですよね。
プログラミング言語の選び方
正直、迷ったら有名な言語をまずやってみる!というのがおすすめです。
またPGによっては特性も違ってくるので超入門ならWEB系のHTMLからでもよいと思います。
アプリを作るならJavaやPython(パイソン)ですね。
どれかの言語をある程度学べばほかの言語でも応用が利くようになるので自分に合った言語を探してみましょう。
下記、代表的な言語を紹介します。
Java
業務システムやスマホアプリに使われるのはもちろんのこと、AI分野でも使われることが多い言語です。
実際、案件数も多くJavaを使える経験者を求めている企業も多いです。
Windows、MacOS、Linuxといった環境でも動くことができるのも特徴です。
Python(パイソン)
機械学習や人工知能に使われているプログラミング言語です。
文法が簡単なのも特徴で今人気のある言語です。
Pythonが使えるというだけで案件が決まってしまうほど市場でも人を探している状態です。
PHP
WEB系で使われることが多い言語です。
文法が分かりやすいのでとっつきやすいと思います。
過去、勉強で簡単なデータを吐き出すプログラムを作りましたが意外と早く構築できました。
実はブログを作る「WordPress」もPHPで作られています。
学習に必要なもの
PCとネット環境があればOK
学習に必要なものはPCとネット環境です。
極論PCだけでも構いませんが今はネットで最新の構築環境をダウンロードしたり実際のアプリのテストをしたりするのでネット環境はあった方がよいです。
また、PCはなんでもOKです。
特に高スペックのPCは必要ありません。今自宅にあるPCでOKです。
もし今からPCを買うならDELLやHPなどのビジネス向けPCがおすすめです。
10万以下でそこそこいいスペックのものが買えます。
ウィンドウズかマックか
PCを新しく買うときにウィンドウズかマックかで迷う方もいると思いますが、正直どっちでもよいです。
ただ迷ってるならウィンドウズをお勧めします。
ブログなどでは「マック」という話を見ますが、正直開発現場であんまりマックのPCをみません。
それに普段PCを学校や職場で触る機会があるとしてもウィンドウズが多いのではないかと思います
※デザインの現場だとマックは多いかもしれません
結局、操作しやすい、とっつきやすい方でOKです。
独学で勉強するなら本を買おう
プログラミングを勉強したいならまずは書籍で勉強しましょう。
これが一番コスパが良いです。
まずは本の通りにプログラムを書いて「Hello, world!」を表示させてみてください。
独学では長続きしない、挫折してしまう、わからないことが解決できない、という不安がありますが大丈夫。
入門書の通りにやれば少なくても最初の例題は解けるはずです。
本の選び方
わかりやすいものを選ぶ
まずとにかく読みやすく、画像や色がたくさん使われているものを選んでください。
本屋さんで手に取って読みやすいかどうかを判断しましょう。
ネットでの評価がいいものを選ぶのもおすすめです。
最新の書籍を選ぶ
なるべく書籍を買うときは発行が新しいものを選びましょう。
日々環境がアップデートされるのでそれに対応している書籍がおすすめ。
また誤植などもある場合、最新の書籍だとそれが直ってる場合もあります。
おすすめ勉強方法
暗記はしないが、処理のパターンを覚える
プログラミングを学ぶ際、全部を覚えるというのは到底無理な話です。
暗記するよりは「こういう時はこんな書き方をする」というパターンを覚える方が理解が早いです。
ループ処理をする場合、FOR文で書いて、処理を抜けるときは何か条件を書くんだったなぁ・・・。などと覚えていきましょう。
細かい構文、関数などはそのうち慣れていきますので大丈夫。
たくさん書いてアウトプットする
とにかくコードを書く。そしてプログラムを動かすのが重要です。
本やネットの文章を読んで終わるのではなく、実際に手を動かしましょう。
エラーの解決やテスト工程が成長につながる
プログラムを書いているとなぜかエラーになることがあります。
コンパイルが通らなかったり動かすと異常終了したり。
プログラミングはエラーとの戦いです。
そのためテストが重要でプログラムを書いたらテスト実行を必ずしましょう。
初心者の頃の間違いでは「l(エル)を1(いち)」や「O(おー)を0(ゼロ)」と書いてしまってエラーが起こることがしばしばあります。
こういうのも経験していくと自然とプログラミングが身に付きます。
プログラミングは単純&明快なものにする。
自分でプログラムを少し書くようになったらソースは単純かつ明快な処理にしましょう。
小難しく書いたりせず、わかりやすく単純な処理を心がけてください。
それだけでも腕前がかなり上がります。
難しいことを難しく表現するのは普通ですが、凄腕のプログラマーの方はすごくわかりやすいコードを書きます。
最初から分かりやすさを考えてソースを書きましょう。
独学に限界を感じたらプログラミングスクールも検討
どうしても独学で限界を感じたらプログラミングスクールも検討しましょう。
ただし、コースによっては高額です。その分しっかりサポートしてくれます。
おすすめスクールを3つほどピックアップしました。ご参考までに。
①DMM WEB CAMP
あわせて読みたい
②テックキャンプ
あわせて読みたい
③TECH ACADEMY(テックアカデミー)
あわせて読みたい
まとめ
プログラミングはPC1つで身に着けられるスキルです。
覚えるまでは大変ですが、経験を積んでいけば年収アップ・転職もできる技術です。
まずは独学で学んでみてはいかがでしょうか。