ひさふぃの日記

DjangoとPythonとLaravelが好き。大阪でフリーランスエンジニアやってます。

プログラミング初心者のためのパソコン選び[mac/Windows・CPU/メモリ]

この記事はプログラミンを始めようとした際、どのようにパソコンを選ぶかの基準をお伝えするものです。
周りに聞く人がいなかったり、迷いがあって購入に踏み切れていない方はためになるはず。

ちなみに、私はMacBook Pro (Retina, 13-inch, Early 2015)のノーカスタムを使っています。概ね満足です。
ただ、プログラミングを続けていくうちに大まかな全体像が見えてくると、こうすれば良かった!こういうのもありか!という点が出てきます。
そのような点を踏まえて今の私が購入を検討すると、違った選択になります。
ですので、その辺りをお伝えできればと思っています。

この記事では、私が購入時にモヤモヤしていたスペックとOSについてそれぞれ意見を書いています。
お金がある人は現在発売されているさいきょうのぱーつをくみあわせたぱそこんを買えばいい。
という身も蓋もない記事にならないように気をつけます。

スペック

まず、スペックについて重視すべき項目順に説明していきます。

メモリ

使用しているパソコンで心残りを唯一挙げるならば、この項目です。私は、8 GB 1867 MHz DDR3
VirtualBoxというOSの上にOSを起動するという反則技のようなソフトがあります。
これを使用する場合、CUI(文字ばかりの画面)であれば使用には耐えますが、GUI(いつもの画面)を立ち上げると8GBのメモリではかなりかくつきます。
また、ソフトをいくつか立ち上げていても他の項目の性能を使い切ることはありませんが、メモリに関しては容量いっぱいになることが多々あります。
そのため、メモリは予算の許す限り積んでおきましょう。16GBにしておけばよかった。

CPU

次に考慮すべきはCPUです。私は、2.7 GHz Intel Core i5
複数のソフトを立ち上げる時に有利になるということなのですが、私はCPUの性能を使い切っていることはありません。
ですので、もう少し妥協して良い項目かもしれません。
少なくとも上記性能程度であれば、ViurtualBoxでUbuntuGUIを立ち上げても大丈夫なようです。それよりもメモ(ry
あと、マルチコアを意識したコードを書く場合はコア数が関係してくると思いますが、私がそのレベルまで到達していないため詳しくは説明できません。

GPU

グラフィックボードと呼ばれるパーツですが、私はオンボードで、Intel Iris Graphics 6100 1536 MB
通常のプログラミングを学習する上で意識する必要はありませんが、最近流行りのDeepLearningをやる場合はこの項目が途端に最優先項目になります。
ここに資金の大半をつぎ込めるようにしましょう。この性能で学習速度が決定します。
最近話を聞いた購入者は、全体で20万円のパソコンで10万円程度はGPUに使っていました。もちろんデスクトップです。

その他

あまり気にしなくてもいいんじゃないかな!

私の推奨をまとめると、メモリ16GB以上・Core i5。DeepLearningするならGPUにお金をつぎ込む。

OS

よく候補に上がるものとしては、macOS/Windows/Ubuntu(Linux)でしょう。
私はMacBookですのでmacOSですね。
現在の私が次に購入する予定なのは、拡張性が高いWindows機(購入直後にUbuntu機になる)でしょうか。

では、過去の私がこれ言ってもらえたら嬉しかった!という点をいくつか挙げていきます。

Ubuntu(Linux)

  • 無料
    貧乏人のWindowsと言われているらしい。見た目がWindowsっぽくて、無料で使用できるためです。
    3つの中で唯一無料。そのため、VirtualBoxをとりあえず試すなら最適。
  • Linux
    Webを利用したサービスやアプリを作成する際に、Webサーバーというものを立ち上げます。
    その際に、よく使用されているOSがLinux(UbuntuCentOS等)となり、手持ちのOSを揃えておくと覚えるものが減るというメリットがあります。
    特に感じるのが、同じディレクトリ(フォルダ)構造and黒い画面(ハッカーがよく触っている文字だけ画面)に入力するコマンドが同じという点です。
  • 導入が煩雑
    新品を開いてすぐにジャーン、と使えません。
    ネットから拾ってきてUbuntuのディスクを作成してインストールする操作が発生します。
    買ってきたパソコンにOSが入っていないor入っているOSを削除するならハードルは低めです。
    しかし、元あるOSも残したデュアルブートというものだと少しハードルが上がるようです。
    もっともお手軽な方法として、上述したVirtualBoxを用いる方法があります。
    ただ、いずれの方法をとっても、以前に比べるとかなり簡単なようです。
    最初からチャレンジしてみるのもありかもしれません。

macOS

  • Swift
    iOSを作る言語は多様化していますが、純正のSwiftで書くほうがアプリの仕上がりは良いようです。
    iPhoneアプリを本気で作りたい方は、macOS一択。
  • Unix
    macOSUnixをおしゃれにしたものです。
    そして、UnixLinuxの元になったOSであるため、ディレクトリやコマンドが似ています。
    そのため、Linuxと多少の違いはあれどWindowsと比較すると覚える量が減ります。
  • 拡張性が低い
    GPUの追加やCPUの変更が難しいです。ノートであるとメモリの変更・追加すらできません。
    購入時には注意して注文ましょう。
  • 価格が高い
    Windows機に比べると幾分高い、ような気がします。
    同性能なら安いというネット情報もありますが、欲しいスペックを絞って比較してみください。
    デザインに結構お金をかけているようですし、洗練されていますしね。
    スタバでドヤmacもできるのでその分だと考えましょう。

Windows

  • 拡張性が高い
    GPUの追加やCPUの変更がなんでもござれです。ノートのメモリの変更・追加もラクラクできます。
    Macのデメリット部分がそのままメリットになっています。
  • 価格が安い
    Macのデメリ(ry
  • Unix
    LinuxUnixとは異なるディレクトリ構造andコマンドを持っています。
    覚える量は他2つに比べると格段に多くなります。
    例えば、インストールしたプログラムの置き場所が異なっていたり、WindowsでいうところのショートカットがUnixLinuxではシンボリックリンクと呼ばれていたり。
    コマンドも微妙に異なっているものがあります。ファイルの一覧表示するコマンドがlsとdirであったり。
    元々Windowsユーザーで職場(非IT系)でも使用しているため、macOSに乗り換えた時は戸惑いました。
    ちなみに今でもWindowsの黒い画面は全く使える気がしません。

  • 文字コード
    これはPython3の場合のみかもしれません。
    Python3はUTF-8を推奨しており、macOSLinuxもデフォルトの文字コードUTF-8です。
    一方で、WindowsではデフォルトがShift-JISであるため、文字コード関連でハマりやすくなっています。
    Python3を使うなら避けたほうが良いかもしれません。

まとめて表にすると、以下のようになります。

OS メリット デメリット
Ubuntu 無料
Linux
導入が煩雑
macOS Swift
Unix
価格が高
拡張性が低
Windows 価格が安
拡張性が高
Unix
文字コード

さいごに

いかがだったでしょうか。
自身が妥協できるところ・重視したいところを考えながらこの記事を読むと選択肢が狭まるかと思います。
パソコン選びは知識がない状態だと難しいものですが、とりあえず直感で購入して始めるのが良いと伝えたいです。
次第にやりたいことやわかることが増えてきてどんどん楽しくなっていくこと請け合いですので。
その頃には欲しい要件を自分で調べて考えることができるのではないでしょうか。
最後までお読み頂きありがとうございました。みなさんのお役に立てれば幸いです。

shikouno.hatenablog.com