社会に出て3年間でやってたこと
社会に出て3年間でやってたこと
題名の通りなんですが、まとめてみます。Twitterとかで個人的に勉強したことは出してても、 業務のために勉強した事とか出してなかったので、まとめておこうと思います。
ただし、実際に何作ったかとかは結構パブリックな感じでは出せないものがあるので技術とか個人的な勉強とかだけにしとこうと思います。
お仕事で使ったもの(順不同)
React.js(2年くらい?)
WebGIS絡みのプロジェクトで利用
Fluxの類は入れなかったので苦労する面もあった
バケツリレーはやっぱり誰でも悩むんだなぁとか
ただ、色々合って入れなくてよかったなと思う面もあるので一長一短
TypeScript(2年強)
React.jsかVue.jsと組わせて使ってた
個人的にはかなり好き
C#っぽい書きっぷりとか、型の柔軟性とか
事前にF#とか関数型勉強してた事もあって型については結構調べてても楽しかったです。
Vue.js(半年弱くらい)
React.jsのあとに使いました。結構好きです。
Angularも短期間ですがやってましたが、ReactとAngularの間くらいの感じで結構好きです
用意されている機能もちょうどいい塩梅だと感じてます
FluxなしのReactほどカオスにならず、Angularほど大掛かりでも無い印象
Angular(一週間くらい)
めちゃくちゃ突発で、直前に言われて2日で勉強してくるみたいな無理をしたやつです
結構大掛かりな感じなフレームワークだなという印象
双方向バインディング人類には早くない?とか
C#(2.5年くらい?)
DLLの作成からASP.NET MVCでのWebアプリ作成まで色々使いました
CLI使って結構頑張るとC++と連携とか色々出来て楽しいです
言語としてはかなりいい出来だと思ってます。LINQがかなり良いです
Java(合計すると半年くらい?)
主にWebアプリで利用
PlayFrameworkとかSpringFrameworkとセットで使ってます
C#のあとに触れたので色々違和感が・・・
C++(これも合計で半年くらい?)
デスクトップアプリ作るのに使ってました
dll、libとかかなり複雑でした。libに二種類あるとか最初はめっちゃ混乱
ガッツリオブジェクト指向で作られているプロジェクトでデザインパターンを積極的に入れていることを売りにしているプロジェクトだったので、
OOPに関しての知見とか知識は勉強させてもらいました
Ruby(1年弱)
Railsと一緒に使ってました
PHPから移行したプロジェクトで結構苦労しました
動的型付け + OOPはちゃんと作らないとカオスだと言うことを学んでしまった・・・
Python(1年くらい)
正確に言うと社会に出てからの物ではないです
大学院の研究でアルゴリズムの検証とか実験に使ってました
言語としてはかなり好きな方です。押し付けてくるシンタックスとか仕様が割りと好きです
あとは社内のお遊びプロジェクトで画像を集めるのに使ったりとか
1,2を争うぐらい好きな言語。プログラミングの楽しさを教えてくれた言語です
その他(めっちゃ短期間だけ触ったもの。細かい説明は割愛)
PHP
Go
C
個人的な勉強
Clojure(勉強開始からだと半年ちょい?)
最初はLISP系言語敬遠してたんですが、全く違う物勉強したくなって触りました
Pythonと同じくらい好きです
好きな理由が上手く言えない。なんとなく言語の思想を押し付けてくるところだとは思ってますが
Simple Made Easyだとか、連想配列の分配束縛とか辺りにそういうの感じてるのかなぁとか思います
シンプルさの必要性 とかは結構読み返しました
シンタックスレベルで思想を押し付けてくるのはPythonとも若干共通している気がしなくもないです。Clojureのほうが柔軟だとは思いますが
作ったものは過去のブログ参照ってことで
Elixir
これ自体は出たばっかりの頃にインストールだけしてみたりしてたものです。多分学生時代です
社会に出てちょっとしてセミナーとかで見かけたのでちょっと真面目にやってみるかって思ってやってみた感じです
Programming ElixirとProgramming Phoenixとか読んでました
Programming Phoenixについて過去のブログ参照です
アクターモデルとかについては勉強になりました。並行処理とか余りちゃんと勉強してなかったんですが勉強になります
シンタックスがRuby風味なのは今となっては正直余り好きではないです
https://bitbucket.org/y_fujiwara/elixir-tutorial/src/default/
https://bitbucket.org/y_fujiwara/programming-phoenix/src/master/
https://gitlab.com/y-fujiwara/gemini
Phoenix、TS、React、Fluxでチャット作ろうとしてガワだけ作って止まっちゃってるやつ
結局チャット自体はClojureの方で満足してしまっている・・・
その他(チュートリアル程度だったり、本一冊読んだ程度だったり)
F#
プログラミングの基礎がOCamlで書いてあったのでF#でもイケるっしょって思ってやってました
言語自体は結構好きでしたが、何故か余り深入りしませんでした
実践 F# 関数型プログラミング入門とかも取り寄せして読んだりしてました。再販してほしい
Rust
- 完全にチュートリアルしかやってません - C++の経験だけ合ったので比較対象としてはかなり有意義でした - 所有権とか余り意識してなかったのでそこら辺は勉強になりました - Elm - これもチュートリアルだけです - 正直難しかったです。Haskellあまり習得もしてないので尚更
その他読んでよかった本とか
プログラミン言語の基礎概念
途中までやって力尽きたリポジトリ
カイゼンジャーニー
なぜオブジェクト指向で作るのか
プロになるためのWeb技術入門
シングルページWebアプリケーション
JavaScript: the Good Parts
上の二冊はクライアント側実装するときに勉強した本。個人的にはバイブル
etc...
まとめ
個人的な好き嫌いで言うと Clojure = Python > TypeScript > C# > Ruby > Java って感じですかね。
まとめてみると色々触ってるなぁと思います。なんかWebクライアントサイド結構やっているように思われがちな気がしてます。 向き不向きは置いておいて、正直いうと余りクライアント側好みではないです。
今と言うか今後しばらくClojureやっていると思います。最近色々考えなきゃなぁと思うこともあるのでうごいていこうかなとか。 なんか3年も立つと1年目のときには考えもしなかったこと考えてしまうなと感慨深い今日このごろです。