文系こそプログラミング

「文系だからプログラミングができない、プログラミングに抵抗がある」と思ってらっしゃる方も多いでしょう。
しかしながら、プログラミングは言語。
文系こそプログラミングです。

L1003574

※カフェにて Leica M10

プログラミングは理系かどうか

プログラミングは、理系のものというイメージがありますが、決してそうではありません。
じゃあ、パソコンは理系のものかというとそうでもなく、文系でも使うでしょう。

プログラミングも文系だからできないというわけではありません。
そもそも文系・理系というくくりが正しいかどうかという問題もあります。

私の場合は、数学がちょっと好きな文系であったのは事実ですが、微分積分とか苦手で理科は大嫌い、苦手にしていました。
(昔、ドローン検定を受けたとき、物理の問題が多く出て必死で勉強しました。一応合格しましたが。)。

暗算も電卓も苦手です。
(税理士業は、Excelがあるので計算は問題ありません)

最後に就職した公務員から今まで、プログラミングをしているのは効率化の武器として考えているからです。
文系だからやらないと考えていたら、効率化はできなかったでしょうし、今もできないでしょう。
時間がなく、ブログも書いてなかったでしょうね。

今は、 Excelマクロ、Python、GAS(Google Apps Script) そして RPA を日々使っています。

そもそもプログラムとは、一例を示すと次のようなのです。

Sub Task_Sort() 'タスクをソート
    

    'ソート条件クリア
    Worksheets("task").ListObjects(1).sort.SortFields.Clear
    
    'ソート条件設定
    Worksheets("task").ListObjects(1).sort.SortFields.Add Key:=Range("a9")  '記号
    Worksheets("task").ListObjects(1).sort.SortFields.Add Key:=Range("b9")  '日付
    Worksheets("task").ListObjects(1).sort.SortFields.Add Key:=Range("k9")  '終了時刻
    Worksheets("task").ListObjects(1).sort.SortFields.Add Key:=Range("d9")  '時間
    Worksheets("task").ListObjects(1).sort.SortFields.Add Key:=Range("f9")  'タスク

    'ソート実行
    Worksheets("task").ListObjects(1).sort.Header = xlYes
    Worksheets("task").ListObjects(1).sort.Apply
    
    '次のタスク
    If Range("k10") = "" Then
       Range("k10").Select
    Else
        Range("k" & Range("e9").End(xlDown).Row).Select
    End If
    
    ThisWorkbook.Save
    
    
End Sub

毎日使っている、「タスクを並べ替える」という Excel マクロのプログラムです。
これだと英語だらけで抵抗があるかもしれません。
しかしながら、その「英語」は、文系理系というものは関係ないものです。

そして、これも毎日使っている「音声認識入力したものを自分好みに置換する」というGAS(ガス。Googleのプログラミング言語)です(一部)。

function voiceinput() {

//ドキュメントのテキストを読み取る
  var doc = DocumentApp.getActiveDocument();
  var text = doc.getBody().getText(); 

//置換のパターンーーーーーーーーーーーーーーーーーーーーーーーーーーーー
  //認識できないもの
  var text= text.replace(/一日一新/g,'1日1新');
  var text= text.replace(/平和/g,'令和');
  var text= text.replace(/一つ/g,'1つ');

  var text= text.replace(/SWITCH/g,'Switch');
  
  //漢字→ひらがな
  var text= text.replace(/素早く/g,'すばやく');
 var text= text.replace(/大抵/g,'たいてい');
  var text= text.replace(/諦/g,'あきら');

  //キー
  var text= text.replace(/コントロールプラス/g,'Ctrl+');
  var text= text.replace(/コントロールC/g,'Ctrl+C');  
  var text= text.replace(/オルト/g,'Alt');

  //読点
  var text= text.replace(/(.)\n/g,'$1。\n');
  
  //置換結果を出力。Ctrl+Enterで開く
  Logger.log(text);

}

こう見ると日本語も混じっているので抵抗は多少減るでしょうし、文系理系どちらともいい難いものです。

 

プログラミング「言語」

