【Ruby on Railsアウトプット】アプリの作り方
どうもこんにちは。
建築系投資家のチカトサ(@5atochika)です。
今日は(自分用へのメモも含めて)Ruby on Rails を使ったアプリ開発の手順をザックリと書いていきたいと思います。
テックキャンプを卒業して既に3か月が経過しました。
プログラミング技術は常に手を動かしていないと忘れてしまいます。
細かいコードやメソッドを一つ一つ覚えておく必要はないのですが、大まかな流れや重要なポイントは覚えておいた方が良いですね。
アプリの開発手順
今回はRuby on Railsを使った開発手順を書いていきます。
ただGemやDeviceは使わない、最小限のアプリケーションの開発を大まかにざっくりと書いていきます。
大がかりなアプリケーションは色んな肉付けがあるだけなので、基本の流れを理解しておくことが重要ですね。
アプリケーションの準備
アプリケーションを新規作成
まずはターミナル上で、
を行うことで、必要なファイルを生成してくれます。
アプリケーション名の後に、 -d mysqlといったオプションをつけることで、使用するデータベースを指定することができます。
生成されたファイルを編集していくことでアプリを開発します。
データベースを作成
次にデータベースを作成します。
データベースの位置づけはMVCの概念において、とても重要な役割を果たしているのですが、今回はそこの説明は省きます。
というコマンドで、データベースが作成できます。
この段階で、Rails sを実行して、ブラウザでlocalhost:3000にアクセスすると、以下のようなデフォルト画面が表示されます。
フロントサイドの実装
アプリケーションの準備ができたら、まずはフロントサイドの実装に入るのが吉です。
と言うのも、見た目に出てくる部分が出来上がってくると非常にモチベーションが上がりますね。
プログラミング学習や開発において、モチベーションを高く維持することはとても大事です。
実装をする順番に決まりはありませんが、フロントサイドから一気に進めましょう♪
ビュー編集
今回はcssは使わずにHTMLだけで実装していきます。
まずはディレクトリ名とファイル名に着目しましょう。
この後サーバーサイドの実装に入りますが、その際にpostsコントローラーを作成します。
そのため、postsコントローラーのindexアクションに対応するビューになります。
なので、postsディレクトリにindex.html.erbというファイル名で作成します。
app/views/posts/index.html.erb
と入力します。
サーバーサイドの実装
サーバーサイドで実装する部分は大きく分けて、
- ルーティング
- コントローラー
- モデル
- マイグレーション
とあります。
自動生成されているファイルはルーティングのみであり、コントローラーとモデルは随時生成して編集していくカタチになります。
ルーティング編集
ルーティングとは簡単に言うと、このURLに来たらこの処理をして下さい、と言うURLと処理を紐づける役割を持ちます。
config内にあるroutes.rbというファイルを以下のように編集します。
config/routes.rb
ここでいくつかポイントを解説します。
get
はHTTPメソッドを表しています。'posts'
とすることでhttp://localhost:3000/posts
へアクセスしたときのルーティングを設定できます。"posts#index"
は、postsコントローラーのindexアクションという意味です。- すなわち、
http://localhost:3000/posts
にアクセスすると、postsコントローラーのindexアクションへ導かれます。
コントローラー生成
次にコントローラーを作成して編集していきます。
を実行して、アプリケーションに必要なファイルを生成します。
gは英語で「生成する」を意味するgenerateの略です。
先ほどルーティングを編集した際に、postsコントローラーと指定したので今回は、
rails g posts controllerと実行します。
そうすると以下のように、app/controllers/posts_controller.rbが生成されています。
ちなみに名前等を間違えてコントローラーを生成してしまった際には、
を実行することでファイルを削除することができます。
dは英語で「破壊する」を意味するdestroyの略です。
くれぐれも右クリックでのファイル削除はしないで下さい!
postsコントローラーを以下のように編集します。
app/controllers/posts_controller.rb
モデル生成
次にモデルを作成して編集していきます。
モデルとは、データベースとのやりとりを行うクラスのことで、MVCのMにあたります。
ターミナルで以下を実行します。
モデルの命名規則は、単数形を使用することです。
コントローラーは複数形なので、混同しないようにしましょう。
rails gのgはgenerateの略で、生成するの意味があります。
今回はPostモデルを作成するため、rails g model postと入力します。
マイグレーション
続いてマイグレーションを実行します。
マイグレーションとは、データベースにおけるテーブルの設計図・仕様書のことです。
rails g modelコマンドでモデルを作成したとき、db/migrate/ディレクトリに20XXXXXXXXXXXX_create_posts.rbというファイルが生成されています。
このマイグレーションファイルの情報がデータベースのテーブルとして反映されます。
今回は以下のように編集します。
db/migrate/20xxxxxx_create_posts.rb
マイグレーションファイルに、必要なカラム名の記述をします。
- t.textでtext型のカラムを生成します。
- 続けて:memoとすることで、memoという名前のカラムを生成します。
マイグレーションファイルを編集したらターミナル上で、
と実行します。
これによって先ほどの図のように、テーブルに情報が反映されます。
一度マイグレーションを実行すると、rollbackを実行しない限り編集することができません。
ここまでの成果物
これまで、ビューファイルを作成し、ルーティングを編集し、コントローラーとモデルを生成し、データベースを作成してきました。
ここでlocalhost:3000/posts/とブラウザで入力してみると、以下のような画面になるはずです。
MVCの流れはまた次回書きますが、ここで起こっていることは、ルーティングからコントローラーを経由して、ビューファイルを出力しているのです。
ここまで来て、もうお気づきかもしれませんが、モデルとデータベースは使っていません。笑
まとめ
今回は、「【アプリの作り方】Ruby on Railsアウトプット」について書いてきましたが、いかがでしたでしょうか。
ものすごく中途半端なところまでしか出来ませんでしたね笑”
ですがアプリ開発はその大半が、ビューファイル、ルーティング、コントローラー、モデル、データベースの編集なのです。
Webアプリケーションはとても奥が深く、難しく、大変なことですが、多くのアプリケーションは、これらに肉付けされた要素や機能があるだけなので、そこまでビビる必要はないですね。
というわけで、今回の記事は以上です。
ぜひ、また見に来てください♪
それでは今日はこの辺で^^
【建築解説】信濃吉田の家
どうもこんにちは。
建築系投資家のチカトサ(@5atochika)です。
先日、というか大分前になりますが、研究室の先輩であるPoten-Potenという設計事務所が作った家のオープンハウスに行ってきたので紹介します。
少しでも建築に興味がある人は是非見て行って下さい。
事務所概要
名前:Poten-Poten
所在地:東京都豊島区
略歴:大学院を卒業してSUEP.で勤務した後に独立。最近では小田原市立豊川小学校内装木質化基本設計・実施設計プロポーザルで最優秀賞を受賞する等、勢いのある設計事務所です。
外観
外観はプロペラのような手裏剣のような、そんな見た目をしています。
外壁をよく見てもらうとわかるのですが、上中下でタイルの色が変わっています。
内観
延べ面積は約60㎡あり、そのほとんどが1室で繋がっています。
写真だと少しわかりづらいですが天井もとても高く、とても広い空間に感じます。
個人的に僕は広い家には住んだことがないので、少し落ち着かないなぁ、、といった印象を持ちましたが、空間の気持ち良さは確かです。
間仕切りのないワンルーム
家の中は間仕切りがなく、リビングやベッドルームは筒抜け状態になっています。
というのもこの家は子育てを終えた夫婦2人だけの家なので、このようなプランが実現したとのこと。
白い壁に映える植栽がとても可愛らしいですね♪
ルーバー(天井の格子)の向きやフローリングの向きによって、リビング、ベッドルーム、廊下とワンルームの中に空間を分節しています。
斜めに傾斜した天井
よーく見ると天井が斜めになっているんですね。
玄関脇には洗面台とテーブルとイスがあり、とても広々としています。
家の中にダイニングテーブルはありますが、作業机はないためここで読書等をするのでしょうか。
リビング・ダイニングスペースは大きな掃き出し窓があり、窓の向こう側には緑が見えて目の保養になります。
人間は緑を見ると落ち着く習性があるそうです。
ちなみこのテーブルは通常4人用のテーブルですが、6人用に引き延ばすこともできます。
と言うのも、この家の家具は全て造作で作られており、この家に合わせた仕様になっています。
ベッドルールからリビング・ダイニングを見ます。
ベッドの脇に可動式の収納があるため、これにより空間が分節されているように感じますが、個人的にはカーテンのようなものできちんと仕切ってもらいたいところです。。
窓枠と比較して見ると天井が斜めになっているのがわかりますね。
天井が斜めになっているため、ルーバーに使われている木は一本一本が違う長さで出来ており、一本一本が特注でカットしてもらったものだそうです。
すごいこだわりですよね。笑
ベッドルームの証明に照らされるルーバーの木が良い感じです。
湾曲した白い壁
天井が斜めに傾斜しているのに加えて、実は壁も湾曲しています。
写真だとわかりづらいかもしれませんが、湾曲した壁に漆喰が塗られています。
コンセントまで塗ってあるこだわりです。
通常、湾曲した壁は家具の配置にとても不向きな形状ですが、造作の家具等を上手く利用して生活の不便さを出さないように工夫しています。
まとめ
今回は研究室の先輩の設計事務所Poten-Potenが作った『信濃吉田の家』の建築解説をしてきました。
最後まで読んで頂き、ありがとうございます。
家は「住む人」と「作る人」の個性がより出やすい建築だと思います。
建築家の建てる家はたまに、テレビ番組でも取り上げられることがあり、その度に賛否両論巻き起こります。
賛否両論と言っても「賛3割、否7割」くらいの回がとても多い印象です。
そんな賛否が巻き起こる建築家の建てた家、多くのお金を借りて一生住み続ける生活包み込む器である家を、
あなたは建築家に設計を依頼したいと思いますか?
僕は思いません。笑
というわけで、今回の記事は以上です。
ぜひ、また見に来てください♪
それでは今日はこの辺で^^
【テックキャンプ エンジニア転職】体験談 (最終週)
どうもこんにちは。
建築系投資家のチカトサ(@5atochika)です。
ついに、やっっっっっと、テックキャンプでの10週間が終わりました!!
今回はテックキャンプを受講してみて感じるリアルな感想と、ネットでの評判を比較していきたいと思います。
テックキャンプの良い評判
あるプログラミングスクールの口コミサイトを見ると、テックキャンプは4.0/5.0の評価です。
挫折しない環境
これはまさにそうだと思います。
挫折せずにやりきるためにあの手この手を使って支えてくれます。
具体的には、
- ライフコーチとの面談
- チーム内での悩みの共有
- メンターの方がとても親身になって聞いてくれる
、、、等々
他のプログラミングスクールに通っていませんが、これに関しては間違いなくテックキャンプが一番優れていると思います。
メンターの質が良い
何をもって“質”と言って良いのかわかりませんが、(カリキュラムの内容に関して)わからないことを丁寧に教えることに関しては、とても優秀な方ばかりだと思います。
決して全員がプロのエンジニアということではないので、技術的にどうなのかはわかりませんが、カリキュラムをこなす上では何の問題もありません。
また、メンターの方はとても優しく親身になってくれます。
1つ印象に残っていることが、
22時を過ぎてテックキャンプのシステム上質問することが出来なくなってしまった時間に、メンターの方の個人のZOOMのURLを送って頂き、業務時間外にも関わらず丁寧に教えて頂いたことがあります。
教えるのが上手いこともそうですが、時間が来たからと割り切ってしまうのではなく、そういった対応を取って頂けたことはとても嬉しく思いました。
なのでこちらも当たっていると思います。
教材の質が良い
これもまぁ当たっているかな、といった感じです。
と言うのも最初の「基礎カリキュラム」の時はとても丁寧にわかりやすく、ゆっくりと進んでいきますが、「応用カリキュラム」に入ると早く理解が追い付く間もなく進んでいく印象です。
カリキュラムにも、
「完璧に全てを理解するのではなく、多少理解出来なくても先に進み、最後に全体を通して理解できれば良い」
みたいなことが書かれています。
また、主にカリキュラムを使った学習期間は、前半の半分くらいなので、あくまでもアウトプットに力をいれているということです。
また、カリキュラム内容は常に修正・改善が繰り返されており、僕が受講した期間(79期)より後(80期以降)でまた別のカリキュラムになったりと、より最適に更新されています。
余談ですが、テックキャンプの教材は、運営者のマコなり社長が独学で学習した際に必要なところだけを参考書からピックアップしたもの、という話を聞いたことがあります。
テックキャンプの悪い評判
続いてテックキャンプの悪い評判を見ていきましょう。
満場一致で良い意見ばかりではないのは残念ですが、受講を終えてみて本当に悪い点だったのか検証していきます。
料金が高すぎる
確かにこれは悪い点ですね。
料金だけを他のプログラミングスクールと比較したらダントツで高いのでこれは致し方のない点ですね。
よく「高い料金を払うことで本気になる」みたいなことを言う人がいますが、そんなことは本人次第でどうにでもなることだと思います。
ですが10週間という短期間であることを踏まえると、料金は高くなっても仕方ないと割り切れるのではないでしょうか。
お金は取り返すことができますが、時間は取り返すことができません。
時は金なり
Time is Money、、、
カリキュラムがハード
これは人によっては難しいと感じてしまう人がいるのも納得できます。
先ほども書きましたが、
「完璧に全てを理解するのではなく、多少理解出来なくても先に進み、最後に全体を通して理解できれば良い」
とカリキュラムに書いてあるのです。
おいおいおいっ!と思いますよね。笑
ですが僕の場合、逆にこの一文によって割り切って進めたようにも思えます。
“内容的に難しい”かつ“進みも早い”のが相まってハードだと言われているのだと思います。
先ほども書きましたが、カリキュラムは常に更新されているので、どこかのタイミングで見直されるかもしれません。
これは後から知ったことなのですが、受講生によっては受講期間が始まる前からネット教材や参考書などで予習をしてから受講する人もいるそうです。
「高い料金払ってるのにそんなことするなら独学したらよいじゃん!」
と思ってしまうかもしれませんが、それくらいしないと初見ではとても着いて行けないくらい難しい内容なのかもしれません。
是非テックキャンプの受講を考えている方には、事前に予習しておくことをオススメします。
質問禁止の期間がカリキュラムに含まれている
これは実際に僕としてもデメリットだと感じました。
個人アプリ開発の期間は全て自力で実装しなくてはいけません。
何でも就職面接の際の技術保障の関係でもメンターが手を加えることはNGみたいです。
と言うのはただの建前で、
実はメンターの方の人数不足や技術力不足(プロのエンジニアではない)が原因なのではないかなと、勝手に思っています。
なので逆に言うと、こういったネットの口コミを参考にして、今後改善されていくのではないかと思います。
最終周(10週目)の学習内容
ついに、最終課題も終えて、晴れて卒業する時がやってきました。
最終課題の提出の際にはひと悶着ありましたが、何とか無事に卒業することができました。笑
最終課題(4週目)
やっと完成しました!!
最終課題を一緒に取り組んだ3人には、スクラムマスターにも関わらず何度も助けてもらい、本当に感謝です。
最後にひと悶着あったというのは、
最終課題では全ての実装を終えたら提出期間内にLGTMを頂かないと、転職保障から外れてしまうですが、自分らのチームは提出時刻ギリギリまで修正をした結果、LGTMをもらうことができませんでした。
ですが運営側として、色々な不手際があったと直々にメンターの方から申し訳なさそうに、謝罪するような形でLGTMを最後の最後に何とか頂くことができました。
最終課題文作成
何とも言えないモヤモヤが残る終わり方でしたが、最終課題が終わった後に、「最終課題文」というものをGoogleドキュメントで作成します。
これは自分が実装を担当した箇所等をわかりやすくまとめるためのもので、ポートフォリオの説明文としても使います。
作成を終えると担当のキャリアアドバイザーの方に見て頂き、必要箇所を修正します。
これで本当にカリキュラムは全て終了です。
10週間というとても短い期間でしたが、新しいことをたくさん詰め込み、実践し、トライ&エラーを繰り返しといった、とても濃厚な時間を過ごすことができました。
また0の状態から始めろと言われたらちょっと気が滅入ってしまいそうなくらいです。笑
まとめ
今回はテックキャンプの口コミと受講を終えてのリアルな感想の比較について書いてきました。
最後まで読んで頂きありがとうございます。
テックキャンプの受講期間は終わりましたが、僕のエンジニアとしての人生は始まったばかりです。
いや、やっとスタートラインに立てた状態ですね。笑
途中でライフコーチに言われた
「テックキャンプの受講が終わってからの方が大事」
という言葉はまさにその通りだと思います。
今後もエンジニア学習についての記事(アウトプット)は定期的に書いていこうと思います。
というわけで、今回の記事は以上です。
ぜひ、また見に来てください♪
それでは今日はこの辺で^^
【テックキャンプ エンジニア転職】体験談 (9週目)
どうもこんにちは。
建築系エンジニアのチカトサ(@5atochika)です。
今回は テックキャンプに向いていないと思われる人の特徴やテックキャンプ9週目の学習内容について書いていきたいと思います。
最終課題も中盤に差し掛かってきて、いよいよ一筋縄ではいかなくなってきた感じがあります。汗
テックキャンプに向いていない人
テックキャンプに向いていないと言っても、協調性がない、学ぼうとしない、覚えが悪い、とかそういった負の理由ではなく、ポジティブな理由によって向いていないと思われる人の特徴をあげていきたいと思います。
実際に僕のチームでも最初は10名いましたが、9週目を終えた今、残っているのは8名です。
※あくまで個人的な意見なので、多少の偏見も入っていると思います。
頭が良い人
もちろんエンジニアの方は皆、頭が良いと思うのですが、恐らくテックキャンプはプログラミングスクールの中でも一番高額だと思います。
1やって10理解できるような頭の良い人は、そこまでの高額な料金をかけずとも良いと思います。
スクールに通うことが悪だとは言いませんが、
カリキュラム通り皆と同じ内容を理解して、同じものを作って、という人よりも、
独学で必要な言語を学び、オリジナルで好きなものを作って、といった人の方が優秀なエンジニアだと思います。
あくまでもテックキャンプは、そういったことが出来ない人のためのプログラミングスクールです。
まずはネット教材などで試してみて、それでも自力では無理そうだとなったらスクールに通うことを検討しましょう。
それでもテックキャンプは最後の手段です。
そこまで高額でなくとも手厚いサポート体制のスクールはたくさんあると思いますし、今後もそういったスクールは増えていくはずです。
現状に満足している人
今の仕事に満足しており、将来的な不安も一切なく、テクノロジーに関する興味もそれほどない、という人は向いていないと思います。
というか向いていないというより、学習する必要がないですね。笑
冷やかしで受講するくらいなら、参考書などを買って学習した方が、真剣に受講している人たちの邪魔にならないので辞めておきましょう。
完璧な人間
これまでの人生でとても要領よく何でも完璧にこなしてきた人は、テックキャンプに通わずとも独学で自走できると思います。
高校受験、大学受験全て独学で勉強してきて、それぞれで結果を出してきた人は大人になった今、あえてテックキャンプにお金を払って受講する必要はありません。
何度も言いますが、独学で出来るならそれに越したことはありません。
ホリエモンやテックキャンプを運営するマコなり社長も独学で学習してきました。
こういった人達は参考書やネットの教材で十分学習できると思います。
テックキャンプはプログラミング界のライザップなので、どちらかというと一人ではできない人に強制力をかけて学習させるといった側面の方が強いと思われます。
Webエンジニアの種類
今週も転職サポート希望者に向けた転職セミナーがありました。
一口にWebエンジニアと言ってもたくさんの種類があるので、紹介していきます。
フロントエンドエンジニア
Webアプリのフロントエンド側を担当するエンジニアのことです。
フロントエンドとは、ユーザーと直接データのやり取りを行う要素のことで、Web制作ではWebブラウザ側(クライアント側)を指します。
Webデザイナーのデザインをもとに、HTML、CSS、JavaScript(jQuery)、PHPの設計や実装、WordPressなどのCMS(コンテンツマネジメントシステム)構築やカスタマイズを担当します。
HTMLの設計を主に行うマークアップエンジニアに対し、フロントエンドエンジニアはHTMLの他にCSSやJavaScript、PHPのコーディングを行います。
サーバーサイドエンジニア
Webアプリのサーバーサイド(目に見えない処理)を担当するエンジニアのことを指し、サーバーで行うためのプログラム開発やデータ処理を担当します。
“バックエンドエンジニア”といった呼び方もありますが、実際は同義ではなく、バックエンドエンジニアは主にWeb領域のサーバーやプログラム開発を行う人を指すそうです。
Web領域のバックエンドを担当するのが、バックエンドエンジニアで、その他のバックエンドも担当するのがサーバーサイドエンジニアということになります。
言語は主に、Java/C/C++(コンパイラ型言語)やPHP/Python/Perl/Ruby/JavaScript(インタプリタ型言語)などを使います。
またデータベース(MySQL/SQL Server/Oracleなど)の知識やフレームワーク(Ruby on Railsやlaravelなど)の知識も必要になります。
問題解決力や論理的思考力が必要とされます。
余談ですが求人数が多く、転職には有利だと思われます。
インフラエンジニア
Webアプリにおけるインフラストラクチャを設計、構築、運用し、さらにはメンテナンスから保守までを担当するエンジニアのことです。
インフラ業務のほか、サーバーやネットワークなど物理機器の構築を行う技術者もインフラエンジニアに含まれます。
SE(システムエンジニア)の一角を占める職種で、SEはコンピューター関連の各種システムを開発したり運用を担当するエンジニアの総称です。
それに対して、インフラエンジニアはその中でもITインフラに特化した業務を行うエンジニアを指します。
インフラエンジニアは、必ずしもプログラミングが必要というわけではなく、AWSやサーバーOSの知識が必要になります。
9週目の学習内容
テックキャンプ9週目の学習内容は、最終テストと最終課題をひたすら進めるといったものでした。
最終課題(3週目)
4人でフリマアプリのようなアプリを開発しており、僕の担当はユーザーの新規登録・ログイン・ログアウトのフロントサイド、サーバーサイドに決まりました。
他の3人との実装している箇所と連動するところなどもあり、蜜なコミュニケーションが必要となります。
段々と他の実装を担当しているメンバーが苦戦し始めている状況で、その都度全員で集まって解決してといった具合です。
スプリントレビュー(2回目)
僕らのチームの決まりとして、
- 毎日必ず集まるのは3回
- 解決できない問題は全員で話し合い、30分経って解決しない場合はメンターに相談する
- 話し合いよりも実装に集中する
といったことをルールとして決めました。
取り決めたこのルールをメンターの方にとても褒めて頂きました。
最終スキルチェックテスト
今週は最終スキルチェックテストもありました。
内容はこれまでの総復習といった具合で、HTML/CSS、Ruby、Webアプリ、Rails、JavaScript、GitHubといったこれまでやってきたもの全てが項目ごとに出題されました。
何とか出来ましたが、今の知識は詰め込み教育で一時的に覚えているだけの知識なので、これから継続的に使っていくことが重要です。
まとめ
ここまでテックキャンプに向いていない人の特徴やテックキャンプ9週目の学習内容について書いてきました。
最後まで読んで頂きありがとうございます。
Webエンジニアの種類についても書きましたが、僕の希望する職種はサーバーサイドエンジニアです。
自分の中で得意なのはサーバーサイドですが、Webアプリを動かしているサーバーサイドに携わりたいと考えています。
というわけで、今回の記事は以上です。
ぜひ、また見に来てください♪
それでは今日はこの辺で^^
【テックキャンプ エンジニア転職】体験談 (8週目)
どうもこんにちは。
建築系エンジニアのチカトサ(@5atochika)です。
今回はプログラミングを学ぶ意義やテックキャンプ8週目の学習状況を書いていきたいと思います。
プログラミング学習に中だるみはつきものだと思うのですが、そんな時に思い出すとモチベーションが上がると思います。
プログラミングを学ぶ意義
人にもよりますが、少なくとも自分にとってはプログラミングはとても難しいので、ここでプログラミングを学習するメリットを記載して、自らを奮い立たせようと思います。
多くの人が挫折する理由がまさに“難しい”の一言に尽きると思います。
そんな時は少し現実逃避をして、ポジティブなことばかりを考えましょう!
テクノロジーに精通
2010年~2020年までの10年間でテクノロジーの進化は言うまでもなく、目を見張るものがありますね。
iPhoneが普及し、1人1台の端末が当たり前になり、非同期通信が当たり前になり、、、
2000年~2010年の10年間でも大きく進化したことはあります。
ケータイ電話が多く普及し、Eメールでのやり取りが常態化しました。
これらのテクノロジーによる進化は私たちの生活をより便利に変えてきましたよね。
そう考えるとこれからの10年で、またさらにテクノロジーの恩恵を受けて私たちの生活はより便利になっていきます。
そうしたテクノロジーに精通している人は、常に最先端の技術を生活に取り入れ、より快適な生活を送ることが出来るはずです。
小学校でも必修化
2020年から小学生がプログラミングを授業で学ぶようになりました。
これは経済産業省が発表した、2030年に約79万人のIT人材が不足するというデータを踏まえての取り組みです。
今の小中学生はITスキルを要して大人になっていくかもしれませんが、すでに義務教育を終えた人たちはどうなるのでしょう?
すでに仕事も家族もあるし、ここに来て新しいことを学びなおす必要ない。
と言うのは日本人の駄目なところだと思います。
日本は先進国の中でも「生涯学習」率は最低の割合です。
新しいことを学ぶのは大変ですが、世界中の人達が何歳になっても学習に励んでいます。
同志は世界中にいます。
論理的な思考
プログラミングを学ぶ上で欠かせない思考力として「論理的思考」が挙げられるでしょう。
方程式のように、ある言語にある言語が対応していかないとプログラムは動きません。
エラーは誰でもつきものだと思うので、原因を究明していくうちに論理的に考える力が養います。
IT系の仕事の種類
テックキャンプの転職サポートを希望している人向けに、転職セミナーの動画を見ました。
IT系企業に精通していない自分にとっては、これから始まる転職活動に向けて知らなければいけない情報がたくさんあります。
まずは大きく3つの分類を書いていきたいと思います。
自社開発
自社でWebサービスを開発している企業のことです。
有名どころで言うと、
Google.、サイバーエージェント、DeNA等がこれに該当します。
転職市場の中でも1番人気で、応募倍率が最も高いとされています。
何故、人気なのかと言うと、
- 同じ会社の人達と働ける
- 何となくカッコいい
- 洗練されたエンジニアが揃っていそう
と言ったことが理由のようです。
受託開発
自社ではサービスを持っておらず、仕事を受けてからシステムやソフトウェアを開発する会社を指します。
メリットとして、
- 多くの会社と関係を持てる
- 多種多様な実績を積みやすい
- 仕事が途切れにくい
等があるみたいです。
SES
SESとはシステムエンジニアリングサービスの略で、ソフトウェアやシステムの開発・保守・運用を特定の業務に対して技術者の労働を提供する会社のことです。
要は客先常駐をして働くスタイルですね。
それ故なのか、あまり良い印象は持たれていないそうです。
個人的には派遣社員として働いた経験があるので、自分には合わないと思った現場から変更の希望を出せたりするのはメリットだと思います。
自社開発もしていてSES事業も展開している、といった企業も多く、
一概に自社開発が一番良いとは言えないのではないでしょうか。
8週目の学習内容
今週の学習内容は最終課題をひたすら進めることがほとんどだったように思います。
最終課題(2週目)
「Trello」というタスク管理アプリを使って、チーム開発を進めています。
個人的に、「スクラムマスター」というポジションに付き、チームのマネジメント的なことをやっています。
スプリントレビュー(1回目)
スプリントレビューとは専属についているメンターの方に進捗状況を報告して、実際に動作しているか等を確認してもらうことです。
毎週決まった時間に行い、
- 先週掲げた目標は達成しているか
- 問題点などはなかったか
- 来週までの課題は何にするか
などを報告します。
キャリア面談(2回目)
テックキャンプの受講も終わりが近づいていき、2回目のキャリア面談を行いました。
これから最終課題に並行して企業分析や履歴書・職務経歴書の作成も行っていかなくてはなりません。
担当のキャリアアドバイザーの方はIT系企業に精通しているみたいで、とても心強いです。
新型コロナウィルスの影響もあり一筋縄ではいかなそうですが、やっていくしかないですね。
まとめ
今回はプログラミングを学ぶ意義やテックキャンプ8週目の学習内容について書いてきました。
最後まで読んで頂きありがとうございます。
最終課題は順調な滑り出しが出来たみたいで、メンターの方も4人でやっている割には進みが早いと褒めて頂きました。
個人的には最終課題を早く終わらせて、個人アプリの続きに取り掛かりたいところです。汗
というわけで、今回の記事は以上です。
ぜひ、また見に来てください♪
それでは今日はこの辺で^^
【テックキャンプ エンジニア転職】体験談 (7週目)
どうもこんにちは。
建築系投資家のチカトサ(@sat0chika)です。
今回は僕が受講しているテックキャンプの短期集中コースが絶対にオススメな理由を3つ挙げたいと思います。
これはただのポジショントークと思われるかもしれませんが、違うんです。
実は以前、テックキャンプの別のコースを受講しているんです。
なので両方を経験した上で、客観的に短期集中コースがオススメな理由をあげていきたいと思います。
短期集中がオススメな理由
いくら短期集中がオススメだからといっても、絶対に無理な人は一定数いると思います。
- 退職することが出来ない。
- 家族サービスをしなくてはいけない。
- 別にやることがあるため、時間が取れない。
、、、等
そういった人たちは「夜間・休日スタイル」で頑張って下さい!
詰め込み教育
“詰め込み教育”と言うとあまり聞こえは良くないですね。
しかし思い出してみて下さい。
高校でも中学でも、ゆっくりと2年半かけて勉強してきた内容はあまり知識として定着してきませんでしたよね?
結局のところ受験前の半年くらいで集中して勉強したことが、受験にはダイレクトに結果として返ってきますね。
中には3年間ずっと集中して勉強してきた、という人もいるかもしれませんが、そういう人はプログラミングスクールに通わなくても、参考書やネット教材で独学してやれるし、その方が良いと思います。
詰め込み教育の悪いところは、受験に必要な知識を短期間で詰め込み、必要なくなるとすぐに忘れてしまうことにあります。
しかし多くの受講生は、カリキュラムが終わった後そのままエンジニアとして就職するため、必要なくなることはなく、むしろカリキュラム後の方が学習内容が必要とされるため忘れていく心配がありません。
受験勉強だと思って、詰め込み教育をしましょう。
退路を断ち、腹を括れる
これは本当にそうです。
結局のところ、短期集中コースに通うためには会社を退職しないといけないのです。
中には会社の役員だったり、数か月単位の休職といったカタチで在籍しながら通えるのであればそれで良いと思いますが、ほとんどの受講生は退路を断っているのです。
僕のチームの受講生は全員そうでした。
やるしかない、やらざるを得ない環境に身を置くことで当然、腹は括れます。
”人間は普段4割程度の力しか発揮できないが、いざという時に10割の力が出せる“といったことを良く聞きますね。
まさにアレです。
保険をかけたまま安心して学習するのも良いですが、退路経って腹を括りましょう。
チーム受講生からの刺激をもらえる
最終課題が始まるとまた新しくチーム編成がされ、元のチーム受講生と顔を合わせることがなくなってしまったのですが、それぞれ高い目標があって受講しに来ているのでとても刺激になります。
当たり前ですが前職もバラバラで、芸能事務所で勤務していた方、中学校教師、居酒屋と接骨院のWワーカー、シェフ、青年海外協力隊として看護師をしていた方、、、、等今まで通り過ごしていたら知り合うことのなかったであろう人達です。
“切磋琢磨”という言葉は個人的にはあまり好きではありませんが、良きライバルであり同志達から刺激を受けましょう。
デプロイについて
開発を終えるとネット上に上げて他者でも利用できる状態にする必要があります。
これをデプロイと言います。
この作業が中々骨の折れる作業なので残しておきたいと思います。
AWSを利用する
デプロイをするにあたりAWSというサービスを利用します。
AWSとは「Amazon Web Service」の略でAmazonが提供しているオンラインサービスのことです。
AWSにはとても多くのサービスがあり、その中でもカリキュラム内では“EC2”と“S3”というサービスを利用します。
余談ですが、Amazonは元々オンライン書店がメイン事業であり、こういったサービスを買収してAWSとして提供しています。
EC2
EC2とは仮想サーバー構築サービスのことで、OSを乗せたクラウド上にすばやく作ることができます。
AmazonのEC2はインスタンスという単位で、サーバー環境が構築できます。
インスタンスとは簡単に言えば、OSを乗せた仮想サーバーのことで、複数作成して実行することが出来ます。
例えば、アプリケーションサーバーとデータベースサーバー等2つのサーバーが必要な場合は、インスタンスを2つ作成して対応できます。
このように必要に応じて、柔軟なインフラ構築をできることがAmazon EC2の特徴です。
S3
S3とはオンライン上のストレージのことで、「Simple Storage Service」の略です。
オンラインストレージと言ってもドロップボックスやGoogle driveとは違い、“オブジェクトストレージ”になります。
オブジェクトストレージとは、ファイルのようにディレクトリ改装ではなく、IDで紐づけされており、投稿した内容と画像が一致するようなことです。
要はデプロイしたアプリを使う上で、保存されていくストレージのことですね。
7週目の学習内容
個人アプリは中途半端な状態で発表会を迎えてしまいましたが、7週目になり、いよいよ最終課題が始まりました。
個人アプリ発表会
開発期間は5日間程ととても短く、完成度も50%を目指すくらいで発表に臨んで良いとのことだったのですが、僕の完成度は良くで20%といったところでしょうか。笑
一応スクショを載せておきます。
内容としては、前回も書きましたが建築のまとめサイトです。
余談ですが、発表会は他のチームと一緒にやるのですが、Aさんという方の発表が圧巻でした。
一人だけずば抜けている印象で、終わってからのチーム内での共有でもその話で持ちきりでした。
キャリア面談(1回目)
今週から転職活動に向けてキャリア面談が始まりました。
テックキャンプでは受講生一人一人にCA(キャリアアドバイザー)さんが付いて、転職へのサポートをしてもらえます。
その他にもIT業界やエンジニア職についてのレクチャーを受け、どういった種類の企業があるのか等を学びました。
最終課題へ
最終課題はチームでの共同開発でメルカリのようなWebアプリの開発を行います。
1チーム4-5名で形成され、各チームごとに進め方を決め、自分らで解決していくという進め方です。
まさにベンチャー企業とかでの実際の開発と似ているのではないでしょうか。
個人アプリのわからないところを補足するためにも、最終課題を頑張りたいと思います。
まとめ
今回はテックキャンプを受講するなら絶対に短期集中コースがオススメだということや7週目の学習内容について書いてきました。
最後まで読んで頂きありがとうございます。
あまり触れてきませんでしたが、以前テックキャンプ教養コースの方に受講した経験があり、その時は学習することは出来ましたがやはり、仕事があったり、プライベートを優先したりと腹を括れていませんでした。
値段は安かったですが、コスパはとても低かったように思います。
受講を考えている方は是非、テックキャンプの短期集中コースを受講することを考えてみて下さい。
というわけで、今回の記事は以上です。
ぜひ、また見に来てください♪
それでは今日はこの辺で^^
【テックキャンプ エンジニア転職】体験談 (6週目)
どうもこんにちは。
建築系エンジニアのチカトサ(@5atochika)です。
今日はテックキャンプに通うことを考えている人に向けて、良くない点をいくつか書いていきたいと思います。
他のスクールに通ったことがないので、あまり比較にはならないかもしれませんが、他のスクールよりも高額なことを踏まえたデメリットをあげていきたいと思います。
テックキャンプのデメリット
あまりマイナスプロモーションになることは書くべきではないかもしれませんが、これから受講を考えている人の役に、少しでもなれたらなと思い書いていきます。
メンターの待ち時間が長い&質問できない内容もある
カリキュラムを進めていく中で、わからないことや解決できないことに直面した時はメンターの先生に質問するのですが、カリキュラムのフェーズによってはとても待たされます。
長い時で40分くらい待たされることもあります。
基礎編よりも応用編の方が質問をする受講生が多く、メンターの数が足りていないことが原因だと思われます。
メンターの方は未経験エンジニアの方が多いですが、
カリキュラム内容を教えてもらう分には何も問題がありません。
期間中は拘束が激しい
平日は10時から20時までカリキュラムを進め、人によっては遅れを取り返すことも踏まえると20時以降や土日も学習に取り組む必要があります。
メンターの方に質問できる時間が22時までなので、僕は基本22時までは学習をするようにしています。
それため、会社で働いていた時のように華金を楽しむといったことは難しいです。
もちろん順調に学習を進められている人はそんなに拘束されずに済むと思います。
ですがSlackやTwitterを見る限り20時以降や土日も学習している受講生はとても多いです。
料金が高い
これは純粋にデメリットですね。
恐らくですが、どのプログラミングスクールよりも高額なのではないでしょうか。
それもそのはずです。
商品の価格というのは需要と供給のバランスで変わっていきますね。
今は需要過多、つまり受講したい人が多く供給側が追い付いていないため、料金が高くなる傾向にあります。
中でもテックキャンプはプログラミングスクールの中でも最大手のため、一番高くなっているのだと思います。
それでも料金に見合うくらいのサービスや環境は充実していると思います。
あまり行くことはないですが、教室は緑が溢れていてとても良好な環境ですし、椅子はすごく拘った学習に最適な椅子を使っているそうです。
“Ruby”という言語について
今回はテックキャンプで扱っているRubyについて書いていきたいと思います。
どうやらRubyを扱っている企業は他の言語を扱っている企業よりも少なく、就職の採用要項でもあまりヒットしないそうです。
ではそのような言語を何故教えているのでしょうか?
初心者向き
他の言語よりも簡単でわかりやすく、教えるのも簡単だそうです。
と言うのも他の言語、例えばJAVAの場合、100人、200人単位で開発を行うことが多いため、少しのミスがあっただけでも動かなくなってしまうそうです。
それに対してRubyは少人数での開発で使われることが多く、多少のミスがある場合でもRubyが勝手に認識してくれて動くのです。
なので初心者の内は挫折しにくい言語とも言えるでしょう。
日本で人気の言語
そもそも開発者が日本人であるため、日本人にはとてもなじみの深い言語なのです。
日本発祥と聞くだけでも愛着が沸き、人気が出るのもわかりますね。
オブジェクト指向
Rubyの大きな特徴として“オブジェクト指向”というのがあげられます。
オブジェクト指向とは簡単に言うと、
「動作するためのオブジェクトを作る。それを使いまわす。」
といった感じです。
例えば、Enterボタンで「決定」と送信されるメソッドを定義するとします。
このメソッドは一度定義すれば、いつでもそのメソッドを使い回すことができます。
この考えをオブジェクト指向と呼びます。
つまり、作業を単純化できるということなんですね。
6週目の学習内容
今週の学習はほとんどが個人アプリ開発でした。
そのためチームメンバーの人と顔を合わせることもほとんどなく、メンターの方に質問することもなく一人でもくもくと作業している時間が多かったです。
Ruby/Railsテスト
なんだかんだでここ数週は毎週のようにテストを受けています。
ChatSpaceの理解度テストなのですが、改めていかに自分がカリキュラムに頼って実装していたかがわかります。
言い訳になりますが、フロントサイドよりもサーバーサイドの方が苦手なので、テストの復習が大切です。
ちなみにテストは何度も受けることが出来るので、復習もしやすいです。
個人アプリ開発
個人アプリ開発に向けてチームで集まり、ライフコーチと一緒にそれぞれがどういったモノを作りたいかを発表して話し合いました。
完成度は50%を目指して発表までに持っていければ良いそうです。
僕は建築のまとめサイトを作ろうと考えており、機能としては、
「投稿機能」「ユーザー登録機能」「ログイン/ログアウト機能」「お気に入り機能」「検索機能」といったところでしょうか。
0から作り出すということで、ちょっと目まいがしそうですが頑張ります。汗
まとめ
今回はテックキャンプのデメリットと受講6週目の学習内容について書いてきました。
最後まで読んで頂きありがとうございます。
テックキャンプは前半に一気に詰め込み(インプット)、後半で実装に入る(アウトプット)という短期集中スタイルなんですね。
来週からいよいよ最終課題に入るので、早く終わらせて個人アプリ開発の続きが出来るように頑張ります!
というわけで、今回の記事は以上です。
ぜひ、また見に来てください♪
それでは今日はこの辺で^^