著者ブログ

スッキリスト秘話(6) 工藤慎平 編

こんにちは。スッキリJava&C著者の中山です。

10月からはじまった「スッキリわかる入門シリーズ 10周年記念 編集長に隠れて副音声的こばなしスペシャル」。いよいよネタが苦しくなってきたのか、前回はついに「紹介キャラが人じゃなくなる」という衝撃のキャスティングでお送りしました。

スッキリスト秘話(5) JVMくん(ほか) 編

こんにちは、スッキリわかる入門シリーズ著者の中山です。 11月1日を迎え、「あと61日で今年が終わる」という現実をうまく受け入れられず、うなだれていたら午後になってました...。 ですが! 人生つらい ...

まぁ、私自身は、CPUくんがこんなに真っ白になるまでロードアベレージあげるコードは書いたこと無いんですが、G4dn-16xlargeを悲鳴上げるまでぶんまわしながら爽やかな笑顔をふりまいていそうなこの方が本日のスッキリストです!

工藤 慎平(30)
株式会社ミヤビリンク
データ技術本部
データシステム開発部
DSチーム

工藤慎平の出演作品



スッキリPythonと登場キャラたち

スッキリJavaの登場から8年が経った2019年に誕生したのが、ご存じ『スッキリわかるPython入門』です。弊社で実施するPython研修や、データサイエンス系(機械学習や時系列など)のコースのノウハウを書籍化したものでした。Python自体、近年とても人気なこともあって、最近では『スッキリわかるJava入門』に並んで多くの方に手に取っていただけていること、著者陣としては有難い限りです。

そして、両書中に登場するのが、この3名のキャラクターたち。左から順に工藤さん、松田くん、浅木さんです。

先生役としてふたりにPythonを伝えていくことになる工藤ですが、菅原(Javaの先生役)などとは違い、短いコードでポンポン進行するし、語り口自体も"ライト"な感じあたり、Pythonらしいかなと思います。たとえば、Pythonの0章で少し自身がなさげだった松田君をはげまし、最後に一押し、

そして、中盤ではスタンプにもなったこのセリフ。

せ、せやかて、工藤!

しかーし!

あなたがもし真のシルバースッキリストを自認する猛者ならば、第0章を読み進める(もちろん初見)段階で、「ん...?」と、違和感に気付かないといけません。

あなたの脳内にいる「蝶ネクタイした眼鏡小学生男子(しかも、ときどき眼鏡が真っ白に光ってて、やたら怖い)」が、すっとぼけた声で、こう語りかけてくるはずです1

「あれれー? このお兄さん、さわやか系っぽいのに、1日3回のご飯より数学が好きっていってるよ? 」

実はスッキリシリーズのすべての言語入門書(Java入門・Python入門・C入門)は、その第0章の冒頭の構成に共通点があります。HelloWorld的なものからはじまり、それを少しずつ書き換えながらプログラミングに慣れていくのですが、その過程で「先生役」が記述する内容は、実は書籍を貫く何らかの重要なシナリオや背景設定の「伏線」になっているのです。

スッキリPythonの上記コードもその例に漏れません。『スッキリPython』書中ではさわやか好青年っぽい雰囲気をかもしだしていた工藤ですが、続編『スッキリわかる機械学習入門』に進むと化けの皮がはがれはじめ、その変人っぷり2が見え隠れしはじめます

とうとう最後の付録D/Eでは、行列演算やら偏微分やらが紙面を飛び交う事態となりますので、「pandas使ってる時点で甘え」というガチ勢な先輩にもちょっぴりお楽しみいただける構成となっています3

なお、工藤のモチーフである弊社データサイエンティスト(著者)はもう少し真人間なので、フレアリンクの研修でばったり会ってしまっても怯える必要はありません4

シリーズ最薄 「スッキリPython」

そしてスッキリPythonといえば、先生役だけでなく書籍自体も"ライト&スマート"なのが特徴です。

