Python | 隣IT https://tonari-it.com IT活用で「働く」の価値を上げる! Thu, 03 Nov 2022 11:43:24 +0000 ja hourly 1 https://wordpress.org/?v=6.8.5 https://tonari-it.com/wp-content/uploads/favicon-100x100.jpg Python | 隣IT https://tonari-it.com 32 32 ノンプログラマーがPythonで何をやればいい? https://tonari-it.com/voicy-what-should-a-non-programmer-do-in-python/ Fri, 04 Nov 2022 23:45:04 +0000 https://tonari-it.com/?p=37817 ノンプログラマーがPythonで何をやればいい?

みなさん、おはようございます!タカハシ(@ntakahashi0505)です。

こちらの記事は、タカハシが音声メディアVoicyの「スキルアップラジオ」にて放送した内容から、ピックアップしてお届けします!

今回のテーマは、ノンプログラマーがPythonで何をやればいい?です。

#71 ノンプログラマーがPythonで何をやればいい? | タカハシノリアキ「『働く』の価値を上げるスキルアップラジオ」/ Voicy - 音声プラットフォーム
Voicyは、厳選されたコンテンツを"ながら聴き"できる音声の総合プラットフォームです。応募通過率5%の審査を経たパーソナリティの声を中心に、メディアによるニュースや企業の人柄までも伝わるオウンドメディアなど、あらゆる音声放送が楽しめます。

なお、以下で実際にお聴きいただくこともできます!

では、よろしくお願いいたします!

ノンプログラマーがPythonで何をやればいい?

今日は、ノンプログラマーがPython(パイソン)で何をやればいいかという話をしていきます。

Pythonとは、本職のプログラマーにも人気のプログラム言語です。

人気の理由は2つあります。

文法がシンプル

誰が書いても比較的同じ書き方になりやすいし、かつ、こう書こうねという書き方の指針が公式から発表されていて、みんながある程度それに従って書いています。つまり結果みんなが読みやすいというメリットがあります。

豊富なライブラリ

開発者の皆さんが独自のライブラリを公開できるしくみがあって、一流の開発者たちによるAI・機械学習、データサイエンス、Web開発などさまざまな分野の先端のライブラリを公開してくれていて、利用できます。それらを利用することで、たくさんのコードを書かずともさまざまなことが実現できるようになっています。

何でもPythonでやればいいということにはならない

ただ、ライブラリが豊富で何でもできるからといってノンプログラマーにマッチしているか、そうとも限らないということです。

例えば、職場でExcelをよく使うのであれば、VBAのほうが直接的に操作ができるんです。当然PythonでもExcelを操作するライブラリはありますが、ExcelにVBAのエディタが含まれているし、VBAを学ぶための学習教材も豊富です。

なので、わざわざPythonを使う理由は、とても特別な時を除き一般的には多くないと思います。

Googleのサービスをよく使うのであれば、Google Apps Scriptというプログラム言語が最有力候補になります。

Pythonでスプレッドシートを操作するライブラリはあるんですけれど、使うのにいくつかの認証周りで準備が必要ですし、GASのほうが圧倒的に楽です。

そんな理由から、なんでもかんでもPythonでやればいいという話にはなりません。

ノンプログラマーがPythonを使う検討をするケース

一方で、ノンプログラマーがなぜPythonでプログラミングをするのかという質問をよく受けるのでまとめておきたいと思います。

スクレイピング

1つめはスクレイピングです。プログラムによってWebサイトからデータを収集してくることです。

大量のデータをwebサイトから取得したいとき、同じwebサイトから毎日など定期的にデータを取得したいときは、プログラミングをしておくと便利です。

スクレイピングに必要なことは2つあります。

  1. WebサーバーからWebページのデータを取得する
  2. Webページのデータから欲しいデータだけを抽出する

このいずれの操作もとても使いやすいライブラリがPythonには用意されていて、ノンプログラマーにも学習しやすいし使いやすいです。

スクレイピングはVBAやGASでもできなくもないのですが、多くの場合Pythonのほうが、コード量がかなり少なく済みますし、やりやすいと思います。

なので日々の業務としてWebスクレイピングが多く発生するような人には、Pythonは良い選択肢になると思います。

データを処理・分析する場合

もう一つはデータを処理・分析する場合です。

Excelとスプレッドシートどちらかを使うかという話になります。

スプレッドシートだと、ひとつのスプレッドシートあたりに使用できるセルが1000万セルと決まっています。そもそも、そんなに使い切ることはあんまりないですが、何万という行数になってくるとけっこうスプレッドシート自体が重くなるし、GASで自動化してデータを処理しようとしても、実行時間6分の壁があって、6分超えると止まってしまいます。なので通常はたくさんのデータ量を処理し切れないわけです。

そういうときはスプレッドシートやGASをあきらめてPythonを使うことになります。その場合、Google ColaboratoryというGoogleが提供しているクラウド上のIDE(統合開発環境)を使って、Googleドライブ上のデータについてPythonプログラミングができます。

一方で、Excelはある程度のデータ量にも耐えられることが多いですし、分析ツールやPower Queryなどのツールもそもそも同梱されていて充実しています。

なので、データ処理・分析の内容によっては、そのままExcelを使ったほうが直接的でいいということも多いです。

ただ、データ処理・分析の内容によっては、Excelの基本機能では足りなくなることがあるので、そういうときはライブラリが充実しているPythonのほうが有利なケースも出てきます。

メリット・デメリットを見極めながら選択していくことになると思っています。

実務で使えるかどうかでPythonを学びましょう

まとめますと、Pythonはとても人気で、ライブラリが豊富でいろいろなことができる魅力的な言語です。

ただ、何でもできるからといってノンプログラマーにマッチしているか、そうとも限らないんです。

というのも、実務で使えないと、プログラマ的には学んで実践する機会が少なくなってきますので、まずそこを見極めましょう。

例として、「スクレイピング」や「データの処理・分析」でスプレッドシートやExcelなどではあまり有利ではないケースでPythonを使っていただくことになるかなと思います。

まとめ

ということで、今日はVoicy「スキルアップラジオ」の放送から「ノンプログラマーがPythonで何をやればいい?」をお届けしました。

タカハシのVoicyの放送はこちらからお聴きいただけます。

チャンネルのフォロー、コメント、SNSでのシェアなどなど、楽しみにお待ちしております。

では、また。

Voicy - 音声プラットフォーム
Voicyは、厳選されたコンテンツを"ながら聴き"できる音声の総合プラットフォームです。応募通過率5%の審査を経たパーソナリティの声を中心に、メディアによるニュースや企業の人柄までも伝わるオウンドメディアなど、あらゆる音声放送が楽しめます。
]]>
ノンプロ研講師が語る!プログラミング習得の最速ロードマップ https://tonari-it.com/nonpro-programming-road-map/ Tue, 23 Nov 2021 23:45:57 +0000 https://tonari-it.com/?p=36850 road-map

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

「ノンプログラマーのためのスキルアップ研究会」は、ノンプログラマーがプログラミングをはじめとするITスキルを学び合うコミュニティです。

さて、初心者ノンプログラマーにとってどういう道のりで学習を進めるのが良いのか…悩みますよね?

そこで、先日の定例会。

テーマは「プログラミング習得のロードマップ」ということで、ノンプロ研の講師を務めるみなさんに「今だったらこういう手順で学習進めるな~」というのを教えていただきました。

題して、「ノンプロ研講師が語る!プログラミング習得の最速ロードマップ」。今回はその開催レポートをお送りしていきますよ!

ちなみに当日の様子は以下、Togetterのツイートまとめもご覧くださいませ。

ノンプロ研定例会Vol.52「ノンプロ研講師が語る!プログラミング習得の最速ロードマップ」
プログラミングスキルはお仕事において絶大な威力を発揮します。ただ、それなりの学習時間をかけないといけないのが、やや難点…そんなあなたのために、ノンプロ研講師まで務めるお三方が『今の自分だったら絶対にこうやって学ぶ!』プログラミング習得の最速...

では、行ってみましょう!

umeさんの最速Pythonロードマップ

トップバッターは、Python講座の講師を務めてくださっているumeさん

ロードマップの前に、モチベーションや勉強の効率が大事とのことで、まずそのお話から。

モチベーションと

モチベーション、勉強の効率について、良い状態にする考え方を得るには、以下「Learn Better」という書籍がおすすめです。

木を伐るにはまず斧を磨くことから、というわけですね。

私も愛読してまして、良書です!

モチベーションに関しては、自分の感情と向き合うこと、低くなったときには行動を変えることなどの作戦を教えていただきました。

勉強の効率については、ノンプロ研でよく言われる「教えることは2度学ぶこと」を紹介。

教えることで足りない知識に向き合わなければいけない、責任が伴うなどの理由により、一層の学習になります。

umeさんのロードマップ

まず、umeさんご自身がたどってきたロードマップに関して紹介いただきました!こちらです。

umeさんのロードマップ

ご紹介いただきながら、以下のようなTIPSをいただきました。

  • 基礎を学ぶには講座が最適
  • 動画学習は振り返りが難しいのでブログにまとめておく
  • Pandasなどのライブラリは深いので書籍がおすすめ
  • 公式ドキュメントを読めるようにしよう
  • 2言語目の学習は、1言語目の理解を強化する

Python習得ロードマップ

それを受けての、umeさんオススメのPython習得ロードマップはこちらです。

Pythonロードマップ

0→1の基礎がためは、初心者Python講座と拙著「Pythonプログラミング完全入門」を紹介いただきました。

その後、APIの学習と中級以上の知識獲得のためにUdemyの以下教材がおすすめとのことでした。

Takushiさんの最速VBAロードマップ

つづきまして、初心者VBA・中級VBAの講師を担当してくださっているTakushiさん

VBAに特化したロードマップを教えてくださいました!

VBA習得ロードマップ

