プロフィールの絵文字

プロフィール

2022-07-11

2022-11-22

自己紹介

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

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

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


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

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

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

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


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

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

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

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


自分で作りたいと思ったツール・サービスは基本的になんでも作れるようになりました。当然、全く満足していません。

当然と表現したのは、何かを作ることは誰にとってもやればできることなので、当たり前だからです。長期的に複数人で複雑な大規模なものを作ることこそが難しいです。


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

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

主に取り組んだこと

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

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

今頑張っていること

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

興味のあること

  • パソコンを使って生活の質を上げること
  • 快適な開発環境の整備をすること(DevOps のような)
  • 組み込み開発

自分の強み・弱み

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

強み

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

弱み

  • 低レイヤーの理解・実装が出来ていないこと
    • 応用情報技術者試験を受けることで対策していました(合否未発表)
    • ネットワーク技術・セキュリティ技術などは本を読み知識をつけて
    • ハンズオンでコードベースで動かし勉強しています
  • 高難度のアルゴリズムを理解し実装することの経験の不足
    • 本・AtCoder を通してアルゴリズムの実装を行い、理解を深めます
  • コードを読む力の不足
    • OSS への貢献を少しずつ進めることで力を養います
    • アルバイトを通して大規模開発にも挑戦しています
  • 可読性の高いコードを書く力の不足
    • OSS への貢献をきっかけに意識をより強めます
    • 個人的な開発においてもリーダブルコードなどから実践できることは実践し、経験を少しでも積みます
    • アルバイトでの複数人のチーム開発において、可読性の高いコードを意識して書くよう努めています
    • 具体的には、命名規則、DRY 原則、適切な順番にまとめるなど、基本的なことから常に気を配っています
    • コードを適切なブロックごとに分けることも意識しています
  • 英語
    • 話せません、英会話のオンラインスクール探しています
    • 技術系の英単語も弱いため、読むこと自体を増やし始めました
    • 論文は英語であることが多いため、読むことで読む力も付けるつもりです

資格系

  • TOEFL ITP
    • 580(@2019/05)
  • TOEIC L&R
    • 770(@2021/11)
  • 今後も受験予定の試験、複数あり
  • 自分だけのノウハウ、経験談を全てブログ記事としてまとめています
  • スタディの記事一覧 - こふぶろぐ

技術スタック

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

