75
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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 アプリケーション開発

75
56
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
75
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?