Takushiさんは、書籍10冊くらい、ノンプロ研の初心者講座、中級講座、ExcelとAccessのVBA Expertの取得、VBA100本ノック、YouTubeを使って学習されてきました。

その中で、今紹介するなら…ということで、作成いただいたVBA習得ロードマップはこちらです。

VBA習得ロードマップ

ポイントとしては、「動いているからOK!」を無くすこと、そのために早めに体系的な学習をするのが大切とのことでした。

6つのステップ

紹介いただいたロードマップは以下のとおり全6ステップ

  1. ノンプロ研初心者VBA講座
  2. 書籍「ExcelVBAを実務で使い倒す技術」
  3. VBA100本ノック 1~10問
  4. ノンプロ研中級講座
  5. 書籍「パーフェクトExcelVBA」
  6. VBA100本ノック 11~20問

考え方としては、基礎をノンプロ研講座と書籍で身につけ、応用をVBA100本ノックで身につけるということです。

VBA100本ノックというのは、サイト「エクセルの真髄」と連動したTwitter企画で、100問の質問とその回答・解説を得られるという素晴らしい企画です。

VBA100本ノック:マクロVBAの特訓|エクセルの神髄
VBAを習得するには実戦あるのみ。書籍を読んだり、WEBページを見ているだけでは自分のものになりません。知識だけでは実戦で使いこなせません。実際に書いて動かす。VBA100本ノックを通して自分のものにしてください。

正直、よくこの企画できるな…と思います。

また、拙著も2冊ともご紹介いただきました。ありがとうございます!

Yamaguchiさんの最速GASロードマップ

最後は、GAS講座の講師を担当してくださっているYamaguchiさんのプレゼンです。

Yamaguchiさんは感染症専門医で、お仕事の現場でGAS、VBA、Rなど幅広い技術を活用されています。

Pythonも学ばれていらっしゃいますね。

Yamaguchiさんは、GASに関して、ノンプロ研の中級講座を受けられていて、その後に初心者講座を受けるという異例の順番で学習されていました。

初心者講座にはTIPSが散りばめられているので「それでも意味があります!」と断言いただきました。

GAS習得ロードマップ

Yamaguchiさんが紹介するGAS習得のロードマップはこちらです。

GAS習得ロードマップ

ノンプロ研初心者講座、ノンプロ研中級講座、そしてオブジェクト指向プログラミングという順番で、拙著GAS本を手元に置いておくとのこと。

侍たちのイラストは「実践」を意味されていて、マンネリ化するくらい書きまくったほうがいいとのことです。

GAS学習のおすすめ書籍

GAS学習のおすすめ書籍については、以下ご紹介いただきました。主に中級までで使用する書籍がこちらですね。

オブジェクト指向に関しては、ノンプロ研全体としても模索中ではありますが、以下の書籍がおすすめです。

プログラミング上達のコツ

プログラミング上達のコツについては、ノンプロ研講座でも使用している以下8つの約束に触れていただきつつ、さらに追加の4つについて紹介いただきました。

上達のコツ

  1. 楽しくやろう
  2. リソースをつっこもう
  3. 手を使おう
  4. 仕事をつくろう

「手を使おう」というとこでは、以下すばらしいお言葉いただきました。

すぐに手をあげないとワクワクの熱量はどんどんさがっていく

そう、ぜひ、どんどん手を上げていただければ!

まとめ

以上、「ノンプロ研講師が語る!プログラミング習得の最速ロードマップ」のレポートをお送りしました。

講師陣のみなさん、ロードマップとたくさんの素晴らしいノウハウをありがとうございました。

これから学習をはじめるノンプログラマーのみなさんの道標になればうれしく思います!

「ノンプログラマーのためのスキルアップ研究会」について

コミュニティ「ノンプログラマーのためのスキルアップ研究会」では、毎月の定例会や勉強会、Slackでのやり取りを通して、皆さんのプログラミング学習の質やモチベーションを高めるための活動をしています。 過去の活動については、以下のページをご覧ください。
  1. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2017-2018)
  2. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2019)
  3. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2020)
  4. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2021)
  5. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2022)
ぜひ、皆様のご参加をお待ちしております!
コミュニティ「ノンプログラマーのためのスキルアップ研究会」についてのお知らせ #ノンプロ研
ノンプログラマーがVBA・GAS・Pythonなどのプログラミングを学ぶコミュニティ「ノンプログラマーのためのスキルアップ研究会」が絶賛活動中です!本ページはコミュニティの情報発信をしていく特集ページです。
]]>
「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート https://tonari-it.com/nonpro-python-perfect-guide-book-stores/ Mon, 09 Aug 2021 23:45:04 +0000 https://tonari-it.com/?p=36473 Python本POP02

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

いよいよ「Pythonプログラミング完全入門」(通称「ノンプロPython本」)が発売されました!

今回も「書店さま行脚」します!

(先日、「GAS本 [第3版]」で行ったばかりではあるのですが汗)

「詳解!Google Apps Script完全入門[第3版]」でもやるよ!都内の大型書店の行脚レポート
いよいよ発売されました、「詳解!Google Apps Script完全入門[第3版]」。今回も都内の大型書店を中心に15店にうかがってきましたので、その行脚レポートをお送りします!

ということで、「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポートです。

行ってみましょう!

池袋エリア

ジュンク堂書店 池袋本店

私がもっとも信頼しているといっても過言ではない、ジュンク堂池袋本店さま。

とにかく品揃えが豊富なので、欲しいものが間違いなく手に入ります。

コンピューター書は6階ですね。

さて、ノンプロPython本はバッチリ展開いただいてました!

というか、その前に7/22と最速で先行入荷されていて、ツイートいただいてました。すごい。

ジュンク堂書店 池袋本店
東京都豊島区南池袋2-15-5

三省堂書店 池袋本店

続いて、池袋駅直結の三省堂書店 池袋本店さまへ。

西武百貨店の書籍館、コンピューター書は4階です。

ノンプロPython本は、バッチリ面陳列いただいてました。

三省堂書店 池袋本店
東京都豊島区南池袋1-28-1

新宿エリア

紀伊國屋書店 新宿本店

つづきまして、新宿へ。

紀伊國屋書店 新宿本店さまは駅地下から直結。

こんな暑い日は、地下移動で行けるの本当に助かります。

コンピュータ書は4階です。

ノンプロPython本は、なんと2面出し!すごい!

ていうか、7/25からすでにこの状態で展開いただいていたんですね…ありがたい…!

そして、おうかがいした後にもツイートいただきました!

うれしい…!

紀伊國屋書店 新宿本店
東京都新宿区新宿3-17-7

ブックファースト 新宿店

新宿駅の西口へグルっと回って、「モード学園コクーンタワー」の地下、ブックファースト新宿店さまへ。

コンピュータ書は地下2階のGゾーン。

ノンプロPython本は、Python棚の一番下に面出しいただいてました~

よし、帰ろ…と思ったら、入ってすぐの特設コーナーにも…!

Pythonはたしかに特設コーナーで展開されていることも多いので、こういうチャンスもあるのか…なるほど~

ブックファースト 新宿店
東京都新宿区西新宿1-7-3 モード学園コクーンタワー 地下1階・地下2階

渋谷・品川エリア

MARUZEN&ジュンク堂書店 渋谷店

つづいて、MARUZEN&ジュンク堂書店 渋谷店さまへ。

東急百貨店の7階にあるドドーンと広い書店さんです。

ノンプロPython本、POP掲載いただきました!

MARUZEN&ジュンク堂書店 渋谷店
東京都渋谷区道玄坂2-24-1 東急百貨店本店7階

くまざわ書店 品川店

そして、品川へ。

くまざわ書店 品川店さまは、港南口のインターシティ2階にありますね。

とても大きいというわけではないですが、コンピューター関連の棚はしっかり面積あります。

ノンプロPython本、けっこう減ってる感じです…!

というか、先月もうかがったので、店員さん私のこと覚えてくださって「この本もなんですね!」と。

そうなんですよ~

くまざわ書店 品川店
東京都港区港南2-15-2 品川インターシテイ-2F

有楽町エリア

三省堂書店 有楽町店

そして、初日の最後は有楽町の三省堂書店 有楽町店さまへ。

駅前の交通会館、コンピューター書は2階です。

コンピューター棚はそれほど広くないのでいつもドキドキですが…

ありました!面出し!

よかった…!

三省堂書店 有楽町店
東京都千代田区有楽町2丁目10−1 東京交通会館 1・2F

東京・日本橋エリア

紀伊國屋書店 大手町ビル店

2日目は、大手町から。

紀伊國屋書店 大手町ビル店さま。

こちらも駅直結で、暑さを感じることなく行ける…助かります。

ノンプロPython本は平積み、残り3冊!

紀伊國屋書店 大手町ビル店
東京都千代田区大手町1丁目6−1 大手町ビル 1F

丸善 丸の内本店

つづいて、地下を東京駅方面まで歩いて、丸の内オアゾ内の丸善 丸の内本店さまへ。

おそらく東京でもっとも巨大な書店さまです。

コンピューター本は3階。

ノンプロPython本は、新刊コーナー平積み&Python棚面出し!

うれしい…!

丸善 丸の内本店
東京都千代田区丸の内1-6-4 丸の内オアゾ1階~4階

八重洲ブックセンター 本店

さらに、東京駅の八重洲南口方面へ。

八重洲ブックセンターさまです。

コンピュータ書は3階です。

ノンプロPython本、バッチリありました。

八重洲ブックセンター 本店
東京都中央区八重洲2-5-1

丸善 日本橋店

日本橋方面へ歩きまして、日本橋駅直結の丸善 日本橋店へ。

コンピュータ書は3階です。

ノンプロPython本、平積みいただいてました~

丸善 日本橋店
東京都中央区日本橋2-3-10

秋葉原エリア

書泉 ブックタワー

