Header
2017-12-26
2020-06-04

独学プログラミングの勉強手順|未経験からエンジニアに転職した人間が解説

App441963

記事を書いてる人

法人営業8年→28歳から人脈なし・非大卒・未経験からエンジニア(約2年半)→個人事業主のエンジニア(約10ヶ月)→法人化した人

私はプロフィールの通り、独学を行い現在法人化しても相変わらず開発業務を行っています。

その際独学を行っていた際の勉強方法と今から独学でプログラミングを学び簡単なWebサービスをリリースするまでの勉強法を記載します。

自身で考えているWebサービスを作成したいと思った場合でも、まずは、簡単なWebサービスを作成する事をお勧めします。

詳細は未経験からエンジニアになった人間が解説|独学プログラミングで挫折しないよう心がける事 を御覧ください

なお転職を想定するなら、プログラム単体の勉強とPaiza(パイザ)Aランク以上を取得しないといけませんので、総勉強時間は600~1200時間以上必要です。

詳細は未経験からエンジニアに転職した人間が考える、今からエンジニアに就職する方法をご覧ください

今回はあくまでWebアプリケーション作成に焦点をあてています

掲示板などの簡易的なWebサービスを作成したり、スマホアプリを作成する場合でも

200時間~300時間は必要になると心がける必要があります。

※プログラミングスクールに通学しても同様です

1日1時間程度勉強しても、約6ヶ月程度の計算になります。

目次


スマホ・Webサービスを1から作成する際に必要になる知識

まずどんなサービスであれ必ず以下の知識が必要になってきます。

1:Linux

2:Html Css

3:サーバサイドプログラミング言語(JavaやPython・PHP ・Rubyなど)

4:プログラミング言語のフレームワークを学習

5:Mysql Postgres Sqlの知識

6:GitHubの知識

※スマホアプリの場合は、データベースの知識は不要の場合あり

上記の通り覚える知識範囲が広く、面倒な事に各知識が独立しています。

具体的に言うと、Linuxを覚えたからといって、その知識をサーバサイドのプログラミングに応用できませんし、

サーバサイドのプログラミングができるようになったから と言ってその知識をデータベースの知識に応用できません。

上記の通り各知識が独立しているので、1つ1つ独立して覚える必要があるため独学の場合は時間がかかります。

ここで難しく感じるかもしれませんが、簡易的なWebサービスを作成すると

上記の1〜6を満遍なく最低限利用します。

その為、以下に記述する事を参考にしてみてください。

何のプログラミング言語を勉強するか考える

まず、未経験からエンジニアに転職した人間が解説|独学プログラミングで挫折しないよう心がける事 でも記載しましたが

基本的にはまず無料で利用できるサイトや定額で利用できるサービスや書籍を利用します。

独学で勉強しやすいプログラミング言語としては

スマホアプリならKotlin Swift

サーバサイドならPHP Java Ruby Python

などがよいかと思います。

2019年までPythonは勧めておりませんでしたが、Djangoが普及し始めているので機械学習以外でも徐々にニーズが発生しています。

その為 まずは情報が多いプログラミング言語で独学を行うことをお勧めします。

また、何のプログラミング言語かを決めかねている方は プロゲートやドットインストールなどで無料のコンテンツが豊富なプログラミング言語を選択すればよいかと思います。

学習する順番とサイト

プログラミングに関してはまずは、環境構築をせずオンラインで無料で直ぐに利用できる、

プロゲート 

ドットインストール 

Paiza

などを利用します

※コンテンツについては一部有料の場合あり

そして学習する順番は

1:Linuxの基本的なコマンド操作

2:サーバサイドのプログラミング言語単体の操作

3:そのフレームワークの操作方法を学ぶ

※選択したフレームワークの学習コンテンツがない場合は、書籍がUdemyを利用

4:環境構築を行い、自身のPCへプログラミング言語とフレームワークのインストール

5:実際にサーバーに上げる

になります

具体的な学習の流れ

