Pythonをめぐる後悔
プログラミングを始めた頃、学生向けのブームに乗ってPythonを選びました。
当時はProgateやUdemyでもPython推しが強くて、「これからはAIの時代だ」みたいな雰囲気に流されました。でも実際に個人開発を始めてみると、作ったものを人に見せるのが難しかったです。
データ分析の結果をJupyter Notebookで共有しても、正直地味だし、「で?」って感じになります。
Webアプリを作ろうとしてもDjangoやFlaskは重たいし、結局あまりアウトプットできないまま時間が過ぎました。
Pythonの用途
Pythonは基本的にデータ分析や統計処理に使う言語です。
機械学習やDeep Learningの界隈ではポピュラーで、TensorFlowやPyTorchといったライブラリも充実しています。
研究室に所属していて、実験データを処理したり論文を書いたりするなら確かに便利だと思います。でもアプリケーション開発となると話は別で、フロントエンドとの連携が面倒だし、リアルタイム処理も苦手です。
普通にWebサービスを作りたいなら、正直向いていません。
エンジニア転職の一社目であまり役に立たなかった
初めてのエンジニア職はVueとJavaScriptがメインで、一部WordPressも触る環境でした。
Pythonの知識はほぼ使いませんでした。
機械学習で不適切な画像判定する機能の実装もありましたが、それもGoogle Cloud VisionなどのAPIを叩けば済む話で、わざわざPythonを書く必要はありませんでした。
結局、JavaScriptが分からなくて苦労しました。
コールバック地獄とか非同期処理とか、全部一から学び直しです。
最初からJavaScriptやっておけば、もっとスムーズだったはずです。
むしろ、初期はPythonとJavaScriptの記法を混同してしまった分、JSだけ勉強すればよかったとさえ思いました。
JavaScriptは良いぞ
アウトプットが最もしやすい
JavaScriptの最大の強みは、アウトプットのしやすさです。
WebアプリケーションやWebサイトを作りやすく、ブラウザがあればすぐ動きます。
HTML書いて、scriptタグ入れるだけでOK。作ったものをGitHub Pagesにデプロイすれば、URLひとつで誰でも見られます。
個人開発でポートフォリオ作るにしても、動くものを見せられるから説得力が違います。
環境構築も比較的簡単
Node.jsを入れるだけで、すぐに開発環境が整います。npm initしてパッケージ入れれば、モダンな開発がすぐ始められます。Pythonだと仮想環境作って、pipでライブラリ入れて、バージョン管理して...と面倒です。JavaScriptならVSCodeとNode.jsがあれば、初心者でも10分で開発スタートできます。Viteとか使えば、ホットリロード付きの開発サーバーもワンコマンドです。この初動の早さが、プログラミングの楽しさを感じさせてくれます。
実務への応用
転職市場を見ても、JavaScriptの求人は圧倒的に多いです。フ
ロントエンドエンジニア、フルスタックエンジニア、Web3開発者...どれもJavaScriptが必須です。特にスタートアップやWeb系企業では、JavaScriptができないと話になりません。
バックエンドもNode.jsで書ける会社が増えてるから、一つの言語でフルスタック開発できます。
これは転職の選択肢を大きく広げます。
Pythonだとデータサイエンティストとか機械学習エンジニアに限定されがちで、ハードルが高いです。
ReactやVue, TypeScriptなどステップアップして行きやすい
Vanilla JavaScriptである程度書けるようになったら、ReactやVueに進めます。
この段階的な成長ルートが明確なのがいいです。
Reactを学べば、React NativeでモバイルアプリもElectronでデスクトップアプリも作れます。
TypeScriptを覚えれば、コードの品質が上がって、大規模開発にも対応できます。
Next.jsやNuxt.jsでSSRやSSGも実現できます。
このエコシステムの広がりが、JavaScriptの最大の魅力です。
ステップアップするたびに、エンジニアとしてできることが着実に増えていく感覚があります。
参考
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発
Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法
Vue.js&Nuxt.js超入門
プログラミング TypeScript ―スケールする JavaScript アプリケーション開発