-
研究テーマが大規模で先輩から引き継ぐ系が多くそのため、perlのコードが代々引き継がれる - 学生はperlを書かざるをえない
-
perlは言語処理という印象
- 正規表現、文字列処理に強い
-
コンパイラのテスト 開発段階でコンパイラに関するテストツールの開発・提供 およびバグレポートを行っている
-
学生がPerlを便利と思った点
- 純粋にスクリプト言語は便利
- とりあせず適当に書いてもコードが動く
- 不便わかりにくい点
- コーディングルールが難しい
- POD形式の可読性が低い
- 指導教員のPerlの印象
- Cと比べて行数が少なくできる
- すべてのメソッドがpubicなのでいい加減なコードになりがち
- GPGPU
- グラフィックカードの演算資源を画像処理以外のものに応用する技術
- GPUの各コアで処理を並列実行
- シミュレーション 暗号解読 音声処理などに有用
- PerlにおけるGPGPU
- KappaCUDA
- ExtUtils::nvcc
- OpenCL
- 他のLL言語におけるGPGPU
- ParaRuby
- RubyのGPGPUフレームワーク
- Ikra ・・ruby
- 入社した学生
- WEB開発経験豊富な新卒は少ない -少し経験あるくらい
- どんなエンジニアになってもらいたいか
- 変化に対応できる 主体的に技術習得できる 技術以外も成長できる
- 自走できるエンジニア
- 研修の設計
- ワークショップ:個人 71人すべてへの個別指導
- 研修の基準
-
設計:MySQL
大規模想定の深い知識 Index, Transaction -
実装:Perl, OOP
CPANモジュール普通に使える
- 研修の概要
- 座学(講義 テスト)
libux network mysql web security git Perlは独学 - ワークショップ
企画、設計、実装をひとりでできるくらいに
- 研究の詳細
-
すでにある企画書がベース
最低限必要な技術(batch daemon ranking)を詰め
遷移図、DDLを作成 -
MySQLについて深い理解
高トラフィック対応に必要な現場で得られる知識 -
SQL、DDLを作成 SQL一覧作成し、DDLと照合
-
オブジェクト指向でのWeb Aplication開発
-
高トラフィック、レプリケーション遅延も対応
トランザクション -
チーム開発を意識した情報整理 一貫性のあるコード
オレオレコード撲滅 MVC
実装しながら理想的な実装を学ぶ -
技術力確認テスト :perl
筆記テスト
スクラムワークショップ
ストレスマネジメント研修
Sys障害にどう対処するか
- 研修で発生した問題
- 顔と名前が一致しない
顔の名前のリスト 意識的にコミュニケーション - 71人の進捗状況を把握できない
Google Docsで管理 - 講師の意思疎通が大変
- 信頼関係を築くのが大変
ランチ、宅飲み会
レビューでしっかりぶつかる 研修生に尊敬される
- 人多すぎでよかったこと
- 急成長メンバーが複数出てくる
- 同じ問題を抱えるメンバーが複数出てくる
誰かが改善すれば他のメンバも改善できる
研修生同士で教え合える - データ比較することで傾向や平均を導出できる
- 規模に依存しない起きた問題
- オブジェクト指向を理解させることは大変
- 完全未経験の新卒をエンジニアにするのは大変
- 研修生の意識を変えること
- OOPの教育
- Sampleを参考にしてオブジェクト指向を学ばせる
OOPなWAF使う
SAL:Makerだどを読んでもらった
- 未経験者の育成
- 基礎スキル向上のきっかけをつくる
MECE KPT タスク管理を指導 面談で研修生の弱みを指摘 - フォローアップで個別ケア
- 優秀な同期が刺激に
- 意識面での育成
- 経営目線に触れてもらう
取締役のありがたいおはなし - フォローアップで個別ケア
言い訳は成長阻害の最大の要因
自身を客観的に観測
セルフモチベーションコントロール
- 規模にい依存しないよかったこと
- フォローアップで成長加速をサポート
どうやったら底上げできるかノウハウが溜まった - 研修生に手を上げてもらい 積極的に任せた
- 研修生自身での振り返り手法を早期から共有
振り返りが巧い研修生は急成長 - 現場の技術志向高いメンバが技術基準を決めたこと
現場で即戦力となる技術知s機に集中して教える - 参考となる書籍 CPANを教えたこと
- GitHub活用してレビューを進めた
- 技術テストを実施
研修生にテストの解説
- 参考になった書籍(Perl)
- CPANモジュール
Class::Data::Inheritable SAL::Maker - モダンなperl入門
デザインパターン テスト - すぐわかるオブジェクト指向Perl
オブジェクト指向の概念は別書籍で - Perlベスト・プラクティス
- 独習Perl
プログラミング未経験者向け - 初めてのPerl、続・初めてのPerl
- 参考になった書籍(MySQL)
- 鍵本
- Webエンジニアのための データベース技術[実践]入門
- 漢のコンピューター道
- 公式リファレンス
- 実践ハイパフォーマンスMySAL
第三章のIndexについて
- 参考になった書籍(Git)
- Gitによるバージョン管理
- Gitポケットリファレンス
- こわくないGit
- 参考になった書籍(その他)
- オブジェクト指向のこころ
- リーダブルコード
- 初心者へ伝えたいこと
- 知識を人に晒してインプット
- 不確実なWebの情報を信頼しない
- carton +cpanfile
- 全体をひとつのモジュールに
- CUIならSTDIN STDOUTの I/O
- Plack化 Plack::Test
- Plack::App;;WrapCGIでPlack化する
- headlessブラウザでE2Eテストする
- capybara-webkit + headless
- そのあと Plack化して分離
- 細かいデータでの E2E
- 内部モジュールのユニットテスト
- バグを発見したら、バグを明らかにするテストを書く
- 回帰テストを貯めこむ
- バグ発見 ー> 回帰テストを書く ー> テストを通す
- テストはこまめに回す。
- 1日1回は全体テストを回す
- tracis ci circle ci
- Guard + guard-tap
- カバレッジは100%目指さない
- テストファーストにこだわりすぎない
- テストはだいたいで でも頻繁に実行
- リファクタリングが怖くない程度にテストがあればいい
- リファクタリング中に見つけたバグの回帰テストを貯める
- 作ったテストはちょっと更新の度、頻繁に実行する