Travewriter

〜 Enjoy world, Enjoy everything 〜

プログラミング完全初心者だった僕が、たった30日でTwitterクローンを作れるまでに至った方法


スポンサードリンク

f:id:travewriter:20170128090608j:plain

今回はプログラミングの完全初心者に向けて、"効率的にプログラミングスキルを学び、最短30日間でプログラミングスキルを身につける方法"をお話ししていく。

プログラミングの完全初心者はイメージすらつかないと思うが、プログラミング学習というのは挫折の連続だ。いざ気合いを入れてプログラミングの本を買って学習を始めても、度重なるエラーに心折られてしまい、「もうプログラミングは無理だ」と諦めてしまう人が想像以上に多いのが実情である。あなたがプログラミング学習経験者なら、プログラミング関連の本を買い漁り、ネットでプログラミングの無料情報をたくさん仕入れたにもかかわらず、一向に前進できなかったという経験があるのでないだろうか?

でも大丈夫。プログラミング学習には"ポイント"があり、そのポイントに沿って学ぶことで、学習効率を最大限高めることができるのだ。

そもそも僕がプログラミングに初めて触れたのは去年のことだった。仕事も貿易関係をメインにやっているので、それまでプログラミングのことはおろか、HTMLやCSSのことさえよくわかっていなかった。そんなプログラミング完全初心者だった僕でも、わずか"30日間"でHTML、CSSといったウェブサイトの基本構造はもちろん、BootstrapやGIT、そしてRubyRuby on Railsを一通り使い、最終的にはTwitterクローンを作るところまで達成した。

なぜプログラミング完全初心者だった僕がたったの30日間でTwitterクローンを作るまでスキルを身につけられたか?今回はプログラミングに興味のある初心者の方に向けて、僕が実体験を通じて知ったTIPSを書いていく。

 

なぜプログラミングを学ぶ必要があるか?

プログラミングの学習方法を話す前に、「なぜプログラミングを学ぶ必要があるか?」を考えよう。プログラミング学習を始めて継続していく上で一番必要なもの。それは「強いモチベーション」だ。なぜか?それはプログラミング学習には度重なる挫折がつきものであり、そのたび踏ん張り、めげずに勉強を続けていく必要があるからだ。

そして学習を継続する強いモチベーションを作るために必要なことこそ「プログラミングを通じて手に入る将来像をイメージすること」に他ならない。自分の将来の夢や理想を明確にし、それを実現する上でプログラミングスキルが絶対に必要であることを認識することこそ、プログラミングを学び続ける強いモチベーションとなるのだ。

「なぜ自分はプログラミングを学ぶ必要があるのか?」「プログラミングスキルを身につけるとどんな理想の未来が手に入るのか?」「それを実現することがどれほど自分にとって価値があるのか?」プログラミングを学んだ先にある"ゴール"を明確にしよう。

ゴールを絵に描くようにイメージすることができ、かつそれを考えるだけでワクワクするような気持ちを持つことができれば、あなたはどんな挫折も乗り越えていける"強い原動力"を手に入れることができる。この原動力こそ、プログラミング学習を続ける重要な要素だ。

 

プログラミングスキルで実現できる理想の未来のカタチ

プログラミングを学んだ先で手に入る未来を考える上で、僕の考える事例をいくつか紹介したい。"プログラミングを学ぶ3つの必要性"と"プログラミングでできる3つのコト" の記事でも挙げているが、プログラミングを学ぶと次のような未来を実現することができる。

  1. 時間・場所に縛られないライフスタイルを実現できる
  2. フリーランスとして働きやすい
  3. 高収入を得ることができる
  4. 自分で便利なサービスや機能を作ることができる
1. 時間や場所に縛られないライフスタイルを実現できる

プログラミングを学ぶ代表的なメリットといえば「時間や場所に縛られない生活を実現できる」ことだ。毎日満員電車に揺られ、月曜から金曜日は会社に箱詰めな人であれば、時間と場所に縛られない自由な生活に憧れる人は多い。そのような生活から抜け出す一つの有用な手段こそ、プログラミングのスキルを身につけることである。

現在はプログラミングのスキルを活かしたリモートワークの仕事が増えている。あなたが沖縄にいようが海外にいようが、プログラミングスキルはあなたに持続的な収入をもたらす。プログラミングのスキルは、一定の収入を得ながら田舎暮らしを実現したいサラリーマンや、家庭を大事にしながらも仕事をしたい主婦など、それぞれの理想のライフスタイルを実現する有用な手段である。