言語・ライブラリ

  • C/C++
    • 主に授業・個人的なアルゴリズムの学習で使用しています
    • 基礎文法は一通り学習済みです
    • ポインタ・構造体を用いたコーディングが可能です
    • C++を AtCoder で利用します
  • Python
    • 複数の目的で利用しています
      • Web 開発(DjangoFastAPI
      • クローリング・スクレイピング(ScrapyBeautifulSoup
      • IoTでのデータ処理プログラム
    • これと言って採用するメリットは現状ありませんが、必要になり次第使っています
    • 研究においてもスクリプトはPythonで書くことも多いですが、可能な限り使い回せる抽象化したコードを書くよう意識しています
    • TypeHint などの導入は甘いのでこれから詰めます
  • TypeScript
    • 主に Reactとアルバイトの大規模開発で利用しています
    • 言語仕様や細かい文法は本で学習中です
    • 任意の OSS に貢献したいとも思っています
    • Web 全般・デスクトップアプリなど幅広く使えるため、今後数年は重要視しています
  • Go
    • インターンシップで利用しました
    • Web バックエンド(クリーンアーキテクチャでの REST API)の実装を行いました
    • Gin というフレームワークを用いました
    • Web バックエンドや CLI ツールの個人開発・ツールづくりにも活用したいと思っています
  • Matlab
    • 画像処理の実験で利用しました
    • 使う機会は全くないですが、必要になれば学習して実装します
  • Verilog
    • FPGA の簡単な実験で利用しました
    • 使う機会は全くないですが、必要になれば学習して実装します
  • CSS
    • 主に TailwindCSS で書きます
    • 分からないことは適宜 MDN で調査して対応します
    • 専門分野ではなく、個人で作る上で必要最低限をこなせるレベルです
    • 書き方が最適化出来ているとは限りません
  • SQL
    • 基本的な構文は書けました(近頃は書いていません)
    • インデックスを貼る、N+1 問題の解決レベルです
    • 必要になり次第勉強し、使うことは可能です
  • React
    • Web フロントエンドをTypeScript で書きます
    • フレームワークは Next.js( <12.x ) を使います
  • Zig
    • 興味が湧いたときに一瞬だけ書いていました

その他

  • SEO
    • SEO 対策を行ったライティングができます(過去に月に 1 万円ほどの収入)
    • Google AnalyticsGoogle Search Consoleなども利用して改善の施策を売っています
  • IoT
    • RaspberryPiArduinoのプログラム実装経験あります
  • Docker
    • 開発環境で利用しています
    • クラウド(GKE・EKS)・VPS 上などでも動かす予定です。
  • Database
    • インターンにて MySQL の経験あります
    • PostgreSQL を個人開発で利用していました
    • NoSQL は研究で利用し理解を深める予定です
  • Linux
    • 基礎コマンドは一通り学習済みで、普段から使うよう心がけています
    • 主に WSL2(Ubuntu)MacOS(Unix) で利用しています
    • 自動化・再現性を高めることを目的にShell ScriptMakefileを書きます
  • AWS
    • Serverless Framework を用いた実装経験あります
    • LambdaDynamoDBTimeStreamS3API Gateway など
    • Web サーバを立ててサービスを動かす経験をしてみたいです
  • GCP
    • Firebase は触れた事がありません
    • コストの都合でデプロイしサービスを動かすことはあまりできないです
  • VPS
    • 商用化するソフトウェアで利用予定・・・
    • 低スペックでも高速に動くプログラムを書き、API を提供したいと思っています
  • Git/GitHub
    • チーム開発で利用できます
    • 基本的な操作は全て可能で、日常的に利用しています
    • Gitに関しては、stash|rebase|cherry-pickなども適宜利用しています。
    • エイリアスも貼っており、ちょっとしたコマンドも効率的に書いています
    • GitHubに関しては、PR|Issue|Wiki|Discussionなどの機能を活用できます
  • アーキテクチャ
    • クリーンアーキテクチャのみインターンで利用しました
    • 基本的には MVC での開発です
  • CI/CD
    • GitHub Actions を使っています
    • アルバイトや個人開発で利用しています
    • 自分の興味関心が一番あるのはここです
  • API
    • REST に則った開発を個人・インターンで行いました
    • GraphQL は今後の個人開発で利用したいと思っており、勉強予定です
    • gRPC は自分で調べ、デモも行い授業で発表しました
  • Terminal
    • 主に zsh を利用していて、エイリアスの工夫をしています
    • fishに乗り換えも検討しています
  • Low Layer
    • TLS の実装などしてみたいです
    • ミドルウェアのソースコードが読めて修正できるレベルになれたら理想的です
    • RFC も読んで実装できるようになりたいです

ツール

  • エディタ
    • VSCodeGoland(インターン時のみ)| Vim(たまに) のみ経験あります
    • VSCode は日常的に使っており、デバッグ・ショートカットキーの活用は得意です
  • チャット
    • SlackDiscordMattermost を大学・アルバイトで日常的に利用しています
  • 開発ツール
    • PostmanFigma を利用しています
    • 必要なツールは適宜取り入れます
      • パケット監視|バイナリエディタなど・・・
  • タスク管理
    • NotionTodoistGoogle Tasksを活用しています
  • 文章としてのエディタ
    • NotionVSCodeObsidianを愛用しています
  • その他
    • AlfredRaycastToggl Track
    • 独自でスクリプトを書き、自動化・効率化を行っています
    • 一部ブログにてスクリプトを公開しています

開発系インターンシップ

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

某企業

  • 時期
    • 2022/10〜
  • 時間
    • 週に 10~20h
  • 内容
    • 大規模サービスのリプレイスをしています
    • 静的解析・フォーマット・Git Pre-commit などの開発環境の整備も率先して進めています
    • より安全にサービスを提供できるよう意識して開発をしています。
  • 使用技術
    • AWSTypeScriptJavaScriptJestGit/GitHubGitHub Actionseslint, prettier, husky

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

  • 時期
    • 2021/09
  • 時間
    • フルタイム
    • 2 週間
  • 内容
    • ハッカソン形式のインターンでした。バックエンド(Go)を担当しました
    • その中でも要件定義・設計において役割を果たすことができ、そのようなフィードバックもいただけました
    • 既存のコードをベースに新規機能を作る、というテーマなので既存のコード・DB 構造を確認しつつ、再利用できるコードを探して実装することができました
  • 参加記事:【2021 年夏】ハウテレビジョンのエンジニア職サマーインターンシップの参加日記 - こふぶろぐ
  • 使用技術
    • Go(Gin)MySQLReact

株式会社いい生活

  • 時期
    • 2021/09
  • 時間
    • フルタイム
    • 5 日間
  • 内容
    • ハッカソン形式のインターンでした
    • メンバーに適切なタスクを振ることの難しさを実感しました
  • 使用技術
    • React社内API

楽天グループ株式会社

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

FireCracker 株式会社

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

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

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

アウトプット

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

制作物

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

Newtion

自作ブログ

  • サイト
  • ブログ
  • 開発時期
    • 2022/4〜
    • 地道に、必要な機能を適宜追加
  • 使用技術
    • NextjsTailwindCSSStorybookGitHub Actions
  • 成果
    • 現在(2022/10/28)では、月間 1,800PV 超え
    • 違和感のないデザインを行う経験を得ました
  • 説明
    • 当サイトです
    • 全ての記事を markdown ファイルで管理しており、デザインも機能も全て自作です
    • GitHubmain ブランチにpush することでGitHub Actionsでビルドされ、本番環境へデプロイされます
    • 必要な機能から組み上げ、記事の更新を第一優先にするなど、優先順位を考えて作っています
    • 記事は通常、毎日または2日に1回をベースに投稿しています
  • 反省
    • パフォーマンスを最適化できていません(今後取り組む)
    • しかし、記事は上位表示されているので問題ないと考えています
    • テストコードもほぼ書けておりません、必要な箇所から書きます

Notion 文字数カウント

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

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

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

Show Your Pen

  • サイト
  • Backend
  • Frontend
  • 開発時期
    • 2022/03
  • 使用技術
    • PythonReactServerless FrameworkdaisyUI
  • 説明
    • AWS の各種サービス(S3・DynamoDB・Lambda・API Gateway・Rekognition)と Serverless な実装(Serverless Framework)を学び、実装するために作成しました
    • フルスタックな機能を作成しました(画像アップロード、読み込みなど
    • Serverless な実装をコードベース(GUI なし)で行う勉強の一環としていました
    • AWS の各種サービスを組み合わせて実装しました
    • 画像アップロード時の画像判定にはRekognitionを、DB にはDynamoDBを、API としてLambdaAPI Gatewayを組み合わせました

文房具専門サイト Bista(停止中)

  • 関連 URL
  • 開発時期
    • 2021/3
  • 使用技術
    • Nextjs/ Django /ScrapyHerokuAWS
  • 説明
    • 認可と認証を含むフルスタックなアプリケーションを作り、技術力を向上させることを目的としました
    • 世界中の文房具を高速に閲覧、検索し、筆箱を作成する事のできるサイトです
    • カテゴリ・ブランドごとのページを静的にビルドしているので高速です
    • アイデア、プロトタイプからデザイン、エンドポイントの設計もすべて自分で行いました
    • フルスタックな開発を初めて行い、作成するという観点では完走できました
  • 反省
    • マネタイズや SEO の考慮がなされておらず、十分な価値も提供できていません
    • 今後、このソースコードを活用し、ターゲットを絞った開発を検討中です

大学成績検索サービス

  • 関連 URL
  • 開発時期
    • 2021/05/07~08
  • 使用技術
    • Python(Pandas)|Nextjs
  • 成果
    • 初日に 200 人超え、そして数日で 500 人超えに利用されました
  • 説明
    • 大学の成績分布を棒グラフなどで可視化するサイトが無いので作成しました。
    • 初期型は 8 時間程度で自分で開発しました。
    • クローリングから Pandas を用いたデータ整形、そしてフロントエンド(React)の実装を行いました。
    • アクセスが増えても無料で運用するため、API や DB を使わずに実装しました。
    • 検索画面で、例えば「応用」と入力すると科目候補が出てきます。
    • 時間をかけて作られたサイトがあること、収益化が望めるタイプのものではないため開発はすぐにやめています

筆箱紹介サイト みんなの筆箱紹介(停止中)

  • 関連 URL
  • 開発時期
    • 2020/12
  • 使用技術
    • DjangoBootstrap
  • 成果
    • 約 10 名の方にユーザー登録をいただき、投稿をしてもらえました
  • 説明
    • Django を初めて学習したときに作成しました
    • 文房具マニア、コレクター向けのサイトです
    • ログイン必須で投稿でき、筆箱の共有をすることができます

メルカリ説明文メーカー

  • 使用技術
    • React
  • 成果
    • 学習目的のため、なし
  • 説明
    • 本の取引におけるトラブルを 0 にするための説明文メーカーを作成しました
    • 初めて React を学習したときに、練習として作りました

時系列の紹介

季節ごとに振り返ります。

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


アバター

こふ

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

ぼくについて

共有する