ハローエンジニア!
昨今のプログラミングブームということもあり、副業としてプログラミングを勉強することはどうだろう?
と感じている人は多いかと思います。
自分もその一人であり、日々ネットに転がっている情報をちまちまチェックしています。
そんな折、先日プログラミング学習について気になったことを書かれていたブログ記事をたまたま見かけたので、
その時に自分が感じた疑問をサイトのメンバーに投げかけてみました。
そうしたところ興味深い回答をいただくことができましたので、今回はその件について紹介させていただこうと思います。
このページの目次
今回読ませていただいたブロガーさんの記事はこちら。
内容としては、
プログラミングスクールでのプログラミングの学習を挫折してExcel・VBAの学習コースに途中で転向した。
というもの。
そして記事のなかで、
プログラミングは非常で難解であったのに対して、「VBAはともかくExcelの学習に関しては楽しく学ぶことができている」
との記述がありました。
そこで自分が直感的に感じたことというのが、
ひょっとしてVBAやっとけば解決する問題けっこうあるくない?
ということ。
もしExcelやVBAを学ぶことの方がプログラミングを学習するよりもハードルが低くて、
かつ、そのスキルで案件の獲得ができるのであれば、
VBAの案件の専業とまではいかなくとも、一時的に生活を凌いだりすることは可能なのでは??
もしそうであれば、プログラミングで挫折してしまった人は、ひとつの選択肢として考えてみても良いだろうし、
これからプログラミング学習を始めようとしている人の入口としては適している分野なのではないでしょうか?
ただ、このあたりの実情が現場の世界から外にいる人間ではなかなか想像がつかない。
そこで今回はエンジニア歴10年以上、様々なプログラミング言語を扱ってこられたサイトメンバーのけーいちさんからお話を聞かせていただきました!
その前に、まずはVBAについて簡単に概要をまとめておきます。
VBAとはVisual Basic for Applicationsの略でExcelなどのMS Office(オフィススイート)においてマクロを作成するためのプログラミング言語として使用されているものです。
マクロとはMS Office上で行った操作を繰り返し自動で動作させることで業務の効率化を図るような機能のことを指します。
せきぞー
VBAはこのマクロ機能を使うために必要な道具といった解釈で良いかと思います。
けーいちさんには事前に冒頭の記事を読んでもらった上で本題についての回答をしていただきました。
せきぞー
まず、今回はVBAの学習難易度がどうこうの前に、前提としてVBAのスキルを手に入れられたところでその単体のスキルで獲得できるような案件ってどれくらいあって、どんなものだったりするのかを教えていただけないでしょうか?
けーいち
う〜ん…正直いって案件に関しては…あるにはあるでしょうけど、おそらく内容がえげつないものしかないんじゃないかなといった印象がありますねぇ。
せきぞー
(まじか…)
けーいち
VBAっていうのは俗に言うプログラミングとはまた少し違った立ち位置で、Excelなどにマクロを用いて便利に使うためのツールでしかなかったりするんですよね。
なので、予想されるVBA関連の案件っていうのは、あまり知識のない人がExcelとかをいじっていじって「もうどうしようもなんないから誰か助けて」というような収集がつかなくなってしまっているようなものになってくるかと思います。
そうなってくるともうVBAでどうにかするっていう次元を超えて「それならもういっそのこと新しいシステムを導入した方が早いよね」ということになるケースの方が多くなると思うんですよ。
けーいち
つまり、VBA単体の案件というのがあるとすれば、そもそも「マクロやVBAというものがある」ということを知っていて、かつ、触っている人でないと案件を出すっていう発想にはおそらくならないと思うんですよ。
あえてVBAを剪定して「なぜこの条件で組みたいのか」という前提があるはずなので。
けーいち
しかも、あくまで技術者を雇うっていうことでしかないので、(発注側的に)VBAだったら単価が安いかっていったらそういうことでもないんですよ。
だから手軽にVBA単体の案件で発注出すっていう人はそもそも多くない印象です。
で、受注側の人数が多ければ単純に市場価値は落ちて行くので、単価も下がっていく傾向にあるかと。
一方で、VBAの案件を生業としてプログラムやシステムをしっかり組むことができる人間がどれくらいいるのか、というとこれもたぶんそんなに多数派ではないじゃないかなとも思います。
けーいち
そうなってくると、ランサーズとかに溢れているようなマクロがどうの、VBAがどうの、っていう案件(副業として受けるようなレベルのもの)になってくると、ほぼ採算が合わないもの、もしくは難易度がめちゃくちゃ高いものしかなくなってくるんじゃないですかね。
したがってVBAは副業のために学ぶ言語かと言われたら、まずそんなことはないと思いますね。
なんならそういった案件は地雷である可能性がかなり高いと思います。
せきぞー
うーん、思っていた以上に厳しい世界なんですね。。。
けーいち
発注者がVBAで扱いきれないことっていうのは、何かしらの許容量を超えているっていうことなんですよ。
で、「代わりにシステムを組みましょう」となったとしても、一般的にシステムを組むとなったら基本的に単価も100万円単位とかになってくるわけです。
じゃないと、受ける側としても採算が合わないので。
けーいち
だからといって「VBAでちょっと直すだけなら安く済むのか」といえば先述のとおりそういうことはなく、自分が思う妥当な相場感としては30万円くらいです。
そうなってくると発注側の気持ちとしては「システム組むのが100万なら、VBAの修正で30万はちょっと多くない??」ってなっちゃうんですよね。
けーいち
しかも、発注する側としては「さっきまで自分たちがいじってたやつじゃんこれ」っていう考えも根底にこびりついてるわけで…。
発注側としてはあまりお金は出したくないところだし、受注側としては素人がこねくりまわした既存の要件とかも引き継いだうえでモノを作らないといけないみたいな感じに多分なるので、
そういうのって全部イチから作った方が楽な案件になっちゃうんですよね。
けーいち
なので、案件はまず無いです。
あったとしてもおそらく地獄が待ってるので、駆け出しの人でどうこうできるレベルは遥かに超えてるはず。
というのが回答になってしまいますねぇ。
せきぞー
ひとつ確認なんですが、駆け出しの人がどうこうできるレベルの案件がないというのは、発注側にマクロやVBAでどうにか解決できそうだといった発想があまりないといった捉え方もできるということなんですかね?
けーいち
発想がないというか、そういった案件の相場感がないんだと思いますね。
相場感がないし、かつ、お金をかける必要性を感じていないだろうということも考えられますね。
「お金かけてでも、ここをなんとかしたい」ってのは多分そんなに無いと思うんですよね。
せきぞー
で、そのレベルを超えてきてしまうともはやシステムどうこうの話になってきてしまうと…。
けーいち
いろいろあるとは思うんですけど、そもそも「エラーがでたから直してくれ」っていう発注は基本あまりないと思うんですよ。
おそらく「なんか使っているうちにちょっとスペックがもう足りてないからいじって何とかして下さい」みたいなパターンになるんじゃないかと思ってるんですが、そうなってくるともう地獄だと思いますよ(苦笑
けーいち
あとは、なにがキツイかって、「じゃあこれほんとにエラーだけ直したらいいのか?」っていう話は実際に契約して蓋開けてみないとなんともいえなかったりするんですよ。
もしかしたらほんとに「一行だけエラー直したらめちゃくちゃ感謝されてお金も入ってくる」ということもあるかもしれないんです。
だけど、そうじゃない可能性の方があきらかに高いですし、その場合のリスクって尋常じゃないので、費用対効果としても厳しいんじゃないかなと思いますね。
せきぞー
となると、やはり単体の案件は基本やめたほうがいいっていう話になってきますよねぇ。
けーいち
さらに言うと発注者側には現状なにが原因でトラブっているのかがわかっていない人しかいないと思うので、
受注者側はVBAのスキル以上に「今どういう状態になっていて、どういう状況にしたら解決することができるのか」とか、「既存のスパゲッティコードを読み解く力」が絶対的に必要になってきます。
巷ではこのことを「プログラミング的思考力」なんて言ったりもするのですが、これはプログラミングを学習していく上でも非常に重要になってくるポイントです。
けーいち
なので、冒頭で紹介しているブロガーさんがそういったVBAの案件の獲得を狙っているかどうかはわからないので、例にあげてしまうのは恐縮なのですが、
そもそも「プログラミング難しい、わからない!」と感じるような人は、まずスキルよりも先に上記のプログラミング的思考力を優先的に養った方が良いですし、そうでないとVBAのスキルというのも結果的に身につけるのは難しくなるのではないかと思いますねぇ。
せきぞー
なるほどなぁ、まずは学習の方法から見直すことですか。
いやぁ、自分だけでは想像もつかないような実態ばかりですね。貴重なご意見ありがとうございました。
今回は一度このあたりで打ち切らせていただきます。
せきぞー
次回は今回少し触れた「プログラミング的思考力」についてや、「VBA学習の難易度」などについて話を広げていけたらと思います。
VBAの学習に興味がある方は是非次回も楽しみにしていただければと思います。
普段は野外イベントの設営など行っています。
出来るだけ読者の方の視点に立った執筆を心がけていきます!
物静かな性格なため時折南の島に佇む某石像と勘違いされることもあるとか、ないとか。
Twitter:@100Sekizo
Twitter:@100Sekizo