ホーム

【プログラミングスクール】TechCampのWebアプリコースに半年通ったので感想をまとめます

導入

プログラミングスクールは、費用が高額になるので、足踏みしている方もいるかと思います。
本記事では、私がTech::Campというプログラミングスクールに通った感想をまとめます。
TECH CAMPについて公式ホームページをご覧ください。

この記事を読んでわかること

  • TechCampで学んだこと、通った感想
  • どのようなアプリを作れるようになるか

約半年間、Webアプリケーションコースを受講しました。
既に会社員でしたので、業後と休日に渋谷校に通いました。

目次

  1. 学習スケジュール(基礎コース)

    1. 開発環境構築
    2. HTML、CSS、Rubyの学習
    3. ホームページの作成練習
    4. Rubyの学習2
    5. Ruby on Railsの学習
    6. サンプルアプリケーションの作成
  2. 学習スケジュール(応用コース)

    1. サンプルアプリケーションの作成2
    2. その他の技術の学習
    3. オリジナルアプリケーションの作成、herokuの環境にデプロイ
  3. まとめ

学習スケジュール(基礎コース)

まったくの未経験からはじめたので、基礎コースを終えるまでに3ヶ月ほどかかりました。

開発環境構築

開発環境の構築方法ですが、大きく分けて2パターンあります。

AWS Cloud9を使う方法

カリキュラムで紹介しているのが、AWSのCloud9というサービスを使う方法です。
このサービスを使うメリットは、ブラウザ上で開発を行うことができるということです。
開発に必要なものの準備を簡易的に行うことができますので、開発がまったくの初めてであれば、こちらの方法で大丈夫です。

ローカル環境構築を行う方法

ローカル環境構築とは、自分のPC上に開発環境を構築する方法です。 様々なソフトウェアを個別にインストールする必要があり、細かいバージョンの違いから、アプリを起動すらできないことも多々あります。 初学者には難しい方法ですが、実際の開発現場ではローカル環境構築を行うことが普通です。
プログラミングに慣れてきた方はこちらの方法を実践してみていただきたいです。

HTML、CSS、Rubyの基礎学習

まずは基本的なhtmlタグの使い方、cssの当て方などを学びます。
私は初学者でしたので、1周目はコピペして動作確認を行っていました。コピペでも動くと嬉しいものです。

次にプログラミング言語”Ruby”を学びます。 変数の扱い、if文・for文の使い方など基本的なことを学習します。
htmlとプログラミング言語の違いがわかっていませんでしたが、ロジックを書いているとプログラミングしていることを実感してきます。

ただ、基礎学習で時間を使うのはもったいないので、受講前にprogateのhtmlコース/Rubyコースを一通り学習しておくと効率良く進められるかと思います。

ホームページの作成練習

基礎学習が終わると実際に動くモノを作成していきます。
最初は簡易的なホームページを作成します。
仕様書が用意されており、ヒントを見ながら仕様通りのページになるよう実装していきます。
ここも1周目はほぼコピペで進めていきましたが、モノを作っている感覚が持てて、モチベーションが保てます。

Rubyの学習2

Rubyの基礎学習でやったことは6割くらいの理解で、とりあえず進めることを意識しました。
for文とif文がわかればいいかなと 笑

ここではオブジェクト指向について学んでいきます。
オブジェクト指向についての説明は以下等を参考にしてください。
初心者向けに徹底解説!オブジェクト指向とは?

ここで気を付けなければいけないのが、完全に理解しようとしないことです。
オブジェクト指向にはクラス、インスタンスの概念、MVCモデルの話が出てきますが、カリキュラムを読んで、サンプルを実装しただけでは意味が分からないかと思います。
難しい概念ですので、それが普通です。繰り返し学習し実装することで身についてくる考え方です。
ここでつまづく人がとても多いのですが、理解できなくてもめげずにカリキュラムを進めましょう。
コピペで動けば何も問題ありません!

Ruby on Railsの学習

Ruby on Railsとはアプリケーションフレームワークの一つです。
アプリケーションフレームワークとは、共通的な機能や実装のお作法などを定義したモノと考えていただければ大丈夫です。

どのアプリケーションでも共通で必要となる機能が多々あります。
また、エンジニアがそれぞれの方法・お作法でプログラミングした場合、人のソースコードを見ても、どのような機能が実装されているか読み取るのが大変です。
フレームワークを使うと、上記の問題がある程度解決され開発効率をあげることができます!

実際の現場ではどの言語を使う場合でも、アプリ開発時には何らかのフレームワークを採用します。
Ruby on RailsはRubyで一番採用されているフレームワークです。

