SlideShare a Scribd company logo
1 of 27
Download to read offline
プ ロ グ ラ ミ ン グ 『 超 入 門 書 』 か ら
見 る P y t h o n と 解 説 テ ク ニ ッ ク
リブロワークス 大津雄一郎
主な著作
http://libroworks.co.jp/
主な編集書籍
プ ロ グ ラ ミ ン グ 入 門 書 は
今 『 超 入 門 書 』 の 時 代 へ
入 門 書 の そ の 下 を め ぐ っ て 、 各 社 し の ぎ を 削 る 時 代 へ
当社が関わった『超入門書』
• 細かい内部事情は出せないが、「ページが短め」「図が多い」「サンプルが短い」
「厳密性や網羅性は重視しない」などの傾向がある。
編 プ ロ か ら 見 る
プ ロ グ ラ ミ ン グ 言 語 雑 感
P y t h o n 、 J a v a S c r i p t 、 C # 、 C / C + +
「Python」はここ数年ブーム
• ここ数年ブーム。2017年には4冊作った
• AIブーム、データ分析ブームが大きい
• 加えてシンプルに書けるので教えやすい
「絵解き本」でも最初にPython
から解説
• 一番シンプルなPython
で概要を説明
3言語を
説明
• 同じ動的型付け言語のJavaScriptは「Pythonと書き方が少し違うだけ」という説明で済む
• 最後にJavaを説明することで、動的型付け言語と静的型付け言語の違いを説明できる
{ }が必要 型が必要
Pythonの弱いところ?
•GUIがあまり作りやすくない……ような?
ライブラリごとに書き方やできることが異なる
• そのため派手なサンプルで読み手の興味を引く手法が使いにくい
「12歳Python」より
• CUI版は3行
import tkinter
# ウィンドウ作成
root = tkinter.Tk()
root.title("リリーにしつもん")
root.minsize(640, 480)
root.option_add("*font", ["MS Pゴシック", 22])
# 画像表示
pimg = tkinter.PhotoImage(file="img3/chap3-back.png")
canvas = tkinter.Canvas(bg="black", width=640, height=480)
canvas.place(x=0, y=0)
canvas.create_image(320, 240, image=pimg)
# テキスト表示
question = tkinter.Label(text="知りたいのは何分かな?", bg="white")
question.place(x=100, y=40)
# テキストボックス表示
entry = tkinter.Entry(width=12, bd=4)
entry.place(x=50, y=133)
# 質問ボタン表示
askbutton = tkinter.Button(text="聞く")
askbutton.place(x=260, y=125)
# 答え表示
answer = tkinter.Label(text="…………", bg="white")
answer.place(x=115, y=235)
# イベント設定
def ask_click():
val = entry.get()
minutes = float(val)
hours = round(minutes/60, 2)
answer["text"] = str(hours) +"時間だね!"
askbutton["command"] = ask_click
# メインループ
root.mainloop()
• GUI版はコメントと空白行を抜いて24行
「JavaScript」はUIが作りやすい
• 2017年に3冊制作(一冊は執筆込み)。需要はあるが棚が狭くなっている?
• UIが作りやすい。他の言語はライブラリごとに作り方やできることが変わってしまう
が、JavaScriptのUIはHTMLなので何ができて何ができないのかが把握しやすい。CSSで
手軽に格好よくできる
• ブラウザがあれば使えて、最近はアプリ作り(Electronなど)用途も広がっている。個
人的に一番よく使う
JavaScriptの弱いところ
• 仕様の変化が激しい。ES2015が普及し始めたので入門
書も作り直さないといけない
「C#」はUnityがすごい
• 2017年に2冊制作(一冊は執筆込み)
• C#というよりUnityがすごい。ゲームだったら頭抜けている。
• Unityの本をプロのゲーム作家さんとの共著で2冊制作したが、物理演算、衝突判定が
コードなしで書けて感動した。マルチプラットフォーム対応もUnity任せでいい。
• 静的型付け言語としては覚えやすい。Javaの経験があればその応用で済む。ただし用
途が狭い気も。
コードなしでかなりのことが
できる
• ボールが落ちる、衝突して跳ね返る 部分まではコード不要
• 基本的にイベント処理の部分だけ書けばいい
「C/C++」は超入門だと厳しい
• 超入門書で採り上げるのは厳しい印象。とにかく他に比べて簡単ではないし、プラッ
トフォーム依存も激しい。
• もはや静的言語が主流の時代ではないので(PythonやJavaScriptを使うためにC/C++の
知識が必要というわけではない)、最初の言語に選ぶ理由があまりない。
• GUIアプリの開発はかなり難易度高い。
• 昔作った「12歳C言語(旧13歳C言語)」
という本では、学習用のツールを作って
初心者対応した。
2010年刊行 2016年刊行
「12歳C言語」より
CLIアプリ程度の難易
度でグラフィック入り
のプログラムを作れる
ツールを用意した
プ ロ グ ラ ミ ン グ 入 門 書 で
使 わ れ る 基 本 テ ク ニ ッ ク
定番テクニック
• 定番テクニックは「図解」と「ステップバイステップ写経」
• 図解のみに注力したのが「絵解き本」
• 過去の著作では「ステップバイステップ写経」メインの本が多い。
図解
メイン
写経
メイン
図解したほうがいいものの例
• スタック(LIFO)とキュー(FIFO)の違いを説明する場合
• 文章のみだと……
➢ 「最初にHが入って、二番目にE、三番目にLが入った場合、最初にH、二番目にE、三番目
にLの順番で出てくるのがキュー」
➢ 「最初にHが入って、二番目にE、三番目にLが入った場合、最初にL、二番目にE、三番目に
Hの順番で出てくるのがスタック」
• 視覚説明を文章で書くのは要注意(小説ではないので)
図にすれば一発で伝わる
L L E H
O
先に入れたデータが
先に出る
キュー(FIFO)
O
L
L
E
H
スタック(LIFO)
L
E
H
O
L
後に入れたデータが
先に出る
IN OUT
IN OUT
ただし図解より大事なこともある
• 図解よりももっと大切なのは「用途・目的」の説明(どういうときに必要なの?)
• これが読者と共有できていないと、手間をかけて図解しても意味がない
• 「何ソレおいしいの?」というツッコミを自分でして答えられるか?
そもそもキュー
やスタックって
何に使うの?
ステップバイステップ写経とは
• 古いやり方(中級者向けなら今でもOK)
– 長いコードをドーン
– 長い説明をドーン
• ステップバイステップ写経
– 短いコードを見せて説明
– ちょっとずつ足して結果を見せて説明
– ちょっとずつ足して結果を見せて説明 ×これを完成まで繰り返す
• 入力しながら試行錯誤を追体験させることで学習効果を狙う
• 説明を分散できるメリットもある(人間が一気に覚えられる情報量には限界あり)
「12歳Python」より
ウィンド
ウを表示
画像を配置
ボタンや
入力ボックス
を配置
イベント設定
移動処理だけだと、障害
物に重なってしまい画面
外にも出てしまう
移動先をチェック
して制限する関数
を作る
わざと失敗例を先に見せる手法
• ステップバイステップと用途
説明のあわせワザ

