現役エンジニアが選ぶ、5,000円から整えるプログラミング環境
競技プログラミングや機械学習の勉強をしようと思ったので、プログラミング環境を整えようと思いました。
競技プログラミングで使う C++はコンパイルにそこそこ時間がかかるので、ある程度 CPU パワーがあったほうがよく、[GeekBench の Processor で]せめて 500 点くらい欲しいです。Dockerなどの仮想環境はメモリを使うので、16GB 以上あったほうがメモリ管理の手間が省けます。TensorFlowなど機械学習を学ぶには、CUDA に対応した GPU があると実行時間が段違いなので、NVIDIA GeForce GTX 1050 があると望ましいです。
しかし弘法筆を選ばずとも言い、昔のスーパープログラマはメモリ数百キロバイト、CPU 数 MHz という環境でも使いこなしていた事実があります。
予算別にぜひ買ったほうがいいものをピックアップしました。
前提
このページを見てるということは、スマホか PC とインターネット環境を持ってる前提で進めます。
~ 5,000 円
最低限必要なのは、コンパイルして実行できる環境ですが、最近は開発環境のクラウドサービスがたくさんあります。初心者にやさしいサービスとしてはPaiza cloudがあります。ブラウザを使える環境をお持ちなら、いますでに高度なプログラミング環境を持っています。
スマホだけだとネックになるのが入力です。やっぱりプログラミングするには、最低 5,000 円クラスのキーボードは必須です。安すぎるキーボードは打ちづらく、学習に支障がでます。また良いキーボードは単純にテンションが上ります!コードをタタターン!と打てるだけでなんか上達した気になります(笑)学習にモチベーションは絶対に必要です。
他の装備と違って大切に使えば 10 年以上使えるので、奮発して 20,000 円くらいまで出してももとは取れると思います。また私がプログラミングを始めてから 20 年以上経ちましたが、キーボードはあんまり変わっていません。無線になったくらいです。
おすすめキーボードは(こちらの記事)[/20200530_keybord]にまとめました。
~ 35,000 円
良いキーボードはすでに用意したので次に必要なものは PC です。
機械学習や Android アプリ開発などに取り組まない限り、一番安い PC でも十分開発できます。どちらかというと、カフェや学校に気軽に持っていって、いかに長い時間プログラミングに打ち込める環境にできるかどうかを重視するべきです。
ASUS の E203MA は、そういった視点からだと良いです。1kg 未満で 10 時間稼働するので持ち運びに便利です。
あと重要なのが Windows を使わないことです。Windows 10 は OS だけでかなりマシンパワーを使ってしまうので、安い PC には不向きです。また、プログラミング用のツールが Windows に最適化されていない場合が多く、面倒くさいことになります。
そこで登場するのが(Xubuntu)https://xubuntu.org/です。Xubuntu は Linux のディストリビューションの一つで、Debian 系の ubuntu の亜種で、デスクトップ環境が Unity ではなく Xfce です。Xfce は軽量で余計な機能が無く、使いやすいです。そしてスーパープログラマを目指すのであればデスクトップ環境はあまり使用せず、CUI 中心になるので余計な機能は少なければ少ないほどよいです。
- 持ち運びに向いている
- Xubuntu が動く
ことを再重視すると、高い PC はだんだん選択肢から外れて、E203MA のようなネットブックのようなノート PC に落ち着きます。
~ 80,000 円
このくらい予算があると、機械学習や仮想環境をバリバリ動かせる PC を購入できます。
プログラミング用マシンを選ぶポイントは 2 点です。
- メモリを増設できること
- GPU を載せられること
機械学習や仮想環境を始めると、メモリはいくらあっても困ることはありません。最低 8GB は必要ですが十分とはいえず、16GB あると最低限動かせます。24 ~ 32GB あると、メモリ管理を考えずに利用できます。
GPU はすごいものはいりませんが、CUDA を利用するとなると Geforce GTX 1050 以上は欲しいです。
どちらの条件も、ノート PC には向きません。ミドルタワー以上の大きさのデスクトップ PC が必要です。
リース落ちの中古 PC に HDD を SSD に交換して、GPU を追加した(リノベーション PC)[https://www.dospara.co.jp/5shopping/search.php?cate=tg13&tc=777]がおすすめです。
サーバとして運用して、ノート PC から(Remmina)[https://remmina.org/]などでリモートデスクトップでつなげばディスプレイなども不要です。セットアップには買ってあるキーボードでがんばると良いでしょう。