ソフトウェアエンジニアやるなら無理して1番良いスペックのノートPCを買え

## 概要

こんにちは、kenmaroです。

ソフトウェアエンジニアをやるなら、

**最初の段階で無理してもいいので高スペックノートPCを必ず買った方がいい**

という話をしたいと思います。


## 自己紹介

私はITスタートアップ企業でソフトウェアエンジニアとして５年ほど働いています。
専門はコンピュータサイエンスというわけではなかったですが、プログラマーになりたいと考えてから
いくつかIT企業のインターンを経て、今こうやってエンジニアをしています。

インターンを始めてから働き始めるまでの段階ではお金も全く持っていませんでしたが、
その時に自己投資として自分がその時持っていたノートPCの限界に気づき、
ハイスペックなPCを思い切って購入しました。

今思えばあの時はとても勇気のいる行動だったのですが、今では本当に良かったと思っています。


今回は、これから**エンジニアになりたいと思っている学生の方や転職を考えている方に対して**、
**私の独断と偏見でなぜハイスペックなノートPCが必要か、**
**どんなスペックをオススメするか**お話ししたいと思います。

## 自分は何を買ったか

**50万ほどするMacBookPro16インチ**を購入しました。

その時まではノートPCは最大12,3万のものしか買ったことがなかったため、注文するときに手が震えたのを覚えています。

CPUやメモリは選択できる最大のもの、具体的には

- **Core i9**
- **64GBメモリ**
- **容量2TBストレージ**
- **GPUや他のオプションは普通のもの**

にしたと記憶しています。
いろいろスペックを付け加え最後は半ばヤケクソのような感じで購入した気もしますが。。。


## 絶対後悔しないから分割でもいいので買うように

支払いは12回の分割払いを1年間で組みました。
当時はインターンとしてアルバイト代くらいしかお金もなかったですし、一年目のお金もそんなになかったので割と大胆なことをしたなとは思います。

でも、**結論を言うと今に至るまで後悔は全くしていません。**

結果として5年ほどそのPCを使い続けており、これからも何かなければ使い続けると思います。


## 何が良かったか

**働き始める時の投資としてはかなり大きい金額になりますが、
それによって得られる恩恵はとても大きいです。**

買って良かったことについて私が経験したことを書いていこうと思います。


### メモリやディスク容量不足から解放される

このノートPCを買う前もMacBook Proを使っていたのですが、それはかなりスペースが低く、メモリは8GBで容量も256GBの最小構成にしていました。
今仕事でエンジニアをやろうとしている方、**メモリ8GBのPCははっきり言って論外です。**

**256GBのディスク容量も全く足りません。**
システムをアップデートしたり、ソフトウェアエンジニアであればいろんなソフトウェアツールを試したりすれば必ず1TBは必要になります。

**PCのスペックが低いことからくる制約と戦うこともできますが、私はお勧めしません。**

メモリや容量不足でいろんな工夫をするために時間を持っていかれるのはとても不便だからです。
事実、インターンをやっていた初期の時は先ほどの低スペックPCを使っているために業務が進まなかったり、再起動が必要になったり、要らないファイルを整理する必要がでたりしてとても不便でした。
メモリとストレージ容量をほぼ最大にしておくとこれらの全てから解放されます。


### 家でも会社でも外でもどこでもプログラムが書ける

最高スペックのノートPCを持っていることで、
**さまざまな場面で会社にいる時と同じ濃度でプログラムを書くことができるようになります。**

個人開発する時も、AndroidStudio, Xcode, VSCode を開いて、エミュレータも同時に開いてDockerコンテナも何個も立ち上げて〜みたいなことも問題なくできます。

カフェにいるときや飛行機に乗っている時間とか、自分が望めばその場でプログラムを書くことが出来ます。
もし自分の所有PCが低スペックであれば会社のVPNに接続してSSHして会社のPCを休みの日も使わせてもらう、ことも無理ではないですが、結局不便なことが必ず起きます。

### エンジニアを始めたばかりのボーナスタイムをPCのせいで無駄にするな