More Related Content

Similar to プログラミング『超入門書』から見るPythonと解説テクニック

20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meeting20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meetingakikom0819
 
Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話Yoshifumi Yamaguchi
 
WP-D Fes03 Osaka Kitamura Tah
WP-D Fes03 Osaka Kitamura TahWP-D Fes03 Osaka Kitamura Tah
WP-D Fes03 Osaka Kitamura TahTakashi Kitamura
 
WordPressテーマ作成超入門 ver.2018
WordPressテーマ作成超入門 ver.2018WordPressテーマ作成超入門 ver.2018
WordPressテーマ作成超入門 ver.2018Ryo Uozumi
 
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料Yoshiki Shibukawa
 
20100619 wakhok important_of_io_with_jror
20100619 wakhok important_of_io_with_jror20100619 wakhok important_of_io_with_jror
20100619 wakhok important_of_io_with_jrorYoshiharu Hashimoto
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1Masato Fujitake
 
K ruby第一回中国報告
K ruby第一回中国報告K ruby第一回中国報告
K ruby第一回中国報告Kosuke Masumitsu
 
トピックモデルの話
トピックモデルの話トピックモデルの話
トピックモデルの話kogecoo
 
修士の振り返り.pptx
修士の振り返り.pptx修士の振り返り.pptx
修士の振り返り.pptx亮介 西田
 

