This page is intended for users in Germany. Go to the page for users in United States.

クソコードを量産してた僕が少しだけマシなプログラマになるまで

こんにちは。株式会社ベーシックでプログラミングしているzaruです。隣の席に座っているプログラマが突然技術ネタクイズを出してきて、うっかり間違えてしまうのが最近の悩みです。会社ではCTOという肩書で働いている手前、技術力の低さが露呈してしまうのは問題ですね。チームの士気も下がってしまいます。精進します。

というわけで今回は、僕が過去クソコードを量産しまくっていた時代から、少しだけマシなコードが書けるようになるまでをザックリ書いていこうと思います。

プログラマ駆け出しの僕

まず、僕がまるでダメなプログラマだった時代から。10代でプログラミングをやり始めて個人サービスをやっていた頃です。

当時は「コピペでそれっぽいコードをツギハギしたら、動く、動くぞ!…動くけど…なんで動くんだろう?」とコピペプログラマまる出しだったり、「どこからでも参照できる変数・関数最強! そして神クラスに集約!」とスコープどこ行ったグローバルバカな感じでしたし、「変数名はとりあえず $aaa, $aaaa, $bbb で、あとで直すか」とあとで直されることのないコードを書いたりしてました。

バージョン管理という名の hoge.php / hoge_new.php / hoge.php.20081203 みたいなのが量産され、どれが本体か分からなくなったりしてました。ひどいですね。

Linux使って自宅サーバを構築した時も「あれ…設定ミスってなんか変になった…これはもうOS再インストールしかない」と謎のリセマラをしたり。本番サーバのファイルを直接いじってサイトが死んだり。

とにかく頭が悪かったんだと思います。

この時の僕の目的はとにかく自分で考えたWebサービスを世に出してウハウハしたい!というのが第一だったので、中身は二の次でした。いや、正確に言うと中身もこだわってたんです。でも、実力が全然伴ってないっていう感じですね。

そんな感じで自分が作りたい or 欲しいと思ったサービスを作り続けました。ファイルアップローダーや、ちょっとエロいサイトや、ホスティングサービスとか色々。

そうこうやっていく中で、光回線で70Mbpsを使い切るようなトラフィックをさばくためにサーバを分散させるインフラを構築したり、市販ルータではスループットが出ないのでLinuxカーネルをフロッピーに入るくらいのサイズに削ってオンメモリで動くルータを作ったりしてました。とにかく毎日せまりくるトラフィックとユーザからの苦情に、どうやって立ち向かうか考えるのが楽しかったです。

ここではプログラミングスキルよりも、モチベーションの作り方・楽しみ方が身についたのかなと思います。仕事は楽しんだほうが良いと思っているので、楽しむ工夫が重要なんじゃないかなーと思ってます。モチベーション大事。

ベーシックで成長したキッカケ

そして時は流れ、株式会社ベーシックに中途入社後の話です。ベーシックの中でプログラマとして成長したキッカケを紹介していきます。ざっくり分けると以下の4つです。

・ 異常な速度で成長するサービスとの戦い
・ 未知のスマホアプリ開発との邂逅
・ 勉強会駆動で見つける何か
・ OSS活動の始まり

異常な速度で成長するサービスとの戦い

数年前、アプリ向けアドネットワークのシステム構築をしました。フルスクラッチで。ここで僕は自分が今までに経験したことのない速度で成長するサービスに出会い、未知の技術領域に足を突っ込み、かつてない技術的負債を積んでいきました。

日に日に増えていくトラフィック…広告配信が止まったり、少しでも遅延したりすると、即サービスの品質に直結してくるスリリングな環境。気軽に「システムリニューアルするので、サーバ止めますね」とは言えない中で「DB・モデル設計だけは本当に後悔しないように最後までこだわるべき」というのを実感しました。数千万レコードあるALTER TABLE怖い。死ぬ。

この時、開発スピードと設計/コード品質のバランスが重要だということを痛感しました。返済計画のある負債は、ある程度までは問題ないけど、アテもなく詰んだ負債は単なるスキル不足でしかなく、スピード優先というのはある種の言い訳になってしまった部分がありました。できるひとはスピードも品質も担保できる。すごい。

