五カ年計画(後付)した電気通信大学を卒業しました
こんばんは。3/31で無事卒業できたので電通大卒業エントリを書こうと思います。今は無き情報理工学部の先端工学基礎課程(以下、K課程)に所属していました。
動機
1年前期(2015)
Twitterで気が合いそうなオタクを探しながら授業を受ける、バイトをしないといけなかったので授業中に探したりするも1ヶ月ぐらい連続で落ち続ける。*2
プログラミングに興味があったので学内のサークルに入るも、経験がなく何も分からないし、ノートPC持ってなかったので手を動かせずに消える。
Vim vs Emacsみたいなことをしていてたくさん会話してて面白そうだけど一切わからんしここは俺のためのところじゃないなぁと幽霊になる。
結局ファミマでバイトをしてました。初の落単を経験する。
1年後期
幽霊してたサークルの同学年のオタクが技術系バイトをしてることを知る。当人に「最低賃金で立ちっぱのバイトつらそう」と言われ、悔しくなったのでバイト代でMBPを買った。
- 作者:MMGames
- 発売日: 2011/06/24
- メディア: 単行本
2年前期(2016)
SIerっぽいとこがバイト先になった。d3.jsでグラフ書いたり、出たばっかのSwift3を使ってiOSアプリのプロトタイプ版みたいなのを一人で作ったりしてた。JSもSwiftも何もわからなかった。
2年後期
学生ベンチャー企業と掛け持ちした。JSとAWSでサーバサイドをやってた。心理的安全性がありえん低く辛かったのに加え、年明けに高1から付き合ってた彼女に振られて心が壊れる。電車の中で涙が出てきたり、途中下車して号泣したりしてた日もあった。
3年前期(2017)
心が壊れてました。土曜1限起きれなくて落単、これが留年のきっかけになる。あとインターンシップが必修であったので、夏休みに2週間フルタイムで行ってた。そこではCircleCIとシェルをにらめっこしてた。
3年後期
初めて心療内科に行く。行くまでは自分の精神も管理できないどうしようもなくダメな人間だと思っていたけど、見方が変わった。SICPを少し読んだ。インターン先がバイト先になった。ScalaとTypeScriptを雰囲気で書いてた。それまで静的型付けがない言語を触っていたが、型があるといいな〜とか思い始める。この辺から言語に対する興味が強くなった。
4年前期(2018)
セキュキャンのCコンパイラゼミに通る。自分より圧倒的にすごい人達に圧倒される。謙虚になった。セルフコンパイルはできてないし未だにずっと「やろうやろう」考えている。本当に。
knium.hatenadiary.com
K課程は4年前期まで必修が誰でもあるカリキュラムになっているのだが、3年前期の落単科目が突然時間割変更して4年の必修科目に衝突する。留年確定。
4年後期
2科目ぐらいしかなかったのでほぼ引きこもりみたいになってた。わからん。記憶がない。科目はすべて必修だが、出席を取らなかったのでほとんど出た記憶がない。テスト前に教えてくれた友人達に圧倒的感謝。
5年前期
タスクを複数同時に持つと死ぬことを学ぶ。複数持ってたタスクは全部投げ出した。院試を受けたけど全然ダメだった。単位取りきった。就活もした。
5年後期
休学、インターンとバイト、卒業
振り返ってみて
授業の記憶ない・・・。通学に往復3時間かかるとそれだけで起きてる時間の1/5は持ってかれるのでできるだけ近くに住んだほうがいい、でも自分みたいな人間は一人暮らししたら破滅が見えるので難しいね。
4年前期に留年が確定してなかったらセキュキャンに行くことはなかったと思う。*4
GPAが低い自分が言うのもアレですが、情報やプログラミング、CS系は努力した分だけ報われるのがよく分かる分野だと思う。たぶん真の意味で技術は好きじゃないのかもしれないけど、生きる分にはそれでもいいかなってなってきた。何回も挫折したし、やめたくなったけど何とか辞めずに続けたし、これからも何とか続けて生きていたいなぁと思います。
Haskellやる
いちいちTokenizerやParserをライブラリを使わずに書くのはダルい。だからパーサジェネレータ(lex/yacc)を使ったりするものだが、Rustで書こうとするとパーサコンビネータである
github.com
が強いっぽい。nomを見てみたら何もわからん状態になったので影響を強く受けたっぽい
github.com
のtutorialから雰囲気でやってみようと思ったけどこれまた何もわからない。
なので、手元にすごいH本もあるしやってみようと思う。
Neovimに気持ち入門した
プログラミングを始めてからほとんどGUIエディタにしか触ったことがなかったしタイルマネージャを触り始めてからキーボードで全部アレコレしたいなという気持ちが強まったので試しにNeovimを突っ込んだ。
VSCodeにもVimのExtensionあったし気が向いたらそっちにも触ってみようかな、LSP周りをきっちり設定してTSでCDKを書けたらいいけど・・・。
とりあえずinit.vimを晒します
set number syntax on set fenc=utf-8 set nobackup set noswapfile set autoread set showcmd set cursorline set cursorcolumn set list listchars=tab:\▸\- set showmatch call plug#begin() Plug 'scrooloose/nerdtree' Plug '/usr/local/opt/fzf' Plug 'junegunn/fzf.vim' Plug 'jiangmiao/auto-pairs' Plug 'prabirshrestha/async.vim' Plug 'prabirshrestha/asyncomplete.vim' Plug 'prabirshrestha/asyncomplete-lsp.vim' Plug 'prabirshrestha/vim-lsp' Plug 'mattn/vim-lsp-settings' Plug 'ryanolsonx/vim-lsp-python' Plug 'thinca/vim-quickrun' Plug 'ajmwagar/vim-deus' call plug#end() if executable('pyls') au User lsp_setup call lsp#register_server({ \ 'name': 'pyls', \ 'cmd': {server_info->['pyls']}, \ 'whitelist': ['python'], \ }) endif noremap <Space> <Nop> let mapleader = "\<Space>" noremap <Leader>r :source ~/.config/nvim/init.vim<CR> noremap <Leader>w :w<CR> noremap <Leader>wq :wq<CR> noremap <Leader>a 0 noremap <Leader>e $ noremap <Leader>r <C-r> noremap <Leader>t :NERDTreeToggle<CR> inoremap <C-a> <ESC>0i inoremap <C-e> <ESC>$a nnoremap <BS> i<BS> inoremap <C-w> <ESC>wa inoremap <C-e> <ESC>ea inoremap <C-b> <ESC>ba inoremap <C-j> <ESC>ji inoremap <C-k> <ESC>ki set title set smartindent colors deus filetype indent on noremap s <Nop> noremap <Leader>ss :split<CR> noremap <Leader>sv :vsplit<CR> noremap <Leader>h <C-w>h noremap <Leader>j <C-w>j noremap <Leader>k <C-w>k noremap <Leader>l <C-w>l
プログラミング in OCaml 5th chapter 練習問題を解いた
練習問題 5.1
let downto1 n = if n < 1 then [] else let rec downto1' n = match n with | 1 -> [1] | n -> n :: downto1' (n - 1) in downto1' n;;
プログラミング in OCaml 4th chapter 練習問題を解いた
練習問題 4.1
let uncurry f (x, y) = f x y;;
練習問題 4.2
let rec repeat f n x = if n > 0 then repeat f (n - 1) (f x) else x;; let fib n = let (fibn, _) = repeat (fun (f, s) -> (s, f + s)) n (0, 1) in fibn;;