秋葉原に移動して、まずは書泉 ブックタワーさまへ。

コンピュータ書は3階です。

書泉さまも、7/21から先行販売されていました。いつもツイートくださるので、うれしいです。

私がうかがうと、さっそくPOPを掲載いただきました。

書泉ブックタワー
東京都千代田区神田佐久間町1-11-1

有隣堂 ヨドバシAKIBA店

秋葉原駅直結ヨドバシの7階にあります、有隣堂 ヨドバシAKIBA店さまへ。

ノンプロPython本、ありました!

というか、すでにPOPが…!!

有隣堂 ヨドバシAKIBA店
東京都千代田区神田花岡町1-1 ヨドバシAKIBA7F

御茶ノ水・神保町エリア

丸善 お茶の水店

御茶ノ水駅向かいにある、丸善 お茶の水店さま。

こちらも、そこまで巨大な書店さまというわけではないのですが…

ノンプロPython本、面陳!

POPもさっそく掲載いただきました。

丸善 お茶の水店
東京都千代田区神田駿河台2-8 瀬川ビル1階~2階

三省堂書店 神保町本店

そして、2日目ラストは三省堂書店 神保町本店さまへ。

昔このあたりの職場で働いていたので、ずーっとお世話になってます。

コンピュータ書は5階です。

ノンプロPython本は、特設コーナー平積み&Python棚面出しでした!

三省堂書店 神保町本店
東京都千代田区神田神保町1-1

まとめ

以上、「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポートをお送りしました。

書店の皆さま、お忙しい中ご対応いただきまして、ありがとうございました!

さて、VBA、GAS、Pythonと3つの言語について、私が書くべき書籍は世に送り出すことができました。

次に何を書くかはまだ何も決まっていないですが、学びながら、発信しながら、徐々に見えてくると思います。

また、そのときは拙著を手にとっていただけるとうれしいです。

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。
  1. ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
  2. ノンプログラマーがプログラミングを最強の武器とする方法(前編)
  3. ノンプログラマーがプログラミングを最強の武器とする方法(後編)
  4. Pythonで得られる新たな「働く」の体験
  5. ノンプログラマーがPythonを選ぶべき理由
  6. Pythonを身につけるために必要なこと
  7. 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
  8. 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
  9. 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート
]]>
本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開 https://tonari-it.com/nonpro-python-perfect-guide-book-conclusion/ Sun, 01 Aug 2021 23:45:49 +0000 https://tonari-it.com/?p=36425 write

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

さて、本記事を執筆しておりますのが2021/08/02、いよいよ本日「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」(通称ノンプロPython本)が発売されます。

今回、出版をお願いしております技術評論社さまのご厚意により、当ブログにこのノンプロPython本のあとがきを全文掲載しても良いと許諾をいただきました。

まだ、本書をご覧になっていらっしゃらない方も多いと思いますが、著者としては書き終わっているので「おわりに」の気分なのであります。

本書の発売に際して、どのような思いを持っているのかを書かせてもらってますので、ぜひご一読くださいませ。

ということで、本記事では「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のおわりに全文をお送りします。

では、行ってみましょう!

おわりに

本書をご覧になった皆さんのうち、一部または多くはこう思われるかもしれません。

 「ノンプログラマーなのに、ここまで本格的に学習をする必要があるのか?」

オブジェクト、クラス、メソッド、モジュール、シーケンス、イミュータブル、ミュータブル、マッピング、イテラブル、ジェネレーター…などなど、Pythonの世界は知らない横文字のオンパレードです。

ノンプログラマーはプログラミングが本職ではありませんし、学習時間も限られています。ですから、難しい専門的な概念や文法、コードの意味について理解をせずとも、Webや書籍のコードをコピー&ペーストまたはその組み合わせで、やりたいことを実現するほうが効率いいという意見もあるでしょう。

しかし、そのようなノンプログラマーがつぎはぎと寄せ集めで作成したコードは、しばらく時間が経つとどうなるでしょうか。

いつの日か、何らかの理由でエラーが発生したり、業務が変更になってコードも変更する必要性が出てきたりしても、誰も対応ができません。ゆくゆくは使われなくなるでしょう。

誰かが残したコードについてプロに助けを求めても、「読み解くのがとてもたいへんだから見合わない」と断られてしまうこともありえます。それを見たプロは、ノンプログラマーがプログラミングをすべきではないと感じてしまうかもしれません。

せっかくコードを作成しても価値にはならずに、むしろ負債になりえてしまうのです。

しかし、学習で得た知識とスキルは永続的に価値を生み出します。プログラマーはもちろん、ノンプログラマーにとっても、それが真実です。

本書は、ノンプログラマーが実務向けのいくつかのツールを開発できるとともに、公式ドキュメントやプログラマー向けの書籍を読めるようになるのをゴールとしています。急な坂道ではありますが、それを登りきった皆さんは、そのゴールに到達できたはずです。エラーの解決やメンテナンスをすることができ、新しい情報を得たり、調べたりしながら、さらに新しいものを生み出し続けることができます。

Pythonの世界は、一流のプログラマーが活躍する最先端の領域と地続きです。彼らの仕事のいくつかは、GitHubをはじめオープンな場でも、そのようすを目にすることができます。同じレベルに到達するのは難しいにしても、その発展しつづける輪の中で、刺激を浴びながら一緒に学び続けることはできます。それは、とてもワクワクすることではありませんか?

さて、本書はわけあって執筆開始からとても多くの期間を要してしまいました。このチャンスを形にし、出版までたどり着かせてくださった編集部の皆さんには感謝しかありません。

また、いつも優しく楽しく支えて続けてくれている家族に、日々ともにワクワクする学習の場をつくってくださっている「ノンプロ研」の皆さんに、そして技術の発展に貢献してくださっているすべての皆さんに、あらためて感謝いたします。

「おわりに」の後に思っていること

今回、単著としては、はじめてPythonの書籍を上梓することができました。

VBAやGASとの大きな違いは、「おわりに」にも記述しているとおり、一流のプログラマーが活躍する最先端の領域と地続きであるという点です(もちろん、VBAやGASの世界にも一流のプログラマーはいらっしゃいますがPythonほど多くはいらっしゃいません)。

これまで日本では、ITで何か新しいことを生み出すのはプログラマーの仕事であり、それ以外の職種の人たちはそこに責務を負うことがなくてもよい、という世界でした。

しかし、この「ソフトウェアが世界を飲み込んでいく時代」が到来した今、そうは言ってられません。

私の指名は、以下のようにして、分断されたプログラマーとノンプログラマーの垣根をできるだけ取っ払って、双方の「働く」の価値を高めることです。

  • プログラマーがこれまで蓄積してきた知識・ノウハウをノンプログラマーに届けること
  • ノンプログラマーがプログラマーの皆さんと協働できるように教育、支援すること

本書が、数ある日本語Python書籍の中で、このような役割を少しでも果たしてくれることを願っています。

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。
  1. ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
  2. ノンプログラマーがプログラミングを最強の武器とする方法(前編)
  3. ノンプログラマーがプログラミングを最強の武器とする方法(後編)
  4. Pythonで得られる新たな「働く」の体験
  5. ノンプログラマーがPythonを選ぶべき理由
  6. Pythonを身につけるために必要なこと
  7. 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
  8. 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
  9. 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート
]]>
書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します https://tonari-it.com/nonpro-python-number-of-characters/ Tue, 27 Jul 2021 23:45:39 +0000 https://tonari-it.com/?p=36414 nonpro-python

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

さて、本記事を執筆しておりますのが、2021/07/28。あと数日後の08/02に「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」が発売となります。

すでに先行販売でいくつか(というか多くの)書店様などでは、販売されているようです。

さて、本書以外に3冊の単著を執筆していきましたが、それぞれどれだけ文字数と時間がかかったのかをレポートしてまいりました。

ExcelVBA本を一冊書くには、どれだけの文字数と、どれだけの時間が必要だったか
書籍「ExcelVBAを実務で使い倒す技術」が発売されました。今日は発売記念ということで、本を一冊書くのに、どれだけの文字数を、どれだけの時間をかけて書いたのか、晒したいと思います。なかなか過酷です。
GAS本を書き上げるのに、どれだけの文字数書いて何時間かけたのか
「詳解!GoogleAppsScript完全入門」が発売されることになりました。この記事では本書を書き上げるのに、どれだけの文字数書いたのか、またどれだけの時間をかけたのか、ババンと晒したいと思います。
書籍「パーフェクトExcel VBA」で書いた文字数とかかった時間を晒します
2019/11/25に「パーフェクトExcel VBA」が発売されます。3冊目の著作となった本作。この記事では、それを書き上げるのに、どれだけの文字を書いて、どれだけの時間をかけたのか、晒していきます。

ということで、今回もそれにならって、本書「Pythonプログラミング完全入門」を書き上げるのに、どれだけの文字を書いて、どれだけの時間をかけたのか晒します。

では、行ってみましょう!

「Pythonプログラミング完全入門」にかけた時間と書いた文字数

では、早速ですが「Pythonプログラミング完全入門」の各パートでかかった時間と文字数にまとめました!

