技術書典7に参加してきました(機械学習の炊いたん2)
Twitterにいろいろ書いてしまったので引用しながら手抜きしますごめんなさい。
明日の技術書典で頒布する「機械学習の炊いたん2」で「作って遊ぼうデスメタル」という記事を書きました。
— emergent (@emergent) 2019年9月21日
世の中のふつうの名曲が、デスメタルの名曲になります。
サークル詳細 | ml-titans | 技術書典 https://t.co/2yoJlAkGU0
技術書典7は終わりましたが、Boothで引き続き購入できます。
戦利品、他のサークルの書籍の感想など
今回の戦利品です。買いすぎて1枚の写真に収まらなかった… pic.twitter.com/fGRPaczbmb
— emergent (@emergent) 2019年9月22日
これ、めっちゃいい本だった…。私自身はPMあがりのソフトウェアエンジニアからの開発部門マネージャーですが、チームメンバーの行動指針としてたびたび言ってることが簡潔に言葉にされていて、すぐ読めるわりに学びが多い。社内でも活用します。 https://t.co/smx4Lss4Tk
— emergent (@emergent) 2019年9月22日
生ちょまどさんのテンションを見られて楽しかった。次回は弊社のスマスピも是非よろしくお願いしたいところ。 https://t.co/HNKG2RxLMx
— emergent (@emergent) 2019年9月22日
おまけ
技術書典の袋は自宅でも活躍しています pic.twitter.com/zeEQRGwRxp
— emergent (@emergent) 2019年9月22日
こつこつとコードを書き続けるためのプログラミング問題集
はじめに
半年ほど前に転職してから、ソフトウェアエンジニアとしてコードも書く立場となったのですが、やはり、長年コードを書き続けていた人とブランクのある私では、コーディングスピードが圧倒的に違ってきます。
もちろん、業務のバックグラウンドの知識の差もありますが、「コードを書くスキル」に関しては、ある程度は「どれだけの量、書いて動かしたか」だと思っていますので、極力毎日少しでもコードを書くようにしています。(書かないと覚えられないタイプ)
ただ、毎日とれる時間のばらつきや、ネタ切れなどありますので、手軽に書ける問題がたくさんあるサイトがあると重宝します。本記事では、私のよく使うサイトを紹介します。
Project Euler
コンピュータで解く数学の問題集サイト。アーカイブの最初は割と簡単なところから始まり、徐々に難易度が上がっていく。
私は50問を過ぎたぐらいから解くのに時間がかかるようになってしまい、別の言語で同じ問題を解く横展開ばかりしてしまって解答数の進捗が停滞気味…。
ただ、新しい言語を覚えるときは、ざっと言語仕様を眺めたあとは、実際に手を動かすために問題を解くというのが、最近の自分のお決まり手段になっているのでやってみるのがいいと思います。
上手くアルゴリズムを書ければ、1分以内には解けるように問題ができてる、と一応書いてある。
言語処理 100本ノック
言語処理、文字列処理に関する課題がステップ・バイ・ステップで列挙されています。私はまだ20問ほどしか解いていないですが、Project Eulerに疲れたら合間に言語処理100本ノックを、みたいな感じで少しずつ解いています。
AtCoder過去問
AtCoderの過去問を解くのもよいと思います。
非公式ですが、過去問をまとめているサイトや、最初に解くべき問題のリストをまとめてくれている人がいるので、参考にさせてもらっています。
ちなみに、筆者も何回かAtCoderに参戦したことはあるのですが、制限時間に追われて問題を解くのは苦手のようで、ズタボロでした。しかしそろそろ、半年ぶりぐらいにやってみてもいいかも。
今後やってみたいもの
画像処理100本ノック
画像処理もあまりやったことがないので、体系的に経験できるといいなーと思っています。あと、音声処理もほしい(自分で作れ)。
Modern C++チャンレンジ
タイトルはC++ですが、Rustでもやってみたいと思います。
Modern C++チャレンジ ―C++17プログラミング力を鍛える100問
- 作者: Marius Bancila,島敏博,黒川利明
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/02/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
ディープラーニング∞本ノック!!(2019/05/12追記)
教えてもらいました。
おわりに
できる人はこういう問題集も一気にやっちゃうんだと思うのですが、最初はできなくても少し経ってから再度解くとわかるようになっていたり、てなことも多々ありますので、こつこつと忘れずに続けていくのが肝要です。
モチベーション維持のために私がやっているのは、進捗を見えるように、解いた分をスプレッドシートに記録していく、というものです。毎日一個ずつマルを付けていくと、だんだんマルの部分が増えていくのが楽しみになります。
さいごに、こういうのもあるよ、という問題集サイトの情報をお持ちの方がいらっしゃいましたら、情報いただければ小躍りします。
技術書典6へ参加してきました(「機械学習の炊いたん」寄稿と買い物)
参加したのは先週4/14。あっという間に1週間経っていましたね。
初出展
機械学習をテーマにした合同誌に寄稿させていただきました。
といっても、わたくし機械学習はとんと素人でして。
たまたま発起人の@tomo_makesが私の昔の同級生だったことから、声をかけてもらいまして、でもガチ勢の人たちに追いつく時間もないので、
- 第1章:あやめ(猫)を画像認識してみるチャレンジ(そして失敗してあやめ画像でごまかす)
- 第3章:機械学習を新たに学んで転職・採用のためのコラム
の2本を勢いでガーッと書ききって恥ずかしげもなく売りさばきました。
おかげさまで、紙の書籍は完売し、引き続き現場とBOOTHでの電子版の売れ行きもなかなか好調です。私以外の執筆者のみなさんのおかげというほかない、ほんとに。
よかったら上記のBOOTHへのリンクから、サンプルで目次を見ていただいて、興味がある方は購入いただけるとありがたいです!あやめのおやつ代になります。
本書内で散見されるあやめ見せびらかしの例
その他の出展について
技術書典自体、前回以上に人がたくさん来ていたようです。13時までの入場が有料化したにもかかわらず、12時過ぎまで行列がはけなかったようですしね。
売り子の合間に見て回るのも一苦労でしたが、なんとか素敵な本の数々を入手することができました。少しずつ読んでいく楽しみ、積まれていくつらみを味わえるなんてなんという幸せでしょう。
戦利品とあやめです pic.twitter.com/kIo1Sylx71
— emergent (@emergent) 2019年4月14日
次回、技術書典7に向けて、(今度こそ技術書にふさわしい内容を携えて)早速準備していきたいと思います。
Shunjuku.rs #2参加記
仕事を早めに切り上げてLTイベントに一般参加してきました。雰囲気は若い人が多いなーって感じ。(私がおっさんなだけだと思うのですが) しかし、LT登壇者はRust強者だらけで、でもRustという言語を楽しんでいることが伝わって自分も何か作って話してみたいと思った。ただ、LTってすべてを理解するには短いですね。なのでTwitter上で展開されている資料を見直して咀嚼するのです。
参考リンク(順不同、というか見つけた順)
Rust by Example をこつこつと写経した話
毎日同じ時間にやるの大事。Exampleはコンパイルが通るからよい(いきなりオリジナルコード書いたらまず通らない)
場所と値を意識してRustの気持ちになる話
RustでGPGPUな話
WGができたんだって。発表者のtermoshttさんも入ってる。
RustでTDDする話
Liveコーディングしてた。
mockers とか mockito とか使ってた。
domainとかgetewayと言ってるやつはこれhttps://t.co/q3ThUweqSW
— Takanori🌤️ (@11Takanori) 2019年1月16日
#shinjukurs
CLionでRust使えるんだー pleiades.io
Rustでターミナル上で動作するフレームバッファを作った話
フィンランド人のコンティオさん。懇親会で一番しゃべった。
↓これのデモ。
ターミナルは、(名前忘れた)
主催者プレゼン
のお話とデモ。
先読みしてんのかってぐらい高速な検索。
RustにVoidを導入してみる話
発散型っていうのね今日知った。
そういえばHaskellにはVoid型あるよね。
Cでコード書いてたときは *void な型をよく使ってただめな子だった。
まとめ
みんなすごい。
cargo installのインストール先
Rustでコマンドラインツールを作ってインストールできるようにしたい。
では、 cargo install
ですると記載があるが、実際に叩いてみると以下のような感じ。
$ cargo install error: Using `cargo install` to install the binaries for the package in current working directory is no longer supported, use `cargo install --path .` instead. Use `cargo build` if you want to simply build the package.
つまり、 cargo install --path .
を使え、と。
使いました。(atgetって名前にしてた。*周辺は適当に伏せ字)
$ cargo install --path . Installing atget v0.1.0 (/*path*/*to*/atget) Finished release [optimized] target(s) in 0.21s Installing /Users/*****/.cargo/bin/atget
できました。
ノーフリーランチ定理の紹介論文
を、読みました。
https://taroyabuki.github.io/works/no_free_lunch.pdf
千葉工大で教授やってる人に紹介してもらったのですが、その人はこの著者の矢吹先生が現在千葉工大にいることを知らなかったのが面白かった。
2019年あけましておめでとうございます
ついにあけてしまいました。
まずはリマインダー
はてなダイアリーが春に終了するので移行準備をしなくてはいけません。
抱負など
2018年9月から新しい会社で働いています。
前職ではプロジェクトリーダー・プロジェクトマネージャとして働いていましたが、コードを書く仕事がやっぱりやりたくて、ソフトウェアエンジニア職で転職しました。
Pythonメインで書く仕事なのですが、趣味としてのいろいろなプログラミング言語学習を、仕事にも活かしていければと思っています。活きなくてもどっちでもいいですが。
何はともあれ、年末、開発計画を立てましたので、それに沿って年明けから私のチームで本格的に開発をすることになります。ドキュメンテーション仕事はほどほどにして、コードをがっつり書いていきたいですね。