2020年2月2日日曜日

なぜPythonからGo言語にスキルチェンジする人が多いのか?

https://arma-search.jp/article/go-python-change
Shered. (シェアしました。)

19/02/17 17:02:04     19/04/08 11:29:42
スキルチェンジするか悩む人
エンジニアにとって新しいスキルを身に付けることは必須条件でもありますが、土俵を大幅に変える場合スキルチェンジと呼ぶこともあります。実際はスキルチェンジというよりはスキルアップの一環で、今までのスキルが無駄になることはありません。
既存のスキルと大幅に方向転換したスキルが組み合わさり、新たな仕事につながることも多いでしょう。なのでスキルチェンジと言っても既存のスキルを捨てるわけではないのですが、市場の変化に合わせて今まで触れたことのない技術に触れる面白いです。
言語にしても当てはまることで、Go言語は日本でも急速に人気が高まっています。毎年新たにGo言語を取り入れるエンジニアが存在しているはずです。Go言語は日本国内でも全言語中平均年収第一位ですが、なぜこれほどまでにGo言語の人気が高まっているのでしょうか。

Go言語の魅力

Go言語に魅力があるからこそニーズが伸びており、その結果Go言語のスキルを取り入れるエンジニアが増えています。趣味でやる場合は別にして仕事でプログラミングをしている人は需要がないと勉強しません。
需要が伸びている理由は言語に魅力があるからなので、結局のところGo言語にスキルチェンジする人が多い理由=Go言語の魅力なのです。
Go言語に魅力がある→市場でのニーズが増える→Go言語を勉強するエンジニアが増える
という流れです。では、具体的にGo言語にはどのような魅力があるのでしょうか。

処理が高速

Go言語はGoogleの開発した言語で、Googleらしくシンプルイズベストな構造になっています。処理を省略して書いたり自由度が高いというわけではないのですが、極力複数の選択肢を考える手間が省け、それと同時に属人性を排除するような言語になっています。
その結果無駄な処理が動かないので処理が速く、Pythonの30倍とも言われます。さすがにこれは極端な表現でなおかつシステムにもよるかと思いますが、似たようなシステムであればPythonよりもGoの方が確実に速いということです。
Pythonが遅くて不便というほどではありませんが、どうせなら速い方が良いでしょう。従来までならPythonで実装されていたが、Go言語が伸びているのでGo言語で実装しよう、といった案件も増えています。
また処理速度が重要なシステムであれば、PythonからGoに書き換えるようなケースもあります。スキルチェンジというよりは、PythonもGoも書けると良いですね。

機能がシンプル

処理の高速化にもつながっているのですが、Goのコードは非常にシンプルです。逆に言えば、ルールが厳しいため複雑なロジックを構築したり変数の型を自由に入れ替えたりしにくい仕様です。
メリットもでもデメリットでもあるのですが、技術が進歩してソースコードのシンプルさが求められる時代には非常に合っていると言えるでしょう。プログラミングに限った話ではありませんが、世の中には情報があふれ、人々は選択に迷うことが増えています。
大げさな話ですが、選択肢が多くて便利な反面便利すぎて困惑してしまうということです。Goを開発したのはGoogleですが、Googleは検索エンジンのデータベースから日々様々な情報を得ており、ユーザーのニーズを事細かに捉えています。
技術はもちろんユーザーの心理に関する情報も豊富に持っているのがGoogleの利点で、それらの情報はプログラミング言語開発にも反映されていると考えるのが自然です。つまり、Goは現代のプログラマーの考えを汲み取った言語仕様となっています。
複数の方法で実装できるせいで迷ったり、パーツごとに書き方を変えてしまったせいで可読性が下がった経験のある方は多いでしょう。そんなとき「コードの書き方を一つに統一しておいてほしい」と思います。
プログラミングも世の中も選択肢が多すぎてかえって迷いが出る時代ですが、Goはコードを統一してくれているので迷うことが少ないです。いろいろな選択肢を楽しみたい方にとってはデメリットですが、実際Goは流行っているのでコードを統一してほしいと考える人は多いのでしょう。
ただし、Goの利便性の低さに対して不満の声を漏らしている人が存在するのも事実です。一長一短です。

メモリの消費が少なく並行処理にも長けている