先行するスッキリJavaやスッキリCは、いずれも750ページ超 & 3.5cm超。「重い」とか、「厚い」とか、「ほぼ鈍器」とか、「スーツの胸ポケットに入れておくと撃たれても弾丸が止まる」とか、その物理的な機能性でも多くの栄誉にあずかってきたことは言うまでもありません。そんななか、

 さ、376ページ....だとッ?!

特にスッキリシリーズをご愛読いただいている方の場合、Python発売当初、「これ本当にスッキリシリーズなのか?!」と驚かれたり、「なぜだ! なぜ、"ぽっちゃり系IT入門書"というアイデンティティーを捨てちまったんだ!」と、壁を殴りながら涙を流した方もいるに違いありません。

ちくしょう...!! ちくしょう!! ...なんでなんだよ...。

...ハッ!! ...まさか....!

中山ぁ、おめぇ!  実はぽっちゃりが好みなんだろう!!
だからC言語やJavaはあの厚みだった!
なのにPythonには著者として名前がないからって、てめぇ、魂込めなかったんだろっ!

さらに、胸ぐらつかまれる中山→黙ってる→「んだよ、なにかいえよ、いってくれよ!」→黙ってる→「てめぇ!」と中山が殴られるという展開に期待が集まるところ大変申し訳ありませんが、違います。

いや、むしろ当初企画「機械学習もある程度含んだぽっちゃり構成」だったものを、ばっさり376ページで切る構成に変更するよう、プロジェクト中盤にお願いした迷惑な人、他でもない私ですから。

ページ数でみるスッキリシリーズ

スッキリPythonが薄めの本であるのには、ちゃんと理由があるんです。その弁解用に準備した次のグラフは、Java、C、Pythonのペーシ数構成をちょっとデフォルメ分類したものです。

式や変数、制御構文や配列、関数などといったいわゆる「手続型言語としてプログラミングができるようになるために必要な基本的な文法解説」に使っているページ数を意味する、水色部分に注目してご覧ください。

Javaが分厚い理由

Javaが分厚くなっている理由は、見ての通り、「オブジェクト指向に関する部分」や「API/活用」部分を含んでいるためです。Javaを実務で使う場合、「手続型の知識だけで足りる・使える」ということはほぼありません。「手続き指向Java」を使うぐらいなら、いっそCやPythonを使った方が潔い世の中にもなっていますので、やはりJavaを学ぶ以上はオブジェクト指向もある程度学んでおきたい(=基本文法まで学んで、「ここで卒業。」っていう道はない)かなということで、上下巻にも分けず1冊にしてあります。

C言語が分厚い理由

一方、オブジェクト指向がその仕様上存在しないC言語は、当然基本文法がその解説の中心です。変数や配列、制御構文や関数などの扱うテーマはJavaもCも同じですし、構文も非常に似ているのですが、実はスッキリCは「C言語エンジニア向け」にけっこう解説が最適化されており、(Cにしかないポインタ関連の解説を差し引いても)Javaより80ページも多いんですよね。

やはりC言語を学ぶ方の場合は、組み込みやドライバなどの超低水準領域の方のほか、「コンピュータの仕組みを学ぶ」という目的で学んでいる方も多く、JavaやPythonであればAPI呼んですませちゃうようなロジックもゴリゴリ記述できる能力が求められる傾向があるかと思います。

加えて、C言語は現在「特にネット上に、まったくの未経験者にとって敷居低めの情報が少ない」という状況がありますので、変な道に迷い込むリスクがあったり、つまづいたときに自力でネットで解決することが難しい5ため、ていねいめに「段差が小さな階段」で解説を構成させていただいた結果、ぽっちゃりになっちゃいました。

Pythonが薄い理由

ここまで来れば、もう自明ですね。スッキリPythonがスッキリしているのは、

  • Pythonの場合、「基本文法だけで卒業」という道が十分ありうる
  • ネットに比較的潤沢に技術情報があり、「入門者殺し」な言語仕様も少なくて学びやすい6

からです。