会社としても未知の領域である新規事業に本気で突っ込んでいけるというのは、プログラマとして良い経験を積めたなと思います。ここらへんは、一つのやり方に固執しないベーシックの魅力だと感じてます。

経験できる機会、大事。

未知のスマホアプリ開発との邂逅

僕はWeb系プログラマとして長年生きてきて、スマホが流行り始めた時「スマホアプリ作りたいけどObjective-Cかぁ…Xcodeの使い方よく分からないし…いつか作れたら良いなー」という程度で、作りたいけど作ることはないという状況でした。あるあるですね。そんな中、アプリが作れるプログラマが入社してきたのを皮切りに事業でスマホアプリやるぞ!となりました。僕には神様に見えました。ありがとう。

当然、僕はアプリ開発初心者なので、とりあえず動くレベルでもめっちゃ苦労した記憶があります。お世辞にも良いコードではないし、とにかく時間がかかりました。それでもやれば作れるぞ…!という感覚を手に入れることができました。この感覚は僕の中で行動力を上げるキッカケになったと思います。

「やれば何でも多少はできる。迷ってるなら雑に作ってみるのが良い」という感じ。やってみる中で初めて分かることって結構あると思うんですよね。

勉強会駆動で見つける何か

ベーシックでは開発部での勉強会が盛んです。月に1回はTGIFという名のLT大会があるし、週に1回は30分程度のつぶやき勉強会があるし、社内ハッカソンとか…まぁとにかく知見を共有する場が色々あります。

そんなイベントがあったら、とりあえず登壇したくなるじゃないですか。スマホアプリ開発を通して行動力が上がっている僕は。で、登壇するとなると何かネタを仕込まないといけない。少しでもメンバーに有益な情報を伝えたい。じゃ、いろいろ調べてみるかーっていう感じで、勉強会駆動で興味のある分野を広げていくことができたと思います。

やっぱりアウトプットするには、具体化しないといけないので曖昧な理解のままだと伝えられないんですよね。分かっているつもりのことが、分かってないことが分かったり。ベーシックの開発部は、みんなのインプット・アウトプットが刺激的なので、楽しく続けられる感じがあります。

OSS活動の始まり

去年くらいから個人的にOSS活動に興味がでてモニョモニョやっていました。webpushというgemを作ったり、利用しているライブラリにプルリクを投げたり。たいしたことはやっていないんですが、その活動を通して世界中のプログラマと一緒にコードを書いていく感覚がめちゃくちゃ楽しいです。クセになる。

プログラミングスキルを向上には、誰かのコードを読むことが大事だと思っていて、OSS活動では読まざるをえないので良いトレーニングになります。このライブラリの作者はどういう思想で設計しているんだろうとか、こんな書き方もあるのか…などと自分のコードを書いているだけでは気がつかないキッカケがありました。

そんな楽しいOSS活動を会社としても推進できたら、もっと楽しいだろうなーと思いました。でも、みんな興味あるかなーどうかなーと悩みました。10秒くらい。で、とりあえず「面白いからやろー」とみんなに言ったら意外と興味を持ってくれました。興味はあるけど、やったことないからよく分からないという意見が大半でした。

これは昔の僕だ。スマホアプリを作りたいけど作れなかった僕だ。みんなの壁を取り払ってあげれば…と思い、とにかく日常に溶け込ませるように僕のOSS活動を会話に忍ばせたり、小さなライブラリを作ってOSSにしたり。

それらが効果があったのか、時代の流れなのかは分かりませんが、最近ではライブラリを作って公開したり、外部のリポジトリにプルリクを送ったりするメンバーが増えてきました。すごい。そして会社のSlackにはOSSチャンネルが作られ、そこでOSS活動のレポートやディスカッションが飛び交っていて楽しいです。

一緒にコードを書く仲間募集

僕はベーシックという会社の中でさまざまな機会に恵まれ、成長するキッカケを手に入れることができたと思います。開発部のメンバーもそうであって欲しいし、そうなれるような土壌・文化・環境を作っていきたいと考えています。

