Python初心者が併せて覚えると良いと思ったスキル【プログラミング】

私は製造業界のエンジニアとして、社内でIoTをやろう!というところからPythonを始めています。それまでプログラム経験はほとんどなかったものの(VB.NETやVBAをかじったくらい)、Pythonの書きやすさ、読みやすさに随分助けられながら一応アプリと呼べる程度のものは作れるようになってきました。

Pythonを学ぶ過程で痛感したことは、Pythonの構文やモジュールの使い方だけ覚えても作りたいものは作れないことが多いという事。その経験から、Python及びプログラミング初心者が、Pythonを覚えながら、併せて習得していくと開発時に楽になるなと思ったスキルをまとめます。

目次

Python初心者が併せて覚えると良いと思ったスキル

Pythonと併せて習得したいスキル。Python言語でどんなアプリを作るかにもよりますが、IoT、GUIアプリ、Webアプリに取り組んだ私の経験から、下記の内容にまとめました。

Python+αのスキル

  • データベースのスキル(SQLなど)
  • ネットワークの知識
  • Linuxコマンド
  • Gitの使い方(コード管理)
  • Webのスキル(HTML・CSS・Javascript)
  • セキュリティに関する知識

6点あげましたが、これ以外にも必要な知識は沢山あります。ただ、Pythonの構文以外にも盛りだくさんの内容だと挫折すると思います。そのあたりは必要に応じて少しずつ力を付けていけば良いでしょう。私もまだまだ一人でアプリを組み上げる力はありませんが、周りの協力を得ながら、少しずつ覚えているところです。

IoTシステムをPythonで構築する際のスキル

Raspberry Piに始まったIoTブームですが、製造業においては「IoTは取り組まなければ生き残れない」とまで言われています。生産性向上のためのファーストチョイスというわけですね。

IoTシステムというと、Pythonで書いたコードをIoTデバイス(ラズパイ等)に書き込んで実行する。ただそれだけのように思えますが、実は複雑です。実際に私も社内のロボットをIoT化したときに痛感しました。

まずネットワークの知識、そしてLinuxの知識が無ければIoTデバイスの環境構築すらままなりません。通常、IoTデバイス上のプログラムはネットワーク上の他のPCからログインして編集します。このログイン作業からすでにLinuxの分野になるのです。やってみて初めてLinuxがこんなに身近であることがわかりました。

ネットワークにかんしてもIPアドレスの意味やホスト名といった基礎的なことがわかっていないと、IoTデバイスにログインすらできません。

[st-card id=280 label=”” name=”” bgcolor=”” color=”” readmore=”on”]

また、ネットワークを構築する=セキュリティ案件となります。IoTデバイスはセキュリティ上もっとも狙われやすいデバイスです。社内の閉じたネットワークで使うならまだしも、インターネットに接続する環境で使うならセキュリティ設定無くして動作させるべきではありません。これはプログラマー自身も守る考え方だと思っています。自分が組んだプログラムの脆弱性を疲れて、会社の情報が盗まれた・・・なんてことになったら、会社にいられませんもんね。

[st-card id=922 label=”” name=”” bgcolor=”” color=”” readmore=”on”]

さらに、IoTシステムで必須と感じたスキルはデータベースに関する知識です。データベースの構築(モデリング)から、実際にデータベースとやり取りするSQL言語まで。中小企業で開発者が少なければ、当然ひとりでほとんどのことをやらなければなりません。「俺、データベースの構築できないから~」では済まないんですね・・・。

[st-card id=1071 label=”おすすめ” name=”” bgcolor=”” color=”” readmore=”on”]

IoTシステムの構築は、プログラミングの知識と併せて、センサーやなどのハードの知識、そして通信といった分野まで幅広いのです。一人で1から構築してみるとわかるのですが、これほど技術者として力の付くジャンルは無いと感じました。私もまだ始めたばかりですが、IoTは趣味でもできますので(スマートホームなど)、良いタイミングでIoTに出会えたなと思っています。これからがんばりますよ~!

PythonでGUIアプリを製作する際のスキル

IoT、Webアプリ同様に、GUIアプリと呼ばれるデスクトップ上で動くプログラムでもデータベースの知識は不可欠になっています。現場で取得したデータをデータベースに保存し、そのデータをどのように活かしていくかが、製造業IT化のカギと言われています。

IoTはブームですが、IoTで取得したデータを確実に生産性向上につなげていくには、データの分析が必要です。このときに、いちいcsvに書き出したデータを精査していては、それだけで工数の無駄というものです。データベースに的確に入ってさえいれば、読みだすアプリはなんでもよく、最近は無料のBIツールも多数出ています。分析は専門家だけのものではなくなってきているんですね。

