自分の学習言語ロードマップのうろうろ歴
無事とあるPHP、Laravelを中心とする半年のカリキュラムを課す民間のプログラミングスクールを修了し、転職フェアなどにも何回か参加してみたところ、「実はプログラミング言語の需要には地域差がかなりある」ということを知り(下記参照)、エッ...(゚Д゚)と思いながら、時代はAIだろ(´д`)と思って、Pythonをやってみたら少しは分かったけど、居住地域の関係で Javaも併行し始めたけど、Pythonを使うかな(´。`)と思って内定をいただいた会社の自分の所属する部署では一番使うのは VBA、XML とのことで、今は急遽ExcelやVBAを触りまくったかと思ったら、今の請負業務先で一番使っているのはIllustrator、ときどきLinuxコマンド(プログラミングは最近あまり仕事ではやってないなあ(´。`)・・まあ、そもそも仕事をもらえることに感謝。Adobeソフトの公共職業訓練も受けてて良かった…))
① 実は地域によってプログラミング言語に需要ニーズに違いがある。(-_-;)
〇転職活動を通して感じた地域の言語ニーズの差異に関する私見
(2)フロントエンドなら、ReactやVue、AngularといったJavascriptのフレームワーク、
バックエンドなら、PHPのLaravelといったフレームワークが使えるとよい。
(3)関東圏、関西圏の方が当然だが、言語の幅が広い
(4)東海圏は、Java及びC#かC++かVBAやVBが圧倒的に強い(東海が他と比べ製造業が圧倒的に盛んなため。前者はFA(factory automation)等、後者は工場内の業務効率化などに多く利用されているように感じました。)
(5)山陰はRubyかJavaが、次いでPHPが強い(Ruby開発者のMatzさんが島根県在住の方のため。)なお、島根県は以下のサイトにあるように県を挙げてIT技術者の誘致を行っています。(各地方に支部がある会社も多くあります。)※出雲大社で有名な出雲市には実は空港があります。
また、これと似たような自治体がIT企業誘致を進めている取り組みとして、最近だと愛媛の「IT PLACE 愛媛」というのがあります。
※なお、プログラミング言語は他にも、どんだけあんねん(´。`)というぐらいあり、個人的には、CMやネット広告でも有名なレバテック、Paiza、Green、Findy転職エージェント企業Webサイトから逆算して、今後ニーズが高そう、かつまだ全エンジニアに対しての履修率が低いものをやっていった方が細くても長く続くのかな・・と思っています。例えば他には、Go(ゴー)、Rust(ラスト)、R(アール)、Flutter(フラッター)あたり???
また最近以下のような記事もありました。(※文中のTOIBE指標というのは、TIOBEというオランダの企業が集計している人気プログラミング言語ランキングの数字です)
https://news.yahoo.co.jp/articles/27c5ac22f025706af46aea2e2fc00c07203135da
② 心身共に健康であれば、早い段階で転職フェアに行き(もしくはオンラインの転職フェアに参加し)人事や広報の人とガンガン話した方が良い
詳細
どれだけ自分にとって最高のポートフォリオを作っても、それを企業が求めているわけではなくあくまで参考資料なので、本業として食べていくことを念頭に考えている場合は個人的には転職フェアや企業訪問ツアーに結構足を運んだのは良かったと思います。なお、エンジニア専用の転職フェアでなくとも地域の商工会議所などが主催している一般の業種にもIT系の枠を求めている企業もあります。(例えば、冠婚葬祭系)
転職フェアに行って年齢の壁さえクリアすれば、IT業界には、そもそも入社後に業務に必要な言語やツールの研修があるところも少なくないことを知りました。(※今、学習している言語が無駄になるわけではなく、基本的な部分は似ていることも少なくないので、スクールを利用されている方はまずはスクールのカリキュラムに専念された方がいいです(例えばRubyはJavaから派生した言語のため))
自分は2年前のお正月に8年間続けていた前職で体調を崩してからの3ヶ月閉鎖病棟での入院生活⇒自宅療養ののち徐々に回復⇒公共職業訓練&プログラミングスクール利用からの復職だったのですが、転職フェアには現状どうすべきかリクルートのお母さん的存在のおばちゃんが話を聞いてくれるブースもあったりします。
③ 公共職業訓練・ハロトレにもプログラミング(Java等)やAdobeソフトのカリキュラムがある場合がある
詳細
公共職業訓練とは、各都道府県のハローワークを経由して職業訓練校または、そこの委託先の専門学校等で受けられる「無料の」職業訓練を指します。(詳しくは例えば下の愛知県の資料)
そのため、プログラミングスクールに近い内容を(応募して当選すれば)ほぼ無料(※)で受けることができます。(ただし、Githubなどはやらないかも・・) なお、プログラミングの場合、JavaやPythonやC系であることが多いです。(私はAdobeソフトの3ヶ月の訓練を受けました。)
※テキスト代や使用するパソコン・交通費などはかかりますが、講義の受講料は0円のため高くても全て込みで5万~10万で済みます。また、Adobeソフトなどを購入する場合、受講期間中は学生値段で契約することができます。
大まかな流れとしては
①ハローワークに行く ⇒ ② 受講手続き ⇒ ③ 3ヶ月~6ヶ月の訓練を受講
⇒その後、ハローワークの助けを借りつつ自分でも転職フェアなどで求人を探し、採用面接を受けていく(※就職が確約されているわけではない)
例えば、愛知県の場合
愛知県2024年9月募集枠
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.aichivti.ac.jp/uploaded/attachment/4938.pdf
https://www.mhlw.go.jp/hellotraining/recommend/
https://jsite.mhlw.go.jp/aichi-roudoukyoku/kunren_seido.html
昔は無かったと思われるのですが、上記資料を見てもらえば分かるように、今は特にIT関連で一部オンラインで受けられるものもあります。
また、実は「今自分が住んでいる件に希望するものがない場合(例えば、プログラミング関連の訓練が自分の県のハロトレにない場合)、職業訓練校に通える範囲内で「他県のハロトレ」で希望するものがあれば、ハローワークを介して申請すれば受けられる場合があります。(各自、要項を確認してください)
実際、私は現在も愛知県民ではないのですが、上記のAdobeソフトの訓練を愛知県の施設で受けていました。
④ どうしても異業種からだとWEB系に目が行きがち
以前それっぽいことを書いたQiita
⑤ compassやFindy(※下記リンク参照)のLT(Lightning Talk:ライトニングトーク)は各企業の技術力発信の場であると同時に人材募集の場でもある
LT とは各企業を代表する人が企業で使っている技術・やってよかったことを時間を区切って順番にプレゼンする場です。compassなどのオンラインでよくあります。
自分の技術力が足りなかったり、選定している技術にズレがあって登壇者の行っていることが違っていても、何回か続けて聞いていると、その会社がどういう業務を日々しているのかぐらいは徐々になんとなく分かってきます。
そして、よく聞いていると後半に求人をしているところも結構あります
⑥スキルチェックをする場合は、(Ⅰ)importする(=プロジェクト毎に装備する)もので機能が細分化するものや(Ⅱ)「フレームワーク(※「純正の」という人もいます)を使わないことも多いもの:PythonやJava、Javascript等」でスキルチェックをした方が幅が利く?(※あくまで私の偏見です)(-_-)
詳細
なぜかというと、例えば、PHPの書き方とそのフレームワークのLaravelの書き方がそこそこ違うなど、元の言語とそのフレームワークの書き方の作法が違うことがあるからです。じゃあ、最初からフレームワークだけやればいいんじゃない??(´。`)??と一時期思ったこともあるのですが、フレームワークをある程度理解するには、元の言語に関する知識が必要という・・(´д`)。そのため、スクールでメインで学習したのはPHPなのに、スキルチェックは純正で使う頻度が高い(?) Pythonでやることが多かったし、今後ももしするときは、OpenPyXL、pandas、win32com等の業務効率化系の、エクセルやVBAとも相関が強い外部ライブラリーが多くあるので、復習も兼ねておそらくPythonでやります。
なお、リファクタリング(既存の運用しているシステムなどのコードを別の言語でどうすればいいか考えて書き直すこと、コードの構成)は結構骨が折れるので、企業によってはあえてフレームワークを使わないこともあります。
その他、いくつかの言語に関する諸注意・所感
※少なくとも例えば、Pythonは、Python内であっても、フレームワークやimport(≒カスタマイズ)モジュール(≒装備で)書き方ややることが全然違うため、入社時のコーディングのテストは一般的な基礎的な文法を問われる傾向が強い印象があります。(※モンスターハンターの大剣と弓矢ぐらい、草タイプポケモンとピクミンぐらい操作方法が違います。)
※また、Javascriptは他の言語に比べて、React、Vue.js、Angular等…これまたどんだけあんねんというぐらい、フレームワークがあり、少しかじった程度ですが、例えばReactとVue.jsは全然書き方が違うし、既に現役としてバリバリ働かれている方の話を聞くと、プロジェクトや現場でどれを使うかは全然違うようです。、ただ結局はいずれもJavascriptなので、フロントエンド希望なら特に自分のようにIT業界未経験のうちはある程度、素のJavascriptに慣れておいた方がいい気がします。なお、ChatGPTにフレームワークを「純正のJavascritptに直して」等とプロンプトを打つと、超長いscriptが出てきます
※自分もプログラミング学習当初勘違いしていたので、念のために挙げておくとJavascriptはJavaとは全然違います。あくまでJavascriptはざっくりいうとHTML&CSSのみで作られた静的なページ(※全然動かない昔のHPに近いです)の「体裁を整える」「カッコイイ感じにする」のに使う言語です。また、Javaは何らかの大規模なシステムを作るときとかに使われる言語で、主なフレームワークはspring bootです。身近なところだと、図書館の本の管理システムとかに使われていたりします
※企業によっては、PHPなど従来のコードが膨大になっており、時間的コスト面からフレームワークを使わないプロジェクトもあるそうです。
⑦ 統合開発環境(IDE)は、学習段階では結構VScodeに一本化できる
詳細
https://qiita.com/thinking-weed/items/ec22f887b5643bd260f2
※下記の⑫ Pythonプログラミング VTuber サプー
https://www.youtube.com/@pythonvtuber9917
にもありました
参考書から入った場合、この開発環境を入れろと最初にかいてあることが多々ありますが、コードを書く段階では、VScodeで結構ゴリ押しできます。例えば、Javaはeclipseという統合開発環境が有名ですが、自分は面倒だなと思って、次の記事を参考にして、しばらくVScodeでやっていました。
https://teramaguro.hatenablog.com/entry/2021/12/28/042743
PythonもAnacondaという開発環境をPCに入れたものの、今のところはVScodeで拡張機能(Python、autopep8等)を入れれば差し支えなく動いています。本当はもっとDockerとかで開発環境やバージョンなどを揃えるのだと思いますが・・・(下記の主な参考資料②参照)
※ただし、Python学習時、外部ライブラリーをpipでインストールする場合、PCに直接入れると後々大変な目に遭うので、以下のコマンドでプロジェクト毎にvenvというやつを最低設定しましょう。
https://qiita.com/thinking-weed/items/61dd687cdb49f0466f40
なお、Javaをやる場合は当初、上リンクにあるExtension Pack for javaという拡張機能を入れてやっていましたが、途中から以下リンクのAdoptiumという会社のJDKという開発環境(無料)を入れました。VBAはExcelとかWordとか入ったらオプションで開発タブさえ出せばいけます
https://adoptium.net/
インストール時の参考リンク:https://www.javadrive.jp/start/install/index6.html#section1
※会社によってはセキリティの関係で社用PCには、VScodeなどを上司の許可が無いと入れられなかったりするので注意が必要です。(今働かせてもらっている会社はそうです)
〇日頃お世話になっている自分のような弱々エンジニアにやさしい学習参考資料・情報源
いずれもエンジニアのための学習共助サイト
⑤ 技術系メーリングリストで質問するときのパターン・ランゲージ
https://www.hyuki.com/writing/techask.html
※「こういう質問」の仕方をすると端的で相手も答えてくれやすいというエンジニアが好むらしい質問の仕方の定型文
⑥Progate 大体つきづき1200円ぐらいで各言語の概要を学べるサイト。HTML&CSSはかなりマニアックのものもやる
https://prog-8.com/
⑦SAMURAIENGINEER Blog プログラミング言語タブ
https://www.sejuku.net/blog/category/programming-language
⑧Paiza
スキルチェック機能&それに応じて求人が届く機能がついているエンジニア専用転職ポータルサイトの1つ。なぜか運営の代表の方がX(旧 Twitter)の「プログラミング初心者」コミ二ティにいらっしゃって発見したときはびびった。
https://paiza.jp/
⑨Findy
スキルチェック機能&それに応じて求人が届く機能がついているエンジニア専用転職ポータルサイトの1つ。同名運営会社がDevReLが盛んで、compassを通してオンラインセミナーをよく主催しているため、登録しておくとメールにどんどん業界の最新の動向を学べる。Pythonや機械学習系の求人が多く、たまに数学者の求人もある。
⑩次のアカウントの方がXでポストする技術記事
Shota Nukumizu
@Nameless_SN
KNR | AI×プロダクト紹介
@MacopeninSUTABA
Pythonアカデミア
@python_academia
⑪ せかチャン - 世界一わかりやすい情報科チャンネル(youtubeチャンネル)
https://www.youtube.com/@SekaChan
⑫ Pythonプログラミング VTuber サプー
https://www.youtube.com/@pythonvtuber9917
※他にも探すとyoutubeで講義されている方も結構います
⑬40代からプログラミング
https://biz.addisteria.com/
Laravelに関する情報が網羅されている。かなり詳しい
⑭Ruby会議、PyCon(Python Conference)
凄い人たちがいっぱい登壇するセミナー
https://rubykaigi.org/2024/
https://www.pycon.jp/