ブログ開始時の筆者のレベルについて
「勉強ブログ」みたいな設定のブログなので、勉強を開始する前の筆者がどの程度のレベルなのか、一応書いて残しておこうと思います。
今回は特に目次とかも設定しなくてもいいかな~とも思ったのですが、WordPress自体になれるためにもちゃんとやっていきます。
プログラミングでやりたいこと
プログラミングができるようになって何がしたいのか?というところです。
筆者は現在、大学院に在学しており、データの解析やグラフの描画に使えるようになりたいなというのが一番最初のモチベーションになります。
アカデミアで行われる研究が、その研究結果を必要としている人までリーチしていないような事例にも問題意識を持っています。例えば、大学の農学部でやってる研究について、近所の農家さんたちは全く意味が分からない、そういう知見を知るための会なども無いというような事例です。
近年のスマートフォンの普及によって、パソコンが使えなくても高機能なソフトウェアをアプリという形で使いこなせる時代になっているため、研究の成果を応用したウェブアプリケーションなどの開発に、将来携わることができると楽しいかなと思っています。
また、近年注目されている機械学習やディープラーニングなどにも興味があります。Kaggleなどの競技プログラミンに参加すると、最新の情報にもキャッチアップしやすくなると思うので、ゆくゆくはやっていこうと考えています。
勉強する言語
以上のような背景から、最初にPythonを学び始めました。
というのも、機械学習とグラフなどの描画となったときに、わりととっつきやすい印象があったためです。この選択が正解だったかどうかはこれから分かります。
また、Pythonは言語処理などにも幅を利かせているようなので、ウェブサイトのクローリング・スクレイピングにも手を出してみたいなと思いました。そこで、Twitterをなんとなく眺めていた時に見つけた、東京フリーランスさんの「30Days トライアル 1st」(リンク)に取り組みました。これは、HTMLとCSSの基礎を学んで、Bootstrap 4を用いてなんとなくLPまで作れるようになるまでのロードマップを示してくれているものです。
まずはProgateから始めて、エディターをインストールして簡単なLPのひな型を組み立てる練習をしました。これのおかげで、HTMLとCSSにおけるタグやらクラスやらのことはなんとなく分かった気持ちになりました。現在ブログを書いているWordpressではPHPが使えないといけない気がしますが、とりあえずHTMLとCSSだけでもある程度のカスタマイズが出来るので、そこは後回しにしようかなと考えています。
PythonにはDjangoと呼ばれるモジュール(フレームワーク?)があり、これが一番有名なWebフレームワークらしいので、もうちょっとしたら触ってみようと思ってます。また、ウェブサービスを行うにあたって、データベース管理も必須になってくると思われます。そのため、SQLも学んでいく予定です。積ん読状態になっている(本当にすみません)『前処理大全』でも、Python、R、SQLの三つが紹介してあり、それぞれ強みが違うことなどが紹介されていました。
ここまで、勉強を開始できているのは、
- Python
- HTML
- CSS
だけとなっています。今後はとりあえず、Pythonと並行して、SQLをやっていこうと思います。
ただ、言語の壁などはあまり気にせずに、実装したい機能にあわせて、フレキシブルに学んでいきたいと思います。
ここまでの進捗
HTMLとCSSのほうは、とりあえずいったん終了なので、ここでは省略します。
一応、Bootstarp 4のチュートリアルはこなせました。あと、ブログのちょこっとしたカスタマイズくらいは調べればできる感じです。
Pythonに関してはLean Baseballさんの記事、『Pythonを学ぶときに読むべき本2020年版 – 初心者からプロになるために』をロードマップの参考にさせていただいています。
先日、『スラスラわかるPython』が終了しました。(そのうちAmazonかなんかのリンクを貼るかもしれないし、あるいは貼らないかもしれません。)
Visual Studio CodeをHTMLとCSSの勉強に使っていたのですが、Windows Powershellを表示させるの便利だったので、今回の学習にも採用しています。
続いて、『退屈なことはPythonにやらせよう』を始めたところです。並行して『Python実践データ分析 100本ノック』をこなしていきます。
今回の記事ではコードをガッツリ載せることはしませんが、ブログでのコードのハイライトにはプラグインの「Hihilighting Code Block」を使用します。
#importing modules
import numpy as np
#print something awesome
print(np.random.randint(0,100, 10))
というような感じになりますかね?出力結果とかをコメントで載せていくのもありかな?と思っています。
まとめ
データ解析に漠然としたあこがれを持った普通の大学院生(専門は農学系)が、体当たりでプログラミングを学んでいく感じです。
HTMLとCSSはほんのちょっといじれて、ブログのカスタマイズで少しずつ遊べる感じにはなっています。ただ、本格的に勉強する言語としては、まずPython、次いでSQLを予定しています。
他にもこれやんないとやばいだろ!というのがあればぜひ教えていただけると幸いです。