雑記帳

日常を綴っていきます

私にとってのプログラミング

私は今、大学において情報科学を専攻する身であり、将来はエンジニアかなんかになるんだろうなあと漠然とした将来図がある。

思えば、自分がプログラミングをしようと思った決定的な出来事はなかったように思う。高校二年生の時点で、何かTwitter APIを使った小さいプログラムを書いていた。自分が初めて書いたコードはRaspberry Piの状態をTwitterに通知するといったものだったように思う。

当時の自分は何か新しい事をしたい。周囲と違った何かをしたい。という思いでいたのだと思う。事実、プログラミングを拙いながらも習得した自分は、学業に専念する周囲の人々とは違った存在になれている感じていたかもしれない。そして、漠然と、大学は情報系の学科に進もうと決めた。

私が結局進学した大学は、二年から学科に配属される。一年時は共通科目で線形代数やら解析やらを学んだ。一年時に教わった数学は難解なもので、全く理解できなかったため、勉強を放棄した。自分が理系に来たことすら間違いだったのではないかとすら思うようになっていた。事実、一年時は成績も大して良くなく、その結果が自分の無気力に拍車をかけた。もうその時点では、高校生の頃に抱いていた、「情報科学を学びたい」という気持ちは風前の灯火程度であったように思う。自分のGithubのContributionsを見ても分かるように、ほとんどコードを書く気力なんてなかった。

そして、配属学科を選択することになった。結局、情報系の学科に進むことになった。自分はその時点では、サーバーやらネットワークといったインフラ寄りの技術にしか興味がなかったために、インフラ寄りの勉強を頑張ろうと思っていた。丁度この頃に、自分は都内のベンチャー企業で働き始めた。自分はRuby on Railsを書くことになった。Ruby on Railsのコードを書くのは楽しかった。何故楽しかったのかを説明するのは難しいのだが、とにかく楽しかった。わからないなりに色々調べてコードを書く楽しさ、高校生でプログラミングを始めた頃抱いていた感情を思い起こされた。

情報系の学科は、自然とプログラミングが出来る人は出来る人で固まっていく。自分の周りにはとても技術力の高い人が多かった。そういった人たちと共に講義を受ける日々で自分のプログラミングに対する情熱は俄然、上がっていった。GithubのContributionsを見てもこれは明らかで、二年が始まった数ヶ月で昨年度書いたコードの量を凌駕していたと思う。

 しかし結局、学科の勉強ですらこれは自分が学びたいことと直結しているのかと疑問を抱くようになった。アルゴリズムとデータ構造の講義では競技プログラミングの問題が課題となっていたのだが、自分は優秀な周りの人々と比べると解けているとは言い難かった。自分はやはり才能がないのではないかと思うようになった。そして、自分は本当にこのままプログラミングの道を志していいのだろうかと感じるようになった。競技プログラミングのような、複雑なアルゴリズムを考案する能力のない自分は理系に来たことが間違いだったのではないかと再び思うようになった。

結局、自分は興味があったサーバーやインフラの知識が周囲より勝っていただけで、プログラミングそのものの技術は他の人々より低かったのだ。これは自分が今までそういった勉強をなにも行ってこなかったからだという結論に至った。優秀な人達は、毎日競技プログラミングの問題を解いたり、書籍を読んだりしていて、相応に努力していたのだ。

そして、自分にとってプログラミングって何なんだろうという疑問に至るようになった。自分はプログラミングが好きか?と問われると間違いなくノーと答える。別にプログラミングそのものが好きなわけではない。

では何故プログラミングしているのか?

それは、自分が成し遂げたい事を実現する手段がたまたまプログラミングであったからだ。プログラミングという行為は手段にすぎない。

PyConJP 2017 に参加した話

私はPythonを書くことはめったになく、大概の事をRubyで済ませてしまうRubyオタクなのだが、PyConが弊大学で開催されるとのことで、先着20名がタダで参加できる事になっていたために、タダ飯を食らえたらそれで良いといった気持ちで参加を臨んだ。拝聴した公演は以下のものである。

一日目

・野球を科学する技術〜Pythonを用いた統計ライブラリ作成と分析基盤構築

Pythonで大量データ処理!PySparkを用いたデータ分析のきほん

Djangoフレームワークのユーザーモデルと認証

PythonとRを行ったり来たり

Pythonによる文章自動生成入門!Python ✖︎ 自然言語処理 ✖︎ ディープラーニング

・プロダクト開発して分かったDjangoの深~いパーミッション管理の話

Python機械学習によるWebセキュリティの自動化

二日目

Pythonで実現する4コマ漫画の分析・評論 2017

・The theory of Serverless development by Python (理論から学ぶPythonによるサーバレス開発)

