更新日 2024/03/06 16:36

記事

Kさん(2024.3 卒業)

なぜここでアルバイトをしようと思ったか

システム開発のアルバイトがしたかったから。

なぜ開発のアルバイト?

  • 就活に役に立つと思ったから(自分はエンジニアとして適正があるのか確かめるため、ガクチカのネタとして、技術力をつけるため)

なぜWebClass?

  • WebClassが自分の大学でも使われている身近なシステムであり興味をもったから
  • 直前までやっていたインターンと技術スタックが似ていたから (Ubuntu、PHP、PostgreSQL)

業務と学びー1年目

行った業務

  • 色々な機能の不具合調査・修正
  • 画面の細かい修正

この頃の自分

  • プログラミングスキルが低い。時間を多くかければソースコードがギリギリ理解できる
  • 実装したものが動けば OKレベルの意識
  • 技術的な知識・語彙が無く、コミュニケーションに時間がかかる。テキストベースのコミュニケーションにも苦戦

学んだこと

  • ソフトウェア開発の基本(技術・コミュニケーション・メンタル)
    • 技術:命名の大切さ、関数の設計原則、テスト設計
    • コミュ:事実と意見の区別、言語化
    • メンタル:事象と人格の分離

業務と学びー2年目

行った業務

  • 色々な不具合調査・修正
  • ある成績機能の改良

この頃の自分

  • 技術力がついてきて、タスクのスピード UP
  • テキストベースのコミュニケーションが円滑になってきた
  • システムの全体像が全く見えていない
    • Webアプリケーションフレームワークの構造など
  • 新しく設計したり、大きく変更する際に うまくいかない(技術不足、推進力不足)

学んだこと

  • コミュニケーション・仕事の進め方
    • 仕事を進める上で遠慮せずにガンガン報告・質問が出来るようになった
    • 関係者に細かく合意を取っておく重要性を学んだ
  • 技術力が周りに劣る中、この職場で自分に何ができるか
    • 課題を明確にし、細かく報告してみんなが考えるきっかけを作ること
    • 課題に対して、自分で解決できなくても周りの知恵を集めて解決に向けて行動すること

業務と学びー3年目

行ったこと

  • WebClass全体像の把握・文書化
  • Vue.js でプロトタイプ作成
  • バックグラウンドジョブ機能の開発

この頃の自分

  • 0からの実装が少しできるようになってきた
  • 多角的に考えられるようになってきた
  • 技術的な視野が広がってきた
    • フロントサイド、サーバサイド
  • 物事を進められるようになってきた

学んだこと

  • システムの全体像を把握することの大切さ
    • タスクを進める上で必要(影響範囲の把握、事前調査速度向上)
    • 楽しい
  • ソフトウェアについて
    • 設計・実装は手段であり、目的はユーザに価値を届けること
    • ソフトウェアに完成は無い
      • その時にできる最善を尽くす
      • 変えるべき時が来たら変えられるように
  • PMA (Positive mental attitude):物事がどんな結果になろうとも、その結果をポジティブなものとして捉えようとする心構え
    • 失敗を恐れず挑戦できるようになる
    • 物事の結果に精神状態が大きく左右されなくなり、生きやすくなる

ここで働いて良かったこと

  • 成長できた
    • ソフトウェア開発の基本が身についた
    • 働く上での心構えが身についた
    • コミュニケーション力、言語化力、思考力、整理力、課題解決力など幅広い能力が身についた
  • 緊張感を持って開発ができた
    • 不具合時の生の声(メール)を聞くことができて、自分の仕事がもたらす影響を感じながら開発ができた
  • 楽しく働けた
    • 最初の頃は MRが積み上がっていくのが嬉しい、途中からは自分が設計したものが完成し使われる達成感
    • みんな色々教えてくれる
  • 就活に生きた
    • 自信を持って話せるようになった
    • 他の会社のインターンで高く評価してもらえた。最終的にはその会社に入社することになった。

Nさん(2024.3 卒業)

きっかけ

  • 大学の生協食堂に掲載されていた求人票を友人が見つける
    • 本格的な開発ってハードルが高そう
    • 初心者OK=>応募
  • 趣味で構築していた自作PC上でなにか開発したい
    • ハードウェアの構築は出来ていたが何をすればいいか未定
    • このアルバイトでの開発経験から開発方針を策定できるかも
  • 単純にプログラミング能力を極めたい
    • 大学のプログラミングの講義で好成績が取りたい。

入社1年目(2018、学部2年)

  • 研修資料をもとにPC・プログラミングの基礎の習得
    • IPアドレスの仕組みや統合開発環境の使い方
    • PHPの入門書を利用して文法の勉強
  • 商用コードのデバッグ方法を習得
    • ロジックを伴わない不具合
    • WebClassの画面表示の修正を通して学ぶ
  • リリース前のテストの担当
    • 1項目1分程度なのに全然かかる。複数のブラウザ同時並行が大変
    • 社員の方に聞きながら作業の実施

入社2年目(2019年、学部3年)

  • 簡単なロジックを伴うPHPのみの不具合
    • ボタンをクリックしてもデータが表示されない不具合など
    • 複数の設定が絡んだ不具合=>難易度の向上
    • 単純な挙動なのに修正に長時間=>知識不足をひどく痛感
  • 外部のオンラインプログラミング講座を受講
    • Laravel(PHPフレームワーク)講座で学んだことを大学の講義におけるPHPの掲示板作成でも活かす
    • WebのロジックからUIまで幅広く身に着け、デバッグ能力を向上

入社3~4年目(2020~21、学部4年)

  • PHPとDBが関連する不具合の修正
    • レポート提出履歴や成績データ
    • 複雑な機能となり検証にかかる時間が増加
  • データベース統合プログラムの実装
    • テーブルの定義確認に多くの時間
    • 実際のデータは確認できず

データベース系のデータが絡む不具合は再現や修正後の検証が大変!

入社5~6年目(2022~23、大学院1~2年)

  • アプリケーション側からインフラ側へ
    • WebClassのインストーラを新OSへ対応
    • PHPやDBからLinuxやシェルスクリプトの作業に移行
  • なぜインフラを選んだのか?
    • システムの基盤となる技術のため、汎用性が高い。
      • プログラミング以外でも役に立つかも?
    • 新しい領域を見てみたい
      • システムの上から下まで見れるエンジニアに

仕事を通して何を学んだのか?

  • 問題解決能力
    • ソフトウェア開発は環境構築含めて茨の道-> ITに関する広範な知識
    • 必要な知識をどのように調べるか?-> 文献調査能力 + 英語力
    • 質問内容をどのように具体化すればよさそう?-> 言語化能力
  • 企業での開発と趣味での開発の違い
    • 実装した内容のテストは大事
    • 迅速な開発には方針の立て方やテストのやり方が大事
  • 不完全でもいい。まずは自分ができることを。