異業種からIT業界へ転職して3年。今思う、プログラミング力を向上させる学びの順序。

プログラミング学習

今回は私がIT業界へ転職して3年経過した今だから思う、プログラミング力を向上させるために学ぶべことを順序立てて紹介していきたいと思います。

※記事の中には有料な書籍や動画講座などがありますが、必ずしもこれを参考にする必要はなくフリマアプリで安く購入したりYoutubeなどを使って学んでいただくのも一つの手です。あくまで私がやってきたよかったものをご紹介しています。


業務経験

簡単にですが、私のこれまでの業務経験を示しておきます。
業務契約は全てSESです。

※SESとはシステムの開発や運用・保守などを通じてエンジニアの技術力を提供する契約を指します。

・保険会社の顧客管理システム開発 
・中小企業向け顧客管理システム開発
・地元企業のホームページの一部改修
・半導体メーカの運用・保守業務

3年でこれだけかと少なく思われるかもしれませんが、運用・保守業務が3年の内の半分を占めています。それだけ、運用・保守は良い意味で安定して業務が続けられると言えます。


学んだ技術については主に以下です。

プログラミング言語:Java , VB.net , PHP , JavaScript , Python
OS:Linux , Windows , Solaris
その他:Git , Docker , Laravel , SpringBoot

「その他」は私の業務上扱うことはなかった、しかしIT業界でトレンドとなっていた技術を個人的に学んでいました。

※IT業界に入る前には巷で有名なオンラインスクールに通いましたが、Ruby on Railsでの環境構築で手間取り(単純にPCのスペックが低すぎた)、私に限ったことで言えばあまり意味がなかったように思います。

前置きが少し長くなりましたが、私が思うプログラミング力を向上させる学びを順序立てて紹介させていただきます。




ブラインドタッチ

まずはシンプルにブラインドタッチができるかどうかです。私はIT業界に入る前には全くブラインドタッチができませんでしたし、IT業界に入ってからもしばらくはそこまで重視してできるようになる必要はないと思っていました。


ですが、その当時必要なかった理由はそこまで深い業務をやってこなかったからだと今では思います。半ば強制的に当時の上司にできるように指導されたことを今では本当に感謝しています。

IT業界に身をおくとほとんどの時間をPCの前で過ごすことになります。その際にブラインドタッチができるかどうかは一生を見ても業務時間に大きく影響します。

今あなたがブラインドタッチができないのであればぜひ、できるようになりましょう。

大丈夫です。その方法は以下のようにやっていけば個人差はありますが、1〜3ヶ月後くらいにはできるようになっているはずです。ただ毎日続けることが大切です。

まずはベネッセで無料提供されているタイピングの基礎練習を行いましょう。
ここではまず①ホームポジションを覚えて②日本語入力(目標スコア:5分で550文字)の順で。

ある程度タイピングができるようになったタイミングで、寿司打を利用してタッチスピードを上げていきましょう。注意点として、速さを求めるあまりに間違い打ちが多くなってしまっては本末転倒です。まず第一に正確さを重視してください。

ブラインドタッチの練習は毎日30分くらいを目安にするといいでしょう。





PCスペックの確認

今ご自身で使われているPCがWindowsかMacかはどちらでも良いのですが、PCのスペックはある程度あったほうが良いです。スペックは、プログラミングに必要な処理能力やメモリ容量、ストレージなどを決定する要因となります。

低スペックのPCでは、データを扱う際にパフォーマンスが劣化したり、動作が遅くなったりすることがありますので、あまりにも低いスペックのPCを使用してプログラミング学習を始めるのはお勧めしません。

先ほど記載させていただきましたが、当時使っていた私のPCスペックが低すぎたため、Ruby on Railsの環境構築ができずに時間を無駄にするといったことにもなりかねません。

スペックの目安としてメモリ8GBストレージ256GBあれば困ることはないでしょう。

一応ご購入検討の方用に参考を載せておきますが、フリマアプリなどでも同様のスペックでお手頃に購入できますので、そちらを参考にすることをお勧めします。


Windows


MacOS






プログラムを書く(フロントエンド)