・Geospatial data analysis and visualization in Python

・ディープニューラルネット確率的プログラミングライブラリEdward

Pythonにおけるデバッグ手法

AWS APIGateway + Python Lambda + NEologdで作るサーバレス日本語形態素解析API

総括

自分はデータサイエンスやサーバーサイドに興味があったのでそういった話に偏っているが、公演全体を通して、少しPythonに関心を持つようになったと思う。Rubyはカッコいいけどガバガバ言語なので他人の書いたコードが解読不能になったり、バグが意味不明な箇所で起こってたりすることが多いので、Pythonのようにシンプルな構文は集団開発ではかなり有効だと感じた。ただ、Pythonは日本語ドキュメントが少なめなので、英弱である私にとってはかなりつらいものになりそうなので、まだまだ使っていくことはないんだろうなと。ただ、今流行りのマイクロサービスアーキテクチャだったりディープなラーニングだったりを実現するにはPythonしかないので使いこなせるようにはなりたいと思った。ハッカソンに出た時にサーバーサイドで画像処理とかしたいし。

Cookpad Ruby Hack Challenge に参加した話

8/30~31にクックパッド本社で開催されたRuby Hack Challengeとやらに参加してきました。僕は普段Rubyを一番使っており、馴染みの言語の裏側を知りたいという想いで臨みました。

一日目

Rubyコミッターの笹田さんの作成した講義資料を読みつつ、MRIの実装についての理解を深めていくという内容でした。中身はもちろんガッツリC言語だけど、大学の講義でC言語を使っているので分かるのか....と思いきや、MRIのC APIリファレンスがあまりなくて理解するのに結構苦労しました。

二日目

一日目に学んだことを活かしつつ、自分で決めた課題をこなすという内容でした。僕は、実行中のメソッドの可視化機能の実装をしようと試みていたのですが、Rubyの標準ライブラリとしてTracePointという実行中のメソッドを表示する機能が提供されていたので僕の出番はありせんでした。恐るべしMRI、ってことで仕方ないので僕はTracePointのラッパーgemを書きました。

Easytrace

実行メソッドをグラフにして可視化出来たりしたら面白そうなので今後の機能追加項目として検討します。

二日目はRuby開発者のまつもとゆきひろさんがいらっしゃってRubyの設計思想について話して頂いたり、Rubyのコミッターの方々が大勢いらっしゃって、Rubyの実装について壇上で白熱した議論を交わしたりしていました。名だたるプログラマー達がは議論を戦わせる様は圧巻で、感動物でしたね。

総括

いままで中身を気にせずにRubyを書いており、中身を弄るのは怖いと思っていたのですが、このイベントを通して中身を見ることに対するハードルがが下がったように想います。とても充実した二日間でした。クックパッド社は雰囲気がとても良く、来年はインターンに参加してみたいと想いました。

いろんなとこに行ってた話

この二週間で北海道を含め、実家への帰省として兵庫、大阪に行ってたり、四年間文通を続けてきた彼女に会うために和歌山県に行ってたり、とにかく日本中を駆け回ってました。この二週間、ほとんど鈍行に揺られており、二週間のうち3分の1は電車の中で過ごしていたと言っても過言ではないくらいです。慣れって怖いもので、大阪〜東京間の鈍行移動で何も疲労感を感じていないのです。

と言うわけで、長い旅が終結したので明日からサボってた日報を再開します。

 

 

 

 

 

 

 

 

 

 

 

 

 

追記: 四年間文通を続けてきた和歌山県在住の彼女と言うのは僕の脳内に棲みつく観念的存在であると言えます。

メモ: Rubyでキー押したらイベントが発火するみたいな奴のサンプル

Eventmachineをつかえばいい感じになりそうだけどどこにも情報がなかったので無理そうだったので無理やりThreadで実装。動的ディスパッチ使ってたり割りとゴリ押し感のあるコードになっている。

module EventTest
  class Return
    def test1
      p ""
    end

    def test2
      p ""
    end
  end
end
require 'thread'

module EventTest
  class Key
    def change key
      console = EventTest::Return.new
      case key
      when '1'
        k = :test1
      when '2'
        k = :test2
      end
      
      t = Thread.new{ console.send(k) }
      t.run
    end
  end
end

青春18切符北海道紀行 2日目

青春18切符北海道紀行2日目、という事で今日は函館から札幌までの移動。この移動、実はかなり壮大な旅だったりする。北の大地の雄大さを感じた一日だった。

本日の移動

f:id:shikugawa:20170813232650p:plainざっとこんな感じ。函館、札幌以外の停車駅はほとんどが昭和の匂いを感じさせる、時代に取り残されたが如く装いであった。海岸沿いの駅は海風で錆びていたり、それはもう、人から見放され、打ち捨てられていると表現してもいいくらいだ。本日の停車駅からめぼしい場所を三つ、ピックアップしていく。

