見出し画像

公認会計士がシステム本を書くまでのプログラムの学習歴を書いてみた

はじめに

最近どうしてもシステム関連の相談が増えてきたかばにゃすです。
こういう仕事をしてると「元々理系だったんですか?」「前職プログラマーだったんですか?」とか聞かれることもあるけど、ド文系で大学卒業するまではプログラミングの経験はなかったです(Javaの本を積ん読にした記憶アリ・・・。)

ですので、いつプログラミングをどうやって学んだのか、書いてみます。
下記散らしですが、独学する人の参考になればありがたいです。

これまでの経歴

監査法人にいるとき 

この時はプログラミングなんてやった事はありませんでした。
ですが、いい先輩にExcelのショートカットを教わったり、Excelで処理しづらいデータやテーブル状になっていないデータを使いやすく整形する作業などを短時間で終わらせるための方法を試行錯誤したことが、業務効率化のための基本マインドを構築するキッカケにはなったかと思います。

また、この時にVBAを扱おうと思ったりしたのですが、監査業務ってあまり定型的な処理が多くないし、各所でオレオレフォーマットが産まれていたことから、ここにあまり首を突っ込むのは良くないと思い断念。

今だったらデータ分析チーム等で色々やる環境があるかもしれないですが、この時は全然そんな雰囲気じゃなかったので、断念。

やめてから

監査法人を辞めてから、各種ツールやクラウド会計等に触れる機会が増えた
ことで、プログラミングの熱が高まってきた。

丁度素人同然の時に、毛糸さんがPyCPAを立ち上げてくれたことから、一緒に勉強する機会を強制的に作った。
その時は本を読む→ググる→本を読む→ググる(以下無限ループ)であったため、ひたすら修行といった時期だった。

Python入門のような優しい本を一冊読んだところで、じゃあどうやって技術を活用するの?という壁にぶち当たり、なお本を買ったりググったりする。

ググったとしても、前提知識がかなり抜け落ちてるところもあるから、その前提知識をキャッチアップするためにはどうしたらいいか?となる

例えば
「スクレイピングやりたい!」→「あれ、HTTP通信? GET? POST? HTML?」
「API叩きたい!」→「OAuth? アクセストークン? JSON?」
「データ分析したい」→「Anaconda? 環境構築?」
「webアプリ作る」→「サーバー? Apache? Daemon?止まった・・・。デプロイどーすん? 環境変数って?」
「DB触る」→「MySQL?Postgres?」
「BIツール触る」→「Redashってサーバー建てるん? 初期設定しんど。shell触っていかないとアカンのか」

なんて感じに周辺知識を学習するダメでも結構コストが高かったりする。
その都度、専門書を買う→ググる→読む→ググる(以下略)のループになる。

この時期が一番良くわかってなかったし、成長の実感が湧かなかったと思うが、この時期を経ることで、ある程度の基礎スキルを身に着けたられた(気がする)。

アウトプットの時期

上記のように、我流でプログラミングに触れてはいたが、習得速度が低かった(ように感じてた)。
そこで仲良くなったエンジニアにコードを書くときの作法を教わったり、他の人の実践方法をひたすらインプットしつつ写経の日々を過ごす。

それを重ねていくウチに、自分がやりたいものや作りたいものを少しずつ実現することができるようになってきた。
そのタイミングで「下手なりに自分がやってきたことを人がわかるように伝えよう」というモチベーションで産まれてきました。

そこで、自分の経験を活かした勉強会を開催したり、Twitterで発信したり、ネットに記事をあげたりと、色々やってみました。

その中で以下のリンクにある書籍(の同人版)を出版して、自分の学んだ内容の総括をしてみました。

書籍の執筆って不思議なもので、執筆過程で入念に下調べをすることから、普段行っている内容の理解度がすごく高まるんですよね。

学生の卒業論文などは地味だけど、その経験は結構役に立つので、卒論を書かない学生は勿体ないと思うなどしました。

ちなみに本の出版経路ですが、技術同人誌を出したら出版社から声がかかりました。なので世の中に披露してみたら声がかかる可能性もあるわけですね。

1冊目の本がキッカケで、2冊目の本の声もかかったので、とりあえず形にしてみることが出版の近道だと思いました(書くのが大変なんだけど)。

今やっていること

最近はGASはお休み中だけど(仕事では書くけど深く勉強をしてない)、他の分野に関しては勉強をしてます

  • Webスクレイピング

  • Google Analyticsのデータを用いた分析実施

  • Webアプリケーションの構築

  • データベースに関する勉強

  • Wordpress

  • Kaggle

とりあえず、自分が必要なもの・興味あるものをやってみるというスタンスですね(サボってるものもあるけど)

勉強するにあたって大事なこと

色々試行錯誤をして失敗したこともあるけど、今の所は脱素人は出来たんじゃないかという思っております。
そんな中で感じたことは以下の通りなので、もし今後プログラミングをやってみるなら、以下を参考にしてみると良いと思いました。

  • 最初はメジャーな言語を一つ基礎からやってみる。Progateとか初心者とってはすごくオススメ

  • 応用情報等の資格は、直接プログラミングには役に立たないことも多いが、前提知識の習得のためには有用

  • 修行や下積み期間が一番辛いが、20時間は投資する。20時間やれば一定程度の基礎はわかるようになるから

  • 人と一緒にやってみる。仲間との相互監視はとても大事だし、それによりモチベーションをキープすることはできる

  • 教える。教えてもらいたがりは多いけど、教える人は少ない。教える人に人は集まる

さいごに

ここまで読んで頂いてありがとうございました。
4-5年前にはif文すらわからなかったような人間ですが、一応何とかなったりしてます。これから勉強をしたい方の参考になると幸いです。
また、勉強会をやりたい!けど場所がない。って方は、場所提供もするのでご相談ください。

この記事が気に入ったらサポートをしてみませんか?