もともと社会人になったらこんな記事を書いてみたいなと思っていたので書きます!
どうも!
入社式から2週間弱。
フレッシュな今だからこそ書ける記事だと思うんです。大学生から社会人になって感じたギャップや大学時代に「こんなことやっておけば良かった」と言う後悔。
プログラミング経験0からIT企業に入った方が「大学時代にもっとプログラミングを云々」って記事はよく見かけるのですが逆の立場から「大学時代にこんなことをやっておけば良かった」って記事はあまり見ないので大学時代にSFCの環境情報学部に在籍し主にPHPとrubyを弄って来た僕が入社から2週間で早々に痛感した「大学時代にこれはやっておけ」と言うものを何点か書き留めておきたいと思います。
かじっていたとは言え僕は大した事は無いです。
ガチでプログラミングをやっていなかった僕も悪いのですが、だいたいどんな事をやって来たのか明記しておかないと感じたギャップ書いても意味が無いと思うので参考までに僕のプログラミング歴を少し書いておきます。
【0ベース】
PHPを用いたwebフォームの作成(サークル)
PHPを用いたRSSリーダーの作成(趣味)
rubyを用いたスクレイピング(卒業論文のデータ収集)
javascript(ajax)を用いた動的HPの作成
【既存のサービスのカスタマイズ】
wordpressを用いたブログの運営(サークル&mokabuu.com)
MyNetsを用いたSNSの運営(サークル)
こんな感じです。
まあほぼほぼ書いていないです。それでも全くプログラミングを知らない人よりは書ける自信ありましたし、データベースも最低限は使えるつもりでした。
よくプログラミング経験無くIT企業に入った人達が「大学時代にプログラミングをやっておけば良かった」なんて言っていますが、大学時代にプログラミングをやっていた立場からすると「大学時代のプログラミングあまり意味が無かった」と僕は思います。
僕の勉強が浅かったのもあるのですが、企業の業態にもよりますが扱うデータの量が違ったりそもそも開発環境が違ったり、言語が違ったりするのです。その中でも僕は扱うデータの量とそのデータの処理に愕然としました。
まあ普通の大学生じゃやらないような処理をするんですよね!
なんてことないです。やっていることは簡単なはずなんです。それでも躓きます。やったことがないから。
経験があるのでその分他の同期とは差をつけることが出来ますが、そんな差は一瞬で埋まります。1日10時間以上プログラミングを書き続けるわけですから、どんどん技術は追いつかれて行く一方です。
そんな中で「プログラミングって書ける事自体には価値ってないのだな」と思い知らされました。
ここで僕が言う「書けることに価値がない」とは「ただ書ける事に価値がない」と言う事です。おそらく与えられた処理をこなすプログラムを書くだけなら誰でも出来るようになります。直に。プログラミング経験者としては未経験社の同期を見ていると焦りを感じます。
そんな時にじゃあどんなコードをかけたら意味があるのか?
皆が同じ処理を出来るようになった時にどうやって差を付けたら良いのか?
ここで大事な事って2つあると思うんですよ。
・早さ
・性能
この2つです。
「早さ」とは「実装の早さ」と「処理の早さ」2つです。皆が1週間かかるコードを1日で書けたらそれは凄い事ですし周りに差をつけることができます。そして社会に出ると学生のころからは考えられない莫大な量の情報を含んだDBを扱う事になるので「処理速度」が本当に大切になります。
僕は力づくで無理矢理動かすコードを書く癖があったため、なかなかに自分のコードの糞さを痛感しました。動けば良いのではなく、どうやったら0.1秒でも処理時間を短縮出来るか。またどうやったら実装速度が少しでも上がるか。もっとそう言うところにフォーカスしてコードを書いてくれば良かったなと後悔しました。
また「機能」も大切になります。
人から与えられたコードは誰でも実装出来るようになります。つまり受注を受けたものをそのまま実装するだけなら誰でも良いと言う事です。なので「制作物のアイディア」つまり「クリエイティビティ」が大切なのだなと痛感しました。「アイディア」はなんでも良いんですよ。拡張機能でもユーザビリティでも綺麗なデザインでも。それでもただ実装する行為には本当に意味が無いのだと痛感しました。
ただ作るだけではなくもっと細部に拘った成果物を作りたかったなと思いました。
例えばサークルで作ったwebフォーム。
サークル員がwebフォームに何を打つかなんて予測出来ますよね。なので1文字打たれた際に予想される入力文字列を候補として表示する等もっと拘る事が出来たなと思いました。
javascriptで書いた動的なHP。
もっとさくさくと動くように書けたなと思いました。「動く!かっこいい!」ではなく、如何に快適な動作で格好良く見せるかと言うところに拘れていませんでした。HPぐらいなら多少遅くても気になりませんが、扱うデータの母数が多くなるとそういう小さなこだわりの無さが致命傷になります。
書ける事・書く事に満足するのではなく、その1歩先を行った「使いやすさ」や「他の人が作ったものとの差別化」をもっと出来たら良かったなと思います。
プログラミング言語が扱えるか否かはやったかやっていないかに尽きます。
そしていざそれが仕事になれば皆生きるために死ぬ気でやります。そうなったときに、「書ける」ではなくって「これを作れる」にならないとダメなのだなと痛感しました。自分のコードじゃなきゃダメな理由がちゃんと作れるように、ただただ書くのではなく1つの自分の芸術作品として細部に拘って仕上げて行かないとダメなのだなと。
最後まで読んでいただきありがとうございます。もしこの記事を気に入って頂けたようであればシェアをお願い致します。非常に励みになります。