内容 ページ数 文字数 開始日 終了日 時間数
はじめに 2 1405 2019/08/25 2019/08/26 0:30:00
1章 Pythonを学び始める前の準備をしよう 22 18625 2019/08/25 2019/10/17 54:45:00
2章 Pythonを学ぶ環境を作ろう 42 14403 2019/08/27 2019/10/29 10:00:00
3章 Pythonプログラムの基本を知ろう 17 11131 2019/08/28 2019/12/25 25:45:00
4章 フロー制御について学ぼう 20 12740 2019/12/25 2020/01/02 9:15:00
5章 データの集合について学ぼう 42 27182 2020/01/03 2020/01/21 34:45:00
6章 プログラムを部品化しよう 61 46463 2020/01/21 2020/02/26 31:00:00
7章 Excelにデータを集めるツールを作ろう 33 24390 2020/02/27 2020/03/11 23:15:00
8章 Excelレポートを更新するツールを作ろう 26 18178 2020/03/12 2020/03/24 13:30:00
9章 Pythonを動かすインターフェースを作ろう 48 24732 2020/03/25 2020/04/02 24:15:00
10章 スクレイピングツールを作ろう 50 33531 2020/04/02 2020/04/17 22:15:00
11章 ブラウザを操作してスクレイピングをしよう 30 21028 2020/04/20 2020/04/30 73:00:00
12章 画像を加工するツールを作ろう 29 18548 2020/04/30 2020/05/10 10:30:00
13章 QRコード生成ツールを作ろう 22 13110 2020/05/11 2020/05/16 1:00:00
14章 PDFを操作するツールを作ろう 42 30671 2020/05/17 2020/06/06 1:00:00
15章 ZIPファイルを展開・圧縮するツールを作ろう 16 13118 2020/06/08 2020/06/14 17:00:00
16章 Jupyter Notebookでノートブックを作ろう 51 30596 2020/06/15 2020/07/02 27:45:00
Column 4 2603 2021/05/28 2021/05/28 1:30:00
おわりに 2 1207 2021/04/09 2021/04/09 2:00:00
初校 2020/10/07 2021/04/05 49:30:00
再校 2021/05/17 2021/05/28 22:30:00
三校 2021/06/09 2021/07/21 6:30:00
合計 559 363,661 461:30:00

他の書籍と比べると、こんな感じになります。

書籍名 ページ数 時間数 文字数 時間あたり文字数
Excel VBAを実務で使い倒す技術 292 343:25:00 138450 403
詳解!Google Apps Script完全入門 464 396:24:00 185469 468
パーフェクトExcel VBA 576 558:30:00 317622 569
Pythonプログラミング完全入門 528 461:30:00 363661 788

かけた時間について

今回は、461時間でした

営業時間換算では、57.6日ということで、だいたい3か月弱といったところでしょうか。

書いた文字数について

36万文字…めちゃめちゃ文字数が増えていますね。

さすがに、本編としては「パーフェクトExcel VBA」より文字数が多いというのは考えづらいのですが。。。

もしかしたら、8章以降、同じコードを最初と最後に掲載していることが関係しているかも知れません。

書いた期間について

さて、今回注目すべきは期間です。

上記の表をご覧いただくと、1章の執筆を開始したのは2019/08/25。なんと2年前です。

そして、16章の執筆を終えたのが2020/07/02。1年前。

次の手順であるべき初校が完了したのが、2021/04/05…実に9か月もありますね。

実は、この間、出版社さんが変わるという出来事がありました。

そのおかげもあり、執筆開始から出版まで、2年もかかってしまいました。

この出来事については次の節で詳しくお伝えします。

「売れる」と「学べる」のはざま

本書については、2019年から執筆を開始し、順調とは言えないにしても、1章ずつ書き上げ、1年かけて16章まで執筆をしました。

次の段階で初校というチェックの段階に入るのですが、ここに来てはじめて当時の編集さんから以下のようなコメントがありました。

  • すべてのソースコードのステートメントにそれを説明するコメントを入れて欲しい
  • たとえば「イミュータブル」のような専門用語を使わないで欲しい
  • 本書は本職プログラマー向けを意識するのも手だと思っている
  • 読者を「甘やかす」「成果を出せない」というのは本位ではないが、出版社としては何かしらかのバランスをとらないといけない

その出版社さんの中では「売れる」メソッドとして、そういうやり方が重要だと共有されているのかも知れません。

しかしながら、書籍は、少なくともプログラミング書は学習のためのものですから、その学習効果をスポイルするような意見は承知できません。

そもそも、ターゲットを変えるなどというのは、企画書の根本からひっくり返るような話です。1年かけて16章まで書き上げた段階で(しかも、各章完了時点で随時提出をしていたにも関わらずです)話す内容ではないのです。

ということで、何度か話し合いを重ねましたが「売れる」と「学べる」のはざまを埋められないと判断し、その出版社さんからの出版は断念しました。

個人的には、今までなかったような新たな価値のあるものを、きちんと売れるように仕掛けるのが本来のプロデュースという仕事なのではないかと思います。

信頼できる出版社さまにお声がけ

その後、信頼できる出版社さんのいくつかにお声がけさせていただき、本書は見事、技術評論社さまから出版できることになりました。

原稿に関しては、執筆完了から本質的な内容変更はせずにOK…ありがたし…!!

ノンプログラマー向けに、しかし読者におもねることなく、本気でPythonを学ぶ機会として提供できればという想いをこめた本書の企画に、ご賛同いただいた技術評論社さまには、深く深く感謝します。

しかし、その期間中にPython自体、Anaconda、その他各種ライブラリでアップデートがありましたので、その点は原稿も手を入れる必要がありました。

今、ノンプログラマー向けPython書籍を出す理由

ノンプログラマー向けPython書籍でいうと、昨年夏以降は「ExcelをPythonで操作」が大ブームとなっていました。

しかし、今ではやや下火になっているように見受けられます。

その理由は色々と挙げられますが、ノンプログラマーだからこそ、子供だましではなく、もっと本気度が必要なのです。

本書はタイミングとしてはそのブームに乗ることができなかったわけですが、本当のブームはこれからやってきます。

ノンプログラマーもDXやデータサイエンスの領域に踏み込まざるを得なくなっていくからです。

本書は、本気でPythonに入門し、そして今後武器とするための基礎を固められる書籍になっています。

ぜひ、来るデジタル時代の備えの武器として本書をご活用いただければ幸いです。

まとめ

以上、本書「Pythonプログラミング完全入門」を書き上げるのに、どれだけの文字を書いて、どれだけの時間をかけたのかについてお伝えしました。

毎回書籍執筆は苦しい想いをしましたが、今回はまた新たな別のパターンの苦しみでしたね。

著者を目指す皆さんには、こういうこともあるということで、ぜひ備えとしてこの知見をどこか片隅に入れておいていただければと思います。

しかし、こうして世に出せて本当にありがたく思います。

ぜひ、多くの方の手に届き、きちんとした学びに結びついていただければうれしいです。

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。
  1. ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
  2. ノンプログラマーがプログラミングを最強の武器とする方法(前編)
  3. ノンプログラマーがプログラミングを最強の武器とする方法(後編)
  4. Pythonで得られる新たな「働く」の体験
  5. ノンプログラマーがPythonを選ぶべき理由
  6. Pythonを身につけるために必要なこと
  7. 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
  8. 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
  9. 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート
]]>
祝出版!新ノンプログラマー向け書籍をまとめて一挙紹介します https://tonari-it.com/nonpro-books-2021-summer/ Mon, 26 Jul 2021 23:45:20 +0000 https://tonari-it.com/?p=36410 book-door

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

「ノンプログラマーのためのスキルアップ研究会」は、ノンプログラマーがプログラミングをはじめとするITスキルを学び合うコミュニティです。

さて、この夏はノンプロ研で初の「技術書典11」に参加し、2冊の書籍を販売するとともに、7/6に「詳解! Google Apps Script完全入門[第3版]」、8/2「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」と、拙著が立て続けに出版されたりと、ノンプログラマー向け新書籍まつりでありました。

そこで、今回の定例会では「祝出版!新ノンプログラマー向け書籍をまとめて一挙紹介します」と題してお送りしました。

本記事はそのレポートとなります。

ちなみに当日の様子は以下、Togetterのツイートまとめもご覧くださいませ。

ノンプロ研定例会Vol.48「祝出版!新ノンプログラマー向け書籍をまとめて一挙紹介します」
7月には、技術書典で2冊の技術同人誌が、またタカハシの書籍も2冊が出版予定となっています。そこで、今回はそれら書籍を一挙紹介します!

では、行ってみましょう!

『4,000円とPCだけで始められるマイコン入門』ご紹介

トップバッターは「4,000円とPCだけで始められるマイコン入門」を執筆された@Hirocom7772さん。

マイコンを学ぶハードルをぐっと下げてくれた「Grove Beginner Kit For Arduino」と本書の内容について紹介いただきました。

ノンプロ研ではVBA、GAS、Pythonなどのプログラミング言語を学ぶ人が多いですが、身の回りにはたくさん「マイコン」があるのにあまりフォーカスされない…

そこで、部活「電子工作部」や、本書を通して、マイコンについて学ぶ機会を提供くださっています。

皆さんからは「夏休みの課題に良さそう!」というコメントもちらほら…確かに!

技術同人誌を出版 Outlook VBA本

つづきまして、「エクセルVBAerのためのOutlook VBA入門」を執筆された@MasazaneKunoheさん。

今回は、技術同人誌の挑戦の経緯から実際の出版までの道のりをリアルにお伝えいただきました!

もともと、「技術書典10」あたりから何か執筆されたい…と希望されていたそうで、ノンプロ研の「技術ライティング講座」が技術書典に通じるということで、入会&講座受講いただきました。

なぜ「Outlook VBA」をテーマとして選んだのか、書籍執筆の「光と闇」、Twitterのみなさまからの熱いサポートなど、体験された本人にしか語れない、珠玉の体験談でした。

お二人の後に続く方がたくさん出ていらっしゃるとうれしいです。

GAS本と俺のGAS歴

次は、ノンプロ研でGASの講師も担当された、@etau0422さん。

詳解!Google Apps Script完全入門 [第3版]」(通称GAS本)を踏まえて、GAS初学者が取り組むべきことを教えていただきました。

こちらです。

  1. 本書をポチる
  2. すべてのコードを写経して実行ログを確認する
  3. スニペットツールを活用する
  4. 他人のコードをしっかり読む
  5. 過去のコードをリファクタリングする
  6. 講座に参加する
  7. ペアプロ・みんプロに参加する
  8. TA・講師をする
  9. オブジェクト指向化を目指す

