プログラマになりたいが何から始めたら良いか

昔はIT土方などと揶揄され3Kと言われたプログラマーも絶対数が少なくなったからなのか食いっぱぐれない技術として人気なのだそうです。
別に国家資格でもないし技術検定試験もあるにはありますけどプログラマーとして「腕が立つ」というのを証明する為のものとはちょっと違うのでは?と個人的には思います(後述します)
そもそも一口にプログラマーと言っても業務系、組み込み系、ゲーム系、サーバー系など多岐にわたりそれぞれ全く別のスキルと言っていいと思います(個人的にはゲーム系プログラマーが一番大変だと思っています)
よつばはこのうち「業務系システム」をご提供致しますので、今回は業務系に絞ってお話します。

では具体的にプログラマーになるにはどう勉強したら良いのでしょうか
あくまで私見ですが僕は「社内で解決すべき問題がありシステムが欲しいと本気で思っている人」が最短距離に居ると思います
まずプログラミングとは「手順を組み立てる事」でありプログラムコードの事ではありません、「組み立てた手順を使う言語のお作法に則って記述」すれば手順通り動く物なのです
では何の言語を使うべきなのか
今は無料のツールも多いので業務に合った言語で良いと思いますが、普通の業務系であれば簿のおすすめは「Excelマクロ(VBA)→VisualStudio(C#)」という流れです
Excelは無料ではありませんけど今時どこの会社でも使われています、そしてネットなどに情報も多く流通しています
そして何より「マクロの記録」という機能を使う事により画面の操作をVBAで記述してくれるので非常に分かりやすいです
次にVisualStudioですがMicrosoft社が提供する総合システム開発ツールで何と無料(Community Edition)です
(ただ言語的なお作法がVBAからC#に変わるのでそこで苦労されるかも知れません)
それと「社内で解決すべき問題がありシステムが欲しいと本気で思っている人」は具体的に欲しいシステムがイメージしやすいと思います、この「具体的」と「目の前に問題がある」というのが非常に大事なのです
VBAにしろC#にしろ何か作ろうと思った場合具体的にイメージできていないと頓挫しやすいし、実際に出来上がった物を業務で使わないと何が悪いのかどこを改善すべきなのかがイメージできません

最後にプログラマーやシステム開発者に必要なスキルとは何でしょうか
結論から言いますと「ユーザーの求めている機能を具現化する能力」だと言い切れます
資料や口頭で説明されるあやふやなイメージをくみ取り何度も調整しユーザー様が求めている機能をコスト内で実現する
これが良いエンジニアだと僕は考えます

【今回の単語説明】
・業務系 : 社内業務をサポートするためのシステムを開発します、このカテゴリーでもクラサバ、webなど分かれます
・組み込み系 : 炊飯器や洗濯機などに「組み込む」プログラムを開発します、機器との通信制御がキモです
・ゲーム系 : PS5、Switch。スマホなどで動くプログラムを開発します、ファミコン世代までは1人で全てくみ上げる事も可能だったようですが現在は分業化が進みグラフィック、制御、楽曲などに特化しているようです、大変です
・サーバー系 : サーバーを制御するためのOSなどを開発します、これはこれで大変
・VBA : VisualBasicという言語が元になっているプログラミング言語