chigichan24のお気持ち表明

イケてるエンジニアになりたい.

2018年を振り返る

chigichan24です.研究のプログラムの出力待ちにちょこちょこ記事を書いています論文を書け. 一年早いですね.今年もいろいろ成長した気がするので,成長記録として見てください.

昨年に比べoutputや評価される機会は減っているが,純度が上がっていると信じてる.

今年の大きな開発

所感

  • ネイティブアプリのエンジニアとして極めたいという思いが詰まった一年.
  • それでもって,インフラのお仕事やバックエンドを書く機会もしっかり持てている.
  • Kotlin,awsに関する知見が増えた.

発表したLT等

  • kosen12s LT #1
  • kosen12s LT #2
  • yakiniku-LT(?) #2
  • KosenLT会
  • 第17回 学生LT
  • shibuya.apk #30

所感

  • kosen界隈に関わり過ぎでは...
  • 目標にしていたshibuya.apkで話せてよかった

出場したコンテスト

  • ACM-ICPC国内予選
  • ISUCON 8
  • MashupAward IoT部門,学生部門
  • GUGEN2018

所感

  • 予選落ちが多かったので精進.

読んだ本(よかったやつ)

peaks.cc

techbooster.booth.pm

techbooster.booth.pm

peaks.cc

Kotlinイン・アクション

Kotlinイン・アクション

Androidアプリ開発のためのKotlin実践プログラミング

Androidアプリ開発のためのKotlin実践プログラミング

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャ

所感

研究関連

  • Mendeleyによると65本論文を読んだらしい.まとめる以前や打ち込んでない論文を入れると多分100行かないくらい読み込んだっぽい.
  • きれいなC++17書けてない.頑張ろう...

ブログ

テクノロジーな記事を何本か書けた.二番煎じにならないことを目標にしていたが....

chigichan24.hatenablog.com

chigichan24.hatenablog.com

qiita.com

qiita.com

qiita.com

その他

  • いろんなカンファレンスや勉強会に行って知見を広めた.
  • 設計論について色んな人と議論できた.
  • kosen12s LTはadminとして頑張った.
  • 何本かギークな記事を書いた.
  • OSSに貢献できた.
  • キャッシュレスが加速した.

来年に向けて

  • Androidを始めとするネイティブアプリのエンジニアとしての尖りを強くする.
  • Androidしかできないと思われない用に他の技術の知識量をもっと増やす.
  • 研究を綺麗にまとめる.
  • input / output を止めない.

技術へのこだわりとプロダクトを作り上げるバランスを忘れない

この記事はmast Another Advent Calendar 2018の19日目の記事です.

adventar.org

18日目は同級生kawaguchikoくんの記事でした.彼の記事おもろいので読んでみてください.

note.mu




mast15の @chigichan24 です.四年生ですが,大学は二年目です.のらりくらりとプログラムを書いて遊んでいたらこんな感じになりました.mast15では自称プログラムが書けるマンとしてイキってます(ごめんなさい)




さて,いろいろと書きたいことを迷いました.迷ったけどこれにしました.理由はmastの人の多くは,ものづくりやメディア表現等を通して社会になんらかのメッセージを残すことを試みる集団であるからです.