以下5番目までが主に初心者向けですね。etauさんはマストとおっしゃっていました。

6番目以降は、アドバンスドだそうですが、ノンプロ研内で機会提供もありますし、ぜひ職場でもトライいただきたいです。

ノンプロPython本紹介

最後は、Pythonの講師を担当された、@Hotta3216さんから、「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」についてがっつり紹介いただきました!

本書のおすすめポイントとして以下いただきました。

  1. ノンプログラマーが身につけるべきPythonの基本文法が網羅されている
  2. ダブルクリック起動で使いやすいツールが作れる
  3. PDF操作が地味に便利

ありがとうございます!

それとは別におもしろポイントも教えていただきました。

  1. データ型の説明が進むごとに行が増える比較表
  2. 実践編では最初に完成形のコードを紹介
  3. 「何でもPythonでやれというわけではない」と何度も言及

たしかにw

ちなみに、ページ単価で考えると6.7円と、本書はかなりお得のようです。

まとめ

以上、定例会「祝出版!新ノンプログラマー向け書籍をまとめて一挙紹介します」のレポートをお送りしました。

みなさん、素敵な発表ありがとうございました!

私個人、これまで何冊かノンプログラマー向けの書籍を上梓してきたわけですが、書ける数も内容もほんとうに限定的です。

しかし、こうしてノンプロ研の皆さんから、魅力的な書籍が出てくるようになってきたというのは、ノンプログラマーにとってとても意義のあることですし、とてもワクワクしますね。

この良い取り組みが、良い状態で持続できるよう頑張ってまいります!

「ノンプログラマーのためのスキルアップ研究会」について

コミュニティ「ノンプログラマーのためのスキルアップ研究会」では、毎月の定例会や勉強会、Slackでのやり取りを通して、皆さんのプログラミング学習の質やモチベーションを高めるための活動をしています。 過去の活動については、以下のページをご覧ください。
  1. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2017-2018)
  2. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2019)
  3. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2020)
  4. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2021)
  5. コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2022)
ぜひ、皆様のご参加をお待ちしております!
コミュニティ「ノンプログラマーのためのスキルアップ研究会」についてのお知らせ #ノンプロ研
ノンプログラマーがVBA・GAS・Pythonなどのプログラミングを学ぶコミュニティ「ノンプログラマーのためのスキルアップ研究会」が絶賛活動中です!本ページはコミュニティの情報発信をしていく特集ページです。
]]>
Pythonを身につけるために必要なこと https://tonari-it.com/nonpro-python-perfect-book-1-5/ Fri, 23 Jul 2021 23:45:21 +0000 https://tonari-it.com/?p=36366 ノンプロPython1章連載用

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

来る2021/08/02に、拙著「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」(通称「#ノンプロPython」本)が発売となります。

今回、出版をお願いしております技術評論社さまのご厚意により、当ブログに「本書の第1章を全文掲載しても良い」と許諾をいただきました。

ということで、本シリーズでノンプロPython本の第1章「Pythonを学びはじめる心構えを整えよう」をお送りしております。

前回の記事はこちら。

ノンプログラマーがPythonを選ぶべき理由
「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」が発売になります。本記事では、本書(通称ノンプロPython本)の第1章から「ノンプログラマーがPythonを選ぶべき理由」を抜粋してお送りします。

今回はそのつづき、「Pythonを身につけるために必要なこと」です。

では、行ってみましょう!

習慣にすること

Pythonは初学者にもやさしく作られているのは前述の通りですが、それでもノンプログラマーが適当にトライしてなんとかなる代物ではありません。ノンプログラマーは時間も環境も不足していますから、Pythonをものにしてその価値を高めるためには、限られた時間を、効果的に活用する心構えと、それに伴う行動が必要になります。そのいくつかの心構えについて見ていきましょう。

まず、ノンプログラマーがプログラミングを学ぶ上で、もっとも大事なことは学習を習慣にすることです。多くの場合、本書のような書籍を購入したり、Webサイトやオンラインサービスにアクセスして、いきなり学習をはじめてしまいますが、そのスタートの仕方は危険です。

なぜなら、プログラミングを身につけるためには、大量の学習時間が必要だからです。一般的にプログラミング技術を身に着け、ある程度活用ができるようになるまで200~300時間が必要と言われています。それを知らずに学習を開始した場合、なかなか習得ができないと感じてしまうため、「自分には向いていない」と挫折をしてしまうのです。しかし、実際は向き不向きが原因ではなく、学習時間の不足に原因があることのほうが圧倒的に多いのです。

図は、週あたりの時間によって、習得に必要とされる200~300時間にどれくらいの期間で到達するかを算出したものです。概算ではありますが、習得したい時期から逆算した場合に、どれくらいのペースで学習をすればよいかの参考になります。

学習頻度と必要期間

週末に数時間ずつ学習時間をとったとしても、200時間に達するためには50週、100週という期間が必要になります。月になおすと1~2年もかかってしまいます。何年も活用ができないもののために、ずっとモチベーションを保って学習を続けるのは困難です。

つまり、プログラミング技術を身につけるためには、学習のペースを上げて、毎日のように学習する習慣を作る必要があります。表1-1から読み取れるとおり、1日1時間でも少し不安が残るくらいなのです。

まず、学習を始める前に、日々の生活を見返して学習の習慣作りの計画をしましょう。おすすめは、仕事をはじめる前の朝の時間です。1時間早めに家を出て会社やカフェで学習をする、加えて帰宅後や週末に時間をとれば、比較的早い段階での習得の道筋は見えてきます。

実務で活用すること

実務で活用できるかどうかはノンプログラマーがプログラミングの学習を習慣化する上でたいへん重要です。

プログラマーであればプログラミングが仕事ですから、業務時間内にプログラミングをするのは当たり前です。一方で、ノンプログラマーはプログラミング以外に本業があります。ですから、業務時間内にプログラミングをするのは、わずかな時間であっても困難な場合が少なくありません。そうなると、業務時間外に学習時間を捻出しなければならず、そのことがノンプログラマーのプログラミング学習を困難にしている1つの要因となっています。

しかし、本業に役立つプログラミングであれば、業務時間内に携われる可能性が出てきます。図の円グラフにあるように、実務の中で「実現したいこと、かつ実現できそうなこと」をいち早く見つけて、業務時間を充てられるようにすることは非常に重要です。

1日のスケジュールのサンプル

習得までの期間を短縮できますし、学んだことが実務の役に立つのはモチベーションを
高めます。さらに、業務の効率化により時間を生み出すことができますので、その時間を新たなチャレンジに回すといった生産性アップの良いスパイラルに入ることを期待できます。

しかし、プログラミング学習の最初の段階では、プログラミングの考え方や文法などの基礎的な内容ばかりです。数学の教科書を思い出してください。「これが、何の役に立つのだろう」と思っていた方も多いと思いますが、プログラミングも同様です。初期の段階ほど、実務では使えない、または実務で使えるイメージが沸かないが、学習をしなければいけない期間となります。ノンプログラマーにとっては、この厳しい期間を乗り越えることを、いきなり試されることになります。

それを乗り越えるための、本書の活用の方法をお伝えしておきます。

まず、学習をはじめる前に、本書の7章以降をざっと眺めていただいて、Pythonでどのようなツールが作れるかのイメージを焼き付けておくと良いでしょう。また、6章までの基礎の部分では、「これは実務のツールづくりではどのように役に立つのかな」と業務に関連付けながら学習を進めましょう。一方で、業務時間内では「この作業はPythonで効率化できるかな」という視点で業務に取り組んでみてください。このように、学習内容と自分のことの関係性を意識することを「関連付け」といいます。関連付けられた記憶は定着しやすいので学習効率もよくなることが期待できます。

これらを参考に、初期段階を勢いよく乗り切りましょう。そして、実務で使えるような簡単なツールが作れるようになったのであれば、途切れなく次の「実現したいこと、かつ実現できそうなこと」を見つけてトライしていけるのが理想です。

常に情報収集をすること

お伝えした通り、PythonはOSSであり、そのプログラミング言語としての魅力も相まって、優秀な開発者が活発に開発を行っています。また、それにより豊富なライブラリが提供されていて、私たちはその恩恵にあずかることができます。

しかし、開発が活発であり、豊富なライブラリが提供されていることによるデメリットもないわけではありません。それだけアップデートが速いので、それについて行かなければならず、選択肢が豊富にあるので「目利き」が必要になるということです。

たとえば、Python3.6から「フォーマット文字列」という書き方が使えるようになりました。
以下の「formatメソッド」と「フォーマット文字列」のコードをご覧ください。現時点では、コードの意味はわからなくてよいので、それぞれぱっと見た印象がどのようなものかを確認してみてください。

formatメソッド

a = 123
print('{}'.format(a))

フォーマット文字列

a = 123
2 print(f'{a}')

「formatメソッド」に比べると「フォーマット文字列」のほうが、文字数や使われている記号の種類も少ないですよね。これらのコードは、いずれも同じことを実現するものですが、Pythonが重視している「シンプルさ」を追求してバージョンアップした結果、新たな書き方が使えるようになったのです。

このようなバージョンアップが頻繁に行われています。ですが、それを採用し続けるためには、新しい情報をキャッチして、過去に得た知識をアップデートしなければいけません。

もうひとつ、例を示しておきましょう。HTTP通信を行う「requests」(リクエスツと読みます)というパッケージがあります。このパッケージはとても人気があり、本書でも紹介するものです。

ただ、Pythonのパッケージ管理サイトPyPIで「requests」を検索すると、図1-9のように「requests」「requests2」「requests3」という3種類が出てきてしまいます。
どれを使うべきでしょうか?

PyPIで「requests」を検索した結果

大きい数字のほうが新しい、一般的にはそのように考えますし、実際にそうであることも多くあるのですが、実はこのケースでは数字が振られていない「requests」を使っておくのが良い選択といえます。

現時点では、皆さんがその判断するのは困難なので、わからなくても気にする必要はありません。ただし、Pythonとその能力を十分に引き出して、良い活用をしていくのであれば、より良い選択は何か?という視点を常に持ち続ける必要があり、いつの日かは自身で情報を取得し、判断をする力を身につけなければなりません。

読みやすいコードを書くこと

Pythonは「Readability counts.(読みやすさが重要)」とあるとおり、「コードの読みやすさ」を重視しています。なぜ、コードの読みやすさが重要なのでしょうか?

まず、Pythonで作成したプログラムは完成したらそれで終わりではありません。業務が変わればプログラムを修正する必要性が出てくるかもしれませんし、機能を追加したり改善をしたりといったニーズも生まれます。さらに、前述のとおりPython本体やパッケージのアップデートによるコードの改変もあり得ます。そのときに、読みやすいかどうかは、それらの作業の効率に大きく影響します。

また、他の人が見る可能性もあります。作成したプログラムを他の誰かが参考にしたり、引き継いだりすることがあるかもしれません。また、チームで開発運用をするケースも当然あります。普通の人であれば、他の人が書いた解読に時間がかかるコードは読みたくないものです。

つまり、読みやすいコードであれば、速く理解し、速く改変し、速く再利用することができるのです。コードを書き残したとき、それらが読みやすいのであれば改変や再利用がしやすい資産であり、逆に読みにくいのであれば苦労して保守しなくてはいけない負債となります。その差はたくさんのコードを書けば書くほど出てきます。

Pythonはその言語仕様として、誰が書いてもなるべく読みやすいコードになるように作られています。しかし、それでもコードの書き方によって読みやすさの差は出てきます。

簡単な例として「コードの読みやすさA」と「コードの読みやすさB」のコードを比べてみてください。コードの意味はわからなくてもかまいませんが、これらはいずれも同じ処理を実現するものです。ぱっと見た印象を確認してください。

「コードの読みやすさA」

a = input('>')
b = int(a)
c = b + 1
for d in range(1, c): print(d**2)

「コードの読みやすさB」

number = int(input('任意の整数を入力してください >')) + 1
for i in range(1, number):
    print(i**2)

後者のほうが、単語やテキストで意味をとれる箇所が多く、読みやすそうと感じるのではないでしょうか。少し学習を進めれば、「B」のほうがはるかに速くその意味を理解できるということがわかると思います。

Pythonでは、私たち全員が統一的で読みやすいコードを書くためのガイド「PEP8」 (ペップエイト)が用意されています。本書でもそれに準拠したコードを紹介します。また、都度読みやすく書くためのポイントをお伝えしますので、読みやすいコードが書けるように意識して学習を進めていきましょう。

アウトプットをすること

学習を進める上で「アウトプット」はとても効果的です。脳はアウトプットした情報を重要なものと認識して、その情報に関する記憶をより定着させ、より取り出しやすい状態にします。

プログラミング学習において基本となるアウトプットは、サンプルコードを自ら入力、実行して、実際に動かすということです。お坊さんがお経を書き写す作業と似ていることから、一般的に「写経」といわれています。手を動かすことで脳の運動をつかさどる機能も活動しますし、実行結果として知識に関連付けることができるフィードバック情報を得ることができます。

また、ノンプログラマーの場合、勉強仲間を見つけることを、強く意識しましょう。どんな勉強をしているのか、どこが難しく感じているのか、どのようなツールを作ろうとしているのかなど、アウトプットをしあえる環境は学習効率を大きく跳ね上げますし、モチベーション維持にも絶大な効果を発揮します。できれば、職場の同僚が理想です。仕事とプログラミングを関連付けてアウトプットをしあえるからです。もし、職場に見つけられなければ、プログラミングを学ぶコミュニティなどを活用するのもおすすめです。

さらに、別のアウトプットの方法としてTwitterなどのSNSやブログで、学習で得た発見や過程を発信するのも良いでしょう。アウトプットの効果はもちろんありますし、多くの人に見られながら学習することは、ほどよい緊張感を生み出します。また、フォロワーが学習を応援してくれたり、補足情報を提供してくれたりといった効果も期待できます。

このように、できることの範囲内でも、少しの工夫の積み重ねで、学習効果を大きく高めることができます。

1章では、ノンプログラマーにとってプログラミングを武器にするメリットとその置かれている学習環境が決して優遇されていないこと、Pythonの特徴と身につけるための行動指針についてお伝えしてきました。

学習が成功するかどうかは、本章の理解とそれに基づいた行動が大きく左右しますので、常に心に留めながら、Pythonの世界へと踏み出していきましょう。

(本書の2章につづく)

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。
  1. ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
  2. ノンプログラマーがプログラミングを最強の武器とする方法(前編)
  3. ノンプログラマーがプログラミングを最強の武器とする方法(後編)
  4. Pythonで得られる新たな「働く」の体験
  5. ノンプログラマーがPythonを選ぶべき理由
  6. Pythonを身につけるために必要なこと
  7. 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
  8. 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
  9. 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート
]]>
ノンプログラマーがPythonを選ぶべき理由 https://tonari-it.com/nonpro-python-perfect-book-1-4/ Thu, 22 Jul 2021 23:45:36 +0000 https://tonari-it.com/?p=36362 nonpro-python-4

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

