codechrysalis’s blog

東京を拠点にした12週間の短期集中型ソフトウェアエンジニア養成学校です。

ソフトウェア・エンジニアリング・イマーシブ第4週目のまとめ

第4週目にCode Chrysalisの学生がしたことは、React、Redux、Webpack、Pivotal Labs、音声、トレーニングなど!

簡潔に言うと: Pivotal、React、Webpack、Reduxのディスカバリーワークショップやボイストレーニングなど、いろいろなことがありました!

スクリプト

皆さんこんにちは!

私の名前はクリスタ、Code Chrysalisのインストラクターです。

本当に忙しい1週間でした。第4週目となるこの週には、いくつものフィールドトリップがありました。

まずCode Chrysalisの共同設立者達が、雇用パートナーの1つであるR / GAを訪問し、卒業生のビルと会いました。ビルは新しい仕事を心から気に入っていて、これからプログラミングを始めたいという人に向けたFoundationコースのインストラクターとして数週間後に戻ってきます。もし興味がおありでしたら、ぜひ参加してください! まだ席はいくつか残っています。

その後、週の途中に特別ゲストを迎えました。プロのオペラ歌手として活躍するユミから、よい声を出すための呼吸法の訓練を受けたのです。今後数週間のうちに、生徒達は聴衆を前にして自分の好きなテクノロジーについて語る2時間のミーティングに参加します。このスキルはその時に役立つことでしょう。

週の最後の2日は、業界パートナーの1つであるPivotal Labsで過ごしました。

生徒達はPivotalの従業員とチームを組み、リーンスタートアップの原則、そしてエンドユーザーの共感を得られる製品の作り方について学びました。

さらに生徒達は週末を利用して最初の個人プロジェクトを完了させました。プロジェクトを仕上げるには、完全なスタックアプリケーションの構築が必要となります。

この週は、一番人気のJavaScriptフレームワークであるReactの学習にフォーカスしました。その中で、Reduxを使用したステート管理、そしてWebpackを使用したコードのトランスパイルについても学習しました。

こうしたフィールドトリップができるということは、東京のテクノロジー業界がいかに刺激的であるかを表しています。

これから数週間の間、この美しい街で学ぶためにはるばるアメリカ、オーストリア、そしてドイツから来たCode Chrysalisの生徒達の話を聞いていくことでしょう。


Code Chrysalis は東京を拠点としながらも、シリコンバレー精神を基盤にした12週間の短期集中型ソフトウェアエンジニア養成学校です。Code Chrysalis についてもっと知りたい方は:https://www.codechrysalis.io をアクセスしてください。

お申し込みをお待ちしております!

ソフトウェア・エンジニアリング・イマーシブ第3週目のまとめ

第3週目にCode Chrysalisの学生がしたことは、スキーマ設計、Postgres、NodeJSなどなど!

簡潔に言うと: コースの生徒達はバックエンドアーキテクチャのスキル習得へと乗り出します。生徒達はデータベース作成、nodeとexpressを使った初めてのサーバー構築、そしてAPI構築を実践。さらに最初のイングリッシュ・コミュニケーション・インテンシブも開催。それだけでなく、就職活動や面接に関連する戦略についてのアドバイスも受けるため卒業生がやってきました。

スクリプト

皆さん、私はフェリックス。Code Chrysalisの主任インストラクターです。

今週、東京で雪が降ったのは聞きましたか?この4年間で私たちの経験した中で一番の降雪でした。

生徒達が迎えるプログラム第3週目。今週はバックエンドアーキテクチャのスキル学習に取り組みました。

生徒達はデータベースを作成し、NodeとExpressを使って最初のサーバーを構築し、さらにAPIの構築も行いました。

本コースの卒業生の一人、クミコさんが、就職活動と面接の戦略に関するサポートを得るために戻ってきました。

それだけでなく、インタラクティブな方法で英会話を学ぶ定時制の英語学習プログラムも始まっています。今回キャンセル待ちの人がいたので、4月にもう一度開催する予定です。

