はじめまして、26新卒森長佑梨(もりなが ゆり)です。
この記事は人生初めてのiret.media投稿であり、人生初めてのブログ投稿です。

そこではじめにゆるっと自己紹介をさせていただきます!
私は学生時代、栄養学という全く別の分野を学んでおりIT業界は未知の世界でした。しかし、日々進化し続ける技術を追い続けられる環境や、自ら道を切り開いていく「KDDIアイレットに順番待ちはない」といったチャレンジを推奨する社風に魅力を感じ、入社を決めました。

この投稿も緊張と不安とワクワク感がありますが、楽しんで執筆することを目標に書き進めていきたいと思います!

技術研修スタート 何を伝えるか

新入社員研修の一環として「iret.mediaの投稿」があり、私は4日間の技術研修の担当になりました。4日間の流れは以下です。

1日目  Introduction to DX(DX開発)
2日目 コンピュータ入門+コンピュータネットワーク入門
3日目 データベース入門
4日目 プログラミング入門+アルゴリズム入門

正直たくさんの用語を教えていただき、莫大な量の学びを全てここに書き切るのは難しいため、私が特に重要だと感じた用語に絞ってお伝えしたいと思います。

Introduction to DX(DX入門)

  • DXの定義:
    企業がビジネスの環境の激しい変化に対応し、データとビジネス技術を活用して、顧客や社会のニーズを基に、製品やサービス、ビジネスモデルを変革するとともに、業務そのものや、組織、プロセス、企業文化・風土を変革し、競争上の優位性を確立すること。
    参照:経済産業省「デジタルガバナンス・コード」
  • DXの本質:
    DX(デジタルトランスフォーメーション)とは、単にシステムを導入することではなく、データや技術を活用してビジネスモデルや組織そのものを変革し、競争力を高めることです。
    「効率的だから、便利だから」とすぐに導入できるわけではなく、実は技術的な課題以上に組織文化やマインドセットを変えることが重要だと学びました。DXを導入しないことのデメリットをしっかり理解し、トップから新入社員まで全員で取り組む必要があるんですね。
  •  UXの追求:
    これまでにない顧客体験を提供できるかが、ビジネスデザインの鍵となることを学びました。
    見た目の良さが顧客満足に繋がり、「使い続けたい」と思ってもらえるUXを作ることが、実はお客様がDXを受け入れるハードルを下げる第一歩になるのではないかと気づきました。

 

コンピュータ入門+コンピュータネットワーク入門

  •  コンピューターの五大要素:
    コンピューターには「入力」「記憶」「演算」「制御」「出力」の役割があります。講義の中でこの仕組みは「人間に似ている」という表現が出てきました。
    例えば、ネットショッピングで例えると、まず目で見て(入力)、「これいいな!」と思ったものを一度カートに入れておきます(記憶)。次に欲しいものが複数あったらその合計金額を求め(演算)、予算オーバーしていないかを確認(制御)して、最後に購入ボタンを押す(出力)。このような流れです。
  • ハードウェアとソフトウェア:
    コンピュータ本体と、その情報処理手順(OS・アプリ)の役割の違いを理解しました。
    またデータ表現において10進数・2進数・16進数の変換、および文字コードの違いによる文字化けの原理を学びました。コンピューターと会話するには、そもそも日本語の文字で伝えているのではなく、「0、1」の数字を使ってやりとりしているのだと知り、衝撃的でした。
    日本語にはカタカナ、ひらがな、漢字など様々な表現があるため、外国語に直訳しようとしても上手くできない時がありますよね。それと同じように、コンピューターの世界でも様々な言語が存在しているため、直訳しようとして上手く言い換えられない、それが「文字化け」の正体です。
  •  記憶装置と制御:
    メモリ(バッファ)、ハードディスク、OSの司令塔としての役割を整理しました。
    これはまさに人間の脳の仕組みと同じだと理解しました。記憶して、考えて、命令して、、、という脳内で行われている繰り返しが、コンピューターの中でも行われているんです。
  •  ネットワーク基礎:
    LANの構成要素や、MACアドレス(個体識別)とIPアドレス(ネットワーク上の住所)の違い、通信の流れを学びました。
    ネットワークの「MACアドレス」はコンピュータの製造時に与えられた唯一無二の番号で、例えるなら自分の「名前」です。対して「IPアドレス」はインターネットを繋げている環境によって変わり、こちらは「自宅の住所」のようなものです。引っ越ししたら住所が変わるように、IPアドレスもその時々で変わります。インターネットに限らず、ネットワーク上のあらゆる通信はこの2つのアドレスがあるからこそ、正しく目的のコンピュータへデータを届けることができます。
    ちなみに初めは逆に覚えていて、チームメンバーに説明した時に間違いに気がつきました(笑)インプットだけでなく、アウトプットも大切だと痛感しました。