来る2021/08/02に、拙著「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」(通称「#ノンプロPython」本)が発売となります。

今回、出版をお願いしております技術評論社さまのご厚意により、当ブログに「本書の第1章を全文掲載しても良い」と許諾をいただきました。

ということで、本シリーズでノンプロPython本の第1章「Pythonを学びはじめる心構えを整えよう」をお送りしております。

前回の記事はこちら。

Pythonで得られる新たな「働く」の体験
「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」が発売になります。本記事では、本書(通称ノンプロPython本)の第1章から「Pythonで得られる新たな「働く」の体験」を抜粋してお送りします。

今回はそのつづき、「ノンプログラマーがPythonを選ぶべき理由」です。

では、行ってみましょう!

絶大な人気を誇るプログラミング言語Python

さて、数あるプログラミング言語の中で、なぜPythonを選ぶのかについて考えていきましょう。

プログラミング言語Pythonが生まれたのは1990年初頭。意外にも、もうすぐ30歳を迎えるほどの歴史のある言語です。オランダ出身、アメリカ在住のグイド・ヴァンロッサムが、自らも開発に携わっていた教育用のプログラミング言語「ABC言語」の派生としてPythonを開発したとされています。

Pythonは、もともとはグイド・ヴァンロッサムが愛していたコメディ番組「空飛ぶモンティ・パイソン」がその名前の由来となっていますが、「Python」(つまり日本語では「ニシキヘビ」)がそのアイコンとして使用されています。

そんな長い歴史を持つプログラミング言語Pythonですが、本職プログラマーにとっては、数々のプログラミング言語の中で1、2を争うほど人気の言語となっています。

米国の電気工学技術の学会誌「IEEE Spectrum」が発表した人気プログラミング言語の調査「Top Programming Languages 2020)」では、Pythonが1位となっています。また、「日経xTECH」による「プログラミング言語実態調査(2019)」では、PythonはC/C++に次いで2位にランクインしました。つまり、日本国内での人気も高いということがわかります。

なぜ、これほどまでに人気があるのでしょうか?

Pythonの公式サイト「Python.org」のトップページには、Pythonについてこのように説明されています。

Python is a programming language that lets you work quickly and integrate systems more effectively.

Welcome to Python.org
The official home of the Python Programming Language

直訳的には「Pythonは素早く作業でき、システムをより効果的に統合できるプログラミング言語」となります。

この一文の意味は、Pythonの4つの特徴を確認することで、より深く理解することができます。そして、そのメリットはノンプログラマーにとっても、有益なものだということを確認していきましょう。

なお、この節ではいくつかのPythonのコードが登場しますが、現時点でその内容を理解する必要はありません。Pythonの世界に触れていただくことが目的なので、ぜひ堪能してみてください。

文法がシンプルである

Pythonの最大の特徴は「文法がシンプルである」ということです。

Pythonプログラミングの基本の考え方がまとめられている「The Zen of Python」(Pythonの禅)の一節には、「Simple is better than complex.(単純なものは複雑なものより優れている)」と書かれています。また、ストレートに「Readability counts.(読みやすさが重要)」という一節もあります。

たとえば、「予約語」について見てみると、いかにPythonがシンプルさを重視しているかがわかります。予約語とは、プログラムの命令を記述するために必要な、あらかじめ決められているキーワードのことです。

他のプログラミング言語では、その予約語の数が50以上存在している場合が少なくありません。しかし、Pythonではその数はたった35となっており、もっとも予約語の数が少ない言語の部類に入ります。

別の例として「ブロック構造」を見ていきましょう。ブロック構造は命令のかたまりを表現するためのもので、多くの言語では、その開始から終了までの範囲を示すキーワードや記号を用いる方法が一般的です。

JavaScriptという言語なら波かっこ「{」「}」で表します。

for(var i = 1; i <= 10; i++){
  if(i % 3 == 0){
    Logger.log(i);
  }
}

VBAという言語なら「If」「End If」でその範囲を表します。

Dim i As Long
For i = 1 To 10
    If i Mod 3 = 0 Then
        Debug.Print i
    End If
Next i

一方、Pythonでは、それを「インデント」することで実現します。インデントとは、字下げのことで、命令の冒頭に決められた数のスペースを入れることです。

その分だけ記述する量が減るのはもちろん、必ず決められた分のインデントをしなくてはなりませんから、誰が書いても同じフォルムのコードになるのです。

for i in range(1,11):
    if i % 3 == 0:
        print(i)