特に1つ目の理由は、Pythonという言語特有かと思います。この言語、他の言語には類を見ないほど、「身につけたプログラミングスキルを、何にどう役立てるか」という道がかなり多岐に及ぶんです。

「AIや機械学習」などの分野でも注目されていますが、データサイエンティストやAIエンジニアになりたいからといってPythonを学ぶ人は、Python学習者の中の一部です。単に業務効率化のため(高機能なシェルスクリプトとして)学びたいという人もいますし、DjangoでWebアプリ開発をする人やLamda FunctionでREST-API開発をしようという人もいます。さらに、そもそも「プログラミングを学びたいだけで、言語は敷居が低いなら別に何でもよく、それがたまたまPythonだった」という人もたくさんいるでしょう。

Javaを使っていく以上は事実上必須であるオブジェクト指向7も、Pythonを使っていく人生では必ずしも必須ではありませんので収録していません。もちろん、クラス機構があったり継承やらいろいろできることは存じ上げてますし、実はPHP並に深く伏魔殿な言語仕様があることはv2時代からさんざん痛い目を見てさせて頂いておりますが、とりあえず「そういう細かいことをあれこれ深く考えなくとも、ある程度の知識と理解で、いろんな便利命令を呼び出すだけで、手軽に高次元なことが実現できちゃう」のも、またPythonの良さだと思うんですね。

だから「スッキリわかるPython入門」に掲載しているのは、Pythonを使ったどんなキャリアに進むにしても必要となる(身を助ける)内容にフォーカスしてあります。そこだけはしっかりと、ある程度体系的に、でもPythonのよさと楽しさが伝わるよう、ライト&さわやかに。工藤流でいうならば、

「Python使いにはいろんな"未来"がある。その未来について、学びたい時・学ばなければならない時がきたら、その時に先に進めばいいのさ!」

でしょうか。

「厚み」のアイデンティティ

でもまぁ、普通「Python入門書」っていうと、普通はプログラミング言語Pythonを解説している本ですよね。その基準で考えると「Pythonがオブジェクト指向の構文を持っている以上、そこまで入門書の中に含める」のが自然なのですが...

スッキリPythonは、実はPythonという言語自体を解説することを主軸に据えていません。「Pythonを学ぶことで、学び手の方が実現するキャリア」を軸にシリーズ分冊点を設計しています。だから、「Pythonを使うなら万人が学ぶ価値がある内容」の370ページで一冊目が完結し(そして、ここで「さわやか工藤」の役割が終わり)、その続編である「スッキリ機械学習」でガッツリ670ページが続く次第です。

そして、この「分冊点設計の原則(=ソフトウェア設計でいうところの、コンポーネント分界点の設計)」は、スッキリJavaやスッキリCとも共通するものです。

学び手のキャリアにとって有用な単位を分冊点とし、それぞれを疎結合・高凝集に編成する」という設計原則こそが、スッキリわかる入門シリーズの「厚み」を決める理由であって、これに従うとたまたまCとJavaは「ぽっちゃり系」に、Pythonは「スマート&さわやか」になるというだけなのでした。

一見すると、厚みも表紙の色もバラバラなシリーズ各書ですが、「技術自体ではなく、技術の学び手を主軸に」という点は、シリーズのアイデンティティの1つとして、これからも大切にしていけたらと考えています!

最後までお読みいただいた皆様へのお礼


クリックするとダウンロードできます。特設サイト記載の条件に従ってご利用ください。

感謝祭特設サイトでは、その他12種のスタンプを配信しています。

次回スッキリスト秘話(7) 海藤龍範&草薙峰子 は、11月15日(月)配信の予定です。

(11/15追記)公開しました。

スッキリスト秘話(7) 海藤龍範&草薙峰子 編

こんにちは。この秋、帯状疱疹にかかって右のひたいに大きな赤いあざが残ったのに、全く集中力があがる気配がない、スッキリシリーズ著者の中山です。そういえば、幼い頃マジックで「肉」って書いた時も、あまり強く ...

-著者ブログ
-,