上で説明した通りGoはプログラマーの選択肢を減らしてくれているのですが、それと同時にもう一つ時代の流れを捉えています。それは、メモリ消費が少なく並行処理に長けているということです。
抽象的な表現をするとエコで効率的な仕様です。Goという言語は真新しいものが詰め込まれている言語ではなく、他の言語の良いところ取りをして、逆に不要な部分は極限まで削ったような言語です。
このエコさや効率性というのは今の時代のプログラマーにとってありがたいもので、やはりGoogleが検索エンジンから得たデータを元にプログラマーの気持ちを考察し、それに寄り添う形で作られた言語なのではないかと思わせてくれます。
無駄を排して処理を速めてくれるので、当然開発現場で需要があります。ただしこれについても否定派の意見があり、必要な機能までないと言っているエンジニアもいます。

平均年収が右肩上がり

Goは比較的新しい言語ですが、2018年のビズリーチの発表によると全プログラミング言語中Go言語の平均年収は一位です。誕生してから10年程度しか経過していないにも関わらず、急激に伸びていると言えるでしょう。
また案件数が少なくて年収が高いのではなく、案件数も伸びています。会社員としての求人も出ていますが、フリーランス向けの在宅案件も多く、立場に関係なくメリットの大きい言語と言えます。

なぜPythonやその他の言語からGo言語にスキルチェンジするのか?

上記の通りGo言語はシンプルで取っつきやすいにも関わらず、このように年収が高いので学習のコストパフォーマンスは最高級です。現状案件数としてはJavaやPHPやPythonにも劣っていますが、それでも案件は十分にあり、注目度が高いことから今後も案件数が伸びていくと期待されます。
ただし注目度が高い分エンジニアの数も増加しており、Goのスキル+αを持っているエンジニアも数多いです。技術の供給量が需要を上回る可能性もあり、そうすると競争率が高くなり、なおかつ単価も下がるかもしれません。
Go言語の将来性としてエンジニアにとって良い面の方が多そうですが、競争率や単価がどうなるかわからないという問題もあるためGo言語のみに完全に特化するのは危険と思われます。
どのプログラミング言語にも言えることですが、一つの言語だけでなく複数の言語が扱えた方が良いです。そういった理由からPythonや他の言語からGo言語にスキルチェンジを考える方が多いのです。
長期的にプロジェクトに在籍したい方はそのプロジェクトの技術ばかりに集中してしまうかもしれませんが、永続するプロジェクトは存在しません。仮に数十年続くプロジェクトであっても自分がそこに長期的に所属できるとは限りません。
またそのプロジェクト以外にも目を向けておいた方が自分のスキルアップにつながり、チャンスも増えるでしょう。せっかくエンジニアというスキル次第で収入や働き方の自由度が高い職業に就いているのであれば、Go言語を含めて幅広い視野を持っておいた方がお得です。

まとめ

以上、Go言語へのスキルチェンジ等について解説してきました。
Go言語は伸び盛りの言語で、Googleのデータベースを活かしたユーザーニーズも高い言語だと思います。そのため今後にも期待できる言語ですが、何があるかわからないのでGo言語を含めて幅広いスキルアップが求められます。
またスキルの相乗効果もあるため、スキルを深堀りつつもある程度幅を広げていくと良いでしょう。

案件量が豊富なアルマサーチ

アルマサーチ
最後に、アルマサーチのご紹介!
アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。

アルマサーチが選ばれる理由

  1. 豊富な案件量。週3〜4日の案件や在宅リモート案件も。
  2. 優秀なコンサルタント陣。
  3. 案件に参画後もしっかりサポート。

豊富な案件量

フリーランス向けに特化し、業界屈指の案件量を誇ります!週3〜4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。

優秀なコンサルタント陣

技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。

案件に参画後もしっかりサポート

常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。
相談する
▼Go言語関連の記事 
1, 【Go言語の求人・案件情報】特徴やメリット、採用している会社やエンジニア開発単価まで
2, 【Go言語入門】Go言語を初めて学ぶ人がチェックしたい学習サイト5選
3, Go言語の特徴とできることを、現役プログラマに聞いてみた
4, Go言語のフレームワークをそれぞれ比較してみました
5, 未経験者におすすめのGo言語の書籍5選
6, Go言語でjsonを使う時に気をつけておきたい4つのこと
7, Go言語の開発環境をWindowsで構築する方法まとめ
8, (この記事)なぜPythonからGo言語にスキルチェンジする人が多いのか?
9, Go言語の実行速度は速いのか?他の言語と比べてみました
10, Go言語は難しい?スキルチェンジしたエンジニアに聞いてみた

0 コメント:

コメントを投稿