初心者にプログラミングを教えたら習得に◯◯時間かかった話

  • 2022年10月4日
  • 2023年6月16日
  • Notes

システム開発(プログラミング)を仕事にしようと思う一方で、初心者の状態からどれくらいの期間で習得できるものなのかというのは気になるところかと思います。
もちろん、言語の種類によっては習得期間に違いが出ると思いますが、実際に教えたときの記録が残っていましたので、参考までに公開しようと思います!
学んでつくり終わるまで、どれくらいかかるかの参考としていただければ幸いです
※今回は、とっかかりとして分かりやすいVBAを採用しました。

【初級編】四則演算ができる入力フォーム
教育時間…1時間
作業時間…8時間

【中級編】CSVの内容を、一定の順番で別表に反映させるマクロ
教育時間…1時間
作業時間…24時間

【上級編】CSVに入ってる検索キーワードを基準にグループ毎にまとめ、集計するマクロ
教育時間…1時間
作業時間…48時間

初級編

教育時間…1時間
作業時間…8時間

まず変数とは何か、定数とは何かといったことや、条件分岐、処理の繰り返しなど、基本部分を説明。
その上で、数字を入れて演算記号(+-×÷)を押すと、押した記号に準ずる計算をする処理を書いてもらいました。
—(補足)—
VBAだとフォームもすぐつくれますし、エクセルベースで見た目にも慣れてますから扱いやすいという利点がありますので、プログラミングに対する難しいイメージをなくせると思っていますので、この形をよく採用しています。


その結果、正常処理対応4時間、エラー対応4時間で完成に至りました。
最初は”プログラムを書くこと”で精一杯になるので、正常処理を成り立たせただけでOKとしています。
ただ、ファーストステップとしては十分なのですが、他の人にも使っていただく製品とするのであれば、例外処理が必要になるわけで、それがセカンドステップとなります。
0で割ったらどうなるのか、テキスト入力欄を空欄にして演算記号を押したらどうなるのかということなど、ゲーム感覚で変な使い方をしてみるということをやってもらいます。
“エラー発生=NG”ということではなく、”エラー発生=新たな発見”という感覚になれると、やり易さが増しますね。
※もちろん、リリース後に発生した場合はこうもいかないですが…

ちなみに、人間ダメ出しされて勇気を挫かれると、知らぬ間に落ち込んでいきます。
落ち込むということはパフォーマンスが発揮しにくくなることに直結しますので、非常にもったいないです。
初心者の方も入って仕事をするというときには、関わり方や、言葉遣いにも配慮しながらやっていきましょう。

中級編

教育時間…1時間
作業時間…24時間

ここではCSVとは何かということからスタートしました。
データを提供されるときによく見かけるフォーマットではありますが、言葉としては知っているものの、実際のところどういうつくりになっているのかまでは知らない人が多いと思っています。
データがカンマ区切りで入っていること、データの並び(データレイアウト)が一定であることなど、CSVの基本を伝えた上で、そのデータをどうやって処理していくかを考えてもらいました。

VBAでやると分かりやすいのは、どこにデータをまとめるかがイメージしやすいところ。
例えば、売上個数のデータをA列に置いていくとか、体格データを振り分けるにあたり、170センチの人はAシートに、180cmの人はBシートに出力するとか…
ここに出力すればいいというのが目で見て分かるので、配列の概念を考慮したデータの整理方法や処理方法を学びやすいです。
また、CSV形式を扱えるようになると、簡易的なデータベースとしても扱えるようになりますし、システム同士でデータ連携するときにもよく使われるので、いろんな場所で転用することが可能になります。
これもまた良い点ですね。


さて、肝心の作業時間ですが、24時間(3稼働日程度)でテストも込みで完了するという結果になりました。
処理速度を考慮することや、ソースのきれいさはまだまだという点があったものの、プログラミングはしっかりこなせるようになってきたので、いい習熟度で進んでいるなという印象でした。

上級編

教育時間…1時間
作業時間…48時間

最後の課題として、CSVデータ(レコード)に入ってる、あるフィールドのキーワードを元に、データの反映先を検索して、検索した先の表に計数データを加算していくというものにチャレンジしてもらいました。
イメージは下記の図の通りです。

検索の仕方も含めて、すべて自分で調べるように指示して対応してもらいましたが、結果、48時間(6稼働日程度)で対応完了となりました。
キーワードを元にどうやって反映箇所を特定するかで悩む場面がありましたが、冷静に考えてみれば、単純に検索機能を使うだけの話なので、マクロを記録して確認すれば、確認は可能です。
VBAの場合、エクセル上の動きに関してはこれが出来るのが利点ですね。
ただ、記録されたすべてのコード(ソース)を使おうとすると冗長になるので注意が必要!
必要なところだけ抜粋するようにしましょう。

あとは、ここに入った数字をAccessやSQL Serverといったデータベースに取り込むといったこともできますが、こういったことはマクロの記録では当然出てこないので、ライブラリの参照手順や、ドライバの接続手順などを調べて自力でソースを書けるようになりましょう。
データベースを操作するSQLまで理解が進めば、たいていの仕事はこなせるようになると思います。

まとめ

プログラミングってどうやるの?というレベルからはじめた挑戦でしたが、割といいスケジュールで習得してくれたんじゃないかと思っています。
ここで基礎を掴むと、他の言語を扱うようになったときにも、どの型で定義するのかといったことや、この言語の場合の繰り返し処理ってこんな感じで書くんだといったことへ思考が回りやすくなります。
このレベルの基礎に関しては、なまりの違いくらいの感覚ですぐ身につけることが出来ますので、臆さずにいろんな言語に触れてみましょう。
もちろん、オブジェクト指向といった考え方の違いはありますので、そこはしっかり学びましょうね。

最新情報をチェックしよう!