仮に自分がプログラムを書くのが好きだと感じていて仕事内容が合っているとするならば、

**ソフトウェアエンジニアを始めてから数年の間は、
無限に勉強したり吸収できるボーナスタイムだと考えて良いです。**

**そして非常に残念ですが、このボーナスタイムは数年後に終わることになります。**
(これについてはまた別で記事を書きたいと思います)

**このボーナスタイムがせっかくある時に、持っているPCのスペックが低いせいでやる気が出なかったり、全体の効率が8割掛けになったりするのは本当にもったいないです。**

会社から支給されるPCがあるとしても、最高のスペックで支給してくれる会社はそんなに多くないはずですし、自分の好き勝手にどこでも使って良いことも珍しいでしょう。

この時に、会社の支給PCに左右されず、
にいつでもどこでも自分の最大のパフォーマンスが出せるように準備するために数十万円投資しておく、ということは安い投資だと今では考えることができるようになりました。

### 作業が最高に効率化される

**自分のPCが好きでずっと触っていると色々な作業が本当に早くなります。**

タイピングだったり、ショートカットコマンドだったり、何のファイルがどこにあるのか手に取るようにわかっているので、**全ての作業効率が1.5倍くらいになります。**

誇張かと思うかもしれないですが、本当にそれくらい違います。

## 低スペPCでエンジニアを始めた時に起きる悲劇

もし最初のPCを妥協して購入してしまった場合、どのようなデメリットがあるのか書いてみます。まずは先ほど書いたメリットとは逆のことが起き、さらに以下のようなデメリットが併発します。

### 一番ダメなのは、安いのに妥協してストレスを抱えながらプログラミングすること

最初の頃はプログラムやエンジニアの仕事に慣れておらず、覚えることが大量にあってただでさえ大変に感じると思います。この時に使っているPCが低スペックだった場合、それに対するストレスも抱えながら仕事をすることになってしまいます。

### サーバ借りてSSHすればいいじゃん、スペック要らないじゃん、そう思った時代が私にもありました

会社のPCがスペックがとても高いから、VPNに接続してSSHして使えば自分のPCはスペックいらないじゃん、とか、AWSでインスタンス借りてやればいいじゃないかとか思う人もいるかと思います。
私もそう思った時代もありました。

**しかし、断言します。SSHはたまにやむなく環境に接続して作業する必要があるときにやるもので、常時SSHして開発することはかなり難しいです。**

やはり自分のローカル環境になんの問題もなくいろいろ開発できるだけのスペックがあるPCを持っているのが一番です。
SSHはそもそもインターネット環境が必要ですから、移動中新幹線の中からとかは難しいですし、カフェで作業するにしてもWi-Fiが常に必要になります。
SSHのコネクションを貼りながら開発するとたまに接続が切れてしまってストレスになることも多いです。

また、SSHするとコマンドラインやIDEでの作業になりますが、スクリーンありきのアプリは開けないので、制約を持ちながら開発することになってしまいます。
そのような、数十万円のお金で解決できる環境の制約を解決せずにストレスを抱えながらエンジニアとして働くのは本当にお勧めしません。

## どんなPCをオススメするか

ここからは、具体的にソフトウェアエンジニアとして働くときのPCの必要スペックと、実際になんのPCを買えば良いか書きます。

### スペックについて

### ノートPCかデスクトップPCか

どちらも重要だと思いますが、
**優先度的に先に必ずノートPCをいいものを買ってください。**

理由は先ほど書いた通りですが、
**いつでもどこでも最高の環境で開発ができる状態を作れるためです。**

ノートPCをすでに十分なスペックのものを持っているという人、
もしくは会社がイケていて、そのようなPCを支給してくれて、さらにそれを好きに持ち出してプライベートでも使っていいという神会社であれば買う必要は多分ありません。
そのような人はデスクトップPCの購入を検討して大丈夫です。
そのような環境にない人は、まずはノートPCを買うべきです。


また次回別記事でどのようなデスクトップPCを購入すれば良いか記事を書きたいと思います。


### 画面サイズ

**15インチ以上を必ず買ってください。**
私が５年前に購入したのは１６インチのMacBook Proでした。

