はじめに
こんにちは!
今回は、活動記録的な内容の記事になります。
そろそろ、今年の5月も終わりそうということで、僕自身がプログラミングを始めて1年ちょっと経つので、これまでの流れを振り返っていこうと思います。
この回は、完全に自分語りの回になるので、興味がある方だけササっと読んでいただけるとありがたいです。
ちなみに、軽く触れただけの言語もカウントすると、1年でこれだけの種類を触ってきました。
- C言語
- (HTML & CSS)
- JavaScript
- (jQuery)
- PHP
- SQL
- Python
ってなわけで、スタート!
プログラミングを始めたきっかけ
まず、僕自身がプログラミングを始めたきっかけから振り返ります。
結論から言うと、大学での講義がきっかけですね。
もともと、高校の頃からハッカーに憧れており、大学は情報系の学部に進学したのですが、パソコンの基本操作しか知らないような状態でした。
(憧れてるだけで何も行動しない奴)
そんな状態で、大学入学後すぐにプログラミングの講義があり、そこでC言語に初めて触れました。
この時は、文字列を出力するだけでカッケェー!ってなってましたね。
なによりも、コマンドプロンプトでの操作がハッカーって感じがして最高でしたw
まあ、ここまでは、情報系の学部に進学した人は大体同じでしょうね。
で、ここからいろいろ自分で模索する旅が始まります。
Let’s go !
最初のモチベは稼ぎたい ~web系言語との出会い~
僕自身、高校3年生の頃に自分の中で価値観がかなり大きく変わり、大学入学後は自己研鑽に時間を使いたいと考えていました(バイトやサークルよりも)。
で、そこから生まれた発想としては、講義以外の時間で何かしらのプログラミング言語を身につけたい、というものです。
その時は、どんな言語があるのかもほとんど無知だったので、入学して最初の1か月とかは、講義の予習などをする程度でした。
そんな時に、1人の友人から「webページ1枚作ると数万円稼げるらしいよ」ということを聞きます。
これが、web系言語への入り口ですね。
ちなみに、この時見せてもらったものは、クラウドワークスのサイトです。
これを聞いてから、お金を稼げるというモチベーションで、その友達と一緒にHTMLとCSSの勉強を始めました。
これが確か5月の終わり頃だったと思います。
当時はProgateの存在すら知らなかったので、図書館でHTMLとCSSの入門書を片っ端から借りまくっていました。
当時の貸し出し履歴はこんな感じです(関係ないものは隠蔽)。
この中でも、右側の真ん中にある本は3,4回借りて何度も読んでいました。
(今考えると、決してお勧めできるような良書ってわけではないw)
この本では、HTML, CSSが終わった後にJavaScriptが出てくるわけですが、ここでJavaScriptの存在を知ります。
PHPについてもちょこっと載っているのですが、この時は完全にスルーしてました。
ということで、ここからJavaScriptの勉強も始めることになります。
多分これが6月の終わりとかです。
ここで、これまで同じようなことを行ってきた友人と若干違いが生まれました。
その友人は、もともとwebページ作成に興味があったらしいので、それに特化させるという理由からjQueryへと走ります。
僕は深く考えていなかったので、入門書の流れに従ってJavaScriptへと走ります。
これにより、学習に詰まった際に相談する相手がいなくなってしまいました。
正直、今考えればどうでもいいです()
そんなこんなで、夏休みが終わるちょっと前ぐらいまではJavaScriptだけを触っていました。
月で言うと、9月の頭ぐらいまでですね。
その間に、架空の水族館のホームページや、タイピングゲームとかを作ったりしていました。
しかし、ここで異変が起きます。
実は、webページ作りで稼ぐ、というモチベーションだったはずが、途中からwebページ作りに飽きてしまいます…
スランプからのPHP
9月の頭ぐらいにwebページ作成に飽きちゃったんですよね。
というのも、もともとシステム作りを行うような、ガチガチのエンジニアになりたいと思っていたので、ポチポチとタグを作り続けるようなwebページ作りに違和感を感じていたことが理由です。
「こういうことがしたいんじゃないんだけどなぁ」と思うものの、特に代案が浮かばなかったので、だらだらとJavaScriptを勉強し続けていた感じです。
結果として、ここで「第一次プログラミングスランプ」に陥ります。
9月はほとんどプログラミングの勉強をしていなかったと思います。
そんな中、最初に読んでいた入門書にあったPHPを思い出します。
サーバーサイドって何なんだろう、という素朴な疑問からPHPの勉強を始めました。
これが確か10月の中頃。
また、この時に初めてProgate を利用し、その学習の進めやすさから感動を覚えます。
Progateの手助けもあり、第一次プログラミングスランプを乗り越えることに成功したわけです。
JavaScriptを一度勉強していた経験から、基礎構文がスイスイと入ってきたことも大きな要因だったと思います。
Progateを1周した後、ちょうどブラックマンデーみたいなイベントがあり、そこでUdemy の存在を知ります。
というわけで、ここでPHPに関する講座を購入しました。
その内容は、PHPとデータベースとの連携を行う、という内容だったのですが、勉強しながらわくわくが止まりませんでしたね。
(まあ、数か月後にピタリと止まるんですけど)
データベースとの連携を覚えることで、会員登録システムの作り方を習得し、これをどう応用してやろうか、と考えるわけですが、特に作りたいサービスが無いということで戸惑いました。
色々考えた後、ローカル向けにファイル共有サービスを作ってやろうと考え、その方向に進んでいきます。
これが年越し前ですね。
当時のツイートにこんなものがありました。
ファイルのアップロードの流れはこんな感じです
ファイルひとつひとつに対して、コメントをつけれるようにして、ファイル一覧ではそれらを確認することができます
(アイコンは拡張子を判別して画像を変えている)動画では行っていないのですが、ファイルのリネームもできるようにしてます pic.twitter.com/wC9hp0FEyJ
— tomo@プログラミング×ブログ (@tksx1227) January 3, 2020
このサービスは、かなりいいところまで実装できたのですが、機能を欲張ったあまり、結局自分の実力不足によるダメージで自然消滅してしまいますw
(グループ機能、グループ招待機能、DM機能などなど)
ここで、まさかの「第二次プログラミングスランプ」が訪れてしまったわけです。
さて、ここから物語は大きく切り替わります。
機械学習の道へ ~興味の外にあったPython~
web系言語に完全に飽きつつあった状況の中、1人の友人からPythonの勧誘を受けます。
「ちょうど1か月後に、東大の学生が主催している勉強会のようなものがあるから、興味があったら声かけて!」
これを聞いたとき、正直言って、機械学習には全くと言っていいほど興味がありませんでした。
なので、その時は「興味が出てきたら声かけるよ」と、「行けるなら行くよ(絶対来ない奴)」的な返事をしていました。
これが1月の中頃です。
しかし、ここで転機が訪れます。
大学二年次の学科を選択するために色々調べていたのですが、そこで「データサイエンス」に興味を持ちます。
(そして現在、データサイエンス系のコースに所属しています)
「興味があるものはとりあえずやっとけ」、というスタンスから、Udemyでデータサイエンス系の講座を2、3つ購入しました。
そこで、機械学習と出会うわけですが、「そういえば、この前なんか誘われてたなぁ」と思い出します。
「ちょうどいい機会だし、応募してみるか」、となるわけですねw
その勉強会的なものが2月の中頃から始まるものだったのですが、先に予習しておこう、という理由からPythonを勉強し始めました。
時期的には大学1年の最後の学期末テストがあったのですが、そんなことよりもPythonばかりやっていましたw
で、春休みがスタートするタイミングで、その勉強会的なものが始まるわけですが、この時に与えられた教材をやってて、こう思いました
もともと、高校数学が好きだったこともあり、ロジカルな機械学習に惹かれていきます。
そのまま、機械学習に続いて深層学習にも進みます。
この時が春休み真っ最中の3月の中頃とかです。
実は、その勉強会的な奴を主催していたコミュニティに現在も所属しているのですが、その中で、多くの分野を学ぶことができました。
扱った内容はこんな感じ!
- Python
- 機械学習
- 深層学習
- Flask
- Kaggle
- Arduino
最終日には、コミュニティ内でチームを組んでミニハッカソンが主催されたわけですが、この経験も大きかったです。
これが当時のツイートですね。
とりあえずこっちでやるべきことは終わったぁぁ
久しぶりに睡眠時間結構削った気がする、、 pic.twitter.com/OoIzON1hHt
— tomo@プログラミング×ブログ (@tksx1227) March 28, 2020
そんなこんなで、つい最近までは画像認識を組み込んだLINEbotを開発したりしていました。
これ!
https://twitter.com/tksx1227/status/1258278999878299648?s=20
知識が増えてくると、web系も面白いですよねw
APIの仕組みがなんとなくわかってきたので、最近はまたweb系にも関心が戻ってきていますw
というよりも、結局のところweb系言語は扱えて損はないんですよね。
機械学習などもアプリにしようと思ったら、Flaskなどを使ってweb系に落とし込む必要があるわけですし。
意外なところで過去のweb系言語の経験が活きてきました。
おわりに
こんな感じで、かなりふらふらしながら現在まで来てしまったのですが、特に後悔はありません。
確かに器用貧乏になることをずっと恐れていたのですが、なんだかんだで過去の経験は別の形で活きています。
(特にweb系は知ってると絶対役に立つ!)
まあ、最近はまた興味の対象が変わってきて、ARアプリを作りたいがためにUnityを触ったりしていますw
他には、Pythonで自動化アプリを作ることも、普通に便利だと感じてきました。
Pythonは機械学習をメインで触っていたので、サーバーサイド言語的な使い方はほとんどしていなかったのですが、スクレイピング等も楽しいものですね。
今となってはPythonで小銭稼ぎをするほどですw
あの時、Pythonへ勧誘してくれた友人には感謝しています。
では、最後に1年を通しての感想を言って締めましょう。
「プログラミングは知識が増えるほどめちゃくちゃ楽しい!」
「最初のうちはふらふらしながら色んな言語を試してみることも悪くない!」
こんな記事を最後まで読んでくれてありがとうございます!
では、今回はここまでとします。
お疲れさまでした!