つまり、コードが書きやすく、読みやすいということです。だから「作業が素早く」行えます。さらに、それは学習コストが低いというメリットを生み出します。ノンプログラマーにとっては、短い時間で習得が可能という点は大きな助けとなります。なぜなら、その学習時間は限られていて、貴重だからです。

バッテリー同梱

プログラミングの初学者にとって大きなハードルとなるものに「環境構築」があります。

多くの場合、図のようにプログラムを実行する本体だけでなく、コードを記述するためのエディタや、機能を追加するためのソフトウェアなどを個別に入手してインストールをします。OSや実現したいことに応じて、その選択肢が変わってきたり、必要に応じて設定ファイルを変更したりする必要も出てきます。

プログラミング言語の環境準備

環境構築は、そのプログラミング言語について知識がゼロの状態にあるにもかかわらず、それを使うための環境を整えなければいけないわけです。ノンプログラマーにとっては、かなり難易度の高い作業になりがちで、もっとも挫折しやすいポイントのひとつといっても過言ではありません。

その点、Pythonには「バッテリー同梱(batteries included)」という思想があります。

たとえば、電池を使用する家電商品を買ったときに、商品のパッケージに電池が含まれていると、買い手としては助かりますよね。Pythonはそれと同じユーザービリティを提供するということを大事にしています。

ユーザーがPythonを利用しはじめるときには、ひとまとまりにパッケージングされている配布物をダウンロードすることになります。その配布物を「ディストリビューション(distribution)」といいます。ディストリビューションはWindows用、Mac用などが用意されており、その中にはOSに対応したPython本体、エディタ、その他さまざまなソフトウェアがひととおり含まれています。ダウンロード後、ダブルクリックでインストーラーが立ち上がりますので、ノンプログラマーでも慣れ親しんだ手順でインストールを完了することができます。

ディストリビューションによる環境準備

このように、Pythonの「バッテリー同梱」のポリシーは、これからプログラミングに一歩踏み出そうとするノンプログラマーにとって、たいへんありがたいものとなっています。

豊富なライブラリ

Pythonのディストリビューションには、Pythonのプログラムにさまざまな機能を追加するための機能拡張ソフトウェアが多く含まれています。それらの機能拡張ソフトウェアを「ライブラリ(library)」といいます。ディストリビューションには、多くのライブラリが含まれているので、それだけでも多くのことを実現できますが、内容によっては実現できないときがあります。

その際、Pythonには、他の開発者が開発して公開しているライブラリを使用させてもらうという選択肢があります。その開発・公開しているライブラリを「パッケージ(package)」といいます。配布されているパッケージは「The Python Package Index(PyPI) 」(パイピーアイと読みます)と
いうサイトで管理されていますので、覗いてみましょう。

The Python Package Index(PyPI)のトップページ

PyPI · The Python Package Index
The Python Package Index (PyPI) is a repository of software for the Python programming language.

「projects」と書かれているところが、このPyPIで管理されているパッケージの数です。執筆時点では31万以上ものパッケージが管理されていました。

この豊富に提供されているパッケージの中には、先端のプログラマーたちが注目している、機械学習、Web開発、データ分析、IoTといった流行の分野の強力なパッケージが取り揃えられています。それらのパッケージをすぐさま利用できることがPythonの人気を強く支えています。

無料のオープンソースソフトウェア

ノンプログラマーの皆さんは、プログラミング言語は単体の企業が独自に開発するものと考えるかもしれません。しかし、Pythonはそれとは異なる手法で開発が進められています。

Pythonは非営利団体である「Pythonソフトウェア財団(PSF) 」が中心となって「オープンソースソフトウェア(OSS)」として開発が行われています。

Welcome to Python.org
The official home of the Python Programming Language

OSSというのは、そのソースコードが公開されていて、世の開発者はそれを自由に閲覧、使用、配布、改変をすることができるソフトウェアのことです。利用者は、それを無料で使用できますし、自由にカスタマイズもできます。また、外部の開発者の目に触れる機会が多いことから、迅速な問題の発見やフィードバックを得ることができるという利点もあります。

Pythonの人気とその成長は、シンプルで扱いやすい言語であるということに加えて、オープンな環境で世界中の開発者が、利他の精神を持って関わっているということにより支えられています。そのことを知ると、より一層魅力を感じますよね。

(つづく)

Pythonを身につけるために必要なこと
「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」が発売になります。本記事では、本書(通称ノンプロPython本)の第1章から「Pythonを身につけるために必要なこと」を抜粋してお送りします。

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。
  1. ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
  2. ノンプログラマーがプログラミングを最強の武器とする方法(前編)
  3. ノンプログラマーがプログラミングを最強の武器とする方法(後編)
  4. Pythonで得られる新たな「働く」の体験
  5. ノンプログラマーがPythonを選ぶべき理由
  6. Pythonを身につけるために必要なこと
  7. 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
  8. 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
  9. 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート
]]>
Pythonで得られる新たな「働く」の体験 https://tonari-it.com/nonpro-python-perfect-book-1-3/ Wed, 21 Jul 2021 23:45:16 +0000 https://tonari-it.com/?p=36356 nonpro-python-3

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

来る2021/08/02に、拙著「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」(通称「#ノンプロPython」本)が発売となります。

今回、出版をお願いしております技術評論社さまのご厚意により、当ブログに「本書の第1章を全文掲載しても良い」と許諾をいただきました。

ということで、本シリーズでノンプロPython本の第1章「Pythonを学びはじめる心構えを整えよう」をお送りしております。

前回の記事はこちら。

ノンプログラマーがプログラミングを最強の武器とする方法(後編)
「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」が発売になります。本記事では、本書(通称ノンプロPython本)の第1章から「ノンプログラマーがプログラミングを最強の武器とする方法(後編)」を抜粋してお送りします。

今回はそのつづき、「Pythonで得られる新たな「働く」の体験」です。

では、行ってみましょう!

ダブルクリックだけで仕事をはじめる

毎朝仕事場のデスクに座ったら、まず何をされますか?

多くの場合は、PCの電源を入れますね。OSが起動するのを待って、作業に必要なアプリケーションやWebページを順番に開いていくことでしょう。メーラー、Excelファイル、ブラウザとWebページ、チャットツール、PDFやWordなどのドキュメント……私たちは、ひとつの作業を行うたびに、たくさんのアプリケーションやフォルダ、Webページを開いて作業を行います。

その作業が一段落して、別の作業を開始するのであれば、また別のアプリケーションやフォルダ、Webページのセットを開く必要があります。その「セット」を開く手間は、1回あたりは少しの手間かもしれませんが、毎日最低1回から数回以上は行っている見えざるルーチンワークのひとつです。

私が本書の執筆作業を行う場合は、以下のようなアプリケーションやファイルを開いて作業を行っています。

  • 原稿を書く文書作成ソフト
  • 執筆状況を管理する表計算ソフト
  • 原稿や素材を格納するフォルダ
  • 執筆で参照するメモ
  • 挿入する図を作成する図形作成ソフト
  • Pythonプログラムを実行・検証するVisual Studio Code
  • Pythonプログラムを実行・検証するJupyter Notebook

これをひとつひとつ選択したり、クリックしたりして起動するには、けっこうな手順が必要となってしまいます。ただし、私が執筆作業を行おうと思ったときにとる行動は「Pythonファイルをダブルクリックする」これだけです。

この効率化により生み出す時間は、1回あたりでいうとわずかかもしれません。ただ、毎日数分の効率化でも、1年で考えると何十時間という単位になります。時間はとても貴重なのです。

また、このプログラムは簡単なコードで実現できますので、すぐにその開発工数は取り返すことができるでしょう。

このプログラムを実行することで「自分はPythonを学んでいるんだ」ということを、都度認識し直すことができるというのは、このツールを作り、活用する隠れたメリットです。

大量のWebサイトからの情報収集

私がPythonのプログラミング研修を担当させていただいた、とある企業の事例を紹介しましょう。研修を受けていただいたチームは、100を超えるWebサイトから定期的に情報収集をするという業務をする必要がありました。

  1. URLをブラウザに入力してWebページを開く
  2. Webページ上の該当の箇所をコピーする
  3. コピーした内容をExcelファイルにペーストする

このような作業を100回以上行うのです。素早く作業をして1つのサイトを3分でこなしたとしても、全体で5時間もかかってしまいます。人間ですから操作ミスにより、正しくないデータをコピーすることもあるかもしれませんし、マウスを持つ右手は腱鞘炎に悩まされるかもしれません。

また、Webサイトの構造はそれぞれ違いますから、コピーをすべき「該当の箇所」は、Webサイトごとに異なります。業務に慣れている担当者であれば、経験からすべてのWebサイトから目指すデータを収集できますが、新しい担当者には操作手順を教えたり、マニュアルを整備したりする必要が出てきます。

考えただけでもうんざりする業務ですよね。

そのチームに、3か月間のPythonプログラミング研修を受けていただきました。どのような効果があったでしょうか。

その担当者の該当業務の手順は以下のとおりになりました。

  1. Pythonのプログラムを起動する
  2. 10~20分後に完成したExcelファイルとログをチェックする

5時間もかかっていた業務が、たったの20分で完了するようになりました。しかも、その20分間はコンピューターが働いているので、担当者自身は別の作業をしていても、打ち合わせをしていても、休憩をしていても良いのです。

そのチームは、さらに「欲張り」でした。この学んだPythonプログラミングの技術について、社内研修を開催し、他部署に伝授をすることをはじめました。これにより、社内でPythonを使いこなす人材がさらに増えました。「教えることは2度学ぶこと」ですから、そのチームの知識やスキルもより強固なものになります。

もともとのチームの役割はデータ収集をするというものでしたが、それに加えて自動化・効率化を実現する社内開発およびその教育を行うという役割を担うことができるようになりました。社内での評価は大きく上がったに違いありません。

このように、Pythonを学ぶことはみなさんとそのチームの「働く」にたいへん魅力的な体験と、高い価値をもたらします。これらの体験や価値を味わい、楽しむことは、プログラミングを学び続けるためのモチベーションの維持に大いに貢献します。

(つづく)

ノンプログラマーがPythonを選ぶべき理由
「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」が発売になります。本記事では、本書(通称ノンプロPython本)の第1章から「ノンプログラマーがPythonを選ぶべき理由」を抜粋してお送りします。

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。
  1. ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
  2. ノンプログラマーがプログラミングを最強の武器とする方法(前編)
  3. ノンプログラマーがプログラミングを最強の武器とする方法(後編)
  4. Pythonで得られる新たな「働く」の体験
  5. ノンプログラマーがPythonを選ぶべき理由
  6. Pythonを身につけるために必要なこと
  7. 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
  8. 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
  9. 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート
]]>
ノンプログラマーがプログラミングを最強の武器とする方法(後編) https://tonari-it.com/nonpro-python-perfect-book-1-2/ Tue, 20 Jul 2021 23:45:48 +0000 https://tonari-it.com/?p=36354 nonpro-python-2

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