その前１３インチのMacBook Proを使っていましたが、世界が圧倒的に変わります。
１３インチにももちろんいいところはあります。コンパクトで持ち運びしやすいです。

しかし、自分が仕事や趣味の開発でがっつりメイン機として使うことを考えると、１３インチ程度の大きさではスペック不足になります。
１５インチ以上画面があればやれることが増えますし、作業もしやすくなります。長時間画面を見ているとわかりますが、目や肩の疲れ方も全く違います。

１５インチがよいか１６インチが良いかは好みで分かれると思います。１６インチだと流石に重すぎると思う人は１５インチで大丈夫だと思います。たしかに１６インチのMacBook Proは結構重いです。その分作業もしやすいですが、１５か１６かは個人個人で検討すべきかなと思います。


### メモリ32GB以上、出来れば64GB

**あなたがソフトウェアエンジニアとして開発を本気でやりたいのであれば、メモリは３２GB以下は絶対に買わないでください。**

**できれば６４GBあるものを買ってください。**
６４GBにしてもプラス５万くらいだと思います。メモリは一番妥協できないところなので気をつけてください。

### ストレージは2T以上

**ストレージもあまり何も考えずに２TB以上のSSDを選択してください。**

４TBいるかと言われるとかなり疑問に感じます。
動画編集をたくさんする人であれば４TB必要かもしれませんが、私はソフトウェアエンジニアとしてゴリゴリに働く上では２TBで不便を感じたことはありません。
１TBだと足りなくなることはたまにあります。
そのときにいろいろ考えなくていいように２TB以上に必ずしてください。


### GPUは要らない

ノートPCにはGeForceなどのGPUを搭載したものがありますが、**GPUは特別なものは必要ありません。**

**機械学習や本格的な動画編集や３Dモデリングをしたいのであれば、それ専用のデスクトップPCを買ってください。**

ノートPCは日常の開発やプログラミングをするためのものだと考えると、GPUを搭載したノートPCを使うメリットはほとんどありません。MacBook Proを買う時であれば、GPUのスペックを選択できるかと思いますが、私はデフォルトのオプションを選択し、最上位のオプションは選択しませんでした。


## 具体的なブランド

では、**具体的にどの機種を買えばいいか**お伝えします。

**結論、下に書く２つのうちどちらか自分の予算と好みで決めてください。**
これ以外は見なくて大丈夫です。
自分に好みのブランドがあったり、こだわりがある人はそちらを買えばよいですが、もしエンジニアを始めたてであったり、何を買っていいかわからないのであれば２択で選んでおけば絶対に後悔しません。

`MacBook Pro`

`ThinkPad`

のどちらかにしてください。上二つをカスタマイズして、私が推奨したスペックを入力後、自分の予算と好みに従って決めてください。どちらも素晴らしいPCです。私はMacBook Proを購入しましたが、予算的に厳しければThinkPadの方が１０万くらいは安いはずです。

### OSについて

ウィンドウズが良いか、Macが良いか、Linuxが良いかと考えるかもしれませんが、MacBook Pro　であれば自動的にMacになりますし、ThinkPadであればLinuxもしくはWindowsになると思います。結論はどちらでも大丈夫です。

Windows を選択したとしても、開発は基本的にWSLとよばれる、ウィンドウズ上で動くLinux環境で開発することがほとんどになります。


## 最後に

今回は、

**ソフトウェアエンジニアをやるなら、最初の段階で無理してもいいので高スペックノートPCを必ず買った方がいい**

という話のもとで、私がお勧めするPCのスペックと実際の製品について書きました。

エンジニアとして仕事がしたくて、プログラム書くのが本当に好きな人は、一番高いスペックのPCを買って絶対に後悔することはないことを私がお約束しますので、
**何も気にせずに勇気を持って今すぐポチってください。**

私が紹介したPCのスペックが低いぞ、やる気あんの？と思った方はコメントで教えてください。

あなたのエンジニア生活が最高なものになることをお祈りして、今回はこの辺にしようと思います。

それでは。

@kenmaro