よいプログラマーになるためには、頭だけでなく体も鍛えるのが肝心。いつなんどき雪合戦が始まるかわからないのですから、筋肉をつけるのは大事ですよ。


Code Chrysalis は東京を拠点としながらも、シリコンバレー精神を基盤にした12週間の短期集中型ソフトウェアエンジニア養成学校です。Code Chrysalis についてもっと知りたい方は:https://www.codechrysalis.io をアクセスしてください。

お申し込みをお待ちしております!

ソフトウェア・エンジニアリング・イマーシブ第2週目のまとめ

第2週目にCode Chrysalisの学生がしたことは、データ構造、時間計算量、ソートアルゴリズムなどなど!

簡潔に言うと: データ構造、時間計算量、ソートアルゴリズム、ライトニングトークに取り組みました。それだけでなく、生徒達は初めての個人プロジェクトに挑戦!

スクリプト

こんにちは、私はカミです。私はCode Chrysalisの共同創業者です。

忙しい1週間でした。

コースは第2週目に入りました。日曜日にはコーディングに興味のある人を集め、基本的なプログラミング技術を教えるミーティングを開きました。

今週はその他に、生徒が主体となるアクティビティも開催しました。テクノロジー関連のニュースについて、生徒全員が5分間のライトニングトークを行いました。

今週の学習内容はデータ構造、時間計算量、そしてソートアルゴリズム

そして生徒達は初の個人プロジェクトを完了しました。


Code Chrysalis は東京を拠点としながらも、シリコンバレー精神を基盤にした12週間の短期集中型ソフトウェアエンジニア養成学校です。Code Chrysalis についてもっと知りたい方は:https://www.codechrysalis.io をアクセスしてください。

お申し込みをお待ちしております!

ソフトウェア・エンジニアリング・イマーシブ第1週目のまとめ

第1週目にCode Chrysalisの学生がしたことは、テスト駆動型開発、Reactの仮想DOMと再帰についての学習です。

簡潔に言うと: 第3コホートで授業が始まりました! Reactの仮想DOM、再帰、およびテスト駆動型開発を学びました。

スクリプト

こんにちは、私はヤンと言います。私はCode Chrysalisの共同創業者の1人で、今週の活動について報告します。

生徒は一般的に使われているユーティリティライブラリを書き直し、テスト駆動開発の手法を活用してReactの仮想DOMを作成し、再帰の練習を沢山行いました。

さらにマシュマロやスパゲッティを使ってラピッドプロトタイピングの重要性についても学びました。


Code Chrysalis は東京を拠点としながらも、シリコンバレー精神を基盤にした12週間の短期集中型ソフトウェアエンジニア養成学校です。Code Chrysalis についてもっと知りたい方は:https://www.codechrysalis.io をアクセスしてください。

お申し込みをお待ちしております!

価値と目的を探すため/第一期生(CC1)のビルさん

f:id:codechrysalis:20170804123150j:plain

ビルはカナダで育ち、トロント大学でコンピューターサイエンスを専攻し、卒業後に東京で就職しました。大企業でソフトウェアエンジニアとして働いていましたが最近仕事を辞め第一期生としてコードクリサリスのプログラムへ参加しています。

こんにちわ、ビル!中国とカナダで育ったんですよね。日本に来たきっかけは何でしょうか?

大学3年生の時に交換留学生として東京大学で1年間学びました。

日本はすごく面白い場所で今まで住んだ場所のどことも全然違っていて、とてもためになりました。多くの新しい発見や考え方を得ることが出来ました。交換留学が終わった時に、更に数年過ごしたいと考えるようになりました。

それで、トロント大学を卒業後に東京に戻り就職しました。

大学でコンピューターサイエンスを専攻にした理由を教えてください

シンプルに本当に好きだったからです。カナダのミドルスクール(カナダでは〜13歳)の時にプログラミングを始めました。それはいつも大好きな科目で、大学でコンピューターサイエンスを専攻にするという選択はとても簡単でした。