Linuxの基本的なコマンド操作

Webサービスを公開しようとすると、Linuxのコマンド操作は必須になります。

最低でもフォルダの移動やファイルのコピー方法などを覚える必要があります。

こちらは後ほど散々利用する事になるので、プロゲートやドットインストールのコンテンツで1周すれば問題ありません

Html CSSの学習

HTML CSSについてはLinuxやプログラミング言語を勉強したからといってその知識をスライドできません。

ただ、Html Cssは難しいエラーメッセージなどは 出ず、割と目で直感的に試すこともできるので学習も頭に入りやすい人が多いです。

こちらは、divタグとCSSでの色や画像の反映 要素の横並びなどを覚えていれば最低限利用できます。

こちらも引き続きプロゲートやドットインストールなどで学習可能です。

サーバサイドのプログラミング言語単体の操作

サーバサイド言語の学習は引き続き プロゲートやドットインストール Paizaなどで学習します。

どこまで勉強するかの目安についてはだいたいは

If文やクラス インスタンスメソッドまで

なんとなく触れていけば問題ありません。

分かりやすい目標の目安ではPaiza(パイザ)のCランク程度までいけば問題ないかと思います。

※転職を考えるならAランク取得が必要

ただ、未経験者でプログラミングのセンスがある人以外はCランクまで170時間以上は勉強する必要があります。

paizaのスキルチェックの難易度|各ランクの特徴・ランクアップのコツを現役エンジニアが解説

この部分で挫折する方が多くなりますが

注意点として全てを理解する必要はありません。

必要なのは挫折せずとりあえず先に進み学習の歩みを止めないことです。

前段で記載したとおりWebサービスを作成しようとすると学習範囲が広く1つ1つを覚えようとしても終わりがありません。

まずは触ってみてください。

そして、JavaやPhp Python Rubyなどのサーバサイドプログラミング言語を単体を勉強していると

これが何の役に立つんだろうか?や

Webサービスを創りたいのに、遠回りではないかと思う方もいるかもしれません。

実際私は思っていました。

PCや携帯からグーグルからアクセスして、利用できるサイトを創りたいのだが、

このIF文やクラスメソッドは何の意味があるのか

しかしフレームワークはプログラミング言語から作成された Webサービスを作成する際のパッケージなので、 プログラミング言語の理解は必須です。

実際If文やクラスメソッド インスタンスメソッドはフレームワークを利用する際にも必ず出てきますので、まずはプログラミング言語単体で操作してみてください。

また有料ですがPythonならPythonを利用してシステム開発している有名なビープラウドが提供している オンラインサービス【PyQ】もお勧めです。

関連記事

Rubyの練習問題:ハッシュ編|初心者・独学者向け入門コンテンツ

初心者・独学者向け|Rubyのハッシュ入門とよく使うメソッド

初心者・独学者向け|Rubyのinitializeメソッドとは

初心者・独学者向け|RubyのStringクラスとよく使うメソッド

paiza(パイザ)Cランク練習問題|5以上の整数の合計のRubyサンプルコードと解説

フレームワークの操作方法を学ぶ

フレームワークは選択したプログラミング言語によって変わってきます。

RubyならRuby on Rails

PhpならLaravel 

Java ならSpring Bootなどです。

※商用のJavaのサービスやスマホアプリについてはプログラミング言語単体の場合あり

前述したとおり、フレームワークはWebサービスの作成に欠かせないものになっており、 プログラミング言語を元に、コマンドを利用せず、データベースを操作したりHTML CSSの書き込みを楽にしてくれます。

フレームワークを学ぶサイト

再度記載しますが、以下が主要なフレームワークになります

RubyならRuby on Rails

PhpならLaravel or Cake

Java ならSpring Boot

PythonならDjango

フレームワークについても引き続き、自身のPCで環境構築を行わずCloud9 を利用してドットインストール プロゲート パイザ などで操作感を覚え、簡単なコピーアプリケーションを作成していきます。

