大家好,我是程序员鱼皮。最近秋招火热进行中,今年大厂为了抢人才,各出奇招。比如腾讯校招支持 24 届应届生投递,京东校招开放 1.8 万个岗位、同时将校招生薪酬再次大幅上调!
大厂除了薪资福利待遇能打之外,资源和配套设施也会更齐全一些,比如给研发人员配备的电脑是清一色的 Mac 苹果电脑。
为什么大厂都发苹果电脑呢?难道真的就是因为苹果电脑更贵一些?还是因为有其他的理由?
其实有一个很重要的点:苹果电脑用的是 Mac 系统,而其他品牌的电脑基本不会使用 Mac 系统,大多数都是 Windows。
那么苹果系统到底是不是开发之王呢?学编程到底用什么电脑呢?
关于这个问题,其实网上争议不断,有同学表示苹果电脑性能好、Bug 少,妥妥的生产力:
也有同学说开发 Linux 最好用,Mac 除了装逼,没啥用:
作为一名 Windows、Mac 和 Linux 系统都使用了多年的程序员,我会结合自己的经历来给大家一些参考和建议。
接下来先分别聊聊每种操作系统的优点和不足吧。
Windows
先说下国内用户最多的操作系统 Windows。我第一次接触 Windows 还是在小学一年级,也算是用了近 20 年的 Windows 吧。一直到大三进入字节跳动实习前,我都是 Windows 的忠实用户。
当然了,大学前用 Windows 最主要做的事情不是学编程,而是打游戏。GTA、DNF、守望先锋,叫的上名字的游戏我基本都玩过,曾经也想过去开游戏直播哈哈。哦对了,前段时间确实开了几场黑神话悟空的游戏直播,这游戏你不用 Windows 电脑基本是玩不动的。
Windows 相对于其他操作系统的优势之一,就在于能用它来玩游戏!
再延伸一点,可以说 Windows 的 软件生态非常丰富 ,无论是游戏、办公、甚至是看片儿,Windows 总有那么几款软件符合你的诉求。而且即使到了 2024 年,有些软件还是只有 Windows 版本的,比如我开直播要使用的软件,就只有 Windows 才有,所以只能用 Windows 电脑来直播。
毕竟用户基数摆在那里,可以理解。
而且在 Windows 上使用软件、或者 “强制使用原本不能用的软件” 也是相对方便的,对于学生党来说,能节约很多时间和金钱成本。这点我就不展开说了,你懂的。
此外,Windows 还有一些其他优点,比如。比如。。比如。。。
好,接下来说一下 Windows 的缺点。我用 Windows 多年,一个很不爽的体验就是它 不够安全、不够稳定 。盗版软件多、一不留神电脑就中毒了;电脑配置再高,还是不可避免地出现蓝屏和死机,丢了数据真的心态爆炸啊!
我们办公室里有一台 3 万多的 Windows 顶配主机,到了夏天偶尔还会出现蓝屏,相信大家也有过类似的经历吧。
此外,Windows 升级比较频繁,而且每次升级的版本改动很大,经常出现 软件兼容性问题 ,导致原本正常使用的软件,更新系统后就不能用了。前段时间微软全球蓝屏事件,大家应该还没忘吧。
对于学编程的同学来说,Windows 还有 2 个问题。
首先就是 安装编程相关的环境比较麻烦 ,刚开始装个 Python、Java 啥的可能还好,等之后你要装 Docker、跑一些知名开源项目的时候,就知道有多麻烦了。虽然在 Windows 上可以使用 WSL(Linux 子系统)或者第三方虚拟机来辅助搭建编程环境,那也不如天然支持的要香呀。
还有就是 Windows 的 可定制性比较差 ,系统对用户不透明。绝大多数同学只是用它来办公还感受不到这点,但在你后面编程搭环境、尤其是学习一些系统安全知识的时候就会发现,很多时候你要修改系统设置时,很难找到对应的入口,或者就是必须反复重启电脑才能修改成功。
综上,个人感觉 Windows 更适合家用娱乐和基础办公。
Mac OS
我是从大三在字节跳动实习的时候,第一次接触到 Mac OS 系统,原因很简单,公司发的。
作为一个十几年 Windows 忠实用户,我刚开始用 Mac 非常不习惯,无论是界面、快捷键还是终端。所以就是白天工作用 Mac,下班就换成自己的 Windows 笔记本。
记得我当时有个同事,他就疯狂给我安利 Mac 怎么怎么好用、怎么怎么高效。我当时还心想:哼,哥们用 Windows 效率也贼高好吧。
但没想到,用了半年之后,我就 “真香” 了,从大四开始,我基本上就把 Mac 作为自己的主力机了。
先说说我感受到的 Mac OS 的优点吧,首先就是我用了 Mac 几年了,几乎没有发生过死机。虽然也死机过,但次数屈指可数,明显比 Windows 的 稳定性高 。
Mac 上 安装软件也很方便 ,就跟我们手机上装软件一样,Mac 有自己的正版的应用商店,安装软件更高效、软件更好管理、也更安全。
有同学说了:Windows 也有应用商店呀?
但你用 Windows 的时候会从商店里下载么?
而且个人感觉 Mac OS 的界面也更好看大气,当然,这个也可能和 Mac 电脑本身的屏幕和设计有关。所以做前端开发和设计的同学用 Mac 的体验会更好一些。不过这一点在如今的影响是越来越少了,因为很多其他品牌的电脑都在仿苹果的设计。
此外,如果你是一个苹果控,那么你还能感受到 Mac 生态系统的强大,各设备间同步数据真的非常方便。哪怕像我一样除了电脑之外不用苹果生态,使用 Mac 也不会有任何负面体验。
对学编程的同学来说,Mac OS 最大的亮点莫过于它是 基于 UNIX 操作系统 的,自带了很多开发工具和终端,而且终端的很多命令和企业开发常用的 Linux 系统类似,便于我们搭建环境和学习命令行的使用:
在 Mac OS 中使用 Homebrew,想装什么开发环境和库都很方便:
此外,苹果电脑近几年持续进化,芯片从 M1 到 M3 的跃进,带来的是更丝滑的系统使用和编程开发体验。同等配置(比如 16 G)下,开发的流畅度和开发软件打开的速度都比 Windows 要快很多,也基本没出现过软件卡死。
很多 Windows 笔记本的续航能力都不如 Mac,对于程序员来说,出去旅游啥的可能还会带着电脑。像我如果出门带 Windows 笔记本,电量不到 10% 的时候我就已经汗流浃背了,所以还要带个大充电器;而如果带 Mac,哪怕开很多软件,电量也够撑 1 天,充电器都不用带了。而且我平时基本上工作完直接就把 Mac 笔记本盖子合上,第二天直接打开,电量基本上没少。
大厂为什么使用 Mac 更多?还有 2 个很重要的原因。
第一个是安全,可以防止员工安装一些风险软件,而且大厂一般都会在电脑上装监控软件,你的几乎任何行为都会被记录。印象比较深刻的是,我当时用腾讯的工作电脑在家办公,好像是想下载什么软件来着,公司的 IT 机器人就给我发来警告了,给我吓得够呛。
第二个就是软件开发的一致性。由于线上部署项目一般会用 Linux 服务器,所以本地用 Linux 或 Mac OS 开发,更容易保持跟线上环境的一致,可以减少出现 Bug 的概率。比如经典的文件路径问题,如果你用 Windows 开发 + Linux 部署,可能需要额外写适配代码。我之前讲 代码生成器共享平台项目 的时候,很多同学就表示被文件路径坑了。
当然,Mac OS 也是存在缺点的,首先就是对于我这种白票党来说,我发现 Mac 上的很多软件不能让我自由地去使用;而且 Mac 目前的软件数还是没法跟 Windows 比的,很多 Windows 上好用的软件在 Mac 上没有相应的替代品。所以用了 Mac 后,很多游戏基本就不能自由地去玩了。
也是出于这点,我那喜欢玩单机游戏的表妹高考结束后,我给她送了一台苹果电脑。
但对卷王来说,这也许也是它的一个优点?
最后,Mac 电脑还有一个问题,就是它的价格还是相对贵了一些。
Linux
除了 Windows 和 Mac 这两种面向大众用户的操作系统外,对绝大多数程序员来说,Linux 系统是必须要会使用的 !因为目前绝大多数企业内的项目都是部署在 Linux 服务器上的。
为什么呢?
因为 Linux 系统是开源的,更安全;而且它是可定制的,可以根据业务场景和项目的实际情况打造出性能更高、成本更低、稳定性更高的系统。
但是,必须要学 Linux 不意味着我们要有一台安装 Linux 系统的电脑,更不意味着我们要把自己的 Windows 电脑重装为 Linux 系统,从而去使用 Linux 的界面。像我大学的时候折腾过自己的微软 Surface 电脑,给它装了个 Ubuntu kylin 和 Linux Mint 操作系统,感觉也并没有想象中的好用。
其实绝大多数情况下,我们只需要花几十块钱租一个云服务器或者在本地搭个虚拟机,通过 XShell、SecureCRT 之类的工具连接上它,就足够学习和部署项目了。相信很多同学的个人博客,也是像我一样搭在了 Linux 云服务器上。
如果你是学习 C++ 开发或网络安全方向的同学,要对 Linux 掌握得更多一些。Java 后端或者前端开发同学会用 Linux 部署项目、学学常用命令基本上就够了。
如何选择?
那说了那么多,大家到底用哪个操作系统来学编程呢?
这个问题当然没有标准答案,要根据你当前 所处的环境、你的使用习惯和预算 综合选择。
先说环境。比如你现在是个大学生,学校的老师都用 Windows 讲课,给的软件包资源也都是 Windows 的,那么使用 Windows 系统无疑可以降低你入门的成本;而当你进了公司后,如果身边的同事都用 Mac 或 Win,那你最好和他们保持一致,搭环境、传软件和代码包、甚至是别人来帮你改 Bug 都会更方便一些,可以快速上手项目。
然后是习惯。其实学编程的时候(尤其是初期),我们保持自己之前的习惯就好了。比如你之前用 Windows,那就用它学编程,怎么快怎么来。不用再去换电脑熟悉新的快捷键、或者非要自己安装个 Linux 系统之类的。你的时间足够,想怎么折腾怎么折腾。但是我更建议初学者把重心放在学习基础上。
此外,千万别纠结说必须得有个什么操作系统才能学编程,或者学到某个程度就必须要换电脑。
目前绝大多数开发工具的风格在任何系统上基本都是统一的,比如 VS Code、JetBrains 全家桶等等,基本不会出现没有某个操作系统就不能学的情况(开发 Mac 应用除外)。而且哪怕你要使用其他的系统,可以搞云主机、或者用 VM Ware、Parallels Desktop 之类的虚拟机软件,在自己的主电脑上运行别的系统。
像我自己目前主要是使用 Mac 来开发、用 Windows 来开直播和带做项目、用 Linux 云服务器来部署项目。
相信大家肯定也有自己的选择,欢迎评论区交流分享~