どのようにしてミドルスクールでプログラミングを始めたのでしょうか?

8年生の時に情報工学のクラスがあり、 Scratch(by MIT) というプログラミング言語を使用しました。子供にはすごく良くて、私は夢中になりました。家でも Scratch アプリを開発し始めました。

本当にプログラミングにハマってしまい、それからもっとプログラミングをして、高校でもコンピューターサイエンスのコースを受講しました。その時は Java 言語でしたね。それ以来、興味は尽きません。

8年生の時にプログラミングを学ぶ過程で難しかったことはありますか?

あまりありませんでした。それどころかむしろ、本当に楽しくて、カッコイイものを作っては友達に見せたりして、古き良き思い出ですね。

日本に住んで働いてみてどうですか?

日本に住むことはすごく心地よいです。日本は清潔だし、安全で、便利。交換留学生の時に良い友達も出来ましたし。しかしながら、仕事は本当に大変でした。私にとって、インターンシップも未経験だったため、フルタイムの仕事は初めてでしたから。本当に打ちのめされたような経験で、時間と責任感が全く異なりました。単にコードを書くだけでは仕事とは呼べません。大学では、少しバグがあっても提出できますし、単に点数が低くなるだけで、グレードもAを取ることが出来ます。しかし、仕事だとバグがあれば必ず修正が必要になります。

日本の大企業で働くことは簡単でしたか?

実際、少しつらかったですね。大企業は個人的には難しいかなと。同じビルに何千人もの人が入っていきますが大半は見知らぬ人で、一握りの人しか知らないですし一緒に働きません。ここの人たちは少し歩いて会話を交わしたりすることよりメールやチャットメッセージを好んでいて、あまり慣れませんでした。

多くの友人達と一緒に素晴らしいことを成し遂げれるような心地良い環境で働きたいと思っています。

他も理由がありますか?

自身の仕事に夢中になれなかった気がします。従わなければいけないとても堅苦し構造がありました。多くの時間を会議に費やす必要があったり、手続きに対応しないといけなかったり。

f:id:codechrysalis:20170804123335j:plain

私はソフトウェアエンジニアであり、他の情熱的なソフトウェアエンジニアと同じで、この業界を選んだのはイケてるプロジェクトを構築するのが大好きだからです。以前の仕事ではもどかしさを感じていました。私はもっとチャレンジングでやりがいがあるタスクをこなす事ができると思っていました、しかし、順序を踏まないといけませんでした。また、多くの古いプロジェクトのメンテナンスタスクにアサインされ、それは本当にうんざりで面白くありませんでした。それに加えて、全員が流暢な英語を話すことが出来ず、それがさらに難しくしていました。

f:id:codechrysalis:20170804123756j:plain

なぜコードクリサリスを選んだのでしょうか?

おかしな話なんですが、実は最初にコードクリサリスを見つけたのは Angel List でした。

インストラクターのポジションでインタビューを受けたのですが、ヤン(コードクリサリス CTO )は"もう少しシニアのエンジニアを探している”とのことで、それで私が"代わりに生徒になるのはどう?"と(笑)

私はまだコンピューターサイエンスとプログラミングに関して学ぶことがたくさんあります。今まで試したり学んだりしたかった触れたことのない多くの技術があり、コードクリサリスのプログラムでそれが出来ています。

ヤンとの話を通して、会社と学校の雰囲気はまさに私が探し求めていた場所ですごく感激しました。

彼らは上司になるかもしれませんし、先生になるかもしれませんが、また友人でもあります。

みんなひとりの人間です。共に働くのはその次です。

私はコードクリサリスのミッションが好きです。ミッションには正当な理由があり、本当に日本と多くの日本人のデベロッパーとユーザーに利益をもたらしてくれると私は信じています。ここで学んでいようが働いていようが私の立場に関係なく、ここの組織の一員になろうと決めてから最終的な結果はあまり気にしていません。私が好きでここにいて、ここで好きなことをしているのですから。

