プログラミング 大学生活

【大学生向け】なぜ僕はプログラミングを始めたのか

プログラミングに興味があるけどはじめようか迷っている人に是非読んでいただきたいです^^

プログラミングを始める前は何をしていたか

ざっと大学に入ってからやってきたことをタイムラインでまとめてみました。


  • 大学1年

    音楽制作を始める。大学2年になる直前で初めて海外のチャンネルでプロモーションされました。


  • 大学2年

    音楽制作+ブログを始める+一人旅。ブログは月間1万PVに届かず...音楽制作ではチャンネル登録者数50万のレーベルからリリースしました(再生回数はそんなに多くないです....)。


  • 大学3年

    音楽制作+ブログ(ほぼ休止状態)+プログラミング。音楽制作ではSpotifyの公式プレイリストに採択されましたが、それ以降はほぼ活動していません。ブログは4月に月間1万PVを達成したものの、5月にグーグルアプデをくらい、その後半年ほどアクセスが横ばいでした。最近またアクセスが増え始めたのでぼちぼち再開。プログラミングは3月くらいから学習開始。今はエンジニアインターンをしています。




大学一年の時から、一年毎に新たなことに挑戦して、それほど悪くはない成果を出してきました(ぼっちだから為せたことかもしれませんが...)。
ただ、同時に常にお金の問題に直面していました。ひどい時は、バイトの給料日が1日ずれたときに危うく口座の残高がマイナスになりそうでした(笑)。

ブログはそれほどお金がかかりませんが、音楽制作で海外レーベルでリリースとなると、PC合わせて最低でも30万くらいは必要になります(僕は60万円くらい溶かしました...)。となると、バイトをせざるを得ないんですよね...

そのため、大学に入ってから様々なバイトを経験しましたが、1つを除いて全て辞めるはめになりました。それも殆ど1ヶ月以内に笑。

少しきついバイトはすぐに辞めた

塾のバイトをしていたのですが、1回の出勤で1、2コマ担当すれば良かったので楽だったのですが、その一方月の収入はあまり高くならないというデメリットがありました。

このデメリットを補うため、飲食やカラオケ、イベントスタッフ等色々やりました。

まずは飲食ですが、これはキツすぎて2週間で辞めました笑。いわゆるフードコートのようなところだったのですが、

  • 通勤が長い: 行き帰りでそれぞれ1時間半。帰りは終電ギリギリ→就寝は午前1時→次の日は1限から講義
  • 「お待たせ致しました」を言う時に必ず噛む→声が小さくなる→怒られるor裏でネチネチ言われる
  • 立ちっぱなし
  • 明かにスキルにならない単純作業
  • 周りに自分と同じような人がいないため波長が合わない

これらの要素が相まって、2週間ほどで辞めました。ただ、それでも塾のバイトの1ヶ月の給料を超える4万円ほどを稼げたので、「飲食なんて絶対やらん!」とはならなかったんですよね。一緒に働いて嫌な人もいませんでしたし。

それで次に始めたのはカラオケのバイトです。これは飲食のバイトをやめて1年後くらいに始めました。これも1ヶ月程度で辞めました笑。しかもこれに関しては、店側から「辞めるなら店まで給料を取りに来てください」と言われたのですが、面倒臭くて行きませんでした笑。そのため実質タダ働きです笑。

  • 店に、一人最高に嫌な奴がいた(40代くらいの女性)
  • トイレ掃除が嫌だった
  • 店中タバコくさい
  • 民度が低い

主に上の2つの要素で辞めました。一番目に関しては、初日はすごく丁寧に教えてくれたのに、その次からは挨拶すらせず(僕以外に対しても同様)、ネチネチ細かいところを嫌みったらしく指摘してきたり、ガラリと人が変わり、気分が悪かったですね。

個人の経験上、怒鳴られるのはあまりダメージがありませんが(小中で散々そういう目に遭ってきたので)、ネチネチ言われたり、ボソッと言われたりすると再起不能なくらいダメージを負うので、1ヶ月程度で辞めました。逆に1ヶ月も続いたのがすごいくらいです。

例はこの2つにとどめておきますが、どれも長続きはしませんでした。大学2年の終わり頃からは、タウンワーク等では自分のやりたい+ためになるようなバイトを全く見つけることができなかったので、そこでやっとプログラミングで稼ぐことを決心しました。

理系だけどプログラミングのセンスはないと思っていた

とは言っても、僕は理系の勉強をしているので、プログラミングは大学1年の頃から触れていました。
ただ、あまりの出来なさ、理解度の浅さ故にプログラミングに対して苦手意識を持っていました。さらに、少数ではあるものの、僕たち凡人が1ヶ月かかるような課題を2、3日でレポート込みで終わらせるような人たちもいたので、なおさら「プログラミングは向いていないな」と思っていました。