技術へのこだわりとプロダクトを(ry

この言葉は私自身が,ものづくりをする上で大切にしている言葉です.(以前は「まずは手を動かしてみる」という言葉が好きでした)

誰かの偉人の言葉とかではたぶんないと思われます.このワードでぐぐってみる*1と,私のTwitterアカウントやWantedlyプロフールが見つかります.多分私が産み出した言葉なんだと思います.



さて,この言葉前半パート(1),後半パート(2)そして,結合パート(3)によって成り立っています.それぞれ分解して,解説していきましょう.

(1) 技術へのこだわり

私にはソフトウェアエンジニアとしての経験しかないため,ソフトウェアエンジニアが関係する「技術」についてのみ話すことにします.


一般論ではなく,個人的な見解として,程度の差はあれ多くのソフトウェアエンジニアはこだわりを持っています.


例えば,どの言語で開発を進めるのか?という議題.
PHPでしか経験がないから〜*2という人もいれば,スクリプト言語っぽいもので〜という人,今回は型をちゃんと使って〜とか,今Rustがキテるっぽいらしいよとかいろんなこだわりがあると思う.そのこだわりには

  • 純粋なる知的欲求からくる希望
  • 様々な開発現場で使ってきた経験からくる推し
  • このほうが最新の規格だから,いろんな機能が使える

などなど様々.みんな技術に対して誇りや欲求をもって生きてます.


言語がやっと決まったら次は使うフレームワーク,使いたいアーキテクチャ,開発手法,CI/CDは回すの?レビューの進め方は?コーディングの規約は?使うIDEは?と言っていろんな決めごとに対して,開発するチーム(または個人)で同じようにこだわりを議論していきます.


(2) プロダクトを作り上げる

プロダクトには納期があるものがあります.納期は,学生のうちであればコンテストの締切とか,インターンシップでの期限とか,自分の熱が冷めないまでとかです.


納期までにものを作り上げることは,ものづくりをする上で常に付き纏います.完成させない状態でやっぱりだめでした😪と芸で済ませることも経験の一つです.*3

しかし,その質を客観的に見たときにどの程度まで詰められているのか?というのも求められる機会は多いです.会社に入ってソフトウェアエンジニアとして開発をしているならば,それは絶対的なものに近しいです.

これを達成するには入念なスケジューリングと進捗確認が大切です.これらを適切に管理できていれば,やっぱり駄目でしたとなることは少ないはずです.なぜならば見通しをある程度立てて計画をするため,このままだとまずいスケジュール感だとわかるはずだから.

(3) バランスを忘れない

これは(1)と(2) の取捨選択を適切に行いましょうというものです.

例えば,究極にスケジュールに余裕がない状態で絶対に使い捨てのプロダクトを作り上げないといけない状況があったとしましょう.こんなときに新しい言語で挑戦的にプログラムを作っていくことができるでしょうか?

答えはNoです.

実績のある言語を使って突貫的にでも完成を優先するべき.つまり,この場合は(2)の「プロダクトを作り上げる」を優先するべきということです.


他の例として,長期的に保守していく必要があるプロダクトを作る時,また,メンバーが新しく追加されるケースも多いとしましょう.品質も,多くのユーザがいるので高く保つ必要があるとしましょう.

このときに,上記のように突貫で作っていいでしょうか?

答えはNoです.

この場合は長期的に保守していける体制を保つために,どういった言語であれば良くて,どのようなアーキテクチャであればバグが少なく,また発生しても容易に特定できるか?を意識する必要があります.



現実の問題は上の2つの例のように単純ではありません.しかし,根本にあるのは技術をどう使っていくのか?どこまでこだわるのか?ということのはずです.

自分の立場を明確にする

さて,上の議論は「自分自身がものづくりに対してどういう気持ちで向き合っているか?」を考える上でも役に立ちます.


ちょうど式にするならば 0 ≦ α ≦ 1とするときに,

自分のお気持ち = α × 技術へのこだわり+ (1-α) × プロダクトへのこだわり

といった形で表わされる事ができます.

この言葉が自分の中で生まれた背景として「プログラミングは手段か?目的か?」という議論があります.


昔,特に高専時代は,私は絶対的にプログラミングは手段でしか無いと思っていました.けれど,プログラムそのものを学ぶうちにソフトウェアエンジニアであるならこれは目的であるべきだとも思うようにもなりました.


しかし,この議論自体0,1でどちらかの表明をする事はできない.時としてどちらかを優先するべきだなぁといろんなプロジェクトでコードを書いていくうちに思うようになりました.その上で,自分のマインドはαがだいたいこの辺りだと表明していくことが大事だという結論で,自分の中では決着がついています.*4

おわりに

今日は私がソフトウェアエンジニアとして,大事にしている言葉の紹介と詳解でした.みなさんも,ぜひ意識してみてはいかがでしょう?また,上の式の訂正や議論などもぜひ...


それでは.

*1: 技術へのこだわりとプロダクトを作り上げるバランスを忘れない - Google 検索

*2:PHPに特に深い意味はないです.ただの例です.

*3:私自身いろんなプロダクトを頓挫してしまった

*4:ちなみに私はαが0.6から0.75です.

退職しました😭😭😭

退職エントリです(この文言を書いてみたかっただけ).7ヶ月くらい長期インターンシップとしてお世話になった株式会社Moffを退職しました.

先に書いておくと,辞めた理由は,研究活動が本格的に忙しくなりそうというのと,任されていたタスクがある程度区切りが見えたからです.負の感情で退職したわけではないので,勘違いしないでよね[^1].

今回の記事ではどれだけお世話になって,この半年でどれだけ強くなれたかを

  • 技術的側面
  • 技術以外でいろいろ感じたこと

二本立てで書いていこうと思います.長いです.長いので以下の目次で興味のあるトピックを読むことを推奨します.当然ちぎちゃんのファンの方は全部読むと良いです(?)

  • 馴れ初め
  • 技術的にやったこと
    • やったこと概要
    • 技術要素
    • SDK改良
    • データ蓄積・分析基盤構築
    • IoT機器接続基盤の設計・実験的実装
  • 技術以外に感じたこと
    • メンター編
    • 会社の雰囲気編
  • 今後
続きを読む