今学んでいることはとても有意義で、技術も向上しています。毎日次は何だろう?と、やる気がみなぎり、ワクワクしています。確実に私を良い道に導いてくれています。

f:id:codechrysalis:20170804123839j:plain

具体的な夢はありますか?

今言えることは、シンプルに自分が大好きだからこれをやっているんだ、というような環境に身を置きたいです。

具体的な夢?起業家になること、または同じ目標を持つ人のために働くことですね。

クリエイティブになれる場所に身を置きたいですし、多くの人がしているような受け身の姿勢ではなく積極的に自分の信念に貢献したいです。

将来のコードクリサリスの学生に向けてアドバイスはありますか?

もし本当にソフトウェア、テクノロジー、IT産業が好きで、更にもっと学んでより能力を高めたいのであれば、コミュニティに参加してください、確実にコードクリサリスはあなたのための場所です。

集中型で、とてもチャレンジングです、しかしそれらは非常にやりがいがあり満たされます。あなたが感じる不安なことはどれもあなたの現在のレベルを超えさせてくれます。もしこのコースに全力を尽くすと決めたのであれば、 最後までしがみついてください。私がしたように最後にはあなたの人生が変わるかもしれません。

ビルさん、ありがとうございました!これから本コースに向けて頑張ってください!

ビルは現在コードクリサリスの第一期生です。こちらで LinkedInFacebook で直接コンタクトをとることが出来ます。

コードクリサリスは東京を拠点にした12週間の短期集中型ソフトウェアエンジニア養成学校です。 興味を持ちましたら是非こちらまでご連絡ください! hello@codechrysalis.io

お申し込みをお待ちしております!

CircleCI を活用して生徒のコードレビューを自動化!

https://circleci.com/docs/2.0/hello-world/

コードクリサリスでは、生徒の進捗を確認するために、継続的インテグレーションユニットテストを活用し、教育プロセスの一部をオートメーション化することにしました。私たちのカリキュラムのテストカバレッジはほぼ100%であり、生徒には関わる全てのプロジェクトでテスト駆動開発(TDD)を実践することを強制しています。私たちは継続的インテグレーションを私たちの評価プロセスと統合し、迅速なコードレビューを生徒に提供し、インストラクターは生徒の状況を把握できるため、より良いフィードバックを提供することが可能になります。

継続的インテグレーションとは何でしょうか?なぜ必要なのでしょうか?