私の作ったGUIアプリは、設備の計測データをデータベースに書き込む内容のものでした。このデータをMicroSoftが無料で提供しているPower BI Desktopというアプリで読み込むと、自由に分析できる無敵のツールです。これが無償なんですから、すごい時代ですね。

Power BI Desktopはもうすこし表示機能が増えてくると、IoTのダッシュボードとしてもつかえるのでは??と思っています。今後のアップデートが楽しみです。

[st-card id=1103 label=”おすすめ” name=”” bgcolor=”” color=”” readmore=”on”]

PythonでWebアプリを製作する際のスキル

Web系の技術は進化が速く、とても追いきれません。一昔前に全盛を誇っていたJQueryが、今やオワコンなんて言われています。今Javascriptを学習するならVue.jsですかね。

Webの技術の土台はHTMLとCSSです。どんなWebアプリを作る際にも必ず必要になってくる知識です。

Webの技術は今や、Webサイトを作るエンジニアのみの技術ではなくなっています。Webの技術を応用してIoTのシステムも組めますし、生産管理システムなどもWebの技術だけで賄えるところまで来ていると感じています。

今後、製造業のソフトウェアもWebアプリが主体になることもあるかもしれません。たとえば、Webアプリからハードの計測器とシリアル通信が簡単に出来るようになれば、Webエンジニアにも、製造業で使うようなソフトが組めることになります。

製造業のパソコンといえばWindowsが主体でしたが、ドライバの問題と通信技術が確立されれば、ブラウザさえ入って入ればパソコンは選ばないということになります。「エクセルのVBAでマルチメータと通信」なんていうことをしなくてもよくなるんですね。これは本当にすばらしい!エクセルは大変優秀なソフトですが、一度エクセルに依存したソフトを組んでしまうと抜け出しにくいのです。早くWebの技術でハードのコントロールができるようになると嬉しいです。

Git、Linux、ネットワークは三種の神器

どんな言語でどんなアプリを組むにしても、GitLinuxネットワークのスキルは不可欠になってきています。私は「Git」は、アプリを共同開発する人たちが使うものでしょ?くらいの感覚しか持っていませんでした。

しかし、Gitはコードの変化を逐一記録し、いつでも過去に戻れるようにするためのツール。プログラムを書いてみて初めて、コード管理の重要さに気づきました。ひとりでプログラミングしようと、複数で共同プログラミングしようと、コードのバージョン管理は必須なんですね。「ちょっと前のバージョンに戻りたい」なんてことはしょっちゅうあります。

ちなみに私はGitをUdemyの動画講座で学習中です。Git書籍もたくさん出ていますが、動画講座は講師に質問したりしながら視覚的に進められるのでおすすめです。

[st-mybutton url=”https://px.a8.net/svt/ejp?a8mat=356WSZ+UD8HM+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fgit-beginning%2F” title=”UdemyのGit動画講座はこちら” rel=”” fontawesome=”” target=”_blank” color=”#fff” bgcolor=”#039BE5″ bgcolor_top=”#29B6F6″ bordercolor=”#4FC3F7″ borderwidth=”1″ borderradius=”5″ fontsize=”” fontweight=”bold” width=”” fontawesome_after=”fa-angle-right” shadow=”#039BE5″ ref=”on”]

Linux知識の重要さは、今更私が訴えるまでもありませんが、ネットワークに関しては色んな意見があると思います。それは、サーバなどのネットワーク環境が「クラウド化」してきているからです。自社サーバがクラウド上に移行するだけで、やはりエンジニアのスキルは必要でしょう。手元に無い、「クラウド上にあるサーバ」を構築する分、エンジニアに求められるスキルは上がっているのではないでしょうか?

クラウドエンジニアという言葉も出てき始めています。アプリを動かすのに”クラウド”という広い意味でネットワークの技術は必要なのですね。

まとめ

プログラミング言語には流行り廃りがあります。Pythonと共に培った知識・技術は、たとえ書く言語が変わったとしても活きてくるものばかりです。

プログラミングはやってみなければわからないことばかりです。しかし、やった分だけ技術が蓄積され、やがてアプリとなって表現できるようになります。そこがプログラミングの醍醐味ですね。プログラミング界におけるPythonの優位性はまだ続きそうです。じっくり腰を据えてPythonコードを書けるようになりたいものです。

[st-card id=785 label=”おすすめ” name=”” bgcolor=”” color=”” readmore=”on”]

よかったらシェアしてね!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次
閉じる