Similar to プログラミング『超入門書』から見るPythonと解説テクニック (11)

20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meeting20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meeting
 
Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話
 
WP-D Fes03 Osaka Kitamura Tah
WP-D Fes03 Osaka Kitamura TahWP-D Fes03 Osaka Kitamura Tah
WP-D Fes03 Osaka Kitamura Tah
 
WordPressテーマ作成超入門 ver.2018
WordPressテーマ作成超入門 ver.2018WordPressテーマ作成超入門 ver.2018
WordPressテーマ作成超入門 ver.2018
 
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
 
20100619 wakhok important_of_io_with_jror
20100619 wakhok important_of_io_with_jror20100619 wakhok important_of_io_with_jror
20100619 wakhok important_of_io_with_jror
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1
 
20121127 opf3 hasegawa
20121127 opf3 hasegawa20121127 opf3 hasegawa
20121127 opf3 hasegawa
 
K ruby第一回中国報告
K ruby第一回中国報告K ruby第一回中国報告
K ruby第一回中国報告
 
トピックモデルの話
トピックモデルの話トピックモデルの話
トピックモデルの話
 
修士の振り返り.pptx
修士の振り返り.pptx修士の振り返り.pptx
修士の振り返り.pptx
 

More from Takeshi Akutsu

万年ビギナーによるPythonプログラミングのリハビリ計画
万年ビギナーによるPythonプログラミングのリハビリ計画万年ビギナーによるPythonプログラミングのリハビリ計画
万年ビギナーによるPythonプログラミングのリハビリ計画Takeshi Akutsu
 
Stapyの6年~本との出会いから生まれた技術コミュニティ~
Stapyの6年~本との出会いから生まれた技術コミュニティ~Stapyの6年~本との出会いから生まれた技術コミュニティ~
Stapyの6年~本との出会いから生まれた技術コミュニティ~Takeshi Akutsu
 
Start Python Club 2020年活動報告
Start Python Club 2020年活動報告Start Python Club 2020年活動報告
Start Python Club 2020年活動報告Takeshi Akutsu
 
みんなのPython勉強会#59 Intro
みんなのPython勉強会#59 IntroみんなのPython勉強会#59 Intro
みんなのPython勉強会#59 IntroTakeshi Akutsu
 
On the Necessity and Inapplicability of Python
On the Necessity and Inapplicability of PythonOn the Necessity and Inapplicability of Python
On the Necessity and Inapplicability of PythonTakeshi Akutsu
 
Stapyユーザーガイド
StapyユーザーガイドStapyユーザーガイド
StapyユーザーガイドTakeshi Akutsu
 
stapy_fukuoka_01_akutsu
stapy_fukuoka_01_akutsustapy_fukuoka_01_akutsu
stapy_fukuoka_01_akutsuTakeshi Akutsu
 
Python初心者が4年で5000人のコミュニティに作ったエモい話
Python初心者が4年で5000人のコミュニティに作ったエモい話Python初心者が4年で5000人のコミュニティに作ったエモい話
Python初心者が4年で5000人のコミュニティに作ったエモい話Takeshi Akutsu
 
Scipy Japan 2019参加レポート
Scipy Japan 2019参加レポートScipy Japan 2019参加レポート
Scipy Japan 2019参加レポートTakeshi Akutsu
 
Scipy Japan 2019の紹介
Scipy Japan 2019の紹介Scipy Japan 2019の紹介
Scipy Japan 2019の紹介Takeshi Akutsu
 
みんなのPython勉強会 in 長野 #3, Intro
みんなのPython勉強会 in 長野 #3, IntroみんなのPython勉強会 in 長野 #3, Intro
みんなのPython勉強会 in 長野 #3, IntroTakeshi Akutsu
 