(https://aws.amazon.com/jp/devops/continuous-integration/)

継続的インテグレーションは、開発者が自分のコード変更を定期的にセントラルリポジトリにマージし、その後に自動化されたビルドとテストを実行する DevOps ソフトウェア開発の手法です。継続的インテグレーションという用語が最もよく使われるのは、ソフトウェアのリリースプロセスのビルド段階または統合段階を指す場合で、自動化の要素 (たとえば、CI やビルドサービス) と啓発の要素 (たとえば、頻繁に統合することを学習する) の両方が含まれます。

継続的インテグレーションの主な目的は、バグを早期に発見して対処すること、ソフトウェアの品質を高めること、そしてソフトウェアの更新を検証してリリースするためにかかる時間を短縮することです。つまり、

  • 長くて複雑な統合テストとはおさらば!
  • 問題の見える化
  • 問題の早期発見
  • デバッグの時間短縮と機能追加の時間拡大
  • 強固な基盤の構築
  • 自身のコードの動作確認のための時間軽減
  • 迅速に機能をリリース

現在2017年7月時点でよく知られている継続的インテグレーションは以下のサービスが挙げられます。簡単に良い点悪い点を挙げてみました。

良い点 悪い点
Jenkins 汎用性が高い
無料
全てコントロール可能
ラーニングコストが高い
サーバーと運用する人が必要
属人的になりやすい
CircleCI エンタープライズ版に無料版が有る
簡単に利用開始できる
Docker をサポート
バージョン 2.0 がまだベータ版
プレミアム版の料金プランが高い
TravisCI 対応しているプログラミング言語が豊富
Docker をサポート
プレミアム版の料金プランがCircleCIより高い
エンタープライズ版に無料版が無い

最終的に CircleCI を選択しました。主な理由は、

  1. 簡単に利用開始できる
  2. 料金が比較的安価(無料版も有る)

です。スタートアップには心強い味方です。

CircleCIの基本的なセットアップ

私たちの学生がプルリクエストを作成しそのコードに対してテストを自動的に実行します。

CircleCI の基本的な動作原理

f:id:codechrysalis:20170710195346p:plain

学生がGithub上でプルリクエストを作成するとGithubはWebhookを利用してプルリクエストの内容をCirleCIへPOSTします。CircleCIはDockerコンテナーを利用します。Dockerコンテナーを知りたい方はこちらを参照ください(https://www.docker.com/what-docker)。 端的に話をすると、Docker コンテナーはDockerイメージという環境のスナップショットを利用しており、実行すると独立した“コンテナー”という環境上でテストを行うことが出来ます。非常に多くの様々なコンフィグレーションがあり、Dockerを活用することでより簡単に、そして首尾一貫した開発プロセスにすることが可能になります。

チュートリアル(https://circleci.com/docs/2.0/hello-world/)にもある通りcircle.yml ファイルを用意して設定する方が一般的です。コンフィグレーションをファイルで管理でき、かつ設定がより柔軟に出来るためです。しかし、ファイルを利用せずにCircleCIの管理画面上で設定しました。その主な理由は学生に設定ファイルを見せないようにするためです。見せたくない理由は主に以下の通りです。

  • 設定を変更した場合fork/pull済みの学生に影響が出るため
  • プルリクエストに対応するテストと実行ツールは別のリポジトリに存在しており、学生になるべく意識させないため

CircleCI 上の設定

  1. CircleCI 上でプロジェクトを追加f:id:codechrysalis:20170710201252p:plain
  2. プルリクエストのみをビルド対象にするf:id:codechrysalis:20170710201236p:plain
  3. 環境変数を設定(セキュリティ上公開したくないため)
    • TEST_UTIL_REPO: git@github.com:codechrysalis/???.git
    • TEST_UTIL_PATH: utils
    • TEST_ID: exercise1 or else f:id:codechrysalis:20170710201339p:plain
  4. テストコマンドを設定
  5. 他のリポジトリをプルするためパーミッションを付与f:id:codechrysalis:20170710201243p:plain

Github の基本的なセットアップ

管理画面

  1. プルリクエストのみCirleCIへPOSTするように設定f:id:codechrysalis:20170710201015p:plain
  2. master ブランチへのマージを禁止f:id:codechrysalis:20170710201138p:plain
  3. テストが全て成功した場合のみ生徒のブランチのマージを許可f:id:codechrysalis:20170710201123p:plain

プルリクエストのサンプル画面

  1. プルリクエスト作成後f:id:codechrysalis:20170710200938p:plain
  2. テスト失敗時f:id:codechrysalis:20170710200927p:plain
  3. テスト成功時f:id:codechrysalis:20170710200847p:plain

うまくいかなかったこと

セットアップ自体はシンプルだったのですが以下の問題が出てきました。

  • CircleCI の詳細エラーを Github 上に表示することが出来なかった
  • 生徒がテストのエラーの詳細を知るには CircleCI へログインが必須

次回はこの問題をどのように対応したか記事にしたいと思います!

お問い合わせ

コードクリサリスに興味を持ちましたら是非こちらまでご連絡ください!hello@codechrysalis.io

プログラミングを学ぶことに興味を持ちましたら是非こちらでお申し込みをお待ちしております!

最後までお読み頂きありがとうございます。それではまた!!!

自身が心から共感でき、100%の情熱を持って取り組めるようなサービスの開発に携わりたいです!/第一期生(CC1)のクミコさん

f:id:codechrysalis:20170627084423j:plain

こんにちわ。コードクリサリスです。

第一期生(CC1)のインタビュー記事第1弾です。

プロフィール

愛知県出身。高校卒業後にカナダへ1年間留学。その後就職したゲストハウス会社でWebの力を目の当たりにしたことがきっかけで、Web関連の勉強ができる大学に入学。卒業後はSEとしてSIerに入社するものの、コードを書く機会がほとんどなかったため、Web業界へフロントエンドエンジニアとして転職。ソフトウェアエンジニアとして更なる成長を求めコードクリサリスに入学。現在に至る。

経歴を詳しくお聞かせください(主に、英語に関する話になっちゃいましたね)

幼い頃から海外に漠然と憧れを抱く少女でして(笑)。高校卒業後に2年間仕事をして資金を貯め、英語力向上の目的でカナダに留学しました。最初の1ヶ月は語学学校へ通ったのですが、生徒が多く費用対効果が悪いと感じたので、スピーキング専門の学校に転校したり、チューターレッスンを受けたり、現地人と一緒にバックパッカーで働いたりしながら、実践的な英語力を磨きました。日本に戻ってからは、英語を使ういくつかの仕事に就きました。

なぜプログラミングに興味を持ったのでしょうか?

帰国後、外国人専用のゲストハウス会社で働いていたのですが、同僚のWebデベロッパーが手がけた予約サイトが素晴らしくて、それをきっかけに会社が飛躍的に成長していくのを目の当たりにしたんですね。Webの力、プログラミングの力を感じ、私もそのようなスキルを身につけたいと考えるようになりました。

どのようにしてプログラミングを勉強したのでしょうか?

Webについての講義があり、かつ学費免除の奨学金制度がある大学を探して(笑)入学しました。メディアサイエンスという学部だったのですが、Web制作やJavaについて少し学ぶ機会がありました。その他にも、マーケティングやWebビジネスなど幅広く勉強しました。入学当時、私は既に27歳になっていたのですが、年齢は全く気にならず、他の学生に混ざって楽しい大学生活を送りました。

その後は?

卒業後、SEとしてシステムインテグレーターに入社しました。面接時には開発工程でコードを書くに携われると聞いていたのですが、実際のプロジェクトでは海外へのアウトソーシングがほとんどで、上流工程に携わるのみでした。コードを書く仕事以外はキャリアとして考えていなかったため、1年と数ヶ月で見切りを付け、フロントエンドエンジニアとしてWeb業界へ転職しました。

なぜコードクリサリスに入学を決めたのですか?

バックエンドを含めシステム全体を理解したい、ソフトウェアエンジニアとしてもっと成長したいという気持ちが強く、コードクリサリスへ申し込みをしました。スキルアップには様々な教材やアプローチがありますが、オフラインで集まり、対面でコミュニケーションをとりながらプロジェクトベースで学ぶのが一番効率的だと考えたこと、また、コードクリサリスはアメリカのコーディングブートキャンプの流れを組んでいたことに魅力を感じ、こちらに決めました。

プレコース期間中ですが感想をお聞かせください!

想像以上にハードで(笑)。JavaScriptはある程度理解していると思っていたのですが、読書課題のJavaScript本はすごく内容が深いですし、プロジェクト課題も難易度が高くて、驚きました。学びが多くてすごく楽しんでいます!まだ仕事もしているため、1時間早く起き、スキマ時間を活用しながら、課題に取り組んでいます。

将来の夢は?

自身が心から共感でき、100%の情熱を持って取り組めるようなサービスの開発に携わりたいです!

将来の仲間に向けてメッセージをください

まだまだ始まったばかりですが(笑)。そうですね、Webの業界は、素晴らしい学歴がなくても、経験がなくても、モチベーションと行動力さえあれば、必ずエンジニアになれると思います。ですので、少しでもこの業界に興味を持っていたら、悩まずすぐに行動に移してみてほしいですね。一緒に運命を切りひらきましょう!

クミコさん、ありがとうございました!これから本コースに向けて頑張ってください!

コードクリサリスに興味を持ちましたら是非こちらまでご連絡ください! hello@codechrysalis.io

お申し込みをお待ちしております!