来る2021/08/02に、拙著「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」(通称「#ノンプロPython」本)が発売となります。

今回、出版をお願いしております技術評論社さまのご厚意により、当ブログに「本書の第1章を全文掲載しても良い」と許諾をいただきました。

ということで、本シリーズでノンプロPython本の第1章「Pythonを学びはじめる心構えを整えよう」をお送りしております。

前回の記事はこちら。

ノンプログラマーがプログラミングを最強の武器とする方法(前編)
「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」が発売になります。本記事では、本書(通称ノンプロPython本)の第1章から「ノンプログラマーがプログラミングを最強の武器とする方法(前編)」を抜粋してお送りします。

今回はそのつづき、「ノンプログラマーがプログラミングを最強の武器とする方法(後編)」です。

では、行ってみましょう!

ノンプログラマーがプログラミングを身につける価値

本職のプログラマーの多くは、コンピューターサイエンスについての高度な教育を受け、職場でも常に先端技術に触れる毎日を送っているわけですから、下手にノンプログラマーがちゃちゃを入れる必要はない、むしろ役に立てず、足手まといになるのでは…という心配もあるかも知れません。

確かに、本職のプログラマーのほうがはるかに高い技術力を持っていて、良いシステムを素早く作ることができるのは確かです。しかし、ノンプログラマーがプログラミングを身につける価値については、技術力とは別のところにも注目するべきです。

前回紹介した「陣屋コネクト」の例を思い出してください。旅館業についてまったく知らないIT企業が、このクラウド型パッケージ商品の発案をすることができたでしょうか? 旅館業を本業・本職としている人材の深い知見や経験があってはじめて、そのひらめきが生み出され、そのニーズに寄り添ったシステムを完成させることができたのです。高い技術力があったとしても、「知らない」ことについては、そのアイデアを生み出すことはできませんし、その当事者が感じている真のニーズを感じることができないのです。

一方で、ノンプログラマーの場合、プログラミング技術はそこそこだとしても、それぞれが本職の分野のプロフェッショナルです。その知見や経験があるポジションからでしか見えない課題やチャンスがきっとあります。プログラミングを学ぶことを通して、この課題はITで実現できるのではないかという発想につながり、その発想がITの得意とする分野なのか、またその実現性についても考えることができます。

高い技術が必要になる場合は、本職のプログラマーの力を借りる局面が出てきます。開発会社を探し出し、実現したいことを伝え、提案された要件や見積を評価するという手順が必要です。ノンプログラマーは、その際の交渉役、通訳として活躍します。

プログラミングの世界は専門用語のオンパレードです。一方で、プログラマーはこちらの業界や事業については、無知であることがほとんどです。お互いの領域についての知識がゼロだとすると、どうしてもそのコミュニケーションに労力がかかります。しかし、事業側にプログラミングの知識や経験をある程度でも持ち合わせている人材がいれば、より本職のプログラマーと円滑にコミュニケーションをとることができるようになります。

さまざまな業種の専門家たちが、それに加えてプログラミングのスキルを掛け算することで、その専門家でないと発想できない新しいアイデアが次々と発案され、実現されていく。国内市場が縮小していくというピンチの中でも、そのようにして新しい産業を生み出すチャンスがあり、挑戦できるというのであれば、ワクワクすることではありませんか。

実務で役立つツールを作ることで学ぶ

それで、実際にプログラミングを学び、キャリアのテコ入れをしていくわけですが、闇雲に行動をはじめてはいけません。「時間」とそのコントロールの重要性の認識が甘いまま進み始めると挫折する可能性がとても高いのです。

日本の労働環境では、時間に対して報酬が発生する、つまり時間とお金が1対1であるという考え方が根強く浸透しています。ですから、従業員として働くという行為は、時間をお金に直接的に変換する行為と認識している人も多くいます。残業をすればその時間数に応じて報酬が増えますし、有給ではない休暇をとればその日数に応じて報酬が減ります。

しかし、これからプログラミングを学び、武器としていくのであれば、時間とお金が1対1であるという考え方は捨てなくてはいけません。直接変換できる金額よりも、時間のほうが圧倒的に貴重です。生活費は稼ぐ必要がありますので、その分は最低限確保する必要がありますが、たかだか20%アップする残業代のために余計に時間を失ってはいけません。

時間をお金へと変換せずに、何に変換するか。それは「スキル」と「さらなる時間」です。

まず、最初のステップはプログラミングスキルを身につけます。序盤の基礎学習の段階では、そのスキルは実務にまったく役に立ちません。しかし、ある程度学習を重ねると、何らかのツールを作れるようになります。そこで、すかさず自らの日々の業務の自動化や効率化を実現するツールの開発を目指してください。さあ、そのツールを活用しましょう。これまで業務にかかっていた時間を短縮して、新たな「時間」を生み出すことができたはずです。

その新たに生まれた時間を活用して、さらに学習を重ね、他の業務も自動化、効率化をしていくことで、さらに時間を生み出します。そして、チームの業務も自動化、効率化をしていきます。周囲の信頼や承認を得ることで、業務時間内でプログラミングに携わり、学べる機会が増えていきます。

ここまでのステップをまとめると以下のとおりです。

  1. 時間を確保する
  2. プログラミングの基礎を学ぶ
  3. プログラミングの基礎をもとに、実務で役立つツールを作る
  4. ツールを活用して生み出された時間で、さらに学習する

プログラミング学習では、なるべく早い段階で3と4の繰り返しのサイクルに入ることがとても重要です。そのためにまず目指すべきツールは、実務で役立つツールであるべきです。実務と直接関係ない「Webサイト」や「スマホアプリ」の開発を目指してしまうと、スキルを磨いても新たな時間を生み出せないため学習時間の確保が難しくなりますので注意が必要です。

本書の目次をご覧いただくと、多くのノンプログラマーが実務に活用できるツールの作例をたくさん用意しています。これらのツールを作って学ぶことで、プログラミングのスキルを学ぶことと、新たな時間を生み出すことを手助けします。

しかし、実際の現場ではカスタマイズしないと、うまく活用できないこともあるでしょう。また一部の処理を流用して、新たなツールを作り出したいということもあるはずです。そのためには、作例コードの一行一行の意味を正しく理解し、思い通りの動作をするように正しいコードに作り変えたり、再利用をしたりする必要があります。

そこで、本書の前半のプログラミング基礎の学習が役立ちます。基礎をしっかり固めておくことで、正しい応用ができるようになります。

そのようにして作例を作ることや、そのカスタマイズを通して、プログラミングスキルを身につけつつ、時間を生み出してください。すべての作例について、作りきった段階であれば、各ドキュメントや書籍、Webの情報を組み合わせて、新たなツール開発にチャレンジする力を身につけていることでしょう。

掛け算で市場価値を高める

その流れの中で、視点としてぜひ持っておいていただきたいのが、自らの専門分野や得意分野とプログラミングスキルの掛け合わせでポジションを見つけることです。

専門分野の世界では、あなたは平均的な知識と経験を持つ、平均的なポジションにいるかも知れません。同じような人材が市場にたくさんいて、需要に対して供給が十分にあるのであれば、その知識と経験を持つ人材の市場価値は高くなりません。

しかし、「この分野の専門知識と経験を持ちながらPythonを活用できる人材」でくくったらどうでしょうか?この掛け算をするだけで、かなり絞られるはずです。お伝えしてきた通り、どの業界でもITが強みであることは有利に働きます。専門分野とITスキルの掛け算に市場ニーズがあり、その人材が限られているのであれば、その市場価値は高くなります。

そして、その掛け算の領域でのポジションを確固たるものとするため、社内だけではなく、SNSやブログなどでアピールをしていきましょう。旗を立てて発信を続けることで、自らの価値をアピールしつつ、強固なものにしていくことができます。

このように、専門分野や得意分野とプログラミングの掛け算をした領域でポジションをとっていきましょう。これで、あなたの市場価値を高めることができます。

ぜひ、今このタイミングから、本書で学ぶこと、プログラミングについて、あなたの専門分野、得意分野について発信をはじめてみましょう。

(つづく)

Pythonで得られる新たな「働く」の体験
「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」が発売になります。本記事では、本書(通称ノンプロPython本)の第1章から「Pythonで得られる新たな「働く」の体験」を抜粋してお送りします。

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事

書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。
  1. ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
  2. ノンプログラマーがプログラミングを最強の武器とする方法(前編)
  3. ノンプログラマーがプログラミングを最強の武器とする方法(後編)
  4. Pythonで得られる新たな「働く」の体験
  5. ノンプログラマーがPythonを選ぶべき理由
  6. Pythonを身につけるために必要なこと
  7. 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
  8. 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
  9. 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート
]]>