はじめに
こんにちは。経済学部を卒業後、現在Webエンジニアとして六本木で働いているdragonです。
前回は 文系でもエンジニアとして就職できる5つの理由についてご紹介しましたが、今回はその一歩先に進み、「はじめてのプログラミング指南」というテーマで書いてみたいと思います。よろしくお願いします。
PC1台あれば始められるプログラミング。だからこそ最初なにをすれば良いのか悩ましい。
「プログラミングまずはやってみよう!」なんてことばはいい加減陳腐な表現になってきました。
しかしそれほどにプログラミングを勧める声は多いものの、具体的に最初のアクションとして何を手に取れば良いのかを説明している記事はそう多くありません。
文系でもエンジニアとして就職できる5つの理由でも簡単に紹介しましたが、今はプログラミング学習サービスが充実しつつあります。
Progate(プロゲート)や、ドットインストール、TECH::CAMP(テックキャンプ)など、様々な選択肢が揃っており無料でも十分に学ぶことができます。
手元にPC1台さえあればプログラミングが学べる時代。
だからこそ、なにからやればいいのか悩ましい時代でもあります。
今回はそういった悩みに答えを示すべく、パターン別に必要なアクション3パターンほど紹介します。
- 全くのプログラム初心者。まだ「Hello world」をしたことがない。
- 最初の一歩として何に手を付ければ良いのかがわからない
- 作りたいものを作れと言われても何を作ればいいかわからない人
このどれかに該当する人はぜひご一読ください。
脱初心者に必要な時間は簿記3級勉強時間と同等の100時間。
まずはかけるコストを意識してみましょう。
時間としては100時間もあればエンジニアインターンに潜り込めるようになります。
100時間を具体的にイメージすると、簿記3級獲得に必要とされる学習時間に相当します。簿記3級といえばそこまで難易度の高い資格ではありません。それこそ1-2週間で詰め込んで資格を取得する人も少なくはないレベルの資格です。決して非現実的な学習量ではありません。
時間配分で言えば 1.5時間/1日 月15日 × 3ヶ月 ≒ 100時間 くらいでしょうか。
だいたい週3日、1日1.5時間かけ続ければ3ヶ月で脱初心者です。
といってもスケジュール通りに続けられる人であれば苦戦せずに学べると思いますが、そうでない人が多いのが世の常ですね。私も多分にもれずこういった皮算用はたいていうまくいかないタイプなので、個人的には1ヶ月で100時間かけるつもりで短期集中学習することをおすすめします。
ちなみに現Supershipで元nanapiのけんすう(@kensuu)氏はおおよそ200時間のプログラミング学習で「わりと学べる」と考えていらっしゃるようです。
それでいうと、ブログで稼ぐことを目指してブログを書き続けるのは投資に対してのリターンの効率性悪いと思うんですよねえ。たとえば200時間あるなら簿記2級レベルまでいけるし、プログラミングでもそれなりのサービスはつくれるようになる。https://t.co/Kt3BZiQXJX
— けんすう (@kensuu) July 3, 2017
「サービスを作りたいけどプログラミングができない。エンジニアがいない。どうしたらいいか?」という人が多いのですが「せっかくだから自分で作ってみてはどうですか?200時間くらいかければ割といけますよ」と言ってます。でも、割とみんなやらない・・・。
— けんすう (@kensuu) September 25, 2017
さて、では100時間の具体的なイメージを持った上で、100時間で出来るようになること・やるべきことをみていきましょう。
目的別100時間で出来るようになること・やるべきこと
100時間を使うにしても、目的に応じて何をすべきかは変わってきます。
早速、下記の3パターン別に【予算・ファーストアクション・100時間後にできるようになること・Pros/Cons】の4つを見ていきましょう。
- パターン1 「お金と時間もあり、エンジニアになりたい」
- パターン2 「お金はないけど、エンジニアになりたい」
- パターン3 「ビジネスに寄与するスキルとして学びたい」
パターン1 「お金と時間もあり、エンジニアになりたい」
まずは予算が十分にあり、かつ本気度が高い人のパターンから。
まず知っておくべきことに、プログラミング学習の効率を上げる上でもっとも重要なことは質問できる相手を捕まえることです。
プログラミング学習でもっとも多くの時間を占め、かつ心を折ってくるのがエラーの解釈・解決との戦い。
もちろん最終的には自分で読み解ける様になる能力が求められますが、最初からできる人は多くありません。
(「エラーに書いてある英語をちゃんと読もう」とか言っているやつは何も分かっちゃいません。
初学者がつまずくのはエラーメッセージやスタックトレースの独特の表現に慣れていないことが原因であって、英語が読めても困るケースはあります。)
それさえできれば、質問できる相手 + パターン2でも十分良いのですが、質問にいつでも優しく答えてくれる暇なエンジニアはなかなかいないでしょう。
そういうときは金で殴る。 これにつきます。
予算
– 200,000円 – 500,000円
ファーストアクション
– TECH::CAMPなどの対面・オンラインで相談できるプログラミングスクールに応募する
– できれば見学に行くことをおすすめします。その場の学習者の空気を感じてモチベーションを高めましょう。
100時間後にできるようになること
– 自分ブログ, twitter/instagram/tinderのクローンサービスなどは開発できる
– webサービス・アプリの開発に関して、基本的な開発フローを回せるようになる
– webサービスを1つ卒業作品として開発し終えている = 実績を1つもてる
– エンジニアインターンとしては大体どこでも通用するようになる
Pros/Cons(メリット・デメリット)
Pros
– どんな基本的な質問であっても、いつでも質問できる環境を得ることができる
– 初学者のコミュニティに入れる
– サービスによっては、インターンの斡旋などもしてくれる
Cons
– とにかく高い
– web上で学べるコンテンツや書籍などのクオリティも十分高いので、コンテンツとしてのコスパは良くはないかもしれません
– 人によっては自分のペースで学習が進められないのが合わない可能性もある
パターン2 「お金はないけど、エンジニアになりたい」
とはいえ多くの人は50万円もポンとはだせません。おとなになってもそうは出ないよそんなお金。
結果、多くの人は動画コンテンツ&書籍の組み合わせで独学の道を選ぶことになるでしょう。その際には、まずプログラミング学習サービスを利用することをおすすめします。特におすすめなのはProgate。
ドットインストールは技術要素を網羅的にカバーしており、後々非常に便利なのですが、逆にそのコース数の多さがまっさらな初心者を悩ませます。
一方Progateはコース数自体は限られているものの、上からやっていけば良いので無用なところに悩む心配がありません。
HTML & CSS -> JavaScript -> jQuery -> Command line -> Git -> Ruby -> Ruby on Rails5
の順がおすすめです。
Progateを20 – 30時間ほどで終え次第、続いて不明点をドットインストールで補強したり、書籍を購入してもう一歩踏み込んだ内容を学ぶといいでしょう。
なお、予算は動画コンテンツに限れば0円に抑えることもできますが、書籍には惜しむこと無く予算投下することをおすすめします。
写経(コードの書き写し)は意味があると考えています。 そのための素材は手元に集めて決して損はありません。
紹介したい書籍は多くありますが、Railsを学びたい人向けには『Ruby on Rails 5アプリケーションプログラミング』 などがおすすめです。
独学で学ぶ人向けには個人ブログですが 【3ヶ月編】プログラミング完全初心者が最初にやったことまとめ【その1】のシリーズをおすすめします。かけた時間と使った書籍がすべてまとめられています。
予算
– 0円 – 50,000円
ファーストアクション
– Progate(プロゲート), ドットインストールに会員登録する
– 登録したら、webサービスを作りたいのであればHTML/CSS/JavaScriptを、アプリ開発であれば iOSアプリ/Androidアプリに関するコースを早速やってみましょう
100時間後にできるようになること
– webの仕組みを理解できる
– webサービス・アプリの開発に関して、基本的な開発フローを理解している. 一人で作りきれるのはまだ難しい.
– エンジニアインターンとしては未経験枠として採用されることもあるレベルになる
Pros/Cons (メリット・デメリット)
Pros
– 安い
– 自分のペースで進めることができる
Cons
– 相談できる人を囲えるわけではない
– モチベーション管理が自分次第になるので、人によっては途中挫折し易い
– どのコンテンツが自分に適しているか、自己判断する必要がある
パターン3 「ビジネスに寄与するスキルとして学びたい」
ビジネスサイドでは、エクセルのマクロやVBAが使える/使えないの違いで生産性が大きく変わってきます。
作業の自動化やオリジナル関数の作成、顧客リストに対して件名や本文に顧客名を差し替えて一括でメールを送るなど、用途は多岐にわたるでしょう。コンサルタントを筆頭にビジネスエリートを目指す人や将来起業を検討している人にとっては、もはや必須のスキルといえます。
そこで最初からVBAについて学ぶのも良いのですが、GoogleAppsのスプレッドシート上で利用できるGoogleAppsScript(GAS)というツールを学ぶこともおすすめです。
ベンチャーなどではむしろGASを利用するケースの方が多いでしょう。
いずれにせよこれらは動画コンテンツを用いて無料で学べますし、十分習得するには100時間も必要としません。
おおよそ20 – 30時間もあれば十分実用レベルでスキルが身につきますのでサクッと学んでみるにはおすすめです。
こちらも個人ブログですが、「今このときからプログラミングを始めたい」と思った方へのgoogle apps scriptのススメその1 のシリーズがおすすめです。
予算
– 0円
– 書籍を買ってもいいですが、動画でも十分身につきます
ファーストアクション
– (VBAを学ぶなら)ドットインストールでExcel VBA入門をみる
– (スプレッドシートでの自動化を学ぶなら)ドットインストールでJavaScript#20までと、GoogleAppsScript入門をみる
30時間後にできるようになること
– 月間100時間かかるような事務作業を自動化で30分程度に圧縮できる
– ex: 顧客リストに対して件名や本文に顧客名を差し替えて一括でメールを送ることができる
– ex: 売上表から請求書をPDFで自動作成することができる
– オリジナルの関数を作成できる
– シートに対する作業を自動化できる
Pros/Cons (メリット・デメリット)
Pros
– 安い
– 100時間もかからずに実用スキルを習得できる
– ビジネスサイドとして学生でこれらのことができればインターン / 新卒入社として他者よりも生産性高く活躍できる
Cons
– webサービス・アプリを開発できるようになるわけではないので、エンジニアとしてのスキルにはむすびつきにくい
100時間を終えてから「作りたいものを作る」でもいいじゃない
よくプログラミング初学者に向けて「作りたいものを作ればモチベーション維持できる」とアドバイスする声を見かけることがあります。
これは決して間違っておらず、最初からなしとげたい目標があってそれに向かうことができれば何も言うことはないでしょう。
しかしこれからプログラミングを学ぶぞと意気込んだばかりでは、そもそもプログラミング初心者で一体何が作れるようになるのかイメージできないことも多く、作りたいものをイメージすることが困難であることも多いかと思います。また、プログラミングを学びたいという欲求が何かを作りたいという熱意に優先することもあるでしょう。
そんなときに作りたいものをうんうん考えてプログラミング学習への初期衝動が消え失せてしまうことはただただもったいない。
今すぐ作りたいものが思い浮かばずとも気にせず、ただ書籍の写経やカリキュラムの消化を目的とし、まずは手を動かせるようになることをだけを目指しても何も悪いことはありません。
おわりに: 今日、今すぐ動き出そう。
この記事をここまで読んでくださったあなたはきっと今プログラミングを学び始めたいと強く思っている人だと思います。その気持ちがある今この瞬間のうちに、列挙したファーストアクションを起こしましょう。
アイデアをプログラムという形に産み落とす過程は脳汁あふれる時間です。
この楽しさを一度味わえばもう抜け出せないプログラミングにまず一歩踏み出してくれることを期待しています。
執筆:dragon
就活学生のための無料・オンライン プログラミング・インターン
プログラミング未経験者OK、文理不問のプログラミング・インターンを開催しています。プログラミングだけじゃなく、スカウト型就活イベントなど、卒業者限定の特別オファーもあるので、内定が一気に近づきます!詳しくは以下のページをご覧ください。
TECH-BASE
【お知らせ】エージェントと話をしてみよう
エージェントに話を聞いてもらうことで、自分が何をやりたいのか、自分が大切にしているのが何なのか、就活するうえでの軸が見えてきます。さらに、その人その人に合った未公開の求人情報も紹介してもらえるので、まずは気軽に相談してみましょう。登録や相談・セミナーなど、すべて無料で活用できます。