前提となる考え
コーディングスキルを身につけるためには、実践が一番。実践のためには、何を作るかがポイントになる。机上学習では限界があるし、何かを作ろうと考えたら、自分がワクワクするものを作ることが一番だと思うからだ。
世の中にはたくさんのプログラミング言語があるが、デプロイや公開、そして保守運用まで検討してから、一番手のかからない、かつ、将来性や身につけた自分の市場価値がより高まるものに取り組みたい。
また、学習コストを考えると、経験したことがある言語を選択することがより良いと考えた。
自分のスキル棚卸し
ということで、自分のスキルを振り返って整理する。かなり年月が経過しているので、おそらくほぼリセット状態だろうが、自己肯定感をアップさせるためにも、事実は事実として記載した。
<現在所持しているスキル>
・C、C++、PHP、Pythonの経験あり
・Linux系サーバ(CentOS)をゼロベースから導入しサーバを構築できる
・CUI大好き、基本的なコマンドならサクサク叩けるレベル
・独自ドメインの取得からDNS設定し公開までサクッとできる
・PostgresのDB操作経験あり
・RFIDを使った応用研究として図書管理システムをゼロから構築の経験あり
・PostfixなどのメールソフトをソースからDLしてメールサーバ構築の経験あり
etc etc,,,
これから学ぶべき言語の選定
上記のスキルを所有している(ということにする)自分を考慮しつつ、将来性のありそうなプログラミング言語を選定する。候補は2つ。GASとPython。
GASの特徴
GASはGoogleサービスを活用してクラウドベースで開発できるし、GmailやGoogle mapなど含めてGoogleのWebサービスとの連携が簡単そうな気がする。調査して把握できた特徴は以下のとおり。
※凡例: ○:メリット、×:デメリット
○マルチデバイス・マルチOSに対応(操作PCを変更しても同じ環境で開発できる)
○Googleのサービスを活用・連携することが用意そう(TensorflowなどGoogleの技術を活用できる点はとても魅力的)
○Googleサービスはデプロイなどの開発コストが低いイメージあり。UIも分かりやすい。
×Googleのサービスはある程度のレベルになれば有料
×Googleしばりになるの(汎用性・応用性に欠ける?)
×Google独自のスクリプトで経験が薄いから頑張って勉強する必要あり
Pythonの特徴
Pythonは言わずもがな、現在ではとても有名なプログラミング言語だ。覚えやすさ(コーディングのしやすさ)や、ライブラリの豊富さ=開発の幅が広いことがメリットと認識している。
○ライブラリが豊富
○企業の縛りがないので自由度が高い
○世の中の公開APIはPythonに対応しているものがほとんど(なんで、Pythonを学習しておけば将来性・汎用性等が高そう)
×サーバやドメインなどの構築・設定が必要(GASより時間かかる?)
×Pythonは初心者レベルなので頑張って勉強する必要あり
結論
Pythonで頑張ろうと思う。今の自分のスキルであれば、Pythonの方が将来的に役に立つ可能性が高い気がする。
それに、デプロイまでの開発コストがGoogleよりも高いかもしれないが、Herokuなどの外部サービスを活用することでクリアできる気がする。
こうやって文字化すると、少なからず頭が整理できて良い。
よし決まった。Pythonでがんばる。