ではここからプログラムを書いていきましょう。まずはプログラミングに触れるという意味で画面を構成するHTML , CSSを学ぶのが良いかと思います。これらはユーザの目に触れる部分を構成するので、一般的にフロントエンドと呼ばれます。

未経験の方はそもそもHTML , CSSとは何かが分からないかもしれませんので、無料でその分野をある程度扱える学習サイトProgateで学習してみてください。他にもYoutubeなどで探してみるのも手です。

※フロントエンドの中にはJavaScriptと呼ばれる画面に動きをつけるプログラムもありますが、この段階では普段見ているWeb上の画面がどのように作成されているかを紹介したかったので、ここでは省略しています。


またプログラムの補完や置換などの機能を備えたエディタを使用して、プログラムを書くのが業界のスタンダードです。エディタはVisual Studio Codeを使用すれば問題ないでしょう。


Visual Studio Codeのインストールは「Visual Studio Code install 方法」のようにご自身で調べてみてください。

フロントエンドを学ぶ動画講座です。有料となります(プレビューは無料)がオススメです。

icon
icon

HTML , CSSに限ったことではないですが、プログラミングを行う際には調べる(一般的にはググる)力が大切です。

私もエンジニアになって3年ほどになりますが、基本的なプログラムでも忘れてしまって都度調べています。これはどのエンジニアにも共通しており、1日に数十数百と調べてプログラムを完成に近づけています。

ここで誤解してほしくないのは、HTML , CSS などで使用されるプログラムを一つ一つ覚えようとするのは避けてください。おそらく不可能です。頭の片隅にこんなのがあったな程度で認識しておき、それをもとに調べていけばいいのです。

プログラミング未経験の方にありがちなこととして、プログラムをノートに書き、理解した気になる人もいますが、それも無駄な作業になるので初めからしないようにしましょう。(何度もしつこいですが)調べる(ググる)を徹底的に意識してください。




調べる(ググる)際のちょっとしたコツ

ここで調べる(ググる)際のちょっとしたコツを記しておきます。

※ブラウザはGoogleCromeを前提とします。


【完全一致検索の二重引用符(” “)の利用】

例えば、pythonコマンドの「-m」というオプションについて調べたいとします。このまま入力しても目的の記事が検索結果として出てきません。



このような時は二重引用符(””)を使用して完全一致検索をします。




【除外検索「-」の使用】

phpでログイン機能を作成するために以下のように検索したとします。



このときにQiitaのサイトだけを除外して検索するには除外したい文字の前に「-」を入れます。



【閲覧するサイトの更新日指定】

閲覧するサイトの更新日時が古い場合は更新日時を指定しましょう。これは日々アップグレードされた最新のサイトから情報をキャッチアップしたほうが良いからです。

これだけでもかなりの調べる(ググる)力はついたと思います。ぜひこれらの検索を習慣化させてください。





プログラムを書く(バックエンド)

ではプログラムを学んでいきましょう。今度は先ほど紹介したフロントエンドから何らかの要求(リクエスト)があった際に処理を実行するバックエンドについてです。

バックエンドはフロントエンドとは異なり、画面上で表示されることはなく、裏側でプログラムを実行します。facebookでアカウント登録する際には以下の画像のようにフロントエンドから受け取った値(名前、パスワードなど)をバックエンドがデータベースへ登録する処理を行います。

もちろんバックエンドの役割はこれだけではなく、プログラム次第でさまざまな処理ができるようになります。ここでは一例を取り上げています。

バックエンドで使われる代表的なプログラミング言語としてはPHP , Ruby , Java , C# などがあります。

実際の開発現場に入るとこれら以外のプログラミング言語もあるため、都度キャッチアップしていくことが大切ですが、大体基本的な概念は似通っていますので、まずは一つしっかりと学習すれば良いです。

オススメするプログラミング言語はPHPです。初学者向けの学習サイトが豊富にあり、実際色々なサイトで使われている言語のうちの一つです。

PHPが使用されている主なサイト
FaceBook , Wikipedia , Slack , WordPress , ぐるなび , CAMPFIRE ...etc


バックエンドのプログラミング言語としてRubyも良いですが、私の業界としての感覚上PHPでの開発案件が多い気がします。またJavaも人気のプログラミング言語ですが、初学者にとっては少し難しい気がします。

