私家版：コンピュータを学び始める学生に必要なノートPCについて

# はじめに

いまどきレポートをまとめたり、ちょっとした作業をするのであれば、パソコンでなくとも、iPadなどでも困ることはないかもしれませんが、開発体験やハンズオン、さらに中古パソコン(PC)といったキーワードが入ると、後悔しないためのポイントがあるだろうと感じています。

この時節、個人的にPCを買おうと思う新入生や学生がいるだろうと思いましたので、こういった経験を踏まえて、個人的な嗜好を含めてターゲットをかなり絞った記事を書いておこうと思いました。

経済的に余裕があれば、こんな文書は読まずに欲しいものを入手してください。

そうでないのであれば、ある程度のリスクを覚悟して中古PCを入手したり、メモリ・ストレージに余裕・拡張性のあるPCを選択するべきだという点を理解して欲しいと思い、この記事を書きました。

現在ではノートPCは初等教育からビジネス、生涯学習など様々な場面で利用されています。現在販売されている新品を購入したとしても、その性能は(どう比較するかにもよりますが)ピン⇔キリの間で10倍程度の差がある可能性があります。

そしてその性能差は価格では測れません。高価なデバイスが必ずしも高性能とは限らないのです。

「この程度で十分」と思って購入された安価なノートPCが1年後に使われなくなっている場面をみていますので、価格やデザイン以外の部分にも注目して、購入するノートPCを選択してください。

# 保証

この文章は休日に極めて個人的な見解をまとめたもので、私の業務とはまったく関係ありません。

ここに記述された内容に従ったとしても、タイトルからイメージされる結果を保証するものではありません。

内容についてのご意見は大歓迎ですが、意見・コメント等への返信・対応はお約束できない点についてはご了承ください。

# 対象

ここで意図しているのは、コンピュータを勉強するなら,いろいろ試せた方がいいんじゃないかという個人的な考えをまとめたものです。

具体的にイメージしているのは、家や大学・図書館などで移動しながら、次のような作業をする方達です。

* 基本的なプログラミング学習 (基本的文法の学習や、ネットワーク通信等ライブラリ利用方法の学習、他)
* コンテナ(Docker等)を利用した様々なソフトウェアの作成や利用
* 各種OS(Linux,FreeBSD等)をVMWare、VirtualBoxなどの仮想化環境上で利用
* WebやAndroidアプリの開発
* 簡単なゲーム開発

反対に次のようなハイスペックなCPU・ストレージ・GPU資源を要求する用途は想定していません。

* VRアプリケーションの開発
* 3D CADによる商業レベル作品の作成
* 3Dゲームの作成
* 生成AI(LLM)のトレーニングやローカル環境での稼動

## 留意点