それをより加速させるためにも仲間がもっと必要です。少しでもピクッとなったら、気軽に声をかけてください。無限ビールと有限寿司と無限コーヒーと技術トークしましょう。

ちなみに最近の開発部の雰囲気は「CTOとして、プログラマとしての2016振り返り」を読むと、多少伝わるかもしれません。

Webエンジニア募集中!



Ruby | PHPエンジニア
めっちゃ売れてるオリジナルグッズ作成ECをもっと魅力的にするエンジニア募集
スマホケースの専門サイト「phocase ( https://phocase.jp/ ) 」は、女性をターゲットに、おしゃれなデザインケースを展開しています。Androidのおしゃれなケースがない、という問題解決から、2013年にスタート。多くの女性のお客様に支えられ、今年で5年目に入ります。 オリジナルグッズを1個から安価に作れる「Canvath ( https://canvath.jp/ ) 」は、minneやCreemaなどの、誰でも簡単にネットショップが作れるサービスでオリジナルグッズを販売するネットショップオーナーさま向けのサービスです。2015年から正式にスタートし、ベーシックのなかでも驚異的な成長率を誇るサービスです。
株式会社ベーシック


デザイナー募集中!

UI/UX designer
ネクストステージに行きたいデザイナーWANTED!
8業種の比較サイト事業からスタートし、「Webマーケティング」と「問題解決」をキーワードに事業を推進。現在はマーケティングオートメーションツール「ferret One」と国内最大級のWebマーケティングポータル「ferret」を軸に、Webマーケティングの大衆化を見据えたプロダクト展開をしています。 特にferret Oneでは、ビジネスの成果にフォーカスしたコンテンツマーケティング環境をワンストップで提供しています。米国で先行し上場企業も生まれている領域ですが、これを日本で普及させるための挑戦的なプロダクト開発が急務となっています。
株式会社ベーシック

ライター募集中!

Webライター
ferretでWebマーケを学びながらライターをやりたい人WANTED!
Webマーケティングメディア「ferret」は、2014年9月にオープンして以降、順調に成長を続けています。 現在は会員数35万人、月間300万PVと、国内マーケティングメディアでは最大の規模となりました。(2017年5月現在) 運営母体である株式会社ベーシックは、比較サイトやスマホケースのECサイトの運営など、Webマーケティング力を駆使して売り上げを増やしてきた会社です。 自社で培ってきたWebマーケティングのノウハウをferret上で発信することで、一人でも多くの方がWebマーケティングを実践できるよう日々試行錯誤しています。 新規事業にも積極的に取り組んでおり、今年4月にはマーケティングツール・ソリューションの比較サービス「Marketer’s STORE」をリリースしました。
株式会社ベーシック

ディレクターも募集中!

マーケター
「ferret」とともに成長したいマーケターWANTED!
ferretは、2014年9月のリニューアル以降順調に成長し、現在では37万会員、420万PVまで成長しました。そしてその間、会員に向けて、記事だけでなく多くのサービスリリースをリリースしてきました。 そして2018年はより大きな目標に向けて、サービスを加速させていこうと考えています。 今回は、一緒にサービスの成長を担ってくれるマーケターの募集を始めます。 日本に400万社もあると言われている企業体のWeb担当者が本当に必要としている情報はどんなものなのか、そして使いやすいサイトとは。そんなことに思考を巡らせながら、業務を推進していける環境です! SEOやTwitterやFacebook、LINEを活用した集客だけでなく、サイト改善によるUI/UX改善にも着手していきます。 ぜひ一緒に仕事をできる人を募集しています! 【参考記事】 「ウェブマーケティングの大衆化」を掲げ、ベーシックがマーケティング総合サイト ferret(フェレット) をオープン http://thebridge.jp/2014/09/basic-start-ferret-for-the-masses 自社メディアの集客アップ ベーシックが運営指南 https://www.nikkei.com/article/DGXMZO26527280V00C18A2XY0000/ 100人以上から質問された『なぜベーシックに入社したんですか?』にお答えします https://recruit.basicinc.jp/blog/whychoosebasic
株式会社ベーシック
株式会社ベーシック's job postings
34 Likes
34 Likes

Weekly ranking

Show other rankings