カブクのエンジニアインターンシッププログラムについての詩
どうも、おはこんばんちわ、カブクの足立です。 今回はカブクのエンジニアインターンシップのメンターによるポエムです。 弊社は少数ですが、エンジニア職におけるインターンシップの方に働いていただいています。
これは、メンターからのアンサーポエムです。 カブクでのエンジニア・インターンシップは、給料をお支払いし会社の仕事を手伝って頂く(就業体験を積んでもらう)のはもちろん、それに加えて学習プログラムを準備し学んでもらうことも仕事としています。 1. なぜインターンに学ぶ仕事をしてもらうのか を説明し、高橋知成さん、ひいては、カブクのエンジニアインターンシップとして将来一緒に働いてくれる方へのメッセージとしたいと思います。 エエかっこしたいからです。 うっかり本音が吐露したところで建前です。 Web技術の進歩スピードは速く、そういったフィールドで活躍するエンジニアは常に(新旧問わず)技術を習得し、活用して(もしくは捨てて)います。カブクのエンジニアは全員それをあたりまえのようにしています。たぶん、捨てることのほうが多いと思います。 技術習得の効率は経験によって高めることができます。 Give & Givenです。 仕事にかこつけて勉強したいんです、僕が。
特にエンジニアインターンシッププログラムは2つのパートがあります。 基礎力は、エンジニアとして根本的に備えていて欲しい事を課題として設定しています。 純粋な勉強が50%で、仕事が50%です。 このプログラムを考えているとき、両方のバランスをとても大切にしました。 では、まずは基礎力向上のプログラムをご紹介します。 文章で情報を伝える技術の基礎を身につけるための本です。 情報は発信者の意図とは無関係に受け手によって解釈される定めです。 Daily Reportでは、内容と共に本書で説明されている「間違いなく伝わる文章」になっているかもチェックします。 僕、国語苦手で著者の気持ちとか汲み取れないので、数式チックに分かりやすく伝えてねってことです。 読んでもらうための文書レイアウトの技術を身につけてるための本です。 情報の発信者よりも受信者の方が一般的には多いので、発信者側が少し気を使うことで、その効果はN倍になります。 つまり、いちいち構造解析してらんないので、構造化しといてねってことです。 なにかを習得する「やり方の王道」を学んでもらうための本です。 まずは脇目もふらず王道に沿って努力時間を投下したらいいんじゃないかな? 守あっての破です。 プログラムを”組む”とはどういうことかを学んでもらうための本です。 弊社で開発するソフトェアは性能を非常に重視しています。 ぶっちゃけ私の趣味です。
続いて、実践力を高めるためのプログラムとその意図を紹介します。 この言語を使った仕事だったので、まずは使い方を勉強してもらいました。 高橋知成さんに担当してもらう業務はTypeScriptを使ったWebフロントエンド開発です。 classベースオブジェクト指向言語のプログラミングに慣れてもらわないことにはレビューつらい。 開発にはMacを使ってもらっていますが、ターミナルで操作する方法はほぼ同じなので、この本を読んでもらい、日々の業務効率をあげてもらいました。 という、それらしい理由を説明して、PATHとかファイルシステムとかの説明をサボりました、わたし。 ソフトウェアテストを書く技術を学んでもらうための本です。 テストって大事だよ。まじ大事。 って教団の人が言ってました。 ちゃんとしたテストが書けるようになる仕事、つぎに準備するから、その時に実践して学ぼう >高橋くん Rinkak 3Dペットステーションというペットの写真1枚からペットのフィギュアが制作できるサービスの開発プロジェクトに参加してもらいました。 Micro Serviceアーキテクチャで、サーバとクライアントを疎結合にし、独立して開発しました。 このプロジェクトではあえてフレームワークは使わず、独自フレームワークを開発してもらいました。 また、[基礎力]で習得したものが実践で使えることで、学習のモチベーションが上がることも目的としていました。 本サービスはバージョンアップが事前にスケジュールに組みこまれていたので、具体的な指示は極力少なくして、自分で設計・実装してもらいました。 あとで「”なぜ”そうしたのか」と質問して、設計思想を教えてもらうのが楽しみでした。 「ああすれば良かった」「こうしたほうが良かった」「次はこうしてみよう」という反省点・改善案を次のバージョンアップで実際に試してもらいました。 同じサービスを何度も作りなおすのは面白みにかけたかもしれませんが、レゴブロックで家を作るような楽しみはあったのではないかと。
開発が一通り終わると私がコードレビューして質問します。直接修正することはしません。 「技術を楽しめる」です。 技術は道具。 ベルボンが良いのか、スリックなのか、やっぱりマンフロットなのか。 そういうことが楽しめるのがカブクのエンジニアっぽいかなぁ。 幸いにして高橋くんは雑食で何でも食べてみる男子だったので、 次の3ヶ月も彼と仕事するのが楽しみです^^ 宣伝です。 物理的なモノづくりと仮想空間のモノづくりが交わる面白い会社です。 理科系の作文技術を読むと、もっとマシなブログ記事が書けるようになるよ!
いま(2016年5月から)活躍してくれているのが高橋知成さん。
前の記事で彼の3ヶ月の活動を報告してくれています。
ご興味ある方はご一読下さい。
カブクでのエンジニアインターンの実際が少し分かるかもしれません。
2. カブクのインターンシッププログラムとその意図
3. カブク、エンジニアインターンシップに期待することなぜインターンに学ぶ仕事をしてもらうのか
いい会社だなって思ってほしいからです。
それがカブクエンジニアの技術力の源泉です。
開発者としてスタート地点にいるインターンシップは、技術習得の効率が良いわけではないので、メンターがその手助けを行い、習得した技術を活用し会社の仕事を高い品質とスピードで手伝ってもらうのが意図です。カブクのインターンシッププログラムとその意図
基礎力と実践力です。
実践力は今まさに役立つ事を中心に課題を設定しています。
それぞれに50%ずつの時間を使ってもらっています。
仕事が早く終われば勉強の時間を増やしてもOKなルールです。
仕事は減りませんので、反対になったらキツイです。
時間配分は本人にまかせています。
実践力はすぐに動いて、使えて、楽しくて楽しくて仕方ないので、こちらに集中してしまいがち。
なぜそうなっているのか、なぜ別の方法ではダメなのか、なぜ、なぜ、、、
ということを考えられるようになるには、基礎の積み重ねが大事だと私は考えています。
掘り下げて考えていく力は、深層(基礎)の知識や経験によって強化されます。
※「なぜ」なんて考える必要ないという仕事や人もいますが、カブクには「なぜ」が必要なのです。ロジックがあればデバッグ(改善)できますから。基礎力向上プログラム
理科系の作文技術
いきなり、プログラミングとは関係ない図書ですが、一番はじめにこれをやってもらいます。
最低3回読んでもらいます。
特に技術文書では、価値ある情報を間違いなく伝わる文章で綴られる事で価値のある文書になります。ノンデザイナーズ・デザインブック
文書を作成しても、読みづらければその価値が下がります。
正しく読み易い文書はスケールします。
何に気を使えば良のでしょうか。
文章は「理科系の作文技術」で、その見た目(フォントやレイアウト)は本書に書いています。上達の法則
「このやり方でちゃんと力つくのかなぁ」と不安になるだけで時間がもったいない。
それが周り道かもしれないけど、どこかには到達するよw
四の五の言わずに、王道を習得してから、自分なりのやり方を模索すれば良いと思います。アルゴリズムとデータ構造
情報系の学生であれば授業とかでやっていると思うので、非情報系のエンジニアインターンシップの方だけが読むことになるかも。
一番効くのはアルゴリズムレベルの性能です(ディスク、メモリ、CPU、GPUレベルの最適化をしていく事もあります)。
その入口となる本書を読んで、「計算量」に注意を持てるようになってもらいます。実践力向上プログラム
TypeScriptチュートリアル
型言語はあまりやったことないということだったので、学んだことがそのまま仕事に活かせる、ちょうど良い課題でした。Java言語で学ぶデザインパターン入門
型言語やオブジェクト指向プログラミングに長けているわけではないと本人から聞いたので、この本を渡しました。
Java言語を学ぶ事は目的ではありません。型言語やオブジェクトの活用例を学んでもらう事が目的です。新しいLinuxの教科書
Shell(PATHやスクリプトなど)とかファイルシステムやらを知っていると、開発環境を構築する際の”呪文”の意味がわかるようになり、動かなくなった時に解決できる力が付くよ!ぜったい役立つよ!はじめて学ぶソフトウェアテスト技法
テストがなかったらプログラムが動くことが保証できないよ!
プログラム書くんだったら、先にテスト書くべきだよ!まじべきだよ!TypeScriptでのWebフロントエンド開発
主にその申し込みフォームの開発です。
クライアントサイドの開発をお願いし、サーバサイド(APIとロジック)は私。
フレームワークを開発するには、それを利用するあらゆる状況を考慮した設計が必要になり、技術力を高める良いトレーニングになります。
「質問やアドバイスは求められた時にだけ」。
これを繰り返せば、いつか「うまくできた」に近づけるでしょう。
しかも、今回は同じサービスなので、条件がほぼ変わりません。改善案がそのまま使え、試せます。
試した結果どうだったのかを検証することで、課題の質がさらに上がります。
めんどくさい手を動かすことが大事だと考えているからです。
頭で分かったつもりでいても、手が動かないなんて事はよくあることです。カブク、エンジニアインターンシップに期待すること
道具を試しては、捨て、よさそうなら仕事に使ってみる。
全部、使ってみたら分かるってもんです。
「これやってみる?」「はい!」って感じでたまーにしかやってないメンタリングも楽しかったです。さいごに
カブクでエンジニア・デザイナー(正規・インターンシップ)を募集しています。
ご興味あれば、お問い合わせ下さい。おまけ
その他の記事
Other Articles
関連職種
Recruit