【ITニュース解説】From Disk Space Warnings to Clean Code: My Week 1 at the Dataraflow Internship
2026年09月11日に「Medium」が公開したITニュース「From Disk Space Warnings to Clean Code: My Week 1 at the Dataraflow Internship」について初心者にもわかりやすく解説しています。
ITニュース概要
Dataraflowインターンシップの1週目を振り返る体験記。ディスク容量警告というトラブルから始まり、クリーンコードの重要性や実践を学んだ。システムエンジニアとしての学びの第一歩を紹介する。
ITニュース解説
システムエンジニアを目指す上で、実際に企業で働くインターンシップは貴重な経験となる。この記事では、あるIT企業「Dataraflow」でのインターンシップ初週に、筆者がどのような課題に直面し、何を学んだかを紹介する。
インターンシップは通常、新しい知識やスキルの習得から始まるものだが、筆者の場合は、いきなりパソコンのハードドライブ容量不足というトラブルからスタートした。これは開発環境をセットアップする上で頻繁に起こりうる問題であり、システムエンジニアを目指す人にとって身近な課題だ。容量が足りなければ、必要なツールやソフトウェアをインストールできず、作業を始めることすらできない。
Dataraflowは、データ分析と人工知能(AI)を専門とする企業である。インターンシップの主な目的は、データの収集、処理、分析、そして機械学習モデルを実際に動かす(デプロイメント)ためのスキルを習得することだった。これらのスキルは、現代のIT業界で非常に需要が高く、システムエンジニアにとっても重要な知識となる。
最初の課題であるハードドライブ容量不足の原因は、主にDockerイメージや仮想マシン(VM)といった開発ツールが多くのストレージを占有していたことだった。これらは開発環境を効率的に構築・管理するために非常に便利だが、使いっぱなしにするとストレージを圧迫する。筆者は、この問題を解決するために、不要なDockerイメージやボリューム、コンテナを削除する方法を学び、実践した。また、システムのキャッシュをクリアしたり、古いカーネルバージョンを削除したりするなど、ターミナル(コマンドライン)を使ってシステムを整理する具体的なコマンドも習得した。たとえば、「df -h」コマンドでディスクの使用状況を確認し、「docker system prune」で不要なDocker関連ファイルを一括削除、「sudo apt autoremove」や「sudo apt clean」でLinuxシステムの不要なパッケージを整理するといった対応を行った。この経験を通じて、開発環境の適切な管理がいかに重要であるかを痛感したという。これは、システムエンジニアが日常的に直面するインフラ管理の基礎であり、トラブルシューティング能力を養う上でも不可欠な経験だ。
ディスク容量の問題を解決した後は、本格的な技術学習が始まった。まず取り組んだのは、GitとGitHubの基礎である。Gitは、プログラムのソースコードなどの変更履歴を管理するためのバージョン管理システムで、GitHubはそのGitを利用したWebサービスだ。複数人でソフトウェア開発を行う際、誰がいつ、どの部分を変更したかを記録し、変更内容を共有・統合するために不可欠なツールである。筆者は、リモートリポジトリ(GitHub上にあるプロジェクトの格納場所)をローカル環境にコピーする「クローン」、新しい機能を追加するための「ブランチ作成」、変更内容を記録する「コミット」、変更を共有する「プッシュ」、他の人の変更を取り込む「プル」、そして変更を統合する「プルリクエスト」や「マージ」といった一連の操作を学んだ。これにより、共同開発の基本と、自分の作業履歴を適切に管理する重要性を理解した。
次に、Python開発環境のセットアップを行った。Pythonはデータ分析やAI開発で広く使われるプログラミング言語だ。開発エディタとしてVisual Studio Code (VS Code) と、対話的にコードを実行できるJupyter Notebookをインストールし、設定を進めた。特に重要なのは、仮想環境(venv)の利用だ。これは、プロジェクトごとに独立したPython実行環境を作る仕組みで、異なるプロジェクト間でライブラリのバージョンが衝突するのを防ぐ。また、「pip」というツールを使って必要なライブラリをインストールし、管理する方法も習得した。これにより、複数のプロジェクトを同時に進める場合でも、それぞれの環境が健全に保たれるようになった。
さらに、Dockerの基礎についても学習した。Dockerは、アプリケーションとその実行に必要なものをすべてひとまとめにして、どこでも同じように動かせる「コンテナ」という形で管理する技術だ。これにより、開発環境の構築が迅速になり、チームメンバー間で同じ環境を簡単に共有できるため、「私の環境では動くのに」といった問題が劇的に減る。筆者は、Dockerイメージの構築方法、コンテナの実行方法、そしてアプリケーションの実行環境を定義するDockerfileの作成方法を学んだ。この技術は、開発だけでなく、アプリケーションを本番環境にデプロイする際にも非常に役立つ。
また、単にコードを書くだけでなく、「クリーンコード」の原則についても深く学んだ。クリーンコードとは、読みやすく、理解しやすく、保守しやすいコードのことだ。コードの可読性が高ければ、後から自分や他の人がコードを修正したり、新しい機能を追加したりする際に、時間と労力を大幅に節約できる。具体的な原則として、意味のある変数名や関数名を選ぶこと、適切なコメントを入れること、そして「DRY(Don't Repeat Yourself - 同じことを繰り返さない)」「KISS(Keep It Simple, Stupid - シンプルに保つ)」「YAGNI(You Aren't Gonna Need It - 今は必要ない機能は作らない)」といった原則を習得した。これらの原則は、長期的に見て高品質なソフトウェアを開発するために不可欠な考え方だ。
開発効率を上げるために、VS Codeの拡張機能の活用方法も学んだ。Python開発をサポートする拡張機能、コードの整形を自動で行うPrettier、JavaScriptのコード品質をチェックするESLint、Gitの履歴をVS Code上で視覚的に確認できるGitLensなど、多岐にわたるツールが紹介された。これらを使いこなすことで、開発作業をよりスムーズかつ正確に進めることができるようになる。
このインターンシップの初週は、技術的なスキルの習得だけでなく、システムエンジニアとして働く上で重要な姿勢も学ぶ機会となった。目の前の課題に対し、自ら調べて解決策を見つけ出す「問題解決能力」、新しい技術を積極的に学び続ける「継続的な学習」、そして与えられたタスクを責任を持って遂行する「自律性」だ。初めて直面する問題でも、焦らず、一つずつ段階を踏んで解決していくことの重要性を身をもって体験したのである。理論だけでなく、実際に手を動かし、実世界の開発環境で起こる困難を乗り越えることで、技術は真に身につく。この最初の1週間で得られた経験は、システムエンジニアとしてのキャリアを築く上で、非常に価値のある一歩となっただろう。