みなさん、こんちには! Noriです。
いよいよWMDDも第4タームを終えることができたので、ここで振り返っておきたいと思います。
第4タームのクラスは以下で構成されています。
4945 Native iOS App Development
4950 Security and Cloud and Server Administration
4985 Capstone Project
4998 Advanced Topics for Web and Mobile Developers
どのクラス名を見ても、ガッツリ開発しそうな雰囲気が伝わるかと思います。
ですが、基本的には「入門書を1冊やった」ぐらいの内容なのかなと振り返ります。
各クラスで扱うコンテンツが多かったので、わりかし消化不良を起こしたセメスターでもあったかなと思いますが、React NativeやAuth周り、インフラまでを授業で網羅できたことは想定外でしたし、知見がかなり広がったと感じています。
順番に見ていきたいと思います。
4940 Native Android App Development
4945 Native iOS App Development
この2つのモバイルアプリ開発の講師は同じ方が担当されていたのでまとめてしまいます。
一応このタームは対面での授業を行うはずでしたが、この二つの授業はオンラインで行いました。
「もし質問があれば指定の時間に教室にいるから来て質問してください」 みたいなスタイルの先生ですが、来てなかったりもしたみたいです。笑
基本的には毎週講義のビデオがアップロードされるので期日までに課題をこなして提出するといったのを13週間繰り返す感じです。
講義ビデオ自体は去年のビデオの使い回しではあるのですが、xcodeのバージョン違いによって追加のビデオを用意してたりと親切でした。
ざっくりですがAndroidの授業内容は以下のキーワードを扱いました。
Card View
Scroll View
Shared Preferences
Floating Action Button
Recycle View
Option Menu
iOSの授業内容は以下です。(一部です)
Navigation Controller
Custom Table Cells
Tabbed App
Multiple scene
経験者の方から見れば、基本のキの内容しか扱っていないかもしれませんね。
しかしながら、普段よく見るアプリケーションの各コンポーネントがどのように組み立てられていくかを学べる良い機会となりました。
XCodeやAndroid Studioが開発ツールとしてとても充実しており楽しく実装できるなぁというのが率直な感想でした。
テストはミッドタームとファイナルがありましたが、どちらも第6回ぐらいの授業の内容まで網羅していれば太刀打ちできます。
(この先生の特徴ですが、基本的に学生の単位を落とす気がありません。最大限しくじっても救済してくれます。最悪テストを受けなくてもレベルですw)
もし本番でよくわからない内容が出ても大丈夫です。普通にググりましょう。
あくまで基本的な内容しか出題されないので、コンセプトは必ずネットに落ちています。どんどん拝借しちゃいましょう。
例えば、一覧画面にタスク表示させて、タップすると詳細ページに飛ぶとかです。
4950 Security and Cloud and Server Administration
この授業が最も難しくやりがいのあるものでした。
WMDDの長が担当してくれました。
現役で開発業務をこなしながら講師をやられているようで、実践的な内容をふんだんに扱ってくれましたし、授業の資料もとてもわかりやすかったのが印象的です。
どんな質問にもレスが早く丁寧に回答してくれることも好印象でした。
ただ、この先生のテストはレベルが高いので、5割前後が普通、よくできて6割越えるかどうかぐらいだと思われます。
基本的に過去のクイズの内容からそのまま出題されることはないです。
すこし聞き方が違ったり角度を変えてくるので、テストを受けてて答えがあっている確証のあるものは個人的には少なかったです。
(スコア20%とかなのでは?と心配になりました。。。)
私の憶測ですが、テストの答案の結果は返ってこずスコアの数字だけが返ってきていたことを踏まえると、
スコアの数字には下限が設定されていて、操作されていたのかなと思います。
まわりに30%などの人もいなかったです。(普段のクイズはたくさんいるのにミッドだけいないのは不自然。。。)
そういうことかと思います。。。、優しさ。
課題がとにかく時間がかかります。授業の内容だけでは課題が解けないので、ググるしかないです。
どうやってアプローチするかを問われているような問題が多く、難しく感じましたがかなり力がついたように感じます。
Auth
EC2
デプロイ
4998 Advanced Topics for Web and Mobile Developers
この授業では2週間区切りで一つのトピックを扱うといったスタンスの授業でCode Alongがメインでした。
扱ったテクノロジーは以下の内容です。
React Native
Graphql
Next.Js
設計手法
インタビュー対策(コードテスト)
講師の方が企業でゴリゴリRailsなどで開発されているベテランなので、知識量がとても豊富で勉強になりました。
各テーマでわりと重めの課題が出されて実装に手こずりましたが、どうやったらスッキリかけるだろうかとか、冗長になっていないだろうか。など実務でも大事なことを意識してコードを実装する経験は非常に貴重でした。講師のフィードバックも詳細で、可読性や保守性を考慮した具体的なアドバイスをしてもらえたので大変満足です。
講義のスピード自体はとても早く、手元でバグると講師に追いつくことはほぼ不可能なので、手を動かして授業を受けている学生は目視ではいなかったように思います。
とにかく授業中は聴講に徹して「ふーん」程度に咀嚼するしかないです。
後で、アップされる授業の録画ビデオを見ながら実際に手を動かしてやってみるっていう流れが一般的かと思われます。
テストはないので、課題は必ずやらないと落第します。遅れての提出も嫌いですみたいな記述があった気がしたので、きちんとやっていきましょう。
授業のビデオよくみて、見様見真似でやっていけばなんとか形になるかと思います。
ただ、時間は結構とられるので余裕を持って取り組むのがおすすめです。
セキュリティクラスの課題、projectのタスク、このクラスの課題の3つが混沌として我々を追い込んできやがります。。。www
4985 Capstone Project
この授業がWMDDの最大のハイライトだと言えます。
「全てはこのCapstoneのために」 と言っても過言ではないレベルです。
これまで学んだ全てをここに反映させつつ、これまで使わなかったテクノロジーをチーム内で採用すると学びの多い時間になると思います。
スタンスは以前のタームでもやったプロジェクトと同じで、デザイナーとデベロッパーがチームを組んでアプリを開発しました。
Capstone Projectではモバイルアプリを作ります。
JavaやKotlinで書いてもいいのですが、大体のチームがReact Nativeで実装していました。
私たちのチームではReactに加えてReduxで状態管理を行ないました。DBはMongoを使いEC2にデプロイしました。
この授業ですこーし疑問に思ったことは、「誰が」機能や画面構成を考えるかという点です。
デザイナー出身の講師は、デザイナーが上記を考えて、のちにデベロッパーと擦り合わせるスタンスをとります。
個人的にはデザイナーとデベロッパーが協力しあって一から組み立ていくのが角が立たないやり方だと感じました。
まず、デザイナーだけで構成を考えると、だいたいテクニカル的に不可能な仕様ができます。
例えば、電話機能をつけるみたいなことです。(LINEとかスカイプができるからできるでしょ?といったように)
画面遷移や機能の開発にはある程度スタンダードが存在するので、あまりにもそこから逸脱して話を進めると修正がかなりキツくなりますし、
デザイナーチームがせっかく時間をかけて考えてくれたものをまるっと変更しようとすると人間関係がこじれてしまいます。。。
それを避けるために、チームできちんと機能要件と画面構成や遷移について時間をかけて詰めるべきだと思います。
テーマ決めから広い意味での設計にめちゃくちゃな時間がかかりますし、議論が発散することもよくあるので我慢が必要ですね。
Capstoneの発表はzoomにて公開されるので外部の方も参加できます。多くの学生が家族や友人を招待しているようでした。
ドキドキですが、自信を持って一生懸命臨みましょう。みんな応援してくれています。
Capstoneは発表する順番を考えた方が良さそうです。
私たちは3番手だったのですが、前半2チームの時間がおしていたため、なんと私たちはQ&Aをほぼほぼカットされてしまいました。
審査員の方が4名外部から参加されていたのですが、ネガなコメントに対して対応することが許されなかったので、なんとなく周りからよくない感じに見えたと思います。
大トリ、トップバッター、2番手のどこかが発表順としては良さそうです。
ちなみに、投票についても結構操作されている可能性が高いです。そもそも使ってるシステムが何度も投票できてしまう謎システムですwww
何票入ったかみたいな数字を公開しないのは、そういうことでしょう。(個人の予想です。)
WMDDを終えて
上に愚痴みたいに書いてしまいましたが、これまで35人ぐらいがずっといっしょに前に進んできたことを考えると、正直順位がどうとかは5秒ぐらいでどうでもよくなります。
どのチームもきちんと成果物をつくって、協力しあって力を出し切ったわけです。
不穏な空気や溜まるストレス、メンバーの離脱などいろんなことがあった中、最後にはみんなでゴールできたことがとにかく嬉しかったです。
家族を養いながら学生をしてる人もいれば、そもそも生活自体が不安定な状態で勉学も両立してる人など境遇は様々です。
多かれ少なかれそれぞれ相互に理解しあって、仲良くかつ一生懸命にランガラ生活を走りきれたと私は総括します。
理解がとても深まりましたし、今後カナダでデベロッパーとして働いていくための準備が整ったと感じました。
お世話になった講師陣、クラスメイトにとても感謝しています!ありがとうございました!
前に進んでいきましょう!
以上、すこし締まりが悪いかもですが、どなたかの参考になれば幸いです。
次回就活について書きたいと思います。
Nori