2022年1月25日にオンライン開催されたヤマハ ネットワーク イノベーション フォーラム 2022(YNIF2022)で、当協会の代表理事 吉政 忠志氏とアドバイザー 寺田 学氏が登壇し、「Pythonの初学者が躓きやすいポイントと”Pythonとネットワークの自動化基礎検定のご紹介”」と題した講演を行いました。
当日は多くの方に聴講いただき、Pythonとネットワーク自動化基礎検定への注目度の高さを実感いたしました。ありがとうございました。
本稿では講演内容の概要を記載いたします。ご興味のある方はご一読いただけますと幸いです。
幅広い分野で活用されるPython、注目度の高さから今後もPython人口は伸びると予測(吉政)
Pythonは、AI、ビッグデータ、Web、ネットワークといった幅広い分野で中心的な技術として活用されており、昨今では様々な処理の自動化にも使用されています。
各調査データからもわかる通り、その注目度の高さは非常に高いもので、それと同時にPythonを学びたいと考える方も増えており、ますますPython人口は増えていくものと考えられます。
・IT・テクノロジー人材のための社会人コミュニティ「TECH Street」(マイナビニュース):1位
・Where Programming, Ops, AI, and the Cloud are Headed in 2021(オライリー):1位
・プログラミング言語オブ・ザ・イヤー2020年(TIOBE):3位
・Python求人数6万1千件、223%、うち35%がネットワーク求人(Indeed Japan2022年1月)
新試験「Pythonとネットワークの自動化検定」実施の背景(吉政)
先日、当協会は「Pythonとネットワークの自動化基礎検定」という試験を実施することをお知らせしました。
これを実施するに至った背景には、昨今、Pythonによるネットワークの自動化がインフラ業界で取り入れられていることから求人数が伸びていますが、その一方でネットワーク関連に対応したPython書籍やスクールの対応が追い付いていないことに端を発しています。
特にPythonicやPythonZenといった作法を無視した開発はその後の保守性が損なわれることになります。
そのため、ネットワークエンジニアがPythonを学び始める際にPythonicやPythonZenといった作法を意識して学習でき、よりマスターできる環境を整えることを急務と考え、ネットワークエンジニア向けのPythonとネットワークの自動化試験の実施と、対応する書籍の整備も行おうと考え、実現の運びとなりました。
今後、本試験は2022年2月27日にベータ試験を実施後、同年夏から秋ごろに本格的に開始する方向で調整しており、また、すでに4つの認定スクールが登録されています。
本試験の実施とベータ試験開催についての報道発表後、15のメディアに掲載頂いており、その注目度の高さを実感しております。
※PythonicやPythonZenとは何かについては以下のサイトをご参照ください。
https://www.pythonic-exam.com/pythonic
https://www.python.org/dev/peps/pep-0020/
「Pythonとネットワークの自動化基礎検定」の出題範囲や受験方法等の詳細は以下お知らせページをご参照ください。
https://network-engineer.jp/archives/news/python_network
Pythonというプログラミング言語(寺田)
Pythonは、Pythonソフトウェア財団(PSF)によって、自由なライセンスで制約がなく、無償で使える形で配布されています。
インタプリタ型の高水準汎用的プログラミング言語であり、PerlやRubyと似た言語です。
オブジェクト指向や関数型言語というものがありますが、それらのいいところどりをしたマルチパラダイムだと言われており、上から順を追って実行していく手続き型もできれば、クラスを用いたオブジェクト指向もできます。
純粋なる関数型ではありませんが、関数型的なものを導入できるなど、それぞれの特徴を抑えてプログラミングすることができます。
またWindowsやMacはもちろん、様々なプラットフォームで動かすことも可能です。
Pythonが昨今好まれている理由としてはライブラリの種類が幅広く、豊富にあること、導入が容易であること、バージョンの互換性があることがあげられます。Python2と3では隔たりがありますので注意が必要ですが、Python3.xでは互換性があるので、5年前に書いたプログラムでも動くという形になっています。
Pythonは習得にハードルはありますが、覚えること自体はそう難しいわけではなく、ある程度プログラムを書けば動かすことができるため、学習しやすいといえます。習得できればネットワーク分野に使えるだけでなく、ほかのことにも使えますので、ぜひ勉強してほしいと思います。
Pythonが向いていること(寺田)
Python自体はデータ分析・機械学習、Webシステム、OSなどのインフラ分野、ネットワーク構築、IoTなど様々な分野で利用されています。
ただ、ネットワークエンジニアの方の多くはまだPythonにあまり馴染みがなく、プログラミングやDXというキーワードからPythonという言語を知るという方がほとんどではないかと思います。
昨今はデータ分析や機械学習で使用されることが多くなっていますが、Webシステムで利用されてきた歴史は長く、Webシステムと共に成長してきたといえる言語でもあります。そのため、Webシステムにおいては非常に多くのライブラリがあり、歴史のあるものから最近のものまでいろいろあります。
デスクトップアプリやスマホのネイティブアプリでも使えますが、こちらの場合は専門言語で作られることが多く、Pythonとしてのシェアはさほど大きいものではなく、どちらかというと支える側で使われることが多くなっています。
例えば、LinuxのYumなどはベースがPythonで書かれていますし、最近ではネットワークの自動化にも活用されるようになっています。
これはPythonの様々なところに応用が利くという特性が生かされたと言えるもので、インフラ分野との親和性は非常に高いことがうかがえると思います。
Pythonの学習ポイント(寺田)
プログラミングを苦手に思う人は当然います。習得はそれなりに難しいですし、特に一度挫折したことがある人にとってはハードルが高いと思いますが、学びなおすいい機会になればいいなと思います。
- 苦手意識を乗り越えるには
書籍だけではどうしてもイメージつきにくいという人の場合は、今は動画やオンライン学習プラットフォーム、YouTube、有料サービスなどオンラインで学びやすいものが豊富にありますのでそういったものを活用するのもいいですし、会社の研修があれば参加したり、認定スクールに通ったりといった手段もありますので、これらを活用して壁を越えてほしいところです。
また個人的にお勧めしているのは知人に頼り、仲間を作るということです。
- 初学者のつまづきと学習ポイント
初心者によくあるつまづきを回避するにはPythonによるプログラミングの基本的な考え方を学ぶ必要があります。特に「環境」、「データ型」、「制御構造」についてしっかり考えていきましょう。
詳しくは以下のスライドをご参照ください。
とにかくまずは開発環境でコードを入力して開発のイメージをつかめるようにしてみてください。もし難しいと感じるようなら講習に出たり、動画を見たりと、自分にあう学習方法を探ってみてください。
なお、当日使用した資料は以下よりダウンロードください。