簡単な3Dゲームを作ってみたいと思った場合でも、[Unityの稼動環境](https://docs.unity3d.com/Manual/system-requirements.html)をみると、ここに書くようなノートPCでもできないということはさそうです。

もちろん性能が高いほどより快適になることは間違いありません。

様々なプログラミング言語に挑戦する場合には、Linux上で開発環境を整えるのがお勧めです。

WindowsやmacOSが世の中の中心にあるかもしれませんが、コアとなる技術の多くはLinuxやUNIX OS上で開発・公開・利用されています。

これはLinuxを含むUnix系OSが、そのシンプルな構造からコンピュータのパワーを引き出すのに最適だからです。

Windowsを消去してLinux(Ubuntu系Desktop Distribution)をインストールしたり、デュアルブートにしたりする方もいますが、LinuxとノートPCの相性は悪い場合があり、バッテリー持続時間やハイバネーション(休止状態)などの動作で問題に遭遇する可能性があります。

ある程度の性能を備えたノートPCが購入できるのであれば、作業を支える土台部分はそのハードウェアがもっとも適合するOS(WindowsやmacOS)を使い、必要に応じて仮想化環境(VMWare, VirtualBox, Parallels等)でLinuxなどのOSを使い分けるのがお勧めです。

:::note
グローバルに展開しているPCメーカー(Dell, Lenovo, HP, etc.)では、同じ製品を海外でも販売するなどの理由でRedHat Linux等との互換性を検証してHCL※を公開している場合もあります(※ HCL: Hardware Compatibility List)。

もし、Linux専用ノートPCを準備するのであれば、トラブルを避けるため、HCLにRHEL(RedHat Enterprise Linux)などのLinux Distributionとの互換性が明記されている製品や、YouTubeなどを参考に動作事例が報告されている製品がお勧めです。

同一メーカーでもコンシューマ(一般消費者向け)とビジネス向けでは、コンシューマ向けが売りとなる(Linux等と相性が悪い)特別な機能を持つ場合が多いのに対して、ビジネス向け製品は汎用的でLinuxなどを動作させるには適している場合が多いです。
:::

Windowsが動作し、仮想環境でLinuxを動作させるにはPassmark値でCPUが8000ポイント以上、512GB以上のNVMe SSD、32GB以上のメモリといった性能を備えることが最低限必要だと思います。これは中古品で揃えることは少し難しいかもしれません。

中古品を利用する場合にはWindowsではなくLTS版のUbuntuを導入するのがお勧めです。LinuxであればPassmark値で5000程度のCPUでもプログラミングや日常的な用途であれば問題はあまり感じないでしょう。ただVMWareなどによるOSレベルの仮想化環境はあまり快適ではないので仮想環境でWindowsを稼動させるといった利用はお勧めできません。

またIntelの12世代以降のCPUは、P-core, E-coreのハイブリット構成を取っていますが、仮想環境を動作させる場合にはP-coreのみに処理を行わせるなどの工夫が必要となるケースもあります。

* 参考資料 [VMware Community - 【VMWare Workstation Pro 17】仮想マシンごとにホストで使用するコアを指定できないのでしょうか？](https://communities.vmware.com/t5/Japanese-Discussions/VMWare-Workstation-Pro-17-%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%94%E3%81%A8%E3%81%AB%E3%83%9B%E3%82%B9%E3%83%88%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%82%B3%E3%82%A2%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B/td-p/2947066)

E-coreのみを利用したN100などのCPUでもWindowsは実用的に稼動しますが、OSレベルの(VMWareなどの)仮想化環境は満足する性能を発揮しないでしょう。

ここから先はWindowsではなく、LinuxをメインOSとして利用することを前提としたノートPCの購入についてまとめています。macOSについても言及していますが、結論としてApple製品は新品を購入するのがお勧めです。

OSレベルの仮想化ではなく、Docker/Podmanによるコンテナ仮想化を利用、学習することで、これら古い世代のデバイスでも十分に現代的なプログラミング、アプリケーション開発について学べるはずです。

# ここでお勧めするノートPC

LinuxをメインOSにする前提で中古品をターゲットに入れて考えると、具体的には下記のようなノートPCです。

**過去7年以内に発売されたノートPCの中で、発売当時に中〜上級機として発売されて、64bit版OSを搭載しているもの。ただし、メモリと記憶領域(HDD,SSD)については交換可能か、下記に示すようなサイズを備えるもの。**

* メモリ: 16GB以上備えている、あるいは16GB以上に交換可能なもの
* ストレージ: SSDで512GB以上備えている、あるいは512GB以上に交換可能なもの

この中の最低限のスペックでは仮想マシンを十分なスピードで動作させることは難しいですが、コンテナは十分に動作するでしょう。最低限の開発環境を準備して利用することはできるはずです。

## Apple製品の購入について

macOSやiPhone・iPad用(iOS/iPadOS)アプリの開発をしたいといったニーズがあれば購入しましょう。予算の範囲でメモリとストレージについては十分な余裕を持った構成を選択してください。そして、その財力があればこの記事を読む必要がないと思います。

中古品のApple製品を購入の参考にするべき情報は、[保証期限の切れた Apple 製品の修理サービスを受ける](https://support.apple.com/ja-jp/HT201624) です。ビンテージ製品とオブソリュート製品について理解すると中古品を購入するメリットはそれほど感じられなくなると思います。Appleの整備済み中古品はこれらの価値の分だけ割引かれていて妥当な価格だとは思いますが、利用できる期間は短くなりますので寿命という点では良く考える必要があるでしょう。

:::note
個人的にmacOSを快適に動作させることが難しくなった手持ちの2015年製Macbook AirにUbuntuを導入しています。macOSを実用的に動かすことは無理ですが、Linuxであればメモリの交換ができない点を除けばNVMe SSDを接続するアダプタがあり1TBにしていて学習用には十分です。

しかしこの時期のThinkPadであればメモリ、SSD、ディスプレイパネルの交換なども自分で可能なので、中古のMacbook Air (early 2015)をわざわざ購入する必要はないでしょう。
:::

## Windows OSが搭載されているノートPCを購入する場合

ここがこの文書のメインになります。

各メーカーから様々なWindows OSが搭載されているPCが提供されています。
高価である必要はないですが、ビジネス用途にも利用可能な比較的作りがしっかりしているものがお勧めです。

LenovoのThinkpadやHPのElitebookなどビジネス向け機種では、ネジを外したり、ボタンを押すだけで裏蓋が簡単に開くなど、メモリ等の交換が比較的簡単にできるものがあります。こういった製品であればメーカーがSSDやメモリ交換のマニュアルを公開しています。

家電量販店などでよく見るコンシューマ向けのLenovoやHP、国産ノートPCなどには、こういったパーツの交換が異常に難しいものがあります。最新機種ではSSDやメモリの交換は難しくなる傾向がありますが、中古品ではまだ交換が可能な製品は流通しています。有名モデルについては交換作業が可能であるかの情報や、分解作業を解説した動画が見つかると思います。

またLinuxとの互換性は冒頭に書いたようにビジネス向け製品の方が高い傾向にあります。

同一メーカーでも製品ブランドによって違いがあり、メーカー名だけでは、具体的にどの製品が良いとか、悪いとはいえません。価格が安いという理由で選択すると後悔することになると思います。ただ見た目で選択せずに、必要なスペックを供えているか、よく確認してください。

:::note
日本ではLet's Noteシリーズは小型軽量でハイスペックであるため、多くのビジネスシーンで利用されています。ただ、小型な中古品のメモリやHDDを交換した際には、難易度が高くこうした作業を前提にした作りではないなと感じました。キーボードの交換も容易ではありません。良い製品だと思いますが、Apple製品と同様に購入する際には最初から必要な量のメモリ、ストレージを供えているか確認することをお勧めします。
:::

### Windows搭載ノートPCの面倒だったところ

数年前にハッカソンに自前のノートPCを持参した学生がVMwareを動作させるのに苦労していました。理由はBIOS/UEFIで仮想化機能が初期値で無効になっていたことでした。これは自分では気がつかない点だと思います。

仮想化機能を使うために、最低限VT-x/AMD-Vと呼ばれる仮想化支援機能を有効にしなければいけません。一部のノートPCでは、この機能を無効に設定した上で販売されています。電源投入時のOS起動前にF1やF2キー、あるいはDelキーを押しておくなどし、自分でBIOS/UEFIの仮想化機能の設定を有効にするといった作業が必要になります。

:::Note
設定を変更すれば利用は可能なはずです。BIOS/UEFIの設定は特に難しい点はないので、こういったところも含めて、自分の道具は自分でできるだけ幅広くメンテナンスできるようになりましょう。
:::

## 【Apple製品・Windows共通】 ストレージ(記憶装置)について

メモリではなく、以前は**ハードディスク(HDD)**や**ディスク**などと呼ばれ現在はSSDに切り替わったストレージについてです。

HDDは長く利用されている技術で、使用中に衝撃を与えると容易に壊れますが、故障してもデータの復旧が比較的容易で、そのための知識・技術は様々開発・蓄積されています。

反対に、SSDは高速で、構造的に衝撃などで容易に壊れるものではなく通常利用の範囲ではHDDよりも優れています。しかし、万が一壊れた際のデータ復旧はかなり難しくなり、場合によっては不可能となります。

仕事で大切なデータを保存する場合などは、SSDとHDDを組み合せます。比較的大容量なHDDにSSDのバックアップを取得したり、サーバーではRAIDや分散ファイルシステムの手法を組み合わせることで速度面の遅さをカバーしながら信頼性の高いニアライン以上の品質を持つHDDに大切なデータを保存します。

ノートPCの場合は、通常は1つしかストレージを搭載できないため、SSDを利用しながら、信頼性を補うために定期的にNAS(ネットワークに接続したストレージ・デバイス)などにバックアップを取るという使い方が必要となります。

ただ最初はNASを購入する余裕はないかもしれないので、一部のファイルだけをiCloudやOneDriveといったクラウドストレージに配置することで機器の故障に備えることになるでしょう。

## この他のポイントについて

メモリ・ディスク以外のポイントについて、網羅できませんが、長く使う上で気になるかもしれないポイントをまとめておきます。

### 1. キーボードやトラックパッドの使い勝手

安価な製品は、これらの入力系の品質や耐久性が十分ではない場合があります。可能であれば、実際に打ち心地を確認しましょう。目線をディスプレイに向けたままタイプする**タッチ・タイプ**を修得するには、小型すぎるキーボードや配列が独自なものはお勧めしません。ディスプレイサイズが13インチ以上であれば、打ち易いキーボードを搭載していることが多いと思います。

:::note
ブラインド・タッチという言葉はいまでも耳にしますが、和製英語で、英語ではTouch typing といいます。[See also "Wikipedia:Touch Typing"](https://en.wikipedia.org/wiki/Touch_typing)
:::

日本語キーボードか英語キーボードか、というのは慣れと好みが大きいと思います。私は余計なキーがない英語キーボードを好みますが、昔から日本語キーボードに慣れている友人はコロンの入力にShiftキーを使うなんて有り得ないといっていました。

:::note
LenovoのThinkpadはキーボードの交換が比較的簡単なため、国内の中古品を購入してキーボードを英語版に交換して使っています。これは私がSKKという日本語入力環境を好んで使っているためで、Controlキーなどと通常の英数字キーとの組み合せで、半角・全角、その他記号入力の切り替えができているため、英数,半角/全角キーなどの日本語キーボード固有のキーが邪魔だという事が大きな理由です。
:::

仕事ではお客様先やサーバールームにキーボードを持ち込むようなことはできませんから、どのようなデバイスを与えられてもそれなりに使いこなすことが求められます。国内では日本語キーボードが多いとは思いますが、サーバーラックのKVMドロワーなど英語キーボードを備えた専用デバイスもそれなりに存在しています。

### 2. ディスプレイ

液晶ディスプレイには、光沢の有無で大きく2つに分けられ、その他にTN液晶や、IPS液晶と呼ばれる表示品質・視野角に特徴のある種類があります。

動画などを頻繁に閲覧する家庭用であれば、光沢有り・TN液晶の組合せが価格を下げるために選択されることがあります。最近は低価格帯でもIPS液晶が一般的になりつつありますが、特に中古のビジネス向け製品では、まだTN液晶を搭載したノートPCを見掛けます。一定時間の作業をするのであれば、光沢無しのIPS液晶がお勧めです。

また液晶ディスプレイの交換は比較的簡単な作業の一つです。

私自身は中古で購入したThinkPadの液晶パネルだけIPSに交換していますが、時々コネクタやインバーターと互換性のあるIPS液晶が発売されていないため交換が可能かどうか事前の情報収集が必要です。

### 3. USB

2012年以降に発売されたノートPCであれば、ほとんどUSB3.0以降を搭載していると思います。USBメモリへの動画データのコピーなど、サイズの大きなファイルを移動させる場合にはUSB3.0を搭載している方が快適でしょう。

一部の製品ではやType-A形状のコネクタに接続可能な外部ディスプレイといった専用機器もありました。現在はType-Cの付加機能として外部ディスプレイに接続するためのDisplayPort Alternateモードや電源の受給電に利用できるPower Delivery(PD)を備えている製品が一般的です。

Type-Cの形状だからといって対応しているとは限らず、ThinkPadではx270以降がPDに対応していますが、一般に廉価な製品では新品ノートPCのType-Cでも外部ディスプレイ接続やPDには対応していない場合があります。

### 4. 重さ

持ち運びを考えると、重さは重要な要素です。重いというだけで、手に取る時間が減ったり、薄い生地で作られた縫製の悪いデイバッグの肩紐部分が切れてしまうかもしれません。

丈夫なバッグが必要とは限りませんが、できるだけ軽い方が使い勝手は良いですし、どの程度の重さが良いかは筋力などの体格に大きく左右される部分でもあります。

ただ、軽さと引き換えに、キーボードの打ち易さや拡張性・堅牢性などを犠牲にしている可能性があります。反対に重ければ拡張性があるかというと、安く仕上げるために安価な重い部品を使用している場合もあります。

レビュー記事などを参考にしながら、必ずしも鵜呑みにせず、後悔しないように自分にとってバランスの良いものを選択してください。

:::note
個人的には1.5kg程度までは丈夫なバッグに入れれば出張を含めて日常的に持ち歩けると思っていますが、小柄な方や大きなバッグを持ちたくないという方には、1.2kgぐらいまでが限界かもしれません。
:::

# さいごに

パソコン(PC, パーソナルコンピュータ) とは 『個人が自由に、使い方を他人に指図されずに使えるコンピュータ』 のことだと思います。

その意味では、自分の自由になるコンピュータを所有することは、いろいろ試す上で、また技術を獲得する上で大切なことです。

:::note
矛盾するようですが、教育機関が個人にコンピュータを購入させることには反対です。こういう目的で購入したコンピュータを利用しないと授業が受けられないため、いろいろ試す事ができないコンピュータ・自分の自由にならないコンピュータになってしまうからです。

仮想環境(VM)が使えればある程度は解決しますが、十分ではないとも思います。
:::

大学に設置されているコンピュータでは、不便な場合もあるかもしれません。しかし、様々なプログラミング言語やエディタ等のソフトゥエア、各種ライブラリの利用といった用途については十分な環境を提供しています。

また、私がプログラミングやネットワーク・サーバー系に特化しているので、最近の流行りとは少し離れたところにいて、ゲームや動画編集メインという場合には、あまり共感できない記事になったかもしれません。

新しいものが最善というわけでもないので、目的に応じて、良く考えて、選んでください。人によって使い易い道具というものは違いますが、ここで書いたことが少しでも参考になれば幸いです。

# 【番外編】 いや、それって正しくないんじゃない？

読み返して自分でいろいろツッコミを入れたので、想定問答集としてまとめておきます。

## 通信環境はどうするの？

ここに挙げたノートPCであれば、802.11nに対応したWi-Fi機能は供えていると思います。

古い2.4GHz帯の利用は避けて、5GHz帯に対応しているアクセスポイントを利用するよう注意すると安定した通信が確保できるでしょう。

自宅の通信環境は、開発環境やライブラリ・コードのダウンロードを考えるとフレッツ光などの有線接続がお勧めです。

4G LTE・5G網に接続するWi-Fiルーターや常時接続を謳う類似製品、スマートフォンのテザリングは一時的な利用・外出時には便利ですが、たとえ容量無制限だとしても、OS・ソフトウェアのアップデート、開発環境のダウンロードなどを考えると、継続してトップスピードを維持することは難しく、スピード低下や遅延にストレスを感じると思います。

ただ大学などで好きな時に高速な有線・Wi-Fiネットワークに接続できる環境があれば、必ずしも自宅に有線接続は必要ないかもしれません。

## レポート書くのに、WordやPowerPointは必要じゃないの?

私が勤務する大学では、Microsoftとの契約(OVS-ES、Student Advantage, Teacher Advantage)を利用することで、学生や教職員は家庭で使用する個人所有の機器について、[Microsoft 365 Apps for enterprise製品](https://www.microsoft.com/ja-jp/microsoft-365/enterprise/microsoft-365-apps-for-enterprise-product)をPC(Windows/macOS)・スマートフォン・タブレット(Android/iOS)で各5台分(最大15台分)まで利用可能になっています。

上記の制限とは別に、大学の予算で購入した機器であれば、1人あたりの台数の制限なく最新版Windows OSへの更新, 最新版MS Office製品の新規導入が可能になっています。

そのため、いわゆるOffice製品のライセンスが追加された割高なノートPCを自分で購入する必要はありません。

ときおり授業でWordやPowerPointの使い方そのものを教えないため、社会人になって大丈夫か心配する人がいます。大学で学んで欲しいことは、ある程度普遍的な知識・技量に加えて、その時々で必要な知識・スキル（この場合はOffice2019の使い方,etc.）を自分で獲得できるようになることです。

使い方そのものは詳しく教えないかもしれませんが、そのために必要な環境・基礎知識は提供しているはずです。コンピュータの扱い方は、日々変化していきます。その変化に耐えられる基礎体力を修得することを目指してください。

:::note
REST APIから取得したデータやCSVデータなどの構造化に対して、自由に組み合わせて加工したり、LaTeXやその他コードからPDFファイルを自動的に生成する方法を身に付けた方がよほど生産的だとは思います。

コンピュータを利用できるというのであれば、何かしらの自動化はできるようになりましょう。
:::

中古PCを購入する際に、類似のオフィス製品を勧められるケースがあると思います。残念ながら現状では、どこかに提出するファイルを作成する際にMicrosoft製の製品が必要だと思います。個人的な利用だけであれば、Google DocsやLibreOfficeでPDFを作成すれば十分だと思いますが、履歴書にしても元ファイルがExcelであれば、それはExcelを利用して編集するべきです。

無償や安価なOffice互換製品は個人的な作業に使うもので、積極的に利用するものではないと思います。

:::note
最近は**DX**や**働き方改革**というキーワードを目にしますが、コンピュータを扱う上で大切な事は適度な抽象化と再利用で、流行りのキーワードが目指す目標の一つです。データの構造と見た目(表現)をぐちゃぐちゃに統合できるオフィス製品のようなアプリケーションこそが抽象化を困難にし、データの再利用を促すことをとても難しくしている元凶だと思います。

また関連して古いシステムの刷新が必要だと喧伝されています。しかし古いシステムが問題なのではありません。定期的なメンテナンスを怠った事や適度な抽象化を行わずに機能を追加し続けた事が問題なのであって、最新のシステムでも運用方針を変更しなければ同様の事象は発生します。むしろテストや検証といった部分にコストをかけられない組織であればマイクロサービスのような最新のアーキテクチャを採用することによって数年後にはより悲劇的な状態になるかもしれません。
:::

個人的にはレポートの作成やワープロ操作を授業で教えることは必須だとは思いません。しかしある程度の操作には慣れる必要があるでしょう。ただ、より習熟するべきなのはXMLやJSONなどの構造化フォーマットを含めてテキストファイルを中心に、a2ps, LaTeX, HTML5/CSSのような仕組みを自由に組み合わせて文書を作成することだと思います。

## ノートPCって自分で買わないといけないの?

こういう記事を書いていうのもなんですが、必要があるかどうかは目的によります。

普通、大学や企業に配置されているコンピュータは自由に電源を切ったり、アプリを入れたり、OSを入れ替えたりすることはできません。

そんな環境でもコンピュータの利用方法やプログラミング言語を習得する目的には十分利用できるので、図書館などで空き時間に利用できるのであれば必ずしも個人で所有する必要はないでしょう。しかし授業だけで十分に習得できるほど簡単なものでもありません。こんな場合には個人で所有すれば少し便利にはなるでしょう。

個人的には、VMware・Virtualboxなどを利用して、Linux・FreeBSDなど様々なOSの導入・利用、あるいは様々なOpen Source Software (OSS)を試して欲しいと思います。そして、そういった事を自由にやりたいと思えば、自分のコンピュータが必要になります。

コンピュータを学ぶ人には、失敗も含めて、いろいろ試すことで経験を積む必要があります。成長するためには自分が自由にできるコンピュータはあった方がいいでしょう。そして、コンピュータを所有したのであれば、いろいろなことに使って試して欲しいと思います。

こういった実験的な用途であれば中古品でも十分だと思います。ゲームにも使いたいのであれば、あきらめて別にゲーム用PCかゲーム専用機を買いましょう。

なんとなく、家電量販店でスタイリッシュな最新の薄型ノートPCを購入しても、5年前のビジネス用ノートPCよりもCPUの性能が低かったり、メモリが不足したりで、十分に使えない可能性があることは知っておいてください。

## iPadやAndroidタブレットではだめですか?

だめです。というのはわりと本気で、動画をみたり、購入した電子書籍・コミック・雑誌を読む目的であれば、十分だと思いますし、サクサク動いて便利だと思います。

しかし、それは**消費**とよばれる活動であって、**何か作る**という活動とは、本質的にまったく・完全に別物です。

そうはいっても、文書や絵を創作することは問題なくできそうにも思えます。iPadで何ができて、何ができないか、余裕があれば、ぜひ購入して確認してください。しかし、必要なのは、そういう洗練された最新のものより、もっと本質的で古典的なものに触れる経験なのだと思います。

プログラミングアプリはApple Storeにあるので、小・中学校で決まった用途に使うのであれば、特に問題はないでしょう。しかし（いまのところ）iPadで本物のiPad用アプリの開発ができなめん。そしてこれが勧めない理由です。

Androidタブレットはいくらか自由度はiPadよりも高いですが、同じ理由でお勧めしません。

:::note
タブレットは便利で、電子書籍でフォントのサイズが変更できることは老眼が進行している現在では読書量が維持できて何よりもありがたいことです。
:::

## Raspberry Pi を買おうと思っているのですが…

SDカードにOSを書き込むためのコンピュータがまず必要ですが、OSが書き込まれたSDカードを購入することもできるので、何とかなるかもしれません。その挑戦する心意気はとても良いと思います。

ノートPCのように持ち出す事は難しいですが、Docker Engineを利用することはできますので、ここで想定している使い方には合っていると思います。ぜひ挑戦してください。

私もRaspberry Pi4を複数並べてKubernetesクラスターを構築してみて、実用性はともかく、実験には便利だと感じているところです。

ただ、時間は貴重です。いろいろ試すには、少し非力で、待ち時間が体力と気力を削るかもしれません。そんな時は、十分なメモリと高速なSSDを搭載した自分のコンピュータを傍らに置いて挑戦しましょう。

## 中古品って大丈夫ですか？

まず中古品でなくとも、運が悪いと電源周りの部品が壊れるなどし、突然、使えなくなることがあります。店舗独自の保証制度などがあれば利用するようにしましょう。これまでの経験上は、デザイン優先の家庭向けの製品よりも、ビジネス向けの無骨な(主に黒い)ノートPCの方が壊れにくい印象です。

:::note
ThinkPadを2001年から使っていて、マザーボードの電源周辺回路が壊れた経験は入社時に配布された家庭向け(廉価版)のi Seriesだけでした。ビジネス向けの機器では私個人はまだ目立った故障は経験していません。と書いていましたが、一度だけThinkPadの電源回路が故障してACアダプタから給電できなくなったことがあります。

ただ10台以上のThinkPadを所有していて、5年以上経過して問題が発生したのはファンエラーによってCPUファンを交換した1件の事例と上記の電源回路の故障だけです。
:::

中古品の場合、1.5〜2.5万円程度のノートPCだと、だいたい付属するバッテリーは劣化していて使いものになりません。またキーボードは、打ってもなかなか認識されないキーがあるといった、不具合のある可能性があります。ストレージにはHDDが付属することもあり、またSSDであっても容量が少ないことが多く、大容量の高品質なSSDへの交換も必要でしょう。

そのため事前に部品が交換できるか、どうやったら入手できるか確認することが必要です。その分も想定して予算を確保することも必要でしょう。ビジネス向けノートPCでは、バッテリーと液晶画面は交換用の部品が容易に入手できると思います。特にThinkpadではキーボード含めてほぼ全ての部品が入手できる可能性が高いです。

しかし、楽天市場やAmazonなどで販売されている商品の中には、交換用部品といいながら、不具合のある中古品が含まれていた経験があります。過去に交換用キーボードを購入したところ、中国からEMSで発送され、届いた商品は海水で洗ったのかのようにネバついて全体的にキーボードの反応が悪かったことがありました。(見た目は綺麗でした)

こういったpros and consがあるのですが、それでもけっこう気にいっていて、これまで10台ぐらいのThinkpadを1台2万円前後で購入し、キーボード・HDDなどの部品を、+2万円程度かけて英語キーボードとSSDに交換しています。これまでメインだったx220・x230は、さらに+1万円程度でTN液晶をIPS液晶に交換していました。Amazon.comでSUNMALL社が販売している交換用キーボードをよく利用していましたが、最近は入手できなくなってしまい、品質の良い交換用キーボードの入手には若干苦労しています。

失敗する可能性が常にあるので失敗したくない初心者には勧めませんが、2nd PCの選択肢としては悪くありません。Linux専用機にしたり、いろいろ試す2台目以降のPCとしてはビジネス向けの中古品は積極的にお勧めできると思います。

最近はコロナ禍の影響で中古品の在庫が減り、価格は高くなり、中古品のメリットがあまりなくなってきていて少し残念です。

一方で中古品でも13インチでFullHD IPS液晶が一般的になりつつあるので、この記事を書き始めた頃とは隔世の感があります。

## iPhone用アプリを開発したいのですが…

いろいろネガティブなことも書いてきましたが、やりたいことがあるなら、その目的にまっすぐ進みましょう。iOS向け開発にはApple製品一択で、開発機(Macbook Air/Pro, iMac, Mac mini, etc.)のメモリは8GBだと最低限で厳しく、慣れてくるともうちょっと欲しく感じると思います。

iPhoneとMacbookを入手したら所属する大学・教育機関がiOS Developer University Programに登録しているか確認しましょう。それなりの台数のiOSにアプリを配布できる開発者として無料で登録できるはずです。

:::note
昔、iPhone 3GS向けのアプリを開発していた頃は、米国Appleにパスポートの写しを送信した上で開発者ライセンスを入手しないと物理デバイスでのテストすら無理だったのですが、いまはライセンスがなくても個人所有のiOSデバイス上で自作アプリを実行できるみたいですね。いい時代になりました。
:::

macOSを入手したらXcodeをインストールし、iOSアプリ開発を経験してみてください。

## Chromebookについて

Chromebookは出始めの頃から試していて、Asus, Acerなどの製品を経て、現在はLenovo社製のChromebook(IdeaPad Duet 560)を利用しています。

Chromebookそのものは初等・中等教育機関での導入が進んでいますし、最近発売されたChromebookは、Linuxへの対応も進み、GUIアプリの表示も可能です。Androidアプリも利用できるので、家庭の他、教育機関・企業が、安全に利用し、管理できる機器として導入が進んでいるのだと思います。

またフル機能の素直なChrome Webブラウザーが動作しますので、iPadのようにレンダリングエンジンの違いや微妙な挙動の違いで困る事もなく、確実にPCと同じWeb体験ができる点はすばらしいと思います。

しかし、Androidアプリの完成度はiPadと比較するといま一歩といった印象が強く、これに頼るのは少し心許ありません。Androidデバイスでは利用できるMS Office AppsはChromeOS上では動作せず、Officeオンラインを利用する必要がある点も懸念点の一つです。

また、電源投入直後などは、利用開始時にGoogleアカウントのパスワードを入力する必要があり、Authenticator/FIDO等、追加の認証機構の利用を強制できない点は致命的だと感じていましたが、最近ではパスコードの入力だけで良くなったようです。(個人ではなく、学校や企業で一括導入して、機器が機関の管理下にある場合には、FIDOデバイスの利用を強制することは可能なはずです)

現時点では家庭のように安全な環境での使用に限定すれば、子供の利用も含めて積極的にお勧めできます。
またスマートフォンにはAuthenticatorや互換アプリを導入し、Googleアカウントの2段階認証は必ず有効にしましょう。

開発という観点では、Linux環境が利用できるため64bit対応CPUであれば、dockerを利用することもできますし、GUI(X11+Wayland)の対応が進み、Firefoxを起動できるようになり、日本語入力も問題ない状況です。最低限の開発環境として利用することは可能です。それでもパッケージから導入したChromiumは起動しませんし、安定性などの観点からはまったくお勧めできません。

開発を中心に考える場合は、少し価格が高くなりますが、CPUやメモリに余裕のある汎用OS(Windows, macOS, Linux)を搭載したノートPCを選択することを強くお勧めします。

## Ubuntu と CentOS(RedHat Linux Enterprise互換OS) はどっちがいいの？

総合的に、個人的な利用であれば、様々なソフトウェアや開発ツールをパッケージとして備えている Ubuntu LTS版の利用がお勧めです。私は小規模なKerbernetesのクラスターをいくつか運用していますが、ここ7年ほどでOSによる不具合に遭遇したことはありません。以下はその理由です。

Linuxと一括りにされることが多いですが、利用する際にはユーザーランドの様々なアプリケーションと一緒に利用するため、それらの組み合せによって使い勝手がまったく異なります。そういった「組み合せ」を提供するDistributionと呼ばれる配布単位の選択はとても重要になります。

UbuntuはDebian GNU/Linuxから派生したディストリビューションでCanonical社がサポートを提供しています。
Debianは一時期、安定板のバージョンアップがとても遅くなり、パッケージ間の整合性が安定していない時期がありました。(これは公式に認められている状況ではありませんが、私の環境ではいろいろと問題が発生しました) 現在であればDebianを利用しても不具合はないと思いますが、安定して利用できるという点からUbuntuがお勧めです。

Ubuntuは最新の機能を取り込みつつも、短期間でサポートやパッケージの更新が止まるバージョンと、LTS(Long-term Support)と呼ばれる長期サポートを特徴とする2つのバージョンが存在します。Ubuntuを選択するのであれば、最新よりも安定しているLTS版の利用がお勧めです。最新版を使うのであれば、半年毎にバージョンアップを必ず実施してください。開発ツールはLTS版と最新版のみをサポートするのが一般的で、頻繁にバージョンアップがある場合は、最新版に対応するまでのタイムラグで問題や一時的にうまく使えない期間が生じるかもしれません。

CentOSは、RedHat Enterprise Linux(RHEL)から派生したディストリビューションで、現在はRedHat社がスポンサーになっています。用途を限定せずにRHELを無償で利用する方法はないため、RHELとほぼ同等のOSを利用したい場合には、RedHat社が支援している点からも、CentOSの利用が最有力の候補になるでしょう。

CentOS等のRHELクローンは商用レベルの品質・機能を供えている点に価値があると思います。その反面、利用できるパッケージや柔軟性には制限があり、EPEL等を利用しても、Ubuntuには及びません。しかし、商用ソフトウェアを利用する際には、RHELだけをサポートしている場合も多くあり、Ubuntuでは対応できない場面も存在します。

2020年11月にCentOS Linux 8の開発を停止し、CentOS Stream 8のみをサポートするという発表がありました。当初はCentOS StreamとFedoraを同等と誤解し、Fedoraのような発表前製品レベルでは商用品質、RHELの検証環境として不十分との考えから、この変更は大きな批判にさらされました。個人的には発表されているとおりのCentOS Stream 8であれば、CentOS Linux 8/RHEL 8の代替として利用可能な場面はそれなりにあるとは思います。

ただ、RHELで動作する商用製品が動くだろう、CentOS LinuxでテストすればRHELでも同様に動くだろう、という期待を裏切ることになるので、この路線変更の影響はビジネス環境では大きいだろうと思われます。

開発・学習目的であれば、個人開発者としてRedHatに登録して、無償ラインセンスを得て利用することができますので、CentOSや代替となるAlma/Rocky Linuxのいずれを利用するべきか悩む必要はあまりないでしょう。

## WindowsでLinuxが動くと聞いたんですが…

ChromebookのLinuxサポートと同様に、Windows10以降はWSL2を有効にすることで"Ubuntu"アプリなどの任意のDistributionをStoreアプリから導入可能です。

Suse LinuxやLinux Mintなどが利用可能ですが、現時点ではCanonicalが配布している公式版のUbuntuを選択するのが情報も豊富で良いと思います。

WindowsでのUnix的な環境については、2000年頃はライブラリによりシステムコール等をwrapするcygwin環境を利用する方法が一般的でした。当時はまだVMwareによる仮想化環境はデスクトップ用途では実用的ではありませんでした。

それからしばらくするとVMwareやVirtualBoxによる仮想化環境で完全なLinuxディストリビューションを利用する事が一般的になりました。最近ではWSL2を利用することで、Windows上に配置されたファイルをLinux環境から編集することもシームレスに可能となっています。

:::note
Windows10のWSL2では、X11アプリケーションを利用する事は可能ですが、別途XServerを準備する必要があり、初学者が安全に利用するにはVMwareなどの完全仮想化環境の利用がお勧めです。

Windows11からはX11+Waylandが統合されたので、標準環境でLinuxのGUIアプリケーションを動かすことができるようになりました。日本語の入力も問題ありません。Windows11でのWSL2環境は積極的に利用したいと思っています。
:::

Windows10 2004からWindows Hypervisor Platform (WHPX) と呼ばれるAPIが提供され、Hyper-Vと他の仮想化環境が共存できるようになりました。WHPXを利用して問題となる制限はネストした仮想化環境が利用できない点で、これまで可能だった仮想化環境のWindowsやLinuxでDocker Desktopを利用することができなくなりました。

これはDocker DesktopがWHPXによって阻害される機能(仮想化Intel VT-x/EPT、AMDではAMD-V/RVI)を必要とするためです。

Docker CE版についてはこの制限はないため、WSL2や仮想化環境上のLinuxでdockerコマンドを利用することはできます。Docker DesktopのScout機能を利用したい場合にはホストOS上で実行しましょう。

:::note
2024年後半ではdockerではなく、RedHatが開発しているpodmanを利用することが増えています。
:::

Linuxを勉強する目的でデスクトップも利用したいのであれば、WSL2固有のテクニックが不要な、VirtualBoxやVMware Workstation/Fusion, Parallelsによる完全仮想環境を利用するのがお勧めです。

## 自分で修理できた方がいいですか？

とあるきっかけでLenovo製のノートPCが故障したという相談を受けました。

ネットワークに接続できないとか、フリーズするということだったので、SSDなどのハードウェアが故障したと思って実機を本人と確認しました。そこで空き容量が不足したためファイルを適当に削除した後に調子が悪いということが分かり、システムの重要なファイルを削除したことで動作が不安定になったと分かりました。

本人はハードウェアではなくOS側の問題だという推測の元、OSの標準機能を使って初期化をしようとしていました。

OS側に問題があったのは事実ですが、そのOSがすでに正常に動作しなくなっていたため復元機能が正常に動作しない、そんな少し複雑な状況になっていました。

システムファイルまで安易に削除したことは不注意でしたが、その後の状況把握や対応は正しかったと思います。システム標準機能が利用できない場合、修理対応は経験がない段階では非常に難しいと思います。

まずはソフトウェアの問題か、ハードウェアの問題か区別できるところを目指すのが良いと思いますが、そんなに簡単ではないですね。

その後の対応は、元々初期化するつもりだったこともあり、この段階では救出したいファイルはないということだったので、完全にノートPCを購入時の状態に戻すことにしました。

メーカーサイト(lenovo)のリカバリツールをダウンロードするように助言しつつ、実際の作業は見守りながら本人に実施してもらいました。おそらく次のような知識があれば、助けがなくても対応できたと思います。

* Windows10では空き領域を確保するために、標準機能のクリーンナップ機能を利用するべきだということ → [support.microsoft.com Windows 10のディスククリーンアップ](https://support.microsoft.com/ja-jp/windows/8a96ff42-5751-39ad-23d6-434b4d5b9a68)
* Windows10の標準機能で初期化できない場合に、次のような複数の手段があるということ
  * PCメーカーが提供する初期化手段があること → [Lenovo Support](https://support.lenovo.com/jp/ja)
  * Microsoftからインストーラーを入手して初期化する方法があること → [Windows10ダウンロード](https://www.microsoft.com/ja-jp/software-download/windows10)
  * サードパーティーのバックアップツールでシステム・バックアップを取得していれば、そのツールがサポートしている方法で復元できる可能性があること
* PCメーカーからの初期化ツールのダウンロードの際には、対象製品のシリアルナンバー、マシンタイプなどを入力する必要があること
  * 裏蓋シールやBIOS/UEFIから確認できること → e.g. [Lenovo シリアルナンバー・マシンタイプの探し方](https://support.lenovo.com/jp/ja/solutions/ht510152-how-to-find-serial-numbers-pc) など
* 初期化の際には、USBメモリからノートPCを起動できるということ
  * 設定によっては起動時のキーシーケンス(F12キー押下等)やBIOS/UEFIから、起動デバイス(USBメモリ)を選択する必要があること
* OSが起動できなくても、BIOS/UEFIは操作できるということ
  *  OSとは独立して下位レイヤーでBIOS/UEFIが動作する

ハードウェアの故障でもビジネス系ノートPCの場合は、交換用部品が入手できる場合もあります。

新品を購入しているのであれば、素直にメーカーに修理を依頼するのがお勧めです。

ハードウェアを修理する能力は、手先や知識よりも必要な治具を揃えられるかの方が重要な問題なので、メーカーが提供する手段でソフトウェアを初期化できるだけの知識・経験はあった方がいいでしょう。

システム・バックアップが取得できるツールの利用は、アプリケーションの再インストールが不要になるので、予算が許すのであればお勧めです。仕事で利用するコンピュータであれば絶対にバックアップは取得しましょう。

## なんでLinux環境をそんなに勧めるんですか？

現実的な理由は、クラウドと呼ばれる雲の中の実体の多くがLinuxを利用して作られているからです。高負荷なネットワーク環境での安定動作を求める人達はFreeBSDなどのUNIX OSを実用途で利用しています。LinuxはUNIXではありませんが、UNIXを真似て作られている事と歴史的なしがらみがないことから企業が選択しやすい背景を持っています。

別の理由としては、まだ自由が存在するから、あるいは、単純に大好きだからです。

WindowsとかmacOSとかプラットフォームに好き嫌いはあっても、どんなシステムにも対応できることが必要です。それら一般に普及しているOSは、Unix系OSを参考に発展してきました。最近は独自の進化を遂げていますが、古くから存在していたUNIX系OSから他のシステムを理解することは順当な方法だと思います。

:::note
補足すると現在普及しているWindowsはWindows NTから発展していて、そのコアの部分はVMSを開発したデヴィッド カトラーの経験と考察を元にしています。その過程は「闘うプログラマー」のタイトルで本になっています。彼の行動は現代では絶対に真似してはいけませんが、反面教師としてはおもしろい読み物です。

VMSはUNIXとは異なるメインフレームに近い発想のOSであり、Windowsもまた使い勝手だけでなくその根本がUNIXとは異ります。

しかしWindows NTで実現したかったファイル共有などのネットワーク機能や堅牢性を実現するためのメモリ保護といった技術の多くは当時VMSやUNIXでは当たり前のものでした。Windows NTはそれらに革新的な新しい機構を加えようと挑戦した素晴しいOSですが、開発元である企業の意向が反映されるため自由度には制限があります。

UNIXはシンプルで内部構造について公開されている資料が多く、様々な選択肢を提供できることから、学習用と実用の両方のプラットフォームとして非常に優れています。
:::

世の中で生み出される新しい技術・サービスにはLinuxやUnix環境で開発・利用されているものが多くあります。このため他の開発者と同じ環境が利用できる、スムーズに技術が利用できるといったメリットがあります。

個人の開発環境としてLinux or UNIXデスクトップ環境を利用する理由は、多くの部分が自分で制御できる状態に**まだ**あるからです。

macOSはUNIX(Darwin, Mach3.0+FreeBSD)ベースだから好きだという人もいますが、macOS固有の機能には専用のCLIやAPIを通してアクセスする必要があるので、日常利用でUNIXらしさを感じることは難しいです。Homebrewを使えばUnix系由来のコマンドが使えることはメリットですが、WindowsのWSL2のアプローチの方が実用上は良いと感じています。

:::note
個人的にUNIXらしさを最も感じたOSはAIXです。lsuser、 mkuser、chuserなどの独自のls系、mk系、ch系コマンドは統一感があってとても好きでした。OSFかUNIX3由来だと思うのでHP-UXやDEC Digital UNIXでも同様だったのかもしれませんが覚えていません。
:::

Ubuntuでもinitがsystemdに置き換えられるなど、様々な改良が行なわれていて徐々にUnix系システムの「らしさ」は失なわれていると思います。

便利さ・簡潔さと引き換えに中央集権的なコントロールが導入されることは、必要悪でもあり、様々なハードウェアへの対応や、モダンな機能が広く普及するために必要な流れでもあると思います。

自分の生産性を最大限に上げるには、ファイル(バイトストリーム)というメタファを通して情報を加工するUnix的なアプローチがとても大切だと考えていますし、システムの挙動について予測可能な部分がまだ多いUNIX系システムは必要なものだと思っています。

最近は複雑化していますが、設定の多くがテキストベースのファイルや環境変数で管理できるUnix系システムがとても気に入っています。

例えば、macOSやWindowsでは文字を入力するためのフレームワークを提供するInput Methodと、入力された文字を変換するLanguage Engineの組み合せが自由に選べないことに不満を感じています。しかし、Unix系OSで自由過ぎるが故にトラブルに陥いっている人からすると、何かに統一してくれというでしょう。

それでも適切な機能の抽象化と分離が行なわれていて、選択肢があり、何が行なわれているか理解できるこの環境が私は大好きです。

## 2024年時点では3万円前後のノートPCで十分ではないでしょうか

2024年秋の時点でHP製のN100 CPUノートPCを購入してみました。

3万円前後で十分に動作するというのは言い過ぎだと思いますが、確かに一般的な用途で不満を感じることはないでしょう。

裏蓋を開けてメモリを4GBから16GBに交換してみると事前の評判どおり使えるようになりますが、簡単なタスクを実行するだけでWindowsではCPU使用率が100%となってファンの音が気になります。

残念ながら今回購入したノートPCは廉価であることから、より安く中古で購入したThinkPad x280と比べると画面こそ綺麗ですが、キーボードの打鍵感といった長時間の利用という点では見劣りします。

Ubuntuなどを快適に利用するための道具としては、やはり中古のビジネス向けノートPCが、バッテリーやキーボードの劣化といったネガティブな面はあるものの、交換の余地もあるので良い選択になると思います。

E-coreの廉価なノートPCやMiniPCはUbuntuなどを動作させるためのデバイスとしては優秀ですが、日常的に使うのであればx280の方が好きです。

## "Laptop"ですよね？

「ノートPC」は和製英語です。英語では ``Laptop`` もしくは ``Laptop Computer`` と言いましょう。

特に小さい場合は英語で``Notebook``という場合もありますが、一般的な名称は``Laptop``です。

## 最近のノートPCはバッテリーが内蔵されていて交換できません

中古でノートPCを購入する時にバッテリーが外されているものがあります。おそらく膨張などにより宅配業者などに引き渡すことができないため外されているのでしょう。

内蔵に限らずバッテリーの取り扱いには注意が必要です。

まず廉価な互換品などでは廃棄が難しくなります。

一般に家電量販店などで引き取ってくれるバッテリーは一般社団法人JBRCに加盟しているメーカーのみです。

Amazonなどではバッテリーセルの品質だけが強調されていたりしますが、そもそも互換バッテリーは廃棄まで含めて考えると慎重に購入を検討するべきです。

:::note
こういった影響かどうか分かりませんが、互換バッテリーを販売している業者の中にはラベルなどを変更せずにセルなどの内部部品のみを交換して再販している場合もあるようです。

見た目が正規品と同じであれば引き取り自体は受け付けられてしまうのでしょうけれど、倫理的側面や経済的なコスト負担などを考えると闇が深そうです。
:::

JBRCの会員リストを眺める限り、互換品を販売しているメーカーと思われる会社名はほとんど発見できません。

個別に回収を依頼する必要がありますが、自治体に相談するようにいわれたり、倒産などで連絡がつかないと非常にやっかいです。

次にThinkPad x280でバッテリー無しの中古品を購入したところ、BIOS更新ができなくなるという問題が発生しました。

これはBIOSの更新プログラムが電源に接続されていることだけでなく、バッテリーの残量も確認しているためです。

これは正規品のバッテリーを購入して、交換することができました。

内蔵バッテリーでも製品によっては正規品での交換が可能なものはあります。

また充電池については廃棄を含めて居住する自治体のルールをよく確認して利用しましょう。

## [TBD](https://ja.wiktionary.org/wiki/TBD)
....