こんにちは.米国でデータサイエンティストをしているかめ(@usdatascientist)です.
これからプログラミングを始めるって人が一番最初に悩むのが
どのパソコンを買ったらいいかわからない・・・
だと思います.
結論からいうと,MacBook(安いモデルでOKです.)にしましょう.Proである必要はありません.
目次
理由1:Macを使っている人が大多数だから
統計がないので確実なことは言えないのですが,少なくともアメリカでデータサイエンティストとして働いていて,Windowsを使っているエンジニアやデータサイエンティストに会うことはほとんどないです
私のチームは今30人ですが,そのうちWindowsを使っているのは1人で,マネージャーだけです笑 あとLinuxが一人いるだけで他は全員Macです.(チームのほとんどの人がGPUサーバ(Ubuntu)で作業するので,みんなLinux系OSを使っていることにはなりますが,ノートパソコンではないので除外)
実はこの「みんなが使っているものを使う」というのはプログラミングを独学するにあたって重要になってきます.
プログラミングを学習する際に多くの人がつまづく点として,OSのコマンドがわからなかったりツールのセットアップができなかったりと,プログラミングそのものではなく,プログラミングをするツールであることが多いです.
私は業務でMacを使っていて,計算サーバーにUbuntuを使っていますが,いつもつまづくのはOSやその上で動くツールです.プログラミング言語は,2年くらいその言語を使っていればそんなにつまづくことはないです.
なにか分からない事があったときに,Webで調べることが多いかと思いますが,びっくりするほどWindowsの情報がすくないことに驚きます.なぜならプログラミングの世界ではMacを使っている人が圧倒的に多いからです.
理由2:MacはUnix系のOSだから
ちょっとなんの話をしているか分からないって感じですね笑
UnixというのはOSの種類です.WindowsもOSの一つですよね.多くの非IT系の人からするとOSと言えばWindowsというイメージがあるかもしれませんが,実はOSが普及するきっかけとも言えるのがUnixなんです.
1960年代にアメリカのベル研究所(AT&Tが設立)でMulticsというOSが作られました.Multiというくらいなので多機能なOSで,まさに今のコンピュータのイメージで当時開発をしていたそうです.
しかし,そのプロジェクトは機能をいれすぎて失敗に終わります.(当時のコンピュータの技術では,ろくに動かなかったんでしょうね)
そこで,MultiではなくUniとしてよりシンプルに小さいOSとして作ったのがUnics(のちのUnix)です.
ここで面白いのが,AT&Tは実は独占禁止法によりコンピュータ業界でビジネスをすることができず,Unixを販売することができませんでした.
そのため,ソースコードを公開し派生版のUnixとライセンス契約することでビジネスをしようと考えていましたが,結局うまくいかず,標準OSの座をWindowsに取られてしまいます.
そこで1990年代に入り,あるフィンランドの学生がUnixの機能を改良しゼロから作ったのがLinuxです.(著作権の問題があり,ゼロから全く別のものとして作った)
Unix系のOSはライセンスで縛られていたが,Linuxはオープンソースとして商用利用も可能としたことで,今ではオープソースの代表格として進化しました.
プログラミングの世界ではこのオープンソースという概念が非常に重要で,世界中の優秀なプログラマーが開発に携わり,瞬く間にLinuxはプログラマーの世界標準OSとなります.今では世界のデータベースの80%以上がLinuxの上で管理されているそうです.
先ほど私がサーバーで使っている’Ubuntu’というOSも,このLinuxの派系OSです.
実はMacはUnix系のOSを採用しています.
LinuxはUnixを元に作られたため,コマンドなど使い方がかなり似ています.WindowsだとLinuxコマンドが使えないですが,Macではだいたい同じように使えるので便利です.
ちなみにコマンドというのは,このいかにもプログラマーが使う黒い画面(MacではTerminal Windowsではコマンドプロンプトと呼ぶ)でコンピュータに命令する文章のことです.
理由3:Macに対応していてWindowsに対応していないツールが多い
これ,意外に思われるかもしれませんが,エンジニアが日常的に使うツールで,Windowsに対応していないものって結構あるんです.
例えばDockerというツール.(今はなにか分からなくても構いません.)
このDockerというツールは,エンジニアとして働く上で今では欠かせないツールで,私は毎日このDockerの上で作業しています.
このツール,Windows上で動かそうとするには,仮想マシンといって,Windows上に仮想的にLinuxの環境を作るってことをしなきゃいけないんです.
最近Docker社が色々頑張ってWindows対応しようとしているので最新の状況はわかりませんが,とにかく,Windows対応は後回しというのが今のIT業界です.
プログラミングを書く上で必ず使うことになる分散バージョン管理システムのGitですが,これもつい最近までWindowsで使うのはなかなか大変でした.最近はGUIツールが色々出てきて,Windowsでも使いやすくなったようですが・・・(Git超入門連載はこちらから)
とにかく対応が遅いし,激動のIT業界では最新のツールを使っていく事が非常に重要になってくるので,対応を待ってられませんよね.
理由4:動作が安定している
MacはOSも機種もApple社が開発をしているので,機種とOSの相性を心配する必要がなく,不都合が起きにくいですし,寿命も長いです.
Windowsだと機種が会社によって異なるので,当たり外れがありますし,結構動作が不安定です.
私も昔Windowsのノートパソコンを使っていましたし,自作PCは必然的にWindowsになるのでいくつか使ってましたが,5年持てばいい方だと思います.
結構プログラミングってエラーがでたりしてイライラするときもあるので,少なくともデバイスの動作はスムーズでいてほしいものです.
理由5:見た目がかっこいい
ぶっちゃけ,理由1~4あげましたが,初心者の人にはピンと来ないと思います笑
Macって,かっこよくないですか??
デザインがシンプルでおしゃれ.置いているだけで自分の周りがおしゃれっぽくみえる.
これだけでモチベーションあがりますよね?
でも,おしゃれなのは外見だけじゃないんです.
フォントとか画面のWindowの形とか,スクロールしたりするときとか,なにかとおしゃれにキメてくれます.
プログラミングというのは結局文字をタイプしていくので,その文字のフォントとか,デザインとかが結構重要だったりします.
半分冗談みたいな理由ですが,結構最初はこういうところが重要なんじゃないかな?と思います.
例外もある.Windowsがいい場合とMacがいい場合
と,Mac推しの私ですが,例外もあります.
Windowsでないと開発ができないものというのもあります.C#やVBといった.NET系のフレームワーク(知らなくていいです.今は.)を使うのであればWindowsがいいでしょう.
例えば,Kinectを使ったアプリを作りたいって人はWindowsがいいと思います.
私も昔.NET系の開発をしていたので,Windowsを使っていました.
が,Macの方が見た目かっこよかったのでMacにWindowsのOSを乗せて使ってました笑
逆に,Macでないとできない開発というのもあります.
iPhoneアプリの開発(Swift)です.
WindowsにMacOSを載せることはできないので,この場合はMacが必要になると思います
まとめ.
自分がどのようなエンジニアになりたいのかによって,多少変わってきますが,基本的にはMacで問題ないと思います.
将来人工知能を作りたいとか,機械学習エンジニアになりたいとか,データサイエンティストを目指すのであればLinuxの知識が必要になってきますし,DockerやGitを使うことになるのでMacをおすすめします.
ちなみに,データサイエンティストは大きなデータを扱うのでMacBook Pro等のハイスペックのものがいいのかとよく聞かれますが,大きなデータを解析するにはノートパソコンではどのみちスペックが足りないので別途サーバーを用意し,そこで解析することになると思います.このサーバーのOSがLinux系のOSであることが多いので,Linuxの知識が必要なんです.
なので,最初は安いモデルでかまわないです.Mac Book Airは軽くて持ち運びもしやすいのでおすすめですよ!
それでは!