プロフィールの絵文字

プロフィール

2022-07-11

2022-08-08

自己紹介

こんにちは、ページを開いていただきありがとうございます。

分量が多いため、目次を活用して読んでいただけると幸いです。

ブログに関する思いはこのブログについて - こふぶろぐからご覧ください。


自分がどんな人物かひとことでいうとものづくりが好きな学生です。

ものづくりとは言っても、形は現物・ネット上など問いません。

手段も同じで、文章でも IT サービスでもなんでも。

作って届けることを大事にしています。


僕は、大学 2 年生(2020 年 4 月)から C言語を大学で学習したことがきっかけでプログラミングを始めました。

最初は Visual Studio の動かし方もわからず、全角スペースによるエラーで数時間つぶすなど苦労しました。

今では、コンパイルやビルドの自動化、再現性を保ちたい内容はシェルスクリプトを自分で書く、コードのルール・整形なども自分で設定し書くことができるようになりました。

テストコードも少しずつ書いており、CI/CD の構築をするなど、少しずつ前進しています。


自分で作りたいと思ったツール・サービスは基本的になんでも作れるようになりました。当然、全く満足していません。当然というのは、何かを作れることは誰にとってもやればできることなので、当たり前だからです。長期的に複数人で複雑な大規模なものを作ることこそが難しいです。


大規模なアクセスを意識した実装、可読性の高いコード、最適なアーキテクチャで書くなどは挑戦中です。

加えて、適切なアルゴリズムで実装を行い、低いレイヤーの理解・実装を行い、より高い価値を提供できる技術者になりたいと思っています。

普段は、書籍やドキュメントを用いて学習し、それにより様々な開発をしています。

主に取り組んだこと

次のようなことに大学生になってから取り組みました。

  • アフィリエイトブログ(過去に月収 1 万円超)
  • Web アプリケーション開発(複数の個人開発・アルバイト)
  • 電子工作・IoT の実装(授業・個人・アルバイト)
  • インターンシップでのチーム開発
  • モバイルアプリ・ウェアラブル端末アプリ開発
  • プログラミングコンテスト(進行中)

今頑張っていること

  • アルゴリズム・データ構造の学習
    • 適した計算量のプログラムを書けるようになるため
    • コーディングの速度も上げる
    • 競技プログラミング(AtCoder)を通して結果を出す
  • OSS へのコントリビュート(ソフトウェア開発者としての実力を示すため)
  • プログラミング系コンテスト
    • ISUCON は Web 技術の大事なポイントが詰まっているため取り組む
    • 今後研究を通して機械学習をすることになれば、Kaggle に参加してスコアを残したい
  • 個人開発で収益をいただく
    • 自分でアイデアを出し
    • デザインや仕様を練り
    • 全て開発を行い
    • マーケティングを行う
    • ジャンルは縛らず取り組む

自分の強み・弱み

自分の強み・弱みについてです。

強み

  • 自発的に学習し、アウトプットすることができること
    • ブログ・技術記事・Web サービス・ツール・登壇など
  • 分野にとらわれず、何にでも取り組めること(時系列)
    • ブログで稼ぐ
    • C 言語
    • Python
    • Web バックエンド
    • 電子工作
    • 競技プログラミング
    • Web フロントエンド
    • 個人開発
    • モバイルアプリ
    • 技術記事投稿
    • 雑記ブログ投稿
    • 登壇
    • Chrome 拡張機能開発
    • アルゴリズム・データ構造(進行中・・・)
    • to be continued ...

弱み

  • 低レイヤーの理解・実装が出来ていないこと
    • 応用情報技術者試験を受けることで対策しています
    • 本を読み知識をつけて、コードベースで動かし勉強しています
  • 高難度のアルゴリズムの理解をし、実装することの経験なし
    • 本・AtCoder を通してアルゴリズムの実装を行い、理解を深めています
  • コードを読む力の不足
    • OSS へのコントリビュートを少しずつ進めることで力を養います
  • 可読性の高いコードを書く力の不足
    • OSS へのコントリビュートをきっかけに意識をより強めます
    • 個人開発でもリーダブルコードから実践できることは実践し、経験を少しでも積みます
  • 英語
    • 話せません。英会話のスクール探しています
    • 技術系の英単語も弱いため、読むこと自体を増やし始めました

