※2024/03/06 この記事は2018年に書いた記事です。
いったい僕らはどこまで学べばいいのだろうか
転職して、新しい技術を学んでいる。
今まではオープンソースの世界だったけど、
今回は本当にクローズドの世界になった。
例えば Ruby や Python は、自宅で勉強できるけど、
自宅では勉強できない言語をいじっている。
Docker も使えないし、Jenkins でビルドもできない。
世界はホント、広い。
...Mac が恋しい...。
そこでふと考えていたのが、
なんというか、エンジニアっていうのは
何をどこまで学べば良いのだろうか、ということ。
ドンドン新しい技術が生まれてくるし、
かと言って古い技術も使われなくなるわけではないし。
いったい技術の世界はどれだけ広いのか?
思いつく限りの範囲で、書いてみる。
プログラミング言語
これはもう、信じられないほどの数があるんだと思う。
そのうち、知っているものを並べてみる。
- C
- C++
- BASIC
- FORTRAN
- Java
- JavaScript
- VisualBasic
- C#
- F#
- D
- Go
- Ruby
- Python
- Swift
- kotlin
- COBOL
- Objective-C
- PHP
- Perl
- Haskell
- Smalltalk
- Lisp
- R
- VBScript
- PowerShell
思いつくだけでも 25 言語くらいはある。
プログラミング言語って、2 つくらいやれば
他の言語の習得も容易になるけど、
深いところまで探ろうとすると
ひとつの言語で手一杯になる。
どこまで学べばいいんだ?
フレームワーク
言語を生で使うよりも、
フレームワークを駆使刷るほうが多いよね。
- Ruby on Rails
- Django
- flask
- .NET
- .NETCore
- ASP.NET
- WordPress
- Vue.js
- React
- Angular
- Java EE
- PlayFramework
- JQuery
JavaScript はフレームワーク天国。
いや、地獄かもしれない。
細々としつつも深い知識
メイン技術ではないけど、
知っておいたほうが良いもの。
- 正規表現
- コマンドプロンプト
- Shell スクリプト
- OS の仕組み
- SSH 接続
OS
実際に使うのは 2-3 種類だけど、
世の中は広いのだ。
- Windows 関連
- Mac
- Linux
- Unix
- AS400
AS400 は IBM のメインフレームで動いてる。
マニアックだけど 30 年前に書いたプログラムが
最新のバージョンでもほぼそのまま動くので、
金融や製造では根強い人気があるとか。
ネットワーク
ネットワークの仕組み、理解してる?
- TCP/IP
- UDP
- SSL 証明書
- TLS
- WAN
- LAN
- 公開鍵暗号方式
- DNS
- DMZ
- ルーティング
ハードウェア
これがないとプログラミングできない。
- マザーボード
- CPU
- GPU
- メモリ
- SSD
マザーボード...。
暗号技術
暗号を制するものは、世界を制する。
- ハッシュ
- ブロックチェーン
- ワンタイムキー
その他
- ビジネス
- プロジェクトマネジメント
- 基礎的なデザイン
- aws や azure などのサービス
- VisualStudio とか Vim とかツールの使い方
- DevOpes とか関数型プログラミングとかの思想やポリシー
いやもう書くのにも疲れてきた。
で、結局なにをどこまで学べばいいのか?
好きなだけ学べば良いんだと思う。
学びたくなければ、学ばなくてもいいし。
学ぶというより、知る、遊ぶ、のほうが適切かもしれないけど。
とはいえ、軸は、たぶん、ふたつ。
- 好きなことを、好きなだけ学ぶ
- 必要な知識を、必要なだけ、学ぶ
「やりたいこと」「必要なこと 」があるなら、
それを実現するために必要なことを学べばいい。
プログラミングそのものが好きなら、
好きなことを好きなだけ、学べばいい。
「どこまで」っていうのは、無いんだな。