はじめまして!
はじめまして、趣味でエンジニアリングを始めたcanalunです!
Zennなるものが盛り上がっていると聞いて、勢いで始めてみました!
これからどんなことが書けるか自分の中ではっきりとはしていませんが、とりあえず自己紹介でもいいから最初の記事を作ることからやってみます🌞
普段は何をしているの?
エンジニアリングとは全く縁のない会社(外資系経営コンサル)に勤めています!
なので手を動かしたり、ドキュメントを読んだりするのは平日の空いた時間や休日にやっています。趣味として楽しくエンジニアリングをやってみているということです。
もしも自分がすごく熱中してexciteできるなら、エンジニアに転職することもしてみたいなあなんてぼんやりと思っています!
他の趣味としては、ボードゲームやキャンプを最近始めてみて楽しんでいます🙆
どうやって学んでいるの??
作りたいものを一つ決めて、それを作るために必要なことを公式ドキュメントや先人たちの遺した記事を頼りに学んでいっています。
自分ルールとしては「バグについては解決策だけではなく、原因と原理までできる限り理解する」を設けています。こう書くと立派に聞こえますが、なんだかんだで分からないこともたくさんあります😭
なぜエンジニアリングを始めたの?またはプログラミング経験について
以下少し長くなってしまったので結論を書いておくと;
「大学時代にちょっとプログラミングをしたことがあって、『自粛』を機に競プロをやってみたものの勝手にhyper-competitiveになってしまって耐えられなくなり、Django等での挫折を経て、swiftでアプリをリリースできた!楽しい!!」です。
これで満足した人は思いっきりスクロールしてください😊
一応各種アカウントへのリンクを貼っておきます(こういうことが大事だと聞くので!)
github: https://github.com/canalun
atcoder: https://atcoder.jp/users/canalun
最近作ったアプリ: mixed!(解説記事はこちら)
ちょっとやったことありました(2017/4~2018/3)
大学時代に少しプログラミングをやったのですが、その時、「実際にコードを組んで思った通りに動くのは楽しいな」となんとなく感じていました。
物理学科にいたので、機械学習や数理解析をpythonやCで実装していました。機械学習と言っても、私の場合は初歩的なバックプロパゲーションによる画像認識のことです。
ポストモダン哲学が好きで、その成り行きで当時言語哲学の本を読んでいました。そこでよく言われる「言語による世界の分節化」を機械学習で再現しようと試みていました。画像の認識を言語の使用だと捉え、異なる言語を持つマシン同士を会話させることで言語進化の様子を再現するモデルを組んでいました。
家にいることが多くなり、競技プログラミングをやってみました(2020/3~5)
卒業後はすぐにいまの会社で働き始め、プログラミングをする機会はめっきりなくなってしまいました。が、そんな中、社会人2年目の春に「自粛」が始まりました。
最初は年末に買ったPS4を家でずっとやっていたのですが、SEKIROをクリアした頃に飽きが来ました。ずっとやっていたので当然です。
ひょんなきっかけからAtCoderを見つけ、出場してみました!pythonです。
参加する前に過去の問題を少し解き、へぇ~くらいの軽い気持ちで参加したものの、本番では久しぶりの「時間に追われながら問題を解くドキドキ感」で体が熱くなってしまいました……
初回でたまたまそこそこうまくいったため、「なんかもう少しやってみたらもっと面白くなるかも😊😊」と思い、しばらく続けてみることにしたのです。
ただ、気が付くと、レートを上げることに一生懸命になり始めており、初めの頃のように気軽にわくわくしながらやれる状態ではなくなってしまっていました😭
開始後2か月が経ち、自分の中でなんとなく目標としていたレート(AtCoderの世界では「緑色」と呼ばれているランク)に何とか到達できました。そこで一旦競技プログラミングをストップ。いわゆるアリ本を本棚にしまいました……5月の話でした。
atcoder: https://atcoder.jp/users/canalun
Webサイト作りで挫折しました(2020/6~7)
競技プログラミングから少し距離を置き(それまでそんな近い距離だったかというとわかりませんが)、面白いアプリやサイトを作ってみたいと思いました。
まずはDjangoに手を出しました。SNSを作ろうというわけです👨
平日の夜や休日に公式ドキュメントを頼りにしながらちょぼちょぼ進めましたが、ログインや投稿機能まで実装したあたりで、画像投稿機能がやたらバグりました。ちょうど、「SNSをwebだけで作って誰が見るんや……??」と思い始めてた頃であり、気持ちも折れてストップしてしまいました。弱虫。およそ1か月での挫折です。
Djangoとの格闘でエネルギーが尽きた後、ノーコードなる概念を知り、Spotify連携型のプレイリスト作成サイトの製作に取り掛かりました。とりあえず何かを作ってみたくて、あっち行ったりこっち行ったりです😇
競プロの経験が生きたのか、動画から曲の情報を取得する仕組みは作成できたものの、APIがからっきし分かりません。公式ドキュメントを読んでも、謎のアドレスと共に「POST」と書いてある部分が四角で囲まれている意味が不明でした。そんなレベルでした。
これでは何もできません。気づけば「これwebで作って誰が見るんや……??」という疑問が再度発生。何をどうしても動かないサイトを前に再び挫折です。7月ごろの話です🌞
iOSアプリをリリースできました(2020/11~2021/3)
時は流れ、11月になりました。
少し自分の時間を持てる、余裕のあるプロジェクトに入った(私の勤めている会社では2,3か月おきにチームとプロジェクトが変わります!)のでふと、未遂に終わったモノづくり計画を再開しました。
今度はswiftでのiOSアプリ開発です。アルゴリズムまでは作成していたことを念頭におき、先ほどのプレイリスト生成ソフトをアプリとして完成させてみることにしました!!
今度こそやりきりたいという一心です😭
2日でマスター!みたいな題名の本を3日以上かけて読みながら徐々に実装です。
そしてついにまたAPI。HTTPとは何ぞや的な部分から入り、これをどうやって実装するんだと途方に暮れていた私にとって、Alamofireは革命でした。
また、Oauth認証ライブラリをgithubで見つけたのも天啓でした。しかし、これはエラーを出しまくったのです。"Jump to definition"とprintデバッグを駆使して何とか最新iOSに対応させ、念願のアプリ作成をやりきりました!
親しいUIデザイナーの方にデザインを相談しつつ、なんとか作りきったアプリはとりあえず自分で動かすだけでも楽しいです!
審査も通ったので、明日リリースしてみようと考えています😊
今後やっていきたいこと
大きく2つの興味分野があります。
まず1つは「面白いアプリを何か作ってみること」です。
自分で暮らしたり遊んだりする中で、こんなものがあったら面白いなというものをスっと作れるようになってみたいです🙋
もう1つは「匿名通信や非中央集権的システムへの理解を深めること」です。
昔からパソコンやインターネットに興味があったのですが、面白いなと感じるのは決まって2ちゃんねるのような匿名空間、またP2Pネットワークのような非中央集権的技術でした。
ということでTor通信や、モダンなP2PとしてのブロックチェーンおよびZeroNet等の技術を勉強していってみたいなと思います!
全然分からないことだらけですが、どうぞよろしくお願いします!
Discussion