ですが、Javaは様々なOSの環境に合わせることができるのでPHPよりも開発の案件は多いです。私の方でJavaでWebアプリケーションを作成する記事を書いていますので、気になる方はこちらを参考にしてみてください。

またPHPの高機能なフレームワークとしてLaravelがよく紹介されますが、いきなりフレームワークから学ぶのは避けましょう。PHPのフレームワークなのでPHPを用いてプログラムを書いていきますが、Laravel独自の(便利な)概念があるため初めからそれに慣れるのはオススメしません。

初めはフレームワークを使用せず、純粋にPHPでプログラムを書いていく方が後々にフレームワークを使用することになった際にその(便利な)概念が身に沁みると思います。今は我慢して、純粋にPHPでプログラムを書いていきましょう。ここは強く念押ししておきます。

バックエンドではデータベースへの処理も実行するので、データベースの基本も学んでおきましょう。(以下で紹介する動画講座でデータベースも基礎から学べます)

ここまで紹介したフロントエンドとバックエンド、データベースを学べる動画を紹介しておきます。こちらの動画では先ほど念押ししたフレームワークを使用せず純粋にPHPでWebアプリケーションを作成していきます。30時間以上の長編動画ですが、かなりの知識が身に付きます。

icon
icon






Linuxを学ぶ

ここまでくればある程度の知識はついたと言えるでしょう。ただ私が最もエンジニアとして成長できたと思うのは、Linuxを学んでからです。LinuxはWindowsやMacOSと同じOSの一種です。OSはハードウェアとソフトウェアを仲介する役割を担うという紹介がよくされています。

例えばソフトウェアであるWordを利用して記入した文字をOS(Windows)がハードウェア(どこかのフォルダ)上に保存するように指示を出すといった形です。このソフトウェアとハードウェアの操作を担うのがOSという認識で良いでしょう。

Linuxが初めての方にまずオススメなのが、LPI-JAPANが無料提供しているLinux標準教科書です。

この教材は以下のような構成になっており、Linuxを体型的に学ぶことができます

1章 Linuxとは
2章 Linuxのインストール
3章 基本的なコマンド
4章 正規表現とパイプ
5章 基本的なコマンド2
6章 viエディタ
7章 管理者の仕事
8章 ユーザ権限とアクセス権
9章 シェルスクリプト
10章 ネットワークの設定と管理
11章 プロセス管理
12章 ファイル管理


200ページ以上とボリュームはありますが、一日一章、余裕があれば二章を目処に二週間ほどで一通り終えれれば良いかと思います。ただ、一度で全てを理解するのは困難なので、わからないところは飛ばしましょう。

Linuxにも他のネットワークやプログラミングと同様に資格試験があります。LPICと呼ばれる世界共通の試験です。モチベーションや企業へのアピールとして取得しておくのも良いでしょう。資格取得に関して興味のある方はこちらを参考に。

動画はこちらがおすすめです。(プレビュー無料)

OSがWindows , MacOSでも動画内でLinux実行環境を構築しますので、どのOSでも学ぶことができます。

icon
icon






最後に

ここまで読んでいただきありがとうございます。おそらく、大半の方はどこでもある初心者向けの紹介記事だと思われたでしょう。ですが、本気で今の現状に満足していない方は最後まで読んでいただけたのではないでしょうか。私は異業種からIT業界に転職した頃は周りに飽きられたほど技術力が足りていませんでした。ですが、これまでの学びが繋がっていき、成長を感じれるいまが一番楽しく思います。無駄な時間も過ごしたこともありますし、ドラ◯もんに出てくる、リアルジャ◯アンみたいな得意先にもあたり萎縮したこともありますが、学びを続けたからこそ今があると本当に思います。そんな中で今回はエンジニアとして3年が経過した今だからこそ、これからエンジニアを目指す方への私が考える学びの指針を記事にさせていただきました。

最後まで読んでいただきありがとうございました。ご質問等あればぜひ、メッセージを送っていただければと思います。



↑登録はもちろん無料です。私は転職で年収が72万UPしました。

コメント

タイトルとURLをコピーしました