2. フリーランスとして働きやすい  &  3. 高収入を得ることができる

会社員を続けながらプログラミングスキルを勉強していき、そこで少しずつでも実績を積んでいけば、今度はそれが2のフリーランスという働き方に繋がっていく。フリーランスというのは基本的に手に職を持った人がなりやすい雇用体系だ。自分で物を生み出し、作ることのできる人材の市場価値は高く、中でもプログラミングのスキルは数あるフリーランスの仕事の中でも大きな収入を得ることができる。

例えばエンジニア向け専門エージェントであるレバテックキャリア は、フリーランスでも月60万円以上の高収入を得ることができる。ひと昔前ではエンジニアが独立をすると仕事がなく、慣れていない営業活動をしなければいけない時代だった。つまり、社会人エンジニアとして人脈の構築という前提があり、その人脈を頼りに独立するというのが一般的だった。

しかし、その時代の潮流は変化した。レバテックキャリア を始めとしたエンジニア専用のエージェント誕生により、独立したフリーランスは例え人脈がなくても、エージェント経由で仕事を請けることができるようになった。多数の顧客・仕事を保有しているエージェントは、例え人脈がなくても、確かなスキルを持つことをアピールさえできれば仕事がもらえる時代なのだ。現に多くのITエンジニアが独立したあと、としてITスキルを身につけフリーランスとして独立したITエンジニアの多くが利用しているエージェントであり、このようなフリーランスが働きやすいプラットフォームが続々出来上がっているのが追い風だ。

4. 自分で便利なサービスや機能を作ることができる

さらに言えば、プログラミングを使いこなすことができるようになれば、自分でサービスや機能を作ることもできる。そのようなサービスを作れる人材をいま世の中は喉から手が出るほど欲しており、必然的に年収も高くなり、かつそのようなサービスを世の中に送り出してヒットすれば、大きな収入を得られる可能性もある。

 

理想の将来を考え、プログラミングスキルとの関連性を見つけよう

プログラミングで実現できる未来のカタチは何となくイメージできたはずだ。ここで時間をとって、自分の理想の将来を真剣に考えよう。自分の理想の将来像をイメージできたら、今度はその将来像とプログラミングスキルの関連性を見つけていこう。

プログラミングを学んだ先に理想の将来像がなければ、あなたはプログラミングを学ぶ必要は一切ない。今すぐこのページは閉じて、もっと別の有用なことに時間を使おう。しかし、もしプログラミングを学んだ先に理想の将来像が待っているなら、プログラミングスキルを身につけることを真剣に検討しよう。

次項からはプログラミング完全初心者がどのように勉強のステップを踏んでいけば良いか、その方法やコツを具体的に挙げていく。

 

プログラミング学習の始め方と、効率的なプログラミング勉強方法

学習するプログラミング言語をまず決める

プログラミングをいざ始めようとした時、初心者が必ずと言っていいほど悩むのが、どのプログラミング言語を学ぶかという点だ。プログラミング言語の種類は多数あるが、有名どころで言えばRubyやPhython、JavaC++PHPなどだ。この時点で初心者は頭が痛くなってくるだろうが、基本的な言語の選択方法としては、次のようなクライテリアで言語を検討することで解決できる。

プログラミング言語の選択基準
  • 学びやすいか?
  • 書きやすいか?
  • 応用が利くか?
  • 高収入が望めるか?
  • 人気があるか?
  • 今後その言語の需要は伸びていくと考えられるか?

これらの項目に沿って、自分が学ぶプログラミング言語を考えることがポイントだ。

プログラミング初心者におすすめの言語

では実際に上記観点に沿ってプログラミング言語を選ぶとき、一体どれが良いのだろうか?僕のおすすめはRubyだ。

Rubyは200種類以上あるプログラミング言語の中で、世界の人気ランキングトップ10に入る言語であり、世の中に登場して以来順位を上げ続けてきている言語だ。特にWebの分野に向いている言語として大きな注目と人気を集めており、Web分野に限ってはトップ3に入る人気さを誇る。

Rubyはアメリカのシリコンバレーや日本のベンチャー企業の間で急速に普及している言語で、Rubyを使用できるエンジニアの需要は非常に大きいものとなっている。次の図の通り、Rubyは高収入を望める言語でもある。

f:id:paiza:20160506101637p:plain

プログラマー年収ランキング2016!言語別、第1位はPythonの651万円 | みんなのスタンバイ

