前提
数学力・統計力・技術力がほぼすべて「ゼロより低い、マイナス」の化石エンジニア・アンモナイトがエンジニアとしての生き残りを目指して賞金が欲しくて 、Kaggleに挑戦する。
たぶん、Kaggleに挑戦する記事の中で、もっともレベルが低いと思う。
そもそも、なんでKaggleに挑戦するのかとゆーと、下記のよーなリカレント教育(大人の再教育)プランを考えているからです。
アンモナイトが考えた化石エンジニアの進化論:
ふりだし:「アンモナイト=太古の海中でたゆたってる化石エンジニア・Lv3」
→アジャイル開始:Done!
→社外コミュニティ参加:Done!
→スクラム経験:Done!
→CSM取得:Done!
→常識(他社研修視聴):Done!
→知識の深堀り=Kaggle:in progress
→知識の深堀り=アプリ作成:To do
→あがり:陸上(肺呼吸):人権を得る
1:現在の状況
前回の記事から、『タイタニック号』のコードの詳細を本格的に検討し、理解を試みる。
ナビゲーターとなってくださる御本は下記。いつもありがとうございます。
『PythonではじめるKaggleスタートブック』
https://www.amazon.co.jp/dp/4065190061
(書影は版元ドットコム様)
で、検討&理解中の現在、どうなっているかというと……SyntaxErrorが出まくりである。
2:SyntaxError
開発の最前線離れてから●年だが、SyntaxErrorという表示はいつ見ても、精神に刺さる。夢に出そう。
いやわかってんのよ、アンモナイトが悪いってわかってんのよ。
きっと知見のある方が見たら、「アホか!」みたいなことをやらかしてるんだろうなって、わかってるんよ。
アンモナイトだって経験ある言語なら、「あー……(ここで引っかかってるのか、残念だな……あとちょっとだよ、あきらめるなって言いたい)」ってなる。
でもさ、新しい言語(今回はPython)で最初にぶつかる壁は「Hello,World」と「SyntaxError」ってお決まりじゃない?
前者は比較的突破しやすいけど、後者はさ、もう……「見本通りに打ち込んでるのに、なんでSyntaxErrorなの?」となったら最後、徹夜でデバッグじゃない?(仕事であれば)(納期があれば)
原因がわかれば本当に「あ、","が余計だわ」とか「"("が多かった」とか「大文字小文字が混ざってた」とか、ぜんっぜん大したことじゃない。
ドラ●エでいったら、スライムレベルだよ。
……しかしLv3・with ヒノキの棒だと、スライムにもやられるのよ……。
で、やられてるんよ……。
3:デバッグ
とりあえず、レガシーエンジニアとしていにしえの記憶をたどり、試せることは全部試した。(1時間経過)
1:全角・半角チェック
2:大文字・小文字チェック(Pythonだから特に)
3:見本コードと自分のコードを指さし確認&音読(目検だけだと間違いに気づかないことがあるので、ブツブツ読み上げる)
4:エラメで赤く光る部分をコメントアウト、その他が動くかどうか確認(エラースコープの確認。最低限で動いた場合は徐々にコードを足していく)
5:……あとなんかある?(涙目)
4を試した時、ちょっと動いたんで、「おおお!(歓喜)」となったが、次の瞬間、「NameError: name 'data' is not defined」が現れた!
違うモンスター出たよ。ドラ●キー的な。もちろん、Lv3は負ける。
今回は写経したコードだから、「え、宣言されてねーの? あれ?」となる。宣言してもいいけど、型がわからねえ……。
いや、たぶんコードの後ろを読んで変数に入る内容がわかれば、型もわかるんだろうけど、VB系の「オブジェクト」みたいな内容だったら、どう宣言したらいいのかわからん……。
そうこうしているうちに、2時間が経過。仕事だったら確実に定時過ぎてる進捗率。仕事じゃねーのが唯一の救い。
4:結論
アンモナイトはもっとPythonの勉強をしたほうがいい。
というか、この壁を突破しないと、機械学習が先に進まないので、SyntaxErrorとnot definedとの戦いは来週も続く。
「覚えてろよぉ!」という、前回同様、100%負け犬のセリフを吐いて、今週は終了です。
本日は以上で終わりです。お付き合いいただき、ありがとうございました!