資格系

技術スタック

技術スタックについて、簡単にまとめます。

言語・ライブラリ

  • C/C++
    • 主に授業・個人的なアルゴリズムの学習で使用しています
    • 基礎文法は一通り学習済みです
    • ポインタ・構造体を用いたコーディングが可能です
    • C++を AtCoder で利用しています
  • Python
    • 複数の目的で利用しています
      • Web 開発(DjangoFastAPI
      • クローリング・スクレイピング
      • IoT
    • これと言って採用するメリットは現状ありません
  • TypeScript
    • 主に React で利用しています
    • 言語仕様や細かい文法は本で学習中(2022/07/11 現在)
    • 任意の OSS に貢献したいと思っています
    • Web 全般・デスクトップアプリなど幅広く使えるため、今後数年間は重要視しています
  • Go
    • インターンシップで利用しました
    • Web バックエンド(クリーンアーキテクチャでの REST API)の実装を行いました
    • Gin というフレームワークを用いました
    • 個人開発・ツールづくりにも活用したいと思っています
  • Matlab
    • 画像処理の実験で利用しました
    • 使う機会は全くないですが、必要になれば学習して実装します
  • Verilog
    • FPGA の簡単な実験に利用しました
    • Matlab と同じです
  • CSS
    • 主に TailwindCSS で書きます
    • わからないことは適宜 MDN で調査して対応するレベルです
  • SQL
    • 基本的な構文は書けました(近頃書いていません)
    • インデックスを貼る、N+1 問題の解決レベルです
  • React
    • Web フロントエンドをTypeScript で書きます
    • フレームワークは Next.js を使います
    • Solidjs などに移行予定もあります

その他

  • Docker
    • 開発環境で利用しています
  • Database
    • インターンにて MySQL の経験あります
    • 普段は PostgreSQL を利用しています
    • NoSQL は研究で利用し理解を深める予定です
  • Linux
    • 基礎コマンドを一通り学習済みです
    • 主に WSL2MacOS で利用しています
    • 自動化・再現性を高めることを目的にShell ScriptMakefileはよく書きます
  • AWS
    • Serverless Framework を用いた実装経験あります
    • Lambda / DynamoDB / TimeStream / S3 / API Gateway など
  • GCP
    • Firebase を小さなツールで使用検討中
    • コストの都合でデプロイしサービスを動かすことはあまりできないです
  • VPS
    • 商用化するソフトウェアで利用予定
  • Git/GitHub
    • チーム開発でも利用できます
    • 基本的な操作は全て可能で、日常的に利用しています
  • アーキテクチャ
    • クリーンアーキテクチャのみインターンで利用しました
    • 基本的には MVC です
  • CI/CD
    • GitHub Actions を使っています
    • 必要になり次第、調査・利用をしています
  • API
    • REST に則った開発を個人・インターンで行いました
    • GraphQL は今後の個人開発で利用したいと思っており、勉強予定です
    • gRPC は自分で調べ、デモも行い授業で発表しました
  • Terminal
    • 主に zsh を利用していて、エイリアスの工夫もしています
    • fishに乗り換えも検討しています
  • 低レイヤー
    • TLS の実装などしてみたいです
    • ミドルウェアのソースコードが読めて修正できるレベルになれれば良いと思っています

ツール

  • エディタ
    • VSCode / Goland(インターン) / Vim(たまに) のみ経験あります
    • VSCode は日常的に使っており、デバッグ・ショートカットキーの活用は得意です
  • チャット
    • Slack / Discord / Mattermost を日常的に利用しています
  • 開発ツール
    • PostmanFigma を利用しています
    • 必要なツールは適宜取り入れます
      • パケット監視
      • バイナリエディタ
      • など
  • タスク管理
    • 長期的なタスクに関しては、Notion / Todoist を活用しています
  • 文章としてのエディタ
    • Notion
    • VSCode
    • Obsidian
    • を愛用しています

開発系インターンシップ

会社名と時期・期間・行った内容について簡単にお伝えします。

株式会社ハウテレビジョン

  • 時期
    • 2021/09
  • 期間
    • フルタイム 2 週間
  • 内容
    • ハッカソン形式のインターンでした。バックエンド(Go)を担当し、その中でも要件定義・設計において役割を果たすことができ、そのようなフィードバックもいただけました。
    • 既存のコードをベースに新規機能を作る、というテーマなので既存のコード・DB 構造を確認しつつ、再利用できるコードを探して実装することができました。

株式会社いい生活

  • 時期
    • 2021/09
  • 期間
    • フルタイム 1 週間
  • 内容
    • ハッカソン形式のインターンでした。
    • メンバーに適切なタスクを振ることの難しさを実感しました。

楽天グループ株式会社

  • 時期
    • 2021/08
  • 期間
    • フルタイム 6 日間
  • 内容
    • ハッカソン形式のインターンシップ。フロントエンドを担当。スピード感を持ってプロダクトを完成させる難しさを実感しました。
    • 英語での資料作成・発表が義務付けられていましたが、全て達成することができました。

FireCracker 株式会社

  • 時期
    • 2021/05,06
  • 期間
    • 2 ヶ月、週 10~20 時間
  • 内容
    • AWS での IoT の時系列データの処理を担当しました。
    • TimeStream や DynamoDB を初めて利用しましたが、ドキュメントを読み、思想を理解した上で使うことができました。

ダイアモンドヘッド株式会社

  • 時期
    • 2021/03
  • 期間
    • フルタイムの週 3 日を 4 週間
  • 内容
    • リファクタリングや機能改善などのリリース前サービスの修正業務を行いました。
    • 大規模なコードリーディングの経験を得ました。

アウトプット

情報発信は主に次のサイトで行っています。

制作物

制作物の URL・簡単な説明をしています。

Newtion

ブラウザ版の Notion で、いつでもどこでも新規ページを作って開くことのできる Chrome 拡張機能です。

自作ブログ

当サイトです。全て Markdown で管理しており、デザインも機能も全て自作です。

GitHubPush することでビルドされ、main ブランチで本番環境へデプロイされます。

必要な機能から組み上げ、記事の更新を第一優先にするなど、優先順位を考えて作っています。

  • 関連 URL
  • 開発時期
    • 2022/4~
  • 使用技術
    • Nextjs
    • TailwindCSS
    • GitHub Actions
  • 成果
    • 記事は通常、毎日または 2 日に一回をベースに投稿しています
    • 現在(2022/07/11)では、月間 1300PV 超え
    • 違和感のないデザインを行う経験を得ました
  • 反省
    • パフォーマンスが最適化できていません
    • しかし、記事は上位表示されているので問題ないと考えています

Notion 文字数カウント

Notion で文字数のカウントを行うためのツールです。

ブログ記事とセットで用意しています。

わかりやすく無駄のない UI を設計しました。レポートや下書きの文字数カウントとして使うことが可能です。

Notion カウントダウン用ウィジェットメーカー

Notion でカウントダウンを行うためのサイトです。

手順はたったの 3 ステップで、日時を入力し、生成された 関連 URL を Notion に貼り付けるだけで利用できます。

  • 関連 URL
  • 開発時期
    • 2022/04
    • 5 時間
  • 使用技術
    • Nextjs
  • 成果
    • 月間 PV は 2,500 超え
    • ユーザー数は月間 300 超え
    • はてぶ1つ
    • Twitter で自発的な形で5件ほど共有されました
  • 反省
    • 英語圏からのアクセスもたまにありますが、i18n 対応、アクセス元の地域から現在時刻の反映などすれば良いと感じました
    • 改善をしようと検討中ですが、例えばカラーバリエーションを選べるなどはステップが 1 つ増えるため実装しないべきだと考えました
    • そうした観点から実装をやめられたのは一つ成長できたと思っています

Show Your Pen

AWS の各種サービス(S3・DynamoDB・Lambda・API Gateway・Rekognition)と Serverless な実装(Serverless Framework)を学び、実装するために作成しました。

  • 関連 URL
  • 開発時期
    • 2022/03
  • 使用技術
    • Python
    • React
    • Serverless Framework
  • 成果
    • フルスタックな機能を作成できました
    • Serverless な実装をコードベース(GUI なし)で行えたため勉強になりました

文房具専門サイト Bista

フルスタックなアプリケーションを作り、技術力を向上させることを目的としました。

世界中の文房具を高速に閲覧、検索し、筆箱を作成する事のできるサイトです。

カテゴリ・ブランドごとのページを静的にビルドしているので高速です。アイデア、プロトタイプからデザイン、エンドポイントの設計もすべて自分で行っています。

  • 関連 URL
  • 開発時期
    • 2021/3
  • 使用技術
    • Nextjs,Django,Scrapy,Heroku,AWS
  • 成果
    • 技術的な勉強になりました
    • フルスタックな開発を初めて行い、作成するという観点では完走できました
  • 反省
    • マネタイズや SEO の考慮がなされておらず、十分な価値も提供できていません
    • 今後、このソースコードを活用し、ターゲットを絞った開発を検討中です

大学成績検索サービス HuTools

大学の成績分布を棒グラフなどで可視化するサイトが無いので作成しました。

初期型は 8 時間程度で自分で開発しました。初日には 200 人の北海道大学の学生に使用していただきました。クローリングから Pandas を用いたデータ整形、そしてフロントエンド(React)の実装を行いました。

アクセスが増えても無料で運用するため、API や DB を使わずに実装しました。検索画面で、例えば「応用」と入力すると科目候補が出てきます。現在は時間をかけて作られたサイトがあるため、開発停止しています。

  • 関連 URL
  • 開発時期
    • 2021/05/07~08
  • 使用技術
    • Python(Pandas),Nextjs
  • 成果
    • 初日に 200 人超え、そして数日で 500 人超えに利用されました

筆箱紹介サイト みんなの筆箱紹介

Django を初めて学習したときに作成しました。文房具マニア、コレクター向けのサイトです。ログイン必須で投稿でき、筆箱の共有をすることができます。

  • 関連 URL
  • 開発時期
    • 2020/12
  • 使用技術
    • Django/Bootstrap
  • 成果
    • 約 10 名の方にユーザー登録をいただき、投稿をしてもらえた

メルカリ説明文メーカー

本の取引におけるトラブルを 0 にするための説明文メーカーを作成しました。初めて React を学習したときに、練習として作りました。

  • 使用技術
    • React
  • 成果
    • 学習目的のため、なし

時系列の紹介

小・中・高・大と、季節ごとに振り返ります。

  • 小学校
    • 公立
    • スポーツとカードゲームとおもちゃとゲームのみ
    • 自由奔放
  • 中学校
    • 公立
    • 部活一筋、、、だった
    • 塾は中学 3 年時のみ通う
  • 高等学校
    • 公立
    • それなりに遊び勉強した
  • 大学
    • 国立に塾なしで現役合格
    • 独学でもなんとかなると気づいた
    • 1 年
        • 部活とサークルを早々にやめてしまう
        • ゲームに本気で取り組む(半年)
        • いろんなバイトをやる(短期系)
        • 読書した方が良くね?と思い新書を読み漁る
        • 漫画の雑学の方が記憶に残ると気づく
        • ゲームにあほらしくなってブログを書く
        • 半年後に月収 1 万円(時給換算したら超赤字)
        • 検索アルゴリズム変動でだるいと思いやめる(春ごろ)
        • 記憶がない、多分ゲームと勉強してた
    • 2 年
        • 授業でプログラミング始める(C 言語)
        • 接客バイト始める(1年くらい)
        • 夏前に Python 始める
        • 夏休みに一瞬 Web 開発をやるがやめる
        • 手に職つけたくなり Web 開発再開
        • 勉強は継続
        • インターンに行った
    • 3 年
        • プログラミング経験を活かしたアルバイト
        • 夏のインターンに申し込み、いくつか参加決定
        • インターンに参加しつつ、自分で勉強
        • この道に進もうかと思い始める
        • 出会った学生、社員の人が合うなあと感じることも多かった
        • 就活し、内々定をいくつかもらう
        • 個人サービスを作り上げる(失敗)
        • 反省し、真面目に取り組む


アバター

こふ

情報通信を専攻している大学生です。大学・趣味・アルバイトでプログラムを書いています。ITサービス・文章を創作することが好きです。

ぼくについて

共有する