具体的にどれくらい苦手だったかというと、例えば下のプログラムを見たとして、

#include <stdio.h>

int func_a(int a){
    return a;
}

void func_b(int b){
    printf("%d\n", b);
}


int main(){
    func_b(b);
    printf("%d\n", func_a(100));
    return 0;
}

  • プログラムって上から下に処理していくんだよね? なんでfunc_bの方がfunc_aの下に書いてあるのに先に実行されているの?
  • そもそもvoidって何? なんでintとvoid分けてるの?
  • なんでfunc_bの方はreturnがないの? → returnつけたらエラー出たんだけどなんで?
  • mainに書いてあるreturn 0; って何?
  • なんでfunc_aの方はmainの中でprintfを書く必要があるの?
  • そもそも#include <stdio.h>ってなんだよ!

このような感じで、最高に低レベルな疑問が物凄いスピードで頭の中を駆け巡ります。上に書いてある疑問は、プログラミングを1ヶ月でも集中してやればそもそも疑問にすらならないと思います。そのくらいのレベルでした。

その後のJavaでも、publicとprivateの違いや、classを作る意義がよく分からなかったりと、つまづいてばかりでした。プログラミングのレポートは自分の力だけで完成させられたことはないです。

そんな感じで、「自分はプログラミングに向いていない」という強烈な思いが妨害となり、大学3年までプログラミングでお金を稼ごうとかみじんも思わなかったです。

Pythonで一気に駆け上がった

いくらタウンワークを見ても自分の働きたいバイト先が見つからなかったため、プログラミングを本格的に自習し始めました。そこで選んだ言語がPythonですが、これは選択としては大正解だったと思います。
よく、「プログラミング未経験から自社開発に行きたい人はRuby(Ruby on Rails)とPHPから始めよう!」という声がありますが、僕がPythonを選んで良かったのは、機械学習系のポートフォリオが作りやすい=他との差別化がしやすいという点です。しかも、機械学習系といっても、表面上の形を作る程度ならば数学の知識は微塵も必要ありません(Pythonなら)。これでポートフォリオを作ったり、GitHubにソースコードを載せてアピール材料にすれば他の人との違いが明確になって、少なくとも「またメルカリ(Twitter)クローンかよ」と思われることは100%なくなります。

少し話がそれましたが、Pythonをやってみて、「もしかしたら自分そこそこプログラム書けるかもしれない!」と思えるようになりました。理由としては、PythonがCやJavaよりとっつきやすかったのが大きかったと思います。Udemyで勉強していたのですが、かなりスルスル進んであっという間に受講を終えてWebアプリを一つ作ることができました。

そんなこんなで機械学習を盛り込んだ作品を作ったり、単純なWebアプリを作ったりでポートフォリオまがいのものが完成し、インターンを始めることができました。某病気が猛威を奮っているこのご時世なので、ほぼフルリモートで働けています。

ポートフォリオ作り+インターン探しに役立つUdemy教材

最後は、実際に僕が使ってきたUdemy講座の中でも、特に最初の学習でおすすめなものを紹介します。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

Pythonで日本語と言えば、この講座が一番有名な気がします。受講者数も段違いです。このコースは20時間超えですが、ポートフォリオ作成のためには最初の基礎の部分とFlaskのパートをやれば十分です。ロギングなどが出来ると評価が高くなるかも分かりませんが、そこら辺は最初は何のために存在するかが分かりにくいと思うので一旦スルーで大丈夫です。

コースを見る

Git: もう怖くないGit!チーム開発で必要なGitを完全マスター

GitはQiita等でもある程度まとまった情報があるのでこの3つの中では優先度は一段下がりますが、エンジニアとして働くとなると、Gitが使えるのが必須条件になっているところが多いので、無料の記事を見て局所局所をかじっていくのではなく、体系的に学びたい人はおすすめです。

コースを見る

Machine Learning A-Z™: Hands-On Python & R In Data Science

僕は機械学習系は全て英語で受講したので日本語の教材は紹介できないのですが、これの利点は、基礎的な機械学習の手法を分野ごとに丁寧にまとめられています。講義時間は驚異の40時間超えですが、PythonとR両方について説明しているので、Pythonだけなら半分の20時間程度で済みます。回帰から分類、ディープラーニング等あらゆる分野を網羅できているのは英語でも日本語でもこれ以外のは僕は見つけられませんでした。

コースを見る


それでは、プログラミング学習頑張ってください!

  • この記事を書いた人
おととらべる

おととらべる

プログラミングで小銭を稼いだり、音楽を作ったりしている理系大学生です。 一人旅で次に行きたい国は、 エジプト、アルバニア、アルゼンチン、ボツワナ、ナミビア、オマーンです。

-プログラミング, 大学生活
-, , , ,

© 2021 おととらべる Powered by AFFINGER5