1

函館駅から単両のワンマン運転気動車で揺られることn分。地図ではわかりにくいが、森駅という駅に到着する。JR函館本線函館発長万部行の列車に乗ったのだが、何故かこの森駅で30分ほど停車したので降車して駅をぶらりと。

f:id:shikugawa:20170813233428j:plainとは言っても何もない。清々しいほど何もない。在るのは眼前に広がる大海のみである。天気はあいにくであるが、このような天気の方が最果ての大地っぽくて雰囲気が出てよい。

2

森駅から更に揺られること1時間半程、長万部駅に到着。この駅、おしゃまんべと呼ぶらしい。いかにも北海道らしい地名である。

f:id:shikugawa:20170813234132j:plainさて、この駅も周りには何もない。森駅と違い、大海ではなく、東京○△大学長万部キャンパスが広がっているらしい。大学に入学したばかりの浮足立った新入生達をこのような最果ての地に輸送する東京○△大学、鬼畜の所業だ。東京で育ったシティーボーイ達の中には発狂する者までいてもおかしくはない。

閑話休題。旅の話に戻そう。丁度この駅に到着したのが昼頃だったのでここでお昼を頂くことに。

f:id:shikugawa:20170813234542j:plain

駅前に立つかなやレストランのかにカレーを頂く。このレストラン、どうやら歴史の長い地元の名店らしい。閑散とした町並みとは不釣り合いな程店内は客で賑わっていた。しかし、店の装いは時代の取り残された街の雰囲気と変わらない、どこか懐かしいものを感じさせる装いだ。この店ではかにめしが人気らしいが、私はかにカレーに目がとまったので敢えてこれを注文したのだ。店の雰囲気に違わず、家庭的な温もりを感じさせる味であった。

3

長万部からまたまた2両編成の気動車に揺られ、小樽を経由し、札幌に向かう。札幌は今まで通り過ぎてきた町並みとは打って変わって、近代的な装いの町並みだ。碁盤の目のように整理された区画は開拓時代の名残を感じさせる。

やっぱり札幌といえばラーメンっしょ!w

って事でラーメンが大好きな私は真っ先に味噌ラーメン屋に向かう。

f:id:shikugawa:20170813235417j:plain

札幌駅から少し離れた場所にある空という店のチャーシュー麺(味噌)、トッピングのバターを載せて頂く。程よくきいた味噌の香りとチャーシューの柔らかさが堪らない。気がつけば完飲していた。ごちそうさまでした。

そしてすすきの駅周辺を経由し、大通公園へ。ここでは各所でビアガーデンが開催されており、祭囃子が鳴り響いていた。どうやら夏祭り?を開催しているようだ。祭囃子に引かれて盆踊り会場に向かう。

f:id:shikugawa:20170814000007j:plain

テレビ塔と盆踊り会場を一緒に載せて一枚。この写真は一眼レフで撮りたかったのだが電池が切れてしまっていたために断念。少し残念だったが、祭囃子を聞いているとそんなモヤモヤも吹き飛んでしまう。まさに夏の風物詩。都会の喧騒を彩る、懐かしき旋律。会場の賑わいを後に、札幌名物の時計台に向かう。

f:id:shikugawa:20170814000256j:plainこじんまりとしているが、白塗りの舎は明治時代の面影を感じさせる。時間が遅かったが、中で吹奏楽コンサートが開催されていたために入ることが出来た。どうやらこの時計台は定期的にコンサート等で用いられているらしい。

 

ということで、今日はこのあたりで。明日は札幌から帯広まで移動します。

8/12

那須での疲れを癒やして北海道行きの体力を蓄えるために寝てた。特筆事項は3ヶ月ぶりに髪切った事くらいだろうか。散髪することで周囲に影響を与える事は無く、自己満足さえも生まれないので、自分は散髪をニヒリズムの体現だなんて考えていたのだが、友人に不審者にしか見えないと言われ、地味に傷ついたので重い腰を上げて散髪屋に向かった。髪を切ると心なしか身体が軽くなった気がしないでもない。前言撤回。ニヒリズムの体現は言い過ぎだ。

そして支度して北海道へ。詳細は下記リンクにて。

青春18切符北海道紀行 1日目 - 雑記帳

AtCoder Beginner Contest 070

新幹線内でB問題を解いてる途中でauが圏外になってしまって、コンテストを継続するのが困難になったので敢え無く脱落。

読んだ本

女生徒 太宰治
女生徒 (角川文庫)

女生徒 (角川文庫)

 

太宰治の作品集。旅行中に読み切りたい。