ITエンジニアへの5分間キャリア・コンサルティングやってます!

第443回 Python始めました。

»

 こんにちは、キャリアコンサルタント高橋です。

 ちゃとらんさんのコラムとは関係ないのですが、思うことがありPythonの勉強を始めることにしました。今回はこのことについて書きたいと思います。

■Ptyhon始めました。

 私はITエンジニア時代から比較的いろんな言語を使って仕事をしてきました。汎用機(メインフレーム)、オープン系、Web系などの開発に携わらせていただいた経験があるので、思いつくだけでもアセンブラ、EASY、FORTRAN、BASIC、COBOL系(85,Pro*Cobol,Netcobol,YPS/COBOL,BAGLESなど)、C系(UNIX-C、Pro*C、C++など)、Java、JavaScript、VBA(Excel/Word/Powerpoint)、JCL、Shell script、SQL、HTMLなどを触らせていただきました。そのため、比較的プログラミング言語に対する敷居は低い方だと思っているのですが、それでも新しい言語を覚えようとするのはやっぱり億劫になってしまいます。。。

 しかし、前々から考えていたことがあり、思い切ってPythonを勉強しようと思いました。それは、仮想通貨に対する研究のためです。実は私はキャリコン以外に外国為替市場(FX)に対する研究をずっと行ってまして、それ専用のロボット(プログラムのことでExpert Advisor:EAと呼びます)を幾つも作ってたりします。そのEAを使って自分で運用したり、証券会社経由でリリースさせてもらっていたりということもしていました。それは今でも続いているのですが、自分の可能性を考えた場合、FXだけでなく仮想通貨にも領域を広げていきたいと考えていました。

 ただ、FXと仮想通貨は似ているようで全く違っており、それぞれの界隈のモノの考え方が全く違います。また、FXの場合、MQL4というプログラミング言語を使うことが多いのですが、仮想通貨でMQL4を使うことは少ないようで、代わりによく使われるのがPythonらしいのです。こういったこともあり、以前よりPythonを勉強しようと思っていました。

■プログラミング言語の習得方法

 で、ですね、実際にプログラミング言語を覚えようとした場合、まずはやることは開発環境(IDE)の準備です。今回私はPython(Anaconda)+VS Codeで環境を作ることにしました。まだ詳しくは理解できていないのですが、仮想通貨プログラム(botと呼びます)には機械学習の考え方を組み込むことがあるらしく、Pythonよりデータサイエンス系に特化しているAnacondaの方が適しているらしいので、今回はこの環境を作ることにしました。

 ネットの情報を参考にしながら格闘すること数時間、何とか環境をインストールすることができました。そうして、最初に作ったプログラムはやっぱり"Hello World"でした(笑)

no44301.png

 まぁ、動作確認的な意味が強かったのですが、初めて動くプログラムはどのプログラミング言語でもやっぱり感慨深いものがあります。。。

 動作確認ができたので、ここからは実際にプログラムを組んでいきます。私がプログラミング言語を学ぶ場合、文法書から読むようなことはせず、実際にプログラムを自分の手で打ち込みながら分からない命令やAPIがある場合には都度調べ、1行ずつプログラムの動きを把握しながら理解をしていくようにしています。こうすると、プログラミング言語全体は理解できないかもしれませんが、自分がやろうとするbot開発に必要な知識や考え方だけは理解することができます。今回、打ち込んでいるプログラムは既に仮想通貨botなので、その動きを追えばどのような仕組みで動いているかが理解できますし、命令の仕方などの作法もある程度わかってきます。つまり、そのプログラムが私にとってそのまま教科書になっているのです。

 そうして、出来上がったプログラムをデモ口座(実際にお金を入れて取引をする口座ではなく、ダミーのお金が入っている口座のこと)で動きを確かめます。その後は少しずつプログラムを改良しながら、自分なりのアイデアを盛り込んでは動きを確認し...の繰り返しです。

 改めて考えてみると、ITエンジニア時代からいつもこの方法でプログラミング言語を覚えてきました。恐らく私にとってはこのやり方が一番時間をかけずにプログラミング言語を使えるようになる方法なのだと思います。それは、体感的にこの方法が自分に一番合っていたからなのでしょうね。これが私がやっているプログラミング言語の習得方法です。

■プログラミング言語を覚える意味を考える

 しかし、私がプログラミング言語を覚える場合、そのプログラミング言語を覚えたいからやっているというより、自分のやりたいこと(ここでは仮想通貨botを作成するということ)があり、それを実現するためにはプログラミング言語を使う必要があるので、それを覚えているだけのような気がします。そういった意味では、私にとってプログラミング言語はただの手段でしかなく、例えば仮想通貨botがPython以外で作られているなら、きっとそのプログラミング言語を覚えようとしたと思います。

 ですので、私自身、結構な数のプログラミング言語を覚えているつもりですが、ほとんどプログラミング言語に対する拘りはないですし、自分だけが使うプログラムなので自分の好きなように作ってしまうことも多いような気がします。(仕事でプログラムソースなどを提供する場合は作法に基づいて書くなどはするつもりです)

 とはいえ、やっぱりどんな形であれプログラムが動けば嬉しくなります。それはITエンジニアをやってた頃も今も変わりません。多分、私の根っこはITエンジニアなのでしょうね。そう思うと、こういったプログラミングの楽しみを覚えていることが、今でも私がプログラミング言語を覚えようとすることに繋がっているのかしれませんね(笑)

Comment(2)

コメント

ちゃとらん

いつも、楽しみに読ませていただいています。


さて、いきなりPythonという単語が出てきて驚いています。何が一番驚いているかというと、高橋さんの引き出しの多さです。


キャリコンってどちらかというと人事系に、行動心理学や政治・経済や企業活動などの世間の動きなどを総合的に判断しながらコミュニケーションを行う人文系だと思っていました。なので、ITやエンジニアに関しては、趣味の延長、またはちょっと詳しいくらいだと、勝手に思い込んでいました。


所が根っからのエンジニアだったんですね。恐れ入りました。
でも、だからこそエンジニアのキャリアについても真摯に向き合えるのだろうと、そこは納得できた気がします。

キャリアコンサルタント高橋

ちゃとらんさん、


こんにちは、いつもコメントありがとうございます。


ちゃとらんさんのおっしゃるように、私のIT技術やスキルはちょっと(ほんの少し普通の人より)詳しい程度です(笑)


私自身、一応ITエンジニア出身ですが、ITエンジニアのスキルが高い訳ではないと思っています。
ITエンジニアの仕事では企画、コンサル、PM、SE、PG、保守、インフラなど、ある程度一通りの仕事はしてきましたが、どれも広く浅くな感じでした。
プログラミング言語もやっぱり同じで広く浅くなので、その筋(?)の人とやっと会話ができる程度の技術や知識しかありません。


それは、私自身が1つの技術やスキルを高めることにあまり興味がないタイプで、必要十分で満足するからかもしれません。
ITエンジニアの業界で良く聞かれるプログラミング言語論争やエディタ論争などがありますが、ああいう話には全く興味がなく、やりたいことができれば別に何でもいいのでは?と思ってしまう程度の拘りしかありません。。。。


そういった意味で純粋というか生粋というか、そんなITエンジニアではなかったと思うのですが、ITエンジニアで仕事をして楽しかった、良かったという思いだけは残っています(笑)
ひょっとしたら、その思いが今の仕事に繋がっているのかな、というのをちゃとらんさんのコメントで感じました。


ありがとうございます♪

コメントを投稿する