Rubyを利用したフレームワークであるRuby on Railsは開発効率の高さが大きな注目と人気を集めている。その注目と人気を裏付けるものとして、アメリカでのRubyエンジニアの年収水準が一つの参考になるだろう。

アメリカ国内の言語別平均年収ランキング
順位 言語 報酬
1 Ruby on Rails 10万9460ドル(約1290万円)
2 Objective C 10万8225(約1270万円)
3 Python 10万717ドル(約1180万円)
4 JAVA 9万4908ドル(約1120万円)
5 C++ 9万3502ドル(約1100万円)

シリコンバレー101 (592) 飛び抜けて高年収、それでも報酬不足と言われる米国プログラマー | マイナビニュース

さらにRubyプログラミング言語の中でも学びやすい言語と言われており、コードがシンプルで非常に書きやすく、初心者でも一番取りかかりやすいのが特徴だ。

このように、Rubyは大きな需要や報酬を見込めることにことに加え、プログラミング完全初心者であっても学びやすい特徴を持つ。プログラミング言語の選択で迷ったら、Rubyを選んでおくことを僕はおすすめする。もっともバランスが優れた言語であるRubyは、プログラミング初心者がプログラミングを始めるのに最適な入り口なのだ。

 

HTMLとCSSをまず学習する

「学ぶべきプログラミング言語が決まった。よし!Rubyの本を買って読もう!」というのは少々順番が違う。プログラミング初心者がプログラミングを学ぶとき、まず最初にやるべきことは「HTML」と「CSS」の基本知識を習得することだ。

HTMLとCSSとは?

HTMLとCSSとは、ウェブサイトの見た目を作っている言語のことである。僕たちが見ているウェブページというのは、このHTMLとCSSがその見た目を作っている。毎日見ているヤフーのページもGoogleのページも、ほとんどのページがこのHTMLとCSSによって見た目が作られている。

言ってみればこのHTMLとCSSはウェブサイトを作る上での基盤となるものだ。サッカー選手がまずトラップとキックの練習をするように、プログラミング学習者はまずHTMLとCSSを学ぼう。基本があってこその応用である。

HTMLとCSSの勉強を通じて、ウェブ上に表示されているコンテンツがどのような仕組みで指定されて表示されているか、その基本をまずつかむことに集中しよう。

イメージとしては、HTMLは文書を作っていて、CSSはその見た目を装飾(カスタマイズ)するものとまず覚えておけば良い。この2つを覚えて使いこなすだけでも一般的なウェブページを作ることができてしまうし、ブログ運営者であればブログのカスタマイズも自分でできるようになる。プログラミング学習者でなくとも、ブログ運営者などのネットユーザーであれば、HTMLとCSSを学ぶメリットは大きい。

 

とにかくコードを書いて真似る 

プログラミングはとにかく難しいコードが大量に出てくる。プログラミング初心者がそれらを全て目で見て、ひとつずつ調べて理解しようとしていたら99%挫折するのがオチだ。例のごとく僕も挫折しそうになったが、そこで僕が具体的に取った方法は次の通りだ。

コードとの向き合い方
  1. 全体の流れを把握する
  2. 今から書くコードが何を目的とするか漠然と理解する(決してコードは覚えない)
  3. そのコードを見よう見まねで書き移していく
  4. 1から3の繰り返し
  5. 記憶定着 

プログラミング完全初心者がやりがちな点として、1と2を把握する前に、プログラミングのコード自体と睨めっこしてしまうことがある。「このコードのこの部分は一体どういう意味なんだろう」と余りに深く考え過ぎて一歩も進めず、時間ばかり消耗してもう嫌になってしまうという流れだ。プログラミング学習においては、これが一番挫折の理由としてあると個人的には思う。

完全初心者がプログラミング学習を始めたばかりの段階においては、コードと睨めっこをし合い、深く考えすぎることは一切必要ない。全体像を把握し、いまやっていることがその流れの中にどのポイントにあるか、このぼんやりとしたイメージを捉えた上でコードをひたすら書き真似ていく方が何倍も効率が良い。まさに"頭でなく身体で覚える"というところだ。

僕もそうだったが、いくら考えてもわからなかったものが、コードを書いているうちに、そのコードが意味することや前後の関係性というものが自然と見えるようになっていった。順番は「とにかく真似て書く⇨理解する」だ。決して「理解する⇨理解したら書く」ではない。効率を重視するなら、間違いない前者だ。

 

暗記ではなく理解する