データベース入門

  •  テーブル構造とSQL操作:
    行(一つの情報)、列(特定の属性)、主キー(一意の識別番号)、外部キー(他テーブルとの関連付け)の役割を把握しました。そしてデータを操作できるSQL操作も学びました。データの検索・更新を行うための記述法を実際に手を動かして学び、数多くのデータ型そしてそれぞれの役割について学びました。その中でも本稿は、データ操作言語である「DML」についてご紹介します。さらにDMLの中でも、特に主要な4つの命令はシステム開発における基本機能の頭文字を取って「CRUD(クラッド)」と呼ばれています。各役割はそれぞれ以下の通りです。
    1. Create(生成) = INSERT(新しいデータを挿入・登録する)
    1. Read(読み取り) = SELECT(必要なデータを検索・取得する)
    1. Update(更新) = UPDATE(既存のデータを更新する)
    1. Delete(削除) = DELETE(不要なデータを削除する)

下記の画像は実際に講義でSQL文(INSERT=データを挿入)を書いたときのものです。この操作で club_id に 「 50」 club_name に 「Football」 というデータを新しく登録できています。
他にもSELECT文を実際に打ってみると、数多くのデータから一瞬で欲しい情報を取り出すことができました。普段何気なく使っているシステムも、裏側でこうした精巧な仕組みに支えられているのだと肌で感じることができました。

  • トランザクション管理:
    一連の処理の流れと、データの整合性を保つためのコミットメント制御の仕組みを理解しました。
    例えば銀行の振り込みで、「片方の口座から引かれたのに、もう片方に振り込まれていない」といったエラーが起きないよう、「全部成功か、全部失敗か」を管理する仕組みです。私たちの日常の当たり前を守るための、とても大切な技術だと学びました。

 プログラミング入門+アルゴリズム入門

  • 設計とテスト:
    モジュール分割による開発効率の向上と、仕様通りの動作を確認する品質保証(テスト)の意義を学びました。
    想像以上にたくさんのテストをクリアしたものだけが、システムとして認められることを理解しました。あらかじめ答え合わせ用のガイド(テストケース仕様書)を作っておくという流れを知り、開発における準備の大切さを実感しました。

  • コンパイル:
    ソースコードを機械語へ翻訳するコンパイルや、データの保持形式(リスト、ツリー、スタック、キューなど)を学びました。
  • データ構造とアルゴリズム:
    コンパイルはコンピュータとの通訳作業のことで、アルゴリズムは効率よく作業を進めるための手順です。例えば「スタック」は、積み重なった本を上から取るようなイメージで「キュー」は、レジ待ちの列のように先に来た人から順に処理するイメージです。

終わりに

4月に入社して研修が始まってから、気づけばもう1ヶ月半が経ちました。
毎日新しい知識がどんどん増えていくので、正直「難しいな」って頭を抱えることもあります。でも、そんな研修の日々のなかで私が一番強く感じているのは、とにかく自分からアクションを起こす大切さです。

何かを聞くのって、私にとっては新しいことに挑戦するのと同じくらい勇気がいることでした。
こんな初歩的なことで止まってるのは自分だけかな?とか、質問して講義を止めたらみんなに迷惑かけてしまうのではないかと、つい不安になります。

ですが、「教えてもらう」ことは単なる質問じゃなくて、「自分の今の状況を正しく伝える」っていう立派な報連相の一つだと感じています。実務は特に一人でできるものではありません。自分の作業が止まると、結果的にチーム全体の仕事も止めてしまうことになります。そう考えたとき、自分一人で抱え込んでしまうことの方が、よっぽど損失が大きいんだと気づきました。
「わからない」をそのままにせず、周りに頼りながら積極的に吸収していく姿勢を、これからも大切にしていきたいです。