現在
10年後のためにいま勉強しておきたい技術を書く前に、私のいまをお話しします。
私は今、工学系の大学院で情報工学を専攻しています。
研究内容は、ざっくり言うと、機器の稼働状況と位置情報を管理して、それをうまくユーザにリターンして管理の効率化を図るという少し実務的なものかと思います。
サーバ管理、ハードウェア設計(基板設計)、ソフトウェア開発、WEB開発、データ分析を行っています(流行りのAIはあまり触れていません)
よく使っている言語や技術は以下のようです。
技術 | 用途 |
---|---|
Linuxコマンド全般 | サーバ管理には必須です.環境構築のときに理解していると便利です |
Linuxに関して | サーバセットアップするときに,HDDをマウントしたり,RAIDを組んだり,時刻同期したり,IPアドレスを設定するのにLinuxやそのOSへの理解が求められます. |
基板設計技術 | EAGLEとKiCadという基板設計のフリーソフトウェアを用いて基板設計する技術. 趣味で自作キーボードなども作れるので,身につけておくと便利. |
プロトタイピング | 最適な言葉が見つかりませんでした.Arduinoなどでセンサを動かして,研究の前段階のプロトタイプをしています. |
C, C++ | 設計した基板に乗ったマイコンを制御するのは,CとC++です.Arduinoかその拡張を使っているので,Arduino言語とも言えます. |
Python | WEB開発とデータ分析に使っている言語です.一応,機械学習などもします. |
Django | Pythonで書かれたWEBフレームワークです. これがないとWEB開発できないレベルの知識レベルです |
HTML,CSS,Javascript | WEB開発には必須の言語です.CSSはBootstrapに依存しているので,あまり理解していないですが,勉強中です. |
Docker | コンテナ型仮想環境.本当に便利.これがないともう生きていけないレベルでマストになってしまいました.Pythonのデータ分析の環境構築や,サーバのWEB開発環境構築に用いています. |
他にも,色々あると思いますが,主要なものを一覧にしました.
身の回りの未来予想
本題ではないので簡単に.
10年後に世の中はどうなっているでしょうか.自動車は空を飛んでいるかもしれません.
情報系はさらに,需要が増し,その分野に関わる人が多くなっているかと思います.
10年前はOSはWindows一強でしたが,この10年でMacOSが浸透したように,Linuxも5%くらいの人が使うOSになっていると思います.
いま流行りのAIは第n次AIブームを迎え,AIはより主流に,一般的になっているのではと思います.
10年後のために身に着けたい技術
10年後は,社会人として働いているころだと思います.それを加味して,身につけたい技術を考えます.
就職先にもよると思いますので,いま保有している技術が,オーパーツ化し,どのように進化しているかを考えながら書きます.
英語力
まずは,やはりこれではないでしょうか.
ポケトークやGoogle翻訳,DeepLがどれだけ進化しても,英語力,読む力,聞く力,話す力はグローバル化に伴い,必須です.
もし,十代の方がこの記事に目を通していただけているのであれば,英語は嫌いでも勉強しておくべきです.
論文を読むにしても,学会で発表するにしても,英語力がないとどうしようもありません.
また,英語力があれば,就職でも幅広く見ることが出来ると思います.
目新しいことではないですが,技術として,英語は身につけておくべきです.
(この記事を書こうと思った理由は,もはやこれを伝えることにあります)
数学関係
Qiita10周年の他の方の記事でも言及されていましたが,数学は理解しておくべきです.
私自身も,高校,大学では,こんな数学なにに使えるんじゃ!と思っていましたが,院で研究を始めると,もっと勉強しておけばよかったと後悔しました.
データ分析でも,AIなどの機械学習でも,ゲーム開発でも,ソフトウェア設計でも,なんなら簡単なプログラミングでも数学が求められます.
ゲームの動作は物理演算で行われています.
データ分析は,回帰や箱ひげ図,カーネル密度など挙げたらきりがないレベルで数学の知識が関与します.
Pythonを使っていると,行列が平然と出てきます.
Docker
コンテナ型仮想環境Dockerは,環境構築を楽にします.
Dockerを用いて他の人が開発した環境を完全再現可能なので,環境構築に悩まされることが減ります.
使いこなすためにはLinuxなどの様々な知識が必要なので,少し学習コストは高いかもしれませんが,使いこなせればそれ以上のリターンがあります.
まだ,私も学習中ですし,今後さらに進化していくと思われるので,私自身も身につけたい技術としました.
ただ,現状はDockerにも限界はあるので,依存しすぎないようにしたいと思っています.
Typescript
JavaScriptをよりわかりやすく安全に書く言語のようなものです.
この言語はWEB開発においては,マストになるのではと思っています.
Python?
Python?としました.というのも最近,JuliaというPythonの上位互換のような言語が少しずつ台頭してきています.
変わったとしても,Pythonとあまり変わらないので,Pythonを学んでおくのが大事だと思います.
データ分析手法
データ分析出来ずして,なにをするのか,というレベルで必須の知識だと思います.AIをするにしてもまずはデータ分析をし,傾向を見る必要があります.
また,常に発展しつづける技術ですので,勉強し続ける必要があります.
最新の動向を捉え,そのデータに適切な手法を適用する.簡単そうで,一番むずかしいことです.
終わりに
人によって身につけたい技術,勉強する必要がある技術は様々だと思います.(英語を除く)
技術者として身につけたい技術を抜粋して記載しました.
また,機会があれば,私が思う社会人として身につけたい技術もかけたらなと思います.
Qiita10周年イベントに合わせて,本記事を思いつく限りに書きましたが,時間があるときに更新したいと思います.
ぜひ,あなたのご意見をお聞かせください.