前項とも被るが、プログラミング学習において特に初心者がやりがちなのは、コードを暗記しようとすることである。プログラミングのコードは無数に存在し、初心者が暗記することははっきり言って不可能だ。そこで重要なことは、暗記するのではなく理解することだ。「ここでこういうコードを使うとこんなことができる」というイメージを理解し、それを頭に浮かべながらコードを書いていく。そうすると自然とコードに対する理解も深まっていく。暗記しようとすれば効率も悪いし、何度も同じ場所を繰り返して勉強は進まない。プロのエンジニアでさえもコード全てを暗記しているわけではなく、わからないことがあれば都度調べて理解して進んでいくのだ。

暗記ではなく理解しよう。

 

メンターを必ず作る

プログラミング学習の最大の敵、それはエラーに遭遇する回数の多さと壁の高さだ。通常、プログラミングの学習を始めると、10分に1回はわからないことが出てきて、1時間に1回は挫折しそうになる(決して大袈裟ではない)。プロのエンジニアの方であっても、プログラミングと向き合っている時間の約8割はエラーと戦っていると言っても過言ではない。

ただはっきり言って、プログラミング学習段階においてエラーとぶつかっている時間は無駄以外の何物でもない。最短かつ効率的にスキルを身につけたいなら、無駄な時間を極力無くしていく工夫が必要だ。

そこで有効な方法こそ、わからないことにぶつかったらすぐに質問ができるメンターや指導者を確保することだ。わからないことをすぐ聞くことができるメンターがいると、プログラミング学習は何倍、いや、何十倍も効率的かつ素早く行うことができる。

例えば前項の1から5のステップにおいては、メンターがいれば1,2のステップはものの30秒くらいで理解できてしまう。普通に自分で本を買って独学をしていたら、そこを理解するだけでも30分かかってしまうこともある。

もっと長いスパンで捉えると、プログラミング学習を始めて通常一人で1年かかって習得することであれば、メンターに疑問点をすぐぶつけて解消していく方法でやれば、1年かかる期間をたった30日に凝縮することも十分可能なのだ。

 

プログラミング学習のキーは「質問できるメンターの存在」

ここまで紹介してきたプログラミング学習のTIPSをまとめると、次のような学習プラットフォームが効率的なプログラミング学習には必要な要素となる。

  • 基本からしっかりと学習できる実践型カリキュラム(教科書を読むのではなく、どんどんコードを書いて学んでいく実践形式)
  • RubyRuby on Railsを学ぶことができる
  • わからないことはどんどんメンターに質問できる環境がある

この中で最もキーとなるのは「わからないことを質問できるメンター」の存在だ。メンターがいるかいないかで、プログラミング学習の効率性は天と地ほどの差ができてしまう。一般的なプログラミング学習者が挫折する一番の要因は、紛れもなくメンターがいるかいないかの違いである。

述べてきたとおり、プログラミング学習ではエラーにぶつかる回数がとてつもなく多い。その度本を読み返し、ネットで情報を探していては、慣れていない初心者であれば挫折するのは至極当然のことなのだ。裏を返せば、わからないことが出た際にいつでも質問できるメンターがいれば、例え初心者であっても何倍も効率的に学習を進めていくことができるのだ。

とはいえ、すぐ相談に乗ってくれる好意的なITエンジニアの友達を持っている人はそう多くないのが実情である。ではどうするか?そこで使うことこそ、プログラミングのオンラインスクールであるTechAcademyを使う方法だ。TechAcademyは最高のプログラミング学習スクールであり、プラットフォームだ。TechAcademyを使うことで、今回話した全ての要素はクリアでき、初心者であっても最短かつ効率的にプログラミングスキルを習得することができる。

 

TechAcademyとは 

f:id:travewriter:20170128085549p:plain

TechAcademyはオンライン型のプログラミングスクールだ。完全初心者であった僕自身、TechAcademyを通じて勉強をし、30日間でTwitterクローンを作成するまでスキルを身につけることができた。ここではTechAcademyの持つ素晴らしい特徴を6つ紹介する。

TechAcademyのおすすめポイント1: プロフェッショナルのパーソナルメンターがつく

TechAcademy最大にして最高の特徴が、プロフェッショナルのパーソナルメンターがつく点だ。メンターのほとんどは現役ITエンジニアであり、プログラミング学習で大きな力となってくれる。