そもそもプログラミング言語という表現をするとおり、プログラミングには、さまざまな言語があり。用途に合わせて使い分けるというものです。

言語であるなら、それこそ文系理系は関係ありません。
むしろ言葉を使ってパソコンに伝えるということでいえば文系向きと考えることもできるでしょう。

理系の方は普通にプログラミングすることが多いかもしれませんが、文系の方はさほどそうではないような気がします。
これは非常にもったいないことかなと。

プログラミングすることによって効率化でき、パソコンのソフトのしくみがわかるというメリットもあります。
ソフトのしくみがわかっていると、応用が利きますし、新しいものにも躊躇しなくて済むのです。
私が多少なりともパソコンソフト関係に抵抗がないのは、プログラミングをやっていたからということも大きな影響があります。

何かを理解するには言語化というものが欠かせないものであり、プログラミングもそのひとつです。
パソコンソフト、サービスを言語化するというのがプログラミングであり、言語化ということを、あえて科目でいうと国語と英語になります。
これらは文系理系関わらずやるものです。
(書く仕事や話す仕事も国語です)。

アウトプットは、勉強に欠かせないもの。
プログラミングを「手を動かすアウトプット」と考えると、やはりパソコンの勉強にプログラミングは必要です。
「手を動かす」は手書きである必要はなく、タイピングも含んでいます。

実際、税理士試験の勉強は、ほぼタイピングしていましたので。

手で書かないと覚えられないのか。IT活用の考え方と税理士試験をWord・Excelで合格した話。 | EX-IT

Excel マクロ=英語、Python=スペイン語、GAS=フランス語

プログラミング言語の中でどういったものをやればいいかは、以前こちらの記事にも書きました。

プログラミングの使いどころ。Excelマクロ(VBA)、GAS、RPA(UiPath)。 | EX-IT

日々使っているExcelに関連する、Excel マクロが最もなじみやすいのではないかと思っていますが、どれから始めても問題ありません。
どれから始めても複数の言語をやっておくとより理解が深まります。

言語という視点で見れば、Excelマクロは英語のような位置づけで、Python はスペイン語、GASはフランス語というイメージです。
あくまでイメージですが。

では RPA はどうか。
私は RPA もプログラミング言語と位置付けており、プログラミングをやるのであれば最初にやってもいいかなと思ってます。
(言語も一部使います)

ExcelのセルA1に100を入れるプログラムを、それぞれの言語で書くとこんな感じです。
(GASは Google スプレッドシート です)。

Excel マクロ

 

Python

GAS

RPA(UiPath)

 

それぞれ違いがあり、やはり最もシンプルなのはRPA(UiPath)ですが、これだけをやっていると応用は効かないので、RPA+もう1つの言語があったほうがいいでしょう。
そうなると、Excelマクロかなと。
これらのプログラムを書き始めるまでも壁があり、簡単さからいうと、Excelマクロ→GAS→RPA→Pythonです。
Excelマクロは、原則Excelしか効率化できないという欠点がありますが、その分シンプルに使えます。
RPAは本来コストがかかるというデメリットがありますが、小規模事業者(売上5億以下)なら無料で使えるUiPathがあります。
『税理士のためのRPA入門』に「かんたん」と書かなかった理由 | EX-IT

プログラミングを理系だと考えずに、言語という位置づけで文系の方も挑戦してみていただければ。
パソコンに強くなりたいという方も、パソコンに強くなってからプログラミングをやるのではなく、プログラミングをやることでパソコンに馴染んでいくということもできますので、早いうちに挑戦してみることをおすすめします。

複数言語を1つのセミナーで実践するものも企画中です。

 

 



■編集後記

昨日、自宅でプロフィール写真撮影。
ストロボ、背景をセットし、カメラの設定をして、妻にお願いしています。
自分で自分を撮れないので。
今、選定中です。

 

「1日1新」

イオン 自転車売り場

 

■娘(2歳)日記

昨日は自転車を見に。
いいのがなく、買えませんでしたが。
欲しがるのですが、試してみるとちょっと怖がります。