Cloud9 は仮想で簡単にフレームワークの操作環境を構築できます。

いきなり自分のPCにフレームワークをインストールするのは初心者にはきついです。 ここで結構挫折します

なのでCloud9やパイザのオンラインの仮想環境などで フレームワークを利用したコピーアプリケーションを作成していきます。

追加で有料のオンラインコンテンツではUdemyやでフレームワークに関する学習動画を購入するか

オンラインスクールで月1万程度ですが、PythonのコードからフレームワークのDjangoまでも勉強し、直接エンジニアに質問できる オンラインPython学習サービス「PyQ™(パイキュー)」もお勧めです

こちらなら有料でも月1万程度で納まります。

まずは少額で少しずつ勉強し、勉強する習慣づけ していきます。

このフレームワークでDBの操作やLinuxの操作プログラミング言語の利用などを嫌というほど利用します。

ここでは貴方は過去体験したことのないほどのエラーメッセージと戦う事になるでしょう。

ここでもかなりの独学者が脱落していきます。

諦めずに1分でもプログラミングを行う事を心がけてください

環境構築を行い、自身のPCへプログラミング言語とフレームワークのインストール

クラウド上やオンラインエディタを利用して、フレームワークを操作して、操作感に慣れてきたら、実際に自身のPCへ環境構築してみてください。 

ここで今までに学んだ事にプラスしてGitの知識が必要になってきます

環境構築については、利用環境によって様々なのでWebやQitaで検索してみてください。 

金銭的に余裕があるのであれば、ココナラ などで環境構築方法をご教授されている方などに、依頼してみるのも手かもしれません

また、サーバサイドのプログラミング言語でWindowsは仮想環境の構築が必要なので、初心者にはかなり難易度が高いです。理由としてWindowsには標準的でLinuxがインストールされていないので、

1:Linuxの仮想環境を構築

2:仮想環境にプログラミング言語とフレームワークをインストールするの2点が必要になります。

関連記事

Windows10上へVirtualBox 5 Ubuntu 16 をインストールする

Ubuntu16 VM Virtual BoxへRuby On Railsをインストールする

Windowsで、即座にプログラミングをしたい場合はAndroid Studio3をインストールしてKotlinで開発する事もお勧めです

Android Studio3をWindowsへインストールする

上記から可能ならMacを購入する事をお勧めします

システムエンジニアがみんなMacを利用しているのは、 単純にMacには標準的にLinuxがインストールされているので、

プログラミングのインストールやデータベース構築が容易に可能です。またHomebrewもありますので、ライブラリも容易にインストール可能です。

実際にサーバーに上げる

自分のローカル環境簡単なアプリケーションを世に公開します。

スマホサービス以外はHerokuやAWSを利用して、インターネットにサービス公開が可能です。

サーバーへの公開方法は利用環境やプログラミング言語によって、違ってくるので、プロゲート ドットインストール PaizaUdemyなどで検索していきます。

AWSでもHerokuでも実際にサーバーを利用してサービスを公開するにはGitとLinuxの知識がさらに必要になってきます。

ここでも今まで学んだ知識以外にサーバーやAWSの操作方法などを新しく覚える必要があります

ここまできて初めて簡単なアプリケーションを世に公開できます。

公開が完了したら、アプリケーションを改造したり 新しいアプリケーションを構築を構築していきます。

以上になります

その他関連記事

未経験からエンジニアに転職した人間が解説|独学プログラミングで挫折しないよう心がける事

未経験からエンジニアに転職した人間が考える、今からエンジニアに就職する方法

客先常駐SESからWeb系自社サービスのエンジニアに転職した実例

未経験からのエンジニア転職失敗事例

5次受けSES体験記|未経験からエンジニアに転職した人間が解説

5次受けSES経験者が考える SIやSESからWeb業界へキャリアチェンジする方法

フリーランスエンジニアのなり方|法人化した人間が解説

フリーランスになってクレカの申請は通った。ただしあれは拒否された

あなたにお勧めの記事
前の記事
次の記事