前述通り、プログラミング学習最大の敵はエラーの数、つまり壁にぶつかる回数だ。TechAcademyではメンターとの週2回、1回30分のビデオチャットが可能であり、そこで不明点を全部ぶつけることができる。メンターの知識が相当豊富なので、一人一人の疑問に沿った丁寧な解説をしてくれ、不明点もスッと腑に落ちる。最短でスキルを身につけたいなら、どんな質問にも的確な答えを示してくれる実力のあるメンターの存在は必須であり、TechAcademyでは上質なメンターを確保することができる。

僕はTechCampなど別のプログラミングスクールの無料体験も受けたことがあるが、TechAcademyの講師の質が抜群に良かった。ここがTechAcademyの一番の特徴でありメリットだと思う。

 

TechAcademyのおすすめポイント2: チャットでいつでも質問可能 

TechAcademyではパーソナルメンターのほかに、常駐しているサポートスタッフが受講生からのチャット問い合わせに答えてくれる機能が備わっている。わからない点はいつでもSlackというツールと使い、スタッフに問い合わせることができる。この機能により、壁にぶつかって何時間も悩むということは一切なくなる。

質問は24時間いつでも送付可能。サポートスタッフからの返答は15時から23時の間と決まっているが、パーソナルメンターに聞く以外でも、不明点が出た都度ここで解消することができるので、悩みを翌日に持ち越すことも一切なくなる。

 

TechAcademyのおすすめポイント3: 完全オンライン完結型

 従来のプログラミングスクールはオフライン型、つまり教室型のスクールも多かったが、TechAcademyは完全オンライン完結型だ。忙しい社会人、遠方に住んでいる学生や主婦などにとって、家や近所のカフェで受講を受けられるのは大きなメリットである。

パーソナルメンターとビデオ通話をする際に使用するのはAppearというChromeのサービスだが、音声・映像の質もとても良い。万が一都合が悪くなってもシステム上で簡単にキャンセルでき、かつ振替機能もあるので、レッスン時間は確実に確保することができる。

 

TechAcademyのおすすめポイント4: 豊富なカリキュラム・コース

f:id:travewriter:20170128085427p:plain

 TechAcademyではその人その人の希望に応じた多数の講座が用意されている。プログラミングコース、デザインコースなどの大まかなコースの中に、WebアプリケーションコーズやiPhoneアプリコースなどの個別コースがある体系だ。

ちなみに僕はWebアプリケーションコースを受講し、HTMLやCSS、Bootstrap、Git、ポートフォリオ作成、RubyRuby on RailsTwitterクローン作成などを行った。Webアプリケーションコースでは注目のRubyを中心にプログラミングスキルを幅広く学ぶことができるので、プログラミング初心者は迷ったらWebアプリケーションコースを受講することをおすすめする。

 

TechAcademyのおすすめポイント5: 低価格・高品質

f:id:travewriter:20170128090349p:plain

従来のプログラミングスクールでは、受講するのに30万〜50万以上支払うことも少なくなかった。コース毎に価格は異なるが、TechAcademyのWebアプリケーションでは4週間の集中コースで119,000円、8週間のじっくりコースでも169,000円と格安となっている。

プログラミングスキルを身につけ、フリーランスとして活躍することができれば毎月60万円以上の収入を得ることも可能であり、それを考えると物凄く安い投資である。 

 

TechAcademyのおすすめポイント6: 無料体験期間が7日間あり

 TechAcademyでは無料の体験期間が7日間ある。とりあえず受けてみて、何か使いづらいと思えばやめれば良いだけなので、迷ってやらないくらいであれば他のプログラミングスクールとも比較をするために一度使ってみることをおすすめする。

 

trave-writer.hatenablog.com

 

まとめ

強いモチベーションを持ち、無駄のない方法で学習を進めていけば、たとえ初心者であっても最短でプログラミングスキルを身につけることができる。繰り返すが、一番のキーは信頼できるメンターの存在だ。疑問点をすぐにぶつけることができるメンターの存在こそ、プログラミング学習の肝である。

そしてそれを実現する現実的な方法が、今回紹介したTechAcademyを利用する方法だ。本を買い、ネットの無料ツールを使用して独学で勉強するのではなく、一定の投資をしてTechAcademyを使ったからこそ、僕のようなプログラミング完全初心者でもたった30日間でTwitterクローンを作るまでにスキルを習得することができた。

プログラミングスキルを身につけた先に理想の未来像が垣間見えたなら、迷わず突き進んでみよう。"行動"こそ、理想の未来を手に入れる唯一の方法なのだから。

 

☆TechAcademyの7日間無料体験はこちらから

オンラインブートキャンプ無料体験