みんなのPython勉強会#35 まとめ
みんなのPython勉強会#35 まとめみんなのPython勉強会#35 まとめ
みんなのPython勉強会#35 まとめTakeshi Akutsu
 
モダンな独学の道。そうだ、オープンソースでいこう!
モダンな独学の道。そうだ、オープンソースでいこう!モダンな独学の道。そうだ、オープンソースでいこう!
モダンな独学の道。そうだ、オープンソースでいこう!Takeshi Akutsu
 
We are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python ClubWe are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python ClubTakeshi Akutsu
 
ドコモAIエージェントAPIのご紹介
ドコモAIエージェントAPIのご紹介ドコモAIエージェントAPIのご紹介
ドコモAIエージェントAPIのご紹介Takeshi Akutsu
 

More from Takeshi Akutsu (20)

万年ビギナーによるPythonプログラミングのリハビリ計画
万年ビギナーによるPythonプログラミングのリハビリ計画万年ビギナーによるPythonプログラミングのリハビリ計画
万年ビギナーによるPythonプログラミングのリハビリ計画
 
Stapyの6年~本との出会いから生まれた技術コミュニティ~
Stapyの6年~本との出会いから生まれた技術コミュニティ~Stapyの6年~本との出会いから生まれた技術コミュニティ~
Stapyの6年~本との出会いから生まれた技術コミュニティ~
 
Start Python Club 2020年活動報告
Start Python Club 2020年活動報告Start Python Club 2020年活動報告
Start Python Club 2020年活動報告
 
みんなのPython勉強会#59 Intro
みんなのPython勉強会#59 IntroみんなのPython勉強会#59 Intro
みんなのPython勉強会#59 Intro
 
On the Necessity and Inapplicability of Python
On the Necessity and Inapplicability of PythonOn the Necessity and Inapplicability of Python
On the Necessity and Inapplicability of Python
 
Stapyユーザーガイド
StapyユーザーガイドStapyユーザーガイド
Stapyユーザーガイド
 
stapy_fukuoka_01_akutsu
stapy_fukuoka_01_akutsustapy_fukuoka_01_akutsu
stapy_fukuoka_01_akutsu
 
Python初心者が4年で5000人のコミュニティに作ったエモい話
Python初心者が4年で5000人のコミュニティに作ったエモい話Python初心者が4年で5000人のコミュニティに作ったエモい話
Python初心者が4年で5000人のコミュニティに作ったエモい話
 
Scipy Japan 2019参加レポート
Scipy Japan 2019参加レポートScipy Japan 2019参加レポート
Scipy Japan 2019参加レポート
 
Scipy Japan 2019の紹介
Scipy Japan 2019の紹介Scipy Japan 2019の紹介
Scipy Japan 2019の紹介
 
みんなのPython勉強会 in 長野 #3, Intro
みんなのPython勉強会 in 長野 #3, IntroみんなのPython勉強会 in 長野 #3, Intro
みんなのPython勉強会 in 長野 #3, Intro
 
Introduction
IntroductionIntroduction
Introduction
 
みんなのPython勉強会#35 まとめ
みんなのPython勉強会#35 まとめみんなのPython勉強会#35 まとめ
みんなのPython勉強会#35 まとめ
 
モダンな独学の道。そうだ、オープンソースでいこう!
モダンな独学の道。そうだ、オープンソースでいこう!モダンな独学の道。そうだ、オープンソースでいこう!
モダンな独学の道。そうだ、オープンソースでいこう!
 
LT_by_Takeshi
LT_by_TakeshiLT_by_Takeshi
LT_by_Takeshi
 
Orientation
OrientationOrientation
Orientation
 
Introduction
IntroductionIntroduction
Introduction
 
We are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python ClubWe are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python Club
 
ドコモAIエージェントAPIのご紹介
ドコモAIエージェントAPIのご紹介ドコモAIエージェントAPIのご紹介
ドコモAIエージェントAPIのご紹介
 
S28 t0 introduction
S28 t0 introductionS28 t0 introduction
S28 t0 introduction
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

プログラミング『超入門書』から見るPythonと解説テクニック