「プログラミングは学びたいけど、何から始めればいいのかわからない」という方は、おそらくたくさんおられるのではないでしょうか?私も最初は何をすればいいのか全然わからず、手探りで進めていました。
独学がいいのか、スクールに通うのがいいのか、使える学習サイトはないのか、通う場合はどのスクールに行けばいいのか…悩むことが色々あり、結局手付かずになってしまうことも少なくありません。
私は100万以上の費用をかけてプログラミングスクールに3つ通い、学習サイトを2つ使い学習をしてきました。かなりの費用をかけて学習を進めてきましたが、当時はまだ信頼のできる情報があまり多くなく自身の目で確かめるしかなかったので、色々遠回りをした気もします。
皆さんには同じ道を踏まなくてもいいように、私の経験から導き出した「目的別に見た最適な学習ルート」と「段階別の学び方」について、自分なりに感じたことを踏まえてお伝えしたいと思います。学んでいく中で感じたことを包み隠さず書いていきますので、一つの参考にしてもらえれば幸いです。
長文になりますので、もし「結論から先に知りたい!」という方がおられましたら、目次から結論まで飛んでください。一つずつ細かく説明していきますので、長旅になるかと思います。
目次
- 前提条件(どういう人が書いているのか)
- 100万円以上かけて学んだプログラミング学習の流れ
- ① ドットインストール(学習期間:2週間)
- ② Progate(学習期間:1ヶ月)
- 1度目の挫折
- ③ TECH::CAMP(学習期間:1週間)
- 2度目の挫折
- ④ 侍エンジニア塾(学習期間:3ヶ月) 〜 挫折から数ヶ月後 〜
- ⑤ Progate(学習期間:1ヶ月) 〜 検討期間 〜
- ⑥ TECH::CAMPテキスト(学習期間:1ヶ月) 〜 検討期間 〜
- ⑦ Ruby on Rails チュートリアル(学習期間:1ヶ月) 〜 検討期間 〜
- ⑧ TECH BOOST(学習期間:6ヶ月)
- 【結論】目的別の最適ルート
- 段階別の学び方
- 感想
- まとめ
前提条件(どういう人が書いているのか)
まず、記事を書いている私自身について、簡単に紹介させていただきます。
プログラミング経験はゼロ
これまで金融機関、学校法人、ベンチャー企業に勤めてきましたが、営業や企画、人事などプログラミング経験はゼロ。いわゆる文系職種でずっと働いてきました。当時、30歳を目前にして手に職をつけたいと思い、プログラミング学習をスタート。
目的は手に職をつける為のスキルを身につけること
前述しました通り、目的は手に職をつける為のスキル修得。最初は作りたいものや何かをしたいという目的もなく、漠然とスキルが身につけばいいやというスタンスでした。
プログラミング言語の選択は「学びやすさ」を重視
最初につまずくポイントとして、言語の選択があります。Web開発系、スマホアプリ系、制御系、ゲーム系など種類も様々。マイナー言語も合わせると200種類以上あり、有名なものでも20言語程度あります。
言語に関しては、
- 作りたいものやしたいことがある場合、それに合った言語を選択
- 特段無い場合は、学びやすい言語を選択
上記のような感じで最初は良いかと思います。「とりあえずプログラミングに触れてみたい」という方は、『HTML』『CSS』『PHP』『Ruby』『Python』辺りから見ていくといいでしょう。日本語の参考文献も多く、学びやすいと思います。
プログラミング言語の特徴などについては、こちらもご覧ください。
100万円以上かけて学んだプログラミング学習の流れ
冒頭でもお伝えした通り、私はプログラミングスクールに3つ通い、学習サイトを2つ実際に利用してきました。その際に、どういう順番で進め、どういった目的でその学習に行き着いたのかお伝えしていきたいと思います。
まずは、全体の流れからご紹介し、その後に一つずつについて学べたことや失敗を書いていきます。
全体の流れについて
私が学習してきた流れと期間、コストについては下記の通りです。
最初は一般公開されている学習サイトでプログラミング学習をスタート。その後2度の挫折を経験、プログラミングスクールにも3度通っています。その間で、同じことを何度も繰り返してきたのがわかるかと思います。
無料体験・説明会に参加したが行かなかったスクール
最終的に3つのスクールにしましたが、その他にも無料体験や説明会に参加したスクールはいくつかあります。
その時々で求めている内容が違いますので、一括りにはできませんが、大まかに当時行かなかったスクールと理由を述べます。
- Tech Academy:オンラインのみ、1ヶ月でオリジナルまではタイト
- Web Camp(現DMM WEBCAMP):メンター全員が現役というわけではない、グループ制作が不要な気が…
- Web Camp Pro(現DMM WEBCAMP):現在はDMM WEBCAMPに集約
- TECH::EXPERT:マンツーマンではない、オリジナル制作無し、グループワーク不要
- Code Camp:レッスン形式、予約制、オンラインのみ、聞きたい時に聞けない気が…
- DIVE INTO CODE:メンター全員が現役というわけではない、授業とグループワーク不要、6ヶ月長い、オリジナル無し
ざっと書きましたが、比較した当時の状況もありますので、あくまで今はご参考までに。下記に、その当時比較した状況や求めていたものはお伝えしていきます。
① ドットインストール(学習期間:2週間)
概要
- 運営:株式会社ドットインストール
- 本社:〒150-0011 東京都渋谷区東3-17-11-403
- 受講スタイル:オンライン
- 教材:オリジナル
- 受講期間:1日〜
- 登録料:0円
- 月額:[無料会員]0円 [有料会員]980円
学ぼうとしたもの
学ぼうとしたもののポイントは3つ。
- プログラミングとはどんなものか感覚を知る
- 書いたコードをいかに反映させるのか知る
- 進め方の感覚を知る
最初のポイントは全て「知る」ところから始めたことです。前提条件でも書いた通り、プログラミングに関しての知識がゼロだったので、まずは「知る」ことから始めるようにしました。
比較したもの
- 無し
この時点では比較したサイトやプログラミングスクールはありません。そもそも無知すぎたので、比較するほどの知識もありませんでした。その為、まずは見ることから始めることにしました。
成果
「ドットインストール」での学びで得たもの。
- プログラミングとはどんなものかなんとなくの感覚を知れた
- テキストエディタやターミナルの使い方を知れた
- 進んでいく過程をなんとなく理解できた
- 拒否反応が出なかった
第一の目標である「知る」ことに関しては、なんとなくではありますが、できたかなというところです。どういったものを使って、どのように書いていくのかなど基本的な部分から「知る」ことができたので、まずはそれが成果かなと感じます。
失敗
反対に、失敗に関してですが、
- 見ているだけというのもわりと飽きる
- 自身の「飽き性」に気付く
本よりはマシでしたが、見ているだけというのもわりと飽きてきます。なんとなくでも感覚が掴めてくると、やはり手を動かしてみたくなるもの。ここでの失敗はただ「見る」ということだけに絞ったことかもしれません。
【ポイント】反省点と次への考察
最初に学んだ「ドットインストール」での反省点と次への考察に関してはこちら。
- 「見る」だけに絞ると飽きてしまう
- 「見る」だけではなく、実際に「手を動かす」ことをしてみる
「ドットインストール」での学びに関しては、まずは「知る」ことはできたので成果がありました。ただ、「見る」ことに絞ってしまったのでそこを反省点としつつ、次の段階で「手を動かす」ことに繋がったのは進展かと思います。
② Progate(学習期間:1ヶ月)
概要
- 運営:株式会社Progate
- 本社:〒150-0045 東京都渋谷区神泉町10-10 アシジ神泉ビル 8階
- 受講スタイル:オンライン
- 教材:オリジナル
- 受講期間:1日〜
- 登録料:0円
- 月額:[無料会員]0円 [有料会員]980円
詳細に関してはこちら↓
学ぼうとしたもの
学ぼうとしたもののポイントは3つ。
- 見て理解した知識の確認をする
- 手を動かしながら感覚を掴む
- 知識や理解をより深める
「Progate」でのポイントは「知識の確認」と「定着」です。見て感覚を掴むことができたので、その知識を確認することとより深めることに焦点を当てて学ぶことにしました。その際に、実際に手を動かして行うことにも意識しています。
比較したもの
手を動かすという部分で比較したのが「Ruby on Rails チュートリアル」というWebサイトです。Webアプリケーションを学ぶ上で基礎となる知識についてわかりやすく説明されているのが特徴です。ただ、少し細かい部分もありますので、優しさで言えば「中」くらいの感じでしょうか。
Ruby on Railsは、Rubyのフレームワークであり、開発を行う際に必要とされる基礎的な機能をまとめて提供してくれるものです。「雛形」だとイメージしてもらえれば良いかと思います。
こちらもご参考に。
「Progate」を選んだ決め手
- 環境設定が不要
- 一つずつのスライドが見やすい
- わかりやすい内容で理解が進む
- キャラクターが可愛く、ゲーム要素があって楽しい
決め手としてはこの辺りでしょうか。正直、一番上の「環境設定が不要」に関してはかなり重要なポイントです。最近は色々参考になる情報も多いので昔ほどではないと思いますが、環境設定で挫折する人が9割みたいなうわさもあったほど、始める前の環境設定が大変だというのがあります。ですので、その点が排除されているのはかなり有難いです。
成果
「Progate」での学びで得たもの。
- 知識の確認と理解の深掘り
- コードを「書く」という感覚の認識
- 開発を進めていく流れ
知識の確認と理解の深掘りは、当初の目的通りに進んだことは一つと、まだまだ理解し切れてない部分があることへの確認になったと感じます。また、手を動かしながら行うことで、コードを「書く」という感覚に触れられたのは良かったなと。見ているだけだとこの感覚があまり得られないので、収穫になりました。開発の流れについてもなんとなく理解できたので良しとしましょう。
失敗
反対に、失敗に関してですが、
- 見やすさわかりやすさがメインなので、詳細が知りたい時は少し情報薄
スライドの見やすさやわかりやすさがある反面、詳細についてはそこまで記載がないので、「そんなもんなのか」と見ていた部分が所々あります。
【ポイント】反省点と次への考察
「Progate」での反省点と次への考察に関してはこちら。
- 細かい部分までの理解はまだまだできていないことに気が付く
- より理解を深める為に、自身でオリジナルアプリの開発に取り組む
Progateを使い、知識の確認や理解の深掘りができました。実際にコードを書くことや、開発していく流れについても見れたのは大きかったと思います。ただ、まだまだ理解し切れていない部分も多くあるので、次はオリジナルアプリ制作を通しての理解の深掘りになります。
1度目の挫折
ここまで1ヶ月と少し、プログラミングについて基本的な知識を学んできましたが、わかりやすい教材のおかげでわりと理解できたかと思います。そこで、次のステップとして、実際に自身でオリジナルアプリの制作に入ることにしました。
挫折の原因?
さて、モチベーションも高まっている中で、最初の挫折を味わいました。その原因となった挫折ポイントについて見ていきます。
- 設計ができない
- 開発環境を用意できない
- 細かい部分の理解がなく、全然進められない
- わからない時に聞く人がいない
こういった細かい部分というは参考になるものが少ないんですよね。加えて、色々調べてはみるのですが、自身で判断できるほどの知識が備わっていない=合っているのかわからないという状況に陥ります。
このことが原因で最初の挫折をすることになります。しかし、モチベーションが高まっているので、そのままプログラミングスクールへの入学に進んでいきます。
③ TECH::CAMP(学習期間:1週間)
概要
- 運営:株式会社div
- 本社:〒150-0041 東京都渋谷区神南1丁目12−16アジアビル8F
- 受講スタイル:教室もしくはオンライン
- 教材:オリジナル
- 受講期間:1ヶ月〜(「TECH::CAMPイナズマ」は1週間)
- 入学金:128,000円
- 月額:12,800円(初月無料)
詳細に関してはこちら↓
学ぼうとしたもの
学ぼうとしたもののポイントは3つ。
- 基礎知識の確認と復習
- 環境設定の理解
- 設計方法の理解
自身でオリジナルアプリを制作しようとした際に、細かい部分の知識が曖昧なことに気付きました。その為、再度基礎的な知識の確認と復習を行い、その後設計などに移ろうと考え上記のようなポイントに重点を置きました。
比較したもの
- Tech Academy
- TECH::CAMP
この時、上記の学びたいこととは別に、短期間で目的地まで行けることも重要だと考えていたので、比較的期間の短いところを探していました。その為、1ヶ月でオリジナルまでを学べる「Tech Academy」と「TECH::CAMP」を比較。
最終的には、「TECH::CAMP」よりもさらに短期間で密度の濃い「TECH::CAMPイナズマ」コースを受講しました。
「TECH::CAMPイナズマ」は通学のみで、7日間通えることが必須条件になります。ですので、この条件が厳しい場合は、通常の「TECH::CAMP」の受講がおすすめです。
成果
「TECH::CAMP」での学びで得たもの。
- 基礎知識の確認と復習+より詳細な学びや新しい知識の習得
- 作りたいものの創出の仕方
基礎知識の確認と復習を行いつつ、より詳細な内容の理解や新しい知識の習得ができたと思います。また、作りたいものをどう考えていくのか、知識が増えていくことで色々考えられるようになってきたのもこの時期です。
失敗
反対に、失敗に関してですが、
- 環境設定の理解ができず
- 設計方法まで行き着かず
環境設定については、テキスト通りにしかできず、またその内容がなぜ必要なのかなどの細かい部分は省略されており理解に至らず。環境設定で挫折する人が9割ということもあって、詳細にやりすぎると心が折れてしまう人が続出する可能性があるので省略しているんでしょうか…。
設計については、大きく二つの失敗がありました。
- 時間が少なすぎる
- 専属のインストラクターがいなかった
時間について、後日談ではありますが、設計には2週間〜1ヶ月程かかるということを知りました。設計と一口に言っても、どんな内容にするのか?デザインはどうするか?ボタンの配置は?ログイン機能は必要?データベースに入れたいデータは?など細かく決める必要があります。その為、時間が少なすぎて行き着かず…。
また、設計の仕方を知らない中、プロの専属のインストラクターがいないというのはなかなか進みません。方法もわからないですし、感覚もないので、できるのかどうかの判断もできず。「TECH::CAMP」では、メンター(インストラクター)が全員プロのエンジニアというわけではないので(卒業生含む)、設計部分までわかる人は多くはない印象です。
【ポイント】反省点と次への考察
「TECH::CAMP」での反省点と次への考察に関してはこちら。
- 設計の時間を確保できてなかったことに気付く
- 環境設定や設計はプロに聞く方が早いし的確
- 環境設定や設計について詳しく教えてもらえるプロのエンジニアと出会いたい
基礎的な内容は確認と復習でそれなりに理解が進んできましたが、環境設定や設計部分で新たなつまずきに気づいたのが良い意味で反省点です。次の目的としては、環境設定や設計についてしっかりとプロのエンジニアに教えてもらう必要があるということになります。
2度目の挫折
「TECH::CAMP」に通う前から開発環境や設計については認識ができていましたが、そこに対して基礎部分とも同じように独学でも問題ないという思いがありました。しかし、いざ触れてみるとプロに聞くのが早いということに気付き、少しモチベーションに陰りが出たような感覚でしたね。これが2度目の挫折です。
挫折の原因?
原因は明確で、
- 設計などを甘く考えていた
- 何でも聞けるプロがいなかった
- プロの知り合いがいない中で、どうやって知り合えばいいのかわからなかった
設計などについては以前からも問題意識を持っていた中で、あらためて思い知る形になったのでダメージが大きかったです。加えて、「プロのエンジニアってどこで知り合うんだ?」という新たな問題に直面し、モチベーションの低下に拍車がかかった感じです。
④ 侍エンジニア塾(学習期間:3ヶ月) 〜 挫折から数ヶ月後 〜
数ヶ月間プログラミング学習から離れてしまいましたが、せっかく学習を進めてきたこともあり、少しずつモチベーションが戻ってきました。
概要
- 運営:株式会社侍
- 本社:〒153-0044 東京都目黒区大橋2丁目3番5号 Ohashi235 5F
- 受講スタイル:担当インストラクターに準ずる(対面 or オンライン)
- 教材:オリジナル
- 受講期間:3ヶ月(平均)
- 入学金:438,000円
- 月額:0円
詳細に関してはこちら↓
学ぼうとしたもの
学ぼうとしたもののポイントは3つ。
- 設計方法の理解
- 環境設定から開発までの一連の理解
- 基礎知識の復習
前回までで設計及び環境設定の部分がネックになっていたので、ここに重点を置いての学びになります。加えて、数ヶ月間プログラミング学習から離れてしまっていたので、再度基礎知識の復習もしながらの学習になります。
比較したもの
- Code Camp
- TECH::EXPERT
プロのエンジニアと出会える場を考え、侍エンジニア塾含め、3つのスクールで比較検討。
「侍エンジニア塾」を選んだ決め手
- プロのエンジニアとマンツーマンで開発
- カリキュラムのオーダメイド制
- 通える教室があること
決め手として最も良かったのが「プロのエンジニアとマンツーマン開発」です。一番求めていたものですし、当時は侍エンジニア塾くらいしかこの方式を取っていなかったのでほぼ一択でしたね。
「Code Camp」を選ばなかった理由として、
- マンツーマンではない
- レッスン形式が煩わしい
- 予約システム、同じインストラクターの空き時間のチェックが面倒臭い
- 予約していないと聞きたい時に聞けない
- オンラインでの画面共有も良いが、できれば対面が希望(横でコマンド打つのとか見たくて)
「TECH::EXPERT」を選ばなかった理由として、
- マンツーマンではない(進捗管理などのメンターは付く)
- グループ開発の期間が1ヶ月程ある
- オリジナルアプリ作成期間は無い
こんな感じです。オリジナルアプリの開発を行う上での条件を満たしていたのが「侍エンジニア塾」ということが決め手になりました。
成果
「侍エンジニア塾」での学びで得たもの。
- 設計から開発までの進め方の理解
ここではプロのエンジニアと二人三脚で開発を進めていきます。その為、どういったものを作るのか?その為に何が必要なのか?設計から開発までを学ぶことができます。環境設定に関しても、なぜその作業を行うかやコマンドの意味など、確認しながら進めることができるので勉強になります。
失敗
反対に、失敗に関してですが、
- 質問への応答に時間がかかる
- 教材があまり使えない
- 教室が無い
- フォロー体制が不十分
プロのエンジニアと二人三脚は有難いですが、ほぼ全員がフリーランスもしくは他企業所属の方なので、日中などの返答に時間がかかるのが惜しいところ。教室インストラクターというのもないので、基本的には返答があるまで待ち=進まない状況が続きます。教材もわかりやすさがあるわけではなく、社員からのフォローもなかったのが残念なところ。
残念に感じる部分も多かったので、詳細を知りたい方はこちらもご覧ください。
【ポイント】反省点と次への考察
「侍エンジニア塾」での反省点と次への考察に関してはこちら。
- 開発に入るとより質問が多くなるので、「いつでも聞ける環境」の必要性を感じた
- 教室・オンライン含め、どちらもインストラクター常駐が必要
- プロのエンジニアが常駐している場所を探す
この時点で、設計から開発の流れは掴めたので、次はより自分一人で開発を行えるように、同じものを一から作ることを進めていきたい。その為に、プロのエンジニアが常駐している場所を探すことにしました。
⑤ Progate(学習期間:1ヶ月) 〜 検討期間 〜
次の環境を探している間、オリジナルアプリ開発をしつつ、わからない部分を再度復習していこうという期間に割り当てていました。
まずは、「Progate」。
基本的な知識や進め方について、再度見ることでより理解がしやすく、最初に素通りしてしまったところも納得して進められる部分が増えたように思います。
⑥ TECH::CAMPテキスト(学習期間:1ヶ月) 〜 検討期間 〜
次に、「TECH::CAMP」のテキスト。
「TECH::CAMP」のテキストは非常にわかりやすく、ボリュームもあるので、復習するのにもってこいの教材です。何度も繰り返し行うことで、着実に知識の定着に近付くのでおすすめ。
※卒業当初は受講期間以降の閲覧ができなく、復習で使えなかったということがありました。
その後、多数の声あり、受講期間以降の閲覧についても可能になりました。しかし、現状そのまま閲覧が可能になっているのかは、運営サイドに確認する必要があります。
⑦ Ruby on Rails チュートリアル(学習期間:1ヶ月) 〜 検討期間 〜
次に学んだのが、「Ruby on Rails チュートリアル」。
概要
- 運営:YassLab株式会社
- 本社:〒169-0075 東京都新宿区高田馬場1-28-10 三慶ビル4階 CASE Shinjuku
- 受講スタイル:オンライン
- 教材:オリジナル
- 受講期間:1日〜
- 登録料:0円
- 月額:0円 ※動画視聴やスクールの場合は別途料金発生
学ぶきっかけ
「Ruby on Rails チュートリアル」を学ぼうとしたきっかけですが、これに関しては開発を進める中で見る機会が増えてきたことが理由です。
作りたい機能や調べたいことを検索する際に、多くの部分で検索に引っ掛かってきます。その為、見る機会が増え、そのまま学習に入ったという感じですね。
学べたもの
基本的には基礎の範囲なので、その他テキストと大きくは変わりません。仕組みやテストの実施方法など、少し発展的な部分もあり、その辺りの知識を身につける上で役に立ちます。
⑧ TECH BOOST(学習期間:6ヶ月)
検討期間を経て、次の環境として選んだのが「TECH BOOST」です。
概要
- 運営:株式会社Branding Engineer
- 本社:〒150-0044 東京都渋谷区円山町28-3 いちご渋谷道玄坂ビル5F
- 受講スタイル:教室もしくはオンライン
- 教材:オリジナル
- 受講期間:3ヶ月〜
- 入学金:0円(※現在 219,800円)
- 月額:100,000円(※現在 29,800円)
詳細に関してはこちら↓
学ぼうとしたもの
学ぼうとしたもののポイントは3つ。
- 設計から開発までの実践
- 基礎知識の確認
- 新しい技術への挑戦
「TECH BOOST」では、これまでの経験と土台を活かして、設計から開発までの実践(主に開発)を目的に受講。基礎知識に関しても、わからない部分についてはより理解を深める目的を念頭に置いていました。
また、新しい技術にも触れてみたいという想いがあったので、「オリジナルアプリ制作(3ヶ月)」+「ブロックチェーン技術の修得(3ヶ月)」という内容で受講しました。
比較したもの
- Tech Academy
- Web Camp(現DMM WEBCAMP)
- Web Camp Pro(現DMM WEBCAMP)
- DIVE INTO CODE
比較検討した際に重視したのが、「プロのエンジニアが常駐しておりいつでも質問できる環境があること」です。これまでに見てきた中で、再度検討できそうにあったのが「Tech Academy」だったので、この中で検討していきました。
「TECH BOOST」を選んだ決め手
- インストラクターは全てプロのエンジニア
- 教室・オンラインどちらでも対応可能かつ常駐
- 個別のメンターもエンジニア
- 新しい技術の学習も可能(当時、AIやブロックチェーンの学習を提供していたスクールは「TECH BOOST」のみ)
単純に、教室もオンラインもどちらも対応可能で常駐のエンジニアが全てプロというのが「TECH BOOST」のみだったというのが決め手です。
「Tech Academy」を選ばなかった理由として、
- オンラインのみ(教室・オンライン両方希望)
「DMM WEBCAMP」(「旧Web Camp」「旧Web Camp Pro」)を選ばなかった理由として、
- インストラクター(メンター)・常駐含め、全員がプロのエンジニアというわけではない
- 「旧Web Camp」は、オリジナル制作期間無し
- 「旧Web Camp Pro」は、グループ制作期間有り(必要無しとの判断)
「DIVE INTO CODE」を選ばなかった理由として、
- インストラクター(メンター)・常駐含め、全員がプロのエンジニアというわけではない
- 授業がある(必要無しとの判断)
- グループワーク有り(必要無しとの判断)
- 期間が6ヶ月と長い(※現在は4ヶ月と10ヶ月)
- テキストも微妙
こういった内容を踏まえて「TECH BOOST」に決めました。
成果
「TECH BOOST」での学びで得たもの。
- 開発に関する部分の基礎知識の修得
- 環境設定のノウハウ
- ブロックチェーン技術の基礎知識の理解
設計をもとに開発の基礎部分を修得。最初の1ヶ月で組んだスケジュール通りに進めたが、もっとも基礎の部分で試したいことがあったので再度構築を実施。コードとしてはあまり綺麗ではないかもしれませんが、色々と気付きに繋がって良かったと感じています。環境設定に関しても、ノウハウを身につけることができたと思います。
また、新しい技術として、ブロックチェーンの基礎知識を理解。今後もっと学ぶ必要がありますが、まずはさわりの部分を触れられたのは、経験として大きいと感じています。
失敗
反対に、失敗に関してですが、
- こだわりが出てくる
これはもう仕方ないですが、理解できる範囲が広がってくると、それに合わせてこだわりが出てきます。コードの綺麗さであったり、デザインであったり、機能であったり…最初の設計とは少し違ってくる部分もありますが、この辺りは経験を積むしかないかなと思います。
【ポイント】今後への考察
今後への考察に関してはこちら。
- 手を動かしてコードを書く
- 設計をしっかり考え、後々に不備が無いようにしていく
- デザインのスキルを身につける
- 経験を積む
ここから先は、より経験を積むことで身についていくことかなと思いますので、様々なアイディアを形にしていく中で、スキルを高めていくことが大事かと感じます。
【結論】目的別の最適ルート
これまでの経験から、フリーランスや転職など、それぞれの目的にあった最適なルートをご紹介したいと思います。
起業やフリーランスを目指す人
起業やフリーランスを目指す方は、基礎となる知識の修得が不可欠です。その為、最初の段階は「Progate」や「ドットインストール」などの学習サイトで感覚を掴みつつ、その後、「TECH::CAMP」などで理解の定着を図り、「TECH BOOST」でオリジナルアプリの開発まで行っていくのが良いかと思います。
転職を目指す人
転職を目指される方は、最初から転職サポートのあるところを受講しましょう。起業やフリーランスとは違い、企業が求めている人材に合っていれば就職はできますので、基礎知識を独学で学ぶより、転職サポート込みのスクールに飛び込む方が早いかと思います。
おすすめは「Progateまたはドットインストール(1ヶ月)」→「TECH::EXPERT」。ただし、「TECH::EXPERT」は定員数が決まっており、入学審査を通過した人に限ります。
また、そのままスクールに飛び込むのもありかと思いますので、「TECH::EXPERT」「DMM WEBCAMP」「DIVE INTO CODE」のどれかに申し込むのも一つ。個人的には「TECH::EXPERT」が一番転職に強いような印象を受けました。
知識として欲しい人
知識として欲しいという方は、Progateやドットインストールで十分です。応用でチュートリアルとなる教材本などを試すのもありでしょう。
段階別の学び方
それぞれの段階にあった学習を行うことで、知識の早期定着に繋がりますので、一つずつ着実に進めていくことをおすすめします。
基礎
どんな学習でもそうですが、基礎を疎かにしては応用に進んでいけません。基礎力をつけるのに大凡300時間〜500時間程度の学習時間が必要だと言われています。300時間だとしても1日2時間であれば5ヶ月、1日3時間でも3ヶ月程かかる計算です。スクールなどで推奨されている学習期間が平均で3ヶ月に設定されているのは、大方100時間/月の確保をもとに算出されている数字になります。
早ければこの時間でも設計やオリジナルの開発まで進めますが、まずは基礎力の定着に向けて300時間を目安に学習を進めることをおすすめします。加えて、覚えるくらいまで繰り返し学習することで定着の速度が上がりますので、意識して進めましょう。
- 300時間を目安に進める
- 覚えるくらいまで反復演習が大事
反対に、陥りやすい点については注意が必要です。
- 基礎が曖昧だとその都度止まってしまい、かえって遠回りになりかねない
設計
開発において最も重要と言っても過言ではない工程が「設計」です。この設計がしっかりできていれば後は作業を進めるだけで完成しますし、反対に設計が疎かになっていると都度都度見直しをして、重大な欠陥があれば一からの作り直しになるケースもある程です。
ですので、基礎力と同じくらい大事な部分になってきますので、しっかりと時間をかけて学ぶようにしましょう。
- 基礎と同じくらい大事な部分なので、しっかり時間をかけて学ぶ
- 細かければ細かいほどリスクの少ない設計になるので、綿密に行うことを心掛ける
反対に、陥りやすい点について、
- 我流になるとかえって良くない仕様になりかねない
- 地道な作業なので、根気強く行える意識を持てるようにする
仕様を考える上では経験者であるプロのエンジニアに聞くことをおすすめします。先にも述べた通り、我流になるとかえって良くない仕様になりかねず、一からの再作成を余儀無くされる可能性があるので、注意しましょう。
開発
基礎や設計にしっかりと時間を掛けた状態であれば、あとは作った設計書にしたがって開発をしていくだけです。ここまで来ると、それなりの知識が備わっていますので、開発の速度も早くなってきます。
- 今までに学んできたことを一つずつ思い出しながら進める
- テストの仕方やエラーの解決方法など、より実践的な部分の学びを深めていく
実際の仕事でも「エラー解決に割く時間が9割」と言う人がいるほど、実務でもエラーの解決能力は重要です。ここでは、実際にいろんなエラーが発生するので、一つずつ解決方法を学んでいくようにしましょう。
反対に、陥りやすい点については、
- 基礎がわかっていない為に、開発が全然進まない
基礎を理解せずに応用を始めると、どんなことでもこの状態に陥る可能性が高いので、こうならない為にもしっかり反復演習を行うようにしていきましょう。
感想
これまで学習してきた中で感じたことを、感想として以下列挙します。
- 最初はわからない言葉だらけで嫌気が差す
- 英語が読めると楽そうな気がしてくる
- 基礎を進めている時はどの場面で使うのかあまり理解できない
- 手を動かしてなんぼの世界だと思う
- 基礎部分が理解できればあとは経験を積むのみ
- 全部覚える必要は無し
- エラーの目処や解消の予測がつけば十分(プロの方もそんな感じ)
- バックサイドは経験、フロントサイドはセンスも必要な気がする
- 単純に理解できてくると楽しい
ざっと書いてみました。大事なことは「基礎を理解して、手を動かして、いっぱい失敗する中で経験値を積む」。こんな感じだと思います。何を学ぶにしても同じことが言えると思いますので、これまでに学んでこられた経験をそのまま活かしていってください。
まとめ
いかがでしたでしょうか?
私がプログラミングを学習してきた経緯と、その中で感じたこと、そこから導き出した最適なルートについてお伝えしてきました。学習の中で気付くことや身につくものは人によって様々かと思います。せっかく学ぶのであれば最も適した環境で、質の良い学びをして欲しいと感じます。
本記事が、その一つの参考になれば幸いです。