英語が出来れば簡単なプログラミング(VBA)は出来ます
簡単にVBAを説明すると、マイクロソフト社のExcelやOutlookなどで動くプログラミングになります。
高度な初期設定が無いため、かなり取っつきやすい言語となっています。
VBAはIT系の仕事を生業としている人には簡単であまり需要が無いかもしれませんが、事務職だとかなり需要があり重宝されるスキルになります。
また、プログラマーの間でもVBAは正式なプログラミングであるかどうかが賛否両論ですが、オリジナルなプログラミングを書くとなると論理思考力が必要なので今回はプログラミング言語として話を進めます。
この論争に興味がある方は調べてみてもいいかもしれませんが、批判記事を見て落ち込まないように注意くださいませ...
話が脱線したので戻しますが、持論では算数と英語が出来れば、少し高度なプログラミングが出来ます。
そして、数学と英語が出来れば、プログラマーかSEの素質がかなりあります。
簡単にプログラマーとSEのざっくりした違いを書くと
プログラマーはプログラミング言語のスペシャリストで人との交渉は少なくプログラミング言語を書いている時間が長いイメージで
SEは顧客と相談・交渉してプログラミングの要件を聞き出してプログラマーに伝えるというイメージです。
しかしプログラマーの人数が少ないと、SEとプログラマーの境目はあやふやになります。
私の支店では現状、私がメインのプログラマーですので、上司からどんなプログラミングをしてほしいのかを聞き出し、
実際に私が設計開発、コーディング(プログラムを書く)作業を行っています。
上司は基本的に優しいので概ね楽しく仕事で来ています。
基本的に私の考え方では英語多少出来ればプログラミングが出来ると思っています。(※英語不得意で出来る人もたくさん居ると思いますが英語が出来れば簡単なプログラミングは出来るはずです。)
私は帰国子女でTOEICはリスニングで7~8割取得し、文法は壊滅的で学生時代はTOEICで500点いかなかったくらいです。
英語に対して苦手意識はありませんが、細かい文法は確かに理解できていないと感じています。
500点をネットで調べると英語が不得意と出てきましたが、学校のテストでは割と高得点でした(卒業した高校の偏差値は今ネットで見ると44~48みたいです)
就労継続支援では「賢い学校卒業してるんやね!」とか言われましたが、偏差値60越えの学校に行った友人も居たので、そんな見方もあるんだなぁっとびっくりしたのを覚えています。
ただし、町で外国人と話して道案内とか、商品案内なんかは平気で出来ていました。
民泊業の仕事でも電話応対で外国と話をしたりしてました。
南京錠の開錠方法を電話で伝えれたくらいの英語力はあります。
プログラミングをやってい思ったのは英語と似ているなという感覚でした。
まず英語は単語を覚えます。プログラミングもコンピューター語(大概英語で構成されている)を覚えます。
次に文法を覚えます。
英語だとSVOとか学生時代にやったのを覚えている人も多いはずです。
プログラミングは色んな言語があり、言語ごとに文法は異なります。
私も初心者向けの言語のVBAを初めて学習した時はチンプンカンプンでしたが、英語と同じ要領で意味も分からず①簡単なコードを手打ちで書き写して②動かして③メカニズムを理解する。という流れを繰り返しました。
エクセルの神髄のHPの練習問題でいきなり考えもせずソースコードを見て、①簡単なコードを手打ちで書き写して②動かして③メカニズムを理解するを繰り返すうちに簡単なコードだと読めるようになりました。
エクセルの神髄 https://excel-ubara.com/excelvba9/
エクセルの神髄のページは丁寧なマクロについての解説があるのですが、そういったものを一切無視してまずは練習問題の回答をいきなり見て、①コードを手打ちで書き写して②動かして③メカニズムを理解する。
を只管繰り返しました。
後は、見たことない単語をネットやエクセルの神髄のHPで調べて少しづつ覚えていった感じです。
業務でも初期の方は割とカタコトのVBAで走らせて仕事を処理していました。
真面目なSEの方には怒られそうですが、最初は動けばとりあえずOKというスタンスでした。
私たちは広辞苑の隅から隅までの言葉を知っているわけではありませんが、日本語で意思の疎通が出来ています。
プログラミングもコンピューターとの意思の疎通で、シンプルな事をやってもらうだけならカタコトで事足ります。
今は、メンテナンスのしやすさや出来るだけシンプルなコードにしたり、プロシージャ(プログラム)を分割したりオリジナルで考えたコードを書いたりと、どんどんスキルアップはしていっています。
始めのうちはプロシージャの分割(プログラミングコードの分割)も有用性がわからなかったりしましたが、仕事で複雑なVBAの依頼が来て勉強するたびに理解が深まって中級者や上級者の言っている意味が分かってきました。
また、VBAを覚えたての初期のころはネット検索で自分が作りたいプログラムを作成して公開している人のコードを真似る事が多かったのですが、近ごろは地頭で考えてコードを書くことが多くなりました。
恐らく、大量のコードを真似る事で、量が質に転化したのだと思います。
このため、初心者の時期は、色んなコードを真似て少し改良しやりたい事を実現していけばいずれ、地頭で考えられるようになっていくと思われます。
後は、高度なプログラミングだと算数・数学の考え方や論理的な考え方がかなり必要だと思います。
実際アルゴリズム検定では数学の知識やセンスがかなり必要になります。
私は正直図形などは得意でしたが、お世辞にも数学が得意と言える点数ではありませんでしたが、論理的思考能力は低いわけではなかったようです。
一方で、私は現状、仕事でVBAを20人くらいに教えているのですが、ついてこれているのは3人くらいだけです。
VBAは比較的簡単なプログラミングと言われています。
しかし、そんなVBAプログラミングにもやはり適性のようなものがあるのかもしれません。
私自身、自分の事をそんなに頭が良いとは思っていません。
このため、昔はそれをカバーするために本をたくさん読んでいました。
しかし、哲学者の池田晶子さんやショーペンハウエルはただの多読は馬鹿になるからしっかりと自分の頭で考えろと、うつ病後に読んだ本に衝撃を受け、考え始めたのを覚えています。
24歳くらいの時だったと思います。
あとは、割と仕事が出来る友人と話したときに
「自己啓発本とか俺は役に立たないと思っている」と言われたのも衝撃でした。
それからは多読というより、必要な時に本を読んで、よく考える、考察するようになりました。
最初はうまく考えれなかったりもしましたが、YOUTUBEで水平思考問題なんかの動画を見て考察力を深めたりしました。
あとはTVゲームなどでもすぐに攻略サイトを見ずに効率よい方法や戦法など自分でじっくりと考えるようにしました。
私自身、大学は一応、理系の大学を卒業しています。偏差値は高校とほぼ同じです。
ですが、実は数学はどちらかというと分野によっては苦手でした。高校の時は基本的に赤点スレスレの40点ぐらいでした。
展開図とか一部の幾何学はそこそこ点が取れてた気がしますが、他は割と苦手だった気がします。
ただ、最近プログラミングをしていると算数(数学でなく算数)のセンスみないなものが自分に足りてないと思い、数学を面白く解説してくれる本をあらためて読もうと思っています。
また、VBAは50時間もあれば習得できると言われています。
私も会社の昼休みや会社終了後に30~1時間の勉強を1~2ヶ月して書けるようになりました。
最初は自分で作業を効率化できるかもしれないと提案したものの、
意図した通りに動いてくれるかかなり不安で心臓がバクバクしてかなり緊張していました。
シンプルな内容だったので問題なく動きましたが、社内SE・プログラマーでも自分が作ったプログラミングをかみ砕いて説明したりするコミュニケーション能力は必須だと思います。
今現在でも大体は作りたいものがあると、ネットのブログなどで似たようなものを紹介している人が居るので、
そのプログラミングコードを参考にして、自分の仕事の環境に合わせて改良して使うことが多いでが、見つからなければ地頭で考えてオリジナルのプログラミングを構築することもあります。
VBA歴は1年半くらいになりますが、けっこう色々なものが作るれるようになってきたなという印象です。
試行錯誤してエラーとデバッグと闘いながらなんとか作ったりしています。
大変で疲れる事も多いですが、仕事で苦労していた同僚や上司が喜んでくれたり、解決できた時の喜びはなかなか楽しいものがあります。
ユーザーインターフェースが悪かったりバグが出て、注意されてへこむこともありますが、概ね楽しく仕事しています。
私はコマンドプロンプトという言語を一番最初に覚えて次にVBAを覚えたのですが、どちらも初心者入門にぴったりだと思います。
コマンドプロンプトもVBAもネットの記事は沢山あるので検索すればすぐに出てきますが、時間が許せば、このブログにも載せていきたいと思っています。
いつも応援ありがとうございます!