カリキュラムではサンプルアプリケーションを作成しつつ、使い方を学習していきます。

サンプルアプリケーションの作成

カリキュラムではPictweetというTwitterを模したWebアプリケーションを作成します。
ツイートを入力して投稿すると、データベースに保存され、トップページの一覧に追加される、といった機能を開発していきます。

が、ここは相当苦労しました・・・
オブジェクト指向とRuby on Railsの使い方が理解できず、なかなかカリキュラムが進みません。
メンターの勧めもあり、ホームページ作成含め、アプリの作成を3周しました。
3周すると流石にいろいろ見えてきて、少し楽しくなります 笑
諦めずに続けることが大切です!

【1周目】
最初はほとんどコピーアンドペーストで進めているのに、約半月かかりました・・・
Progate等で少しなれた後に通うと効率がよかったと思います。
1周目は雰囲気をつかむことを目的にしてました。

【2周目】
HTML、CSSはある程度わかるようになってきたので、View周りは苦労せず実装出来るようになりました。
そうすると、ControllerとModelに集中出来るようになります。
パラメータの渡し方など勘所が見えてはくるのですが、依然として理解できないところはありました。

【3周目】
3周目となると次に何をすればいいのか、何を調べればいいのかがわかってくるので、それほどつまらずサンプルアプリを作れるようになりました!
この瞬間が一番楽しかった!

ここまで基礎コースが一通り完了です!

サンプルアプリケーションの作成2

応用コースでは別のアプリケーションを作成していくことで、Ruby on Railsの使い方を学んでいきます。
作成したアプリは以下のようなものです。

  • nekotter(pictweetと似た投稿機能をもつアプリ)
  • ブログアプリ
  • 映画情報をスクレイピングで取得してレビューするアプリ

これらを一通り作成すると、アプリの作り方がわかってきます!
ただ、オブジェクト指向についてはぼんやりとした理解のままです。
使い方はわかるが、いまいちピンとこない。
そんな状態ですが、それでも動くモノが作れるので問題ありません!

その他の技術の学習

アプリ開発と並行して、以下の技術を学びます。

  • レスポンシブデザインについて
  • bootstrapの使い方
  • Git
  • SQL
  • 楽天やYahooなどのAPIの使い方

スマホアプリではなく、ブラウザでWebアプリケーション(twitterや食べログなど)を見た際に、スマートフォンで見た場合とPCで見た場合のデザインが違うかと思います。
レスポンシブデザインとは、スマートフォンをはじめとした様々な画面サイズに対応したデザイン手法のことです。
カリキュラムではbootstrapというメジャーなライブラリの使い方を学びます。

Gitとはソースコードのバージョン管理システムのことで、開発現場では絶対に使うことになる技術です。
ここでは詳細は省きますが、カリキュラムでは簡単な使い方を学びます。

SQLはデータベースを操作する言語です。
Ruby on RailsではORマッパーという技術を使いますので、直接SQLを書く必要はありませんが、エンジニアとして必ず学習すべき言語です。

オリジナルアプリケーションの作成、herokuの環境にデプロイ

この辺りで勉強開始から5ヶ月ほど立っていたかと思います。
最後はRuby on Railsでオリジナルアプリケーションを作成(テーマは自由)します。
私はこれと言って作りたいアプリはなかったのですが、APIを利用してみたいと思っていたので、Youtubeからデータを取得して、チャンネルや動画の数字を可視化させるアプリを作りました。

  • YoutubeのAPIを使い、人気Youtuberのチャンネル情報(登録者数、投稿動画数)と動画情報(各動画の視聴回数、高評価数など)を取得
  • chart.jsを使い、各データを可視化
  • bootstrapを使ってレスポンシブデザインを適用
  • SalesforceのPaaSであるherokuを用いてアプリを公開
    ※今はもう残っていません 笑

まとめ

プログラミングを続ける上で大切なことは、挫折しづらい環境を作ることだと思います。
プログラミングを続けていくと何回も壁が立ちはだかります。

変数の使い方が分からない・・・
クラスの意味が分からない・・・
MVCモデルが分からない・・・

新しいことが出てくるたびにつまづくことになります。
しかし、私にとっては絶対に動くソースコードがあって、詰まったらメンターに質問できる環境は、学習を続けていく上で最適な環境でした。

これからプログラミングの学習する場合は、TECH CAMPである必要はありませんが、カリキュラムが適切に更新され、適度に相談できる環境を選択するべきかと思います。