大厂为啥都发苹果电脑?哪个系统是开发之王?

大家好,我是程序员鱼皮。最近秋招火热进行中,今年大厂为了抢人才,各出奇招。比如腾讯校招支持 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 云服务器来部署项目。

相信大家肯定也有自己的选择,欢迎评论区交流分享~

更多编程学习资源

相关推荐
少年姜太公2 小时前
从零开始详解js中的this(下)
前端·javascript·程序员
凌虚3 小时前
Kubernetes APF(API 优先级和公平调度)简介
后端·程序员·kubernetes
小华同学ai7 小时前
ShowDoc:Star12.3k,福利项目,个人小团队的在线文档“简单、易用、轻量化”还专门针对API文档、技术文档做了优化
前端·程序员·github
小青鱼2 天前
AI编程-Cursor从入门到精通系列之常用概念及解释(二)
人工智能·程序员
捡田螺的小男孩3 天前
参数校验的十个建议!收藏好,别再给测试机会提bug~
java·后端·程序员
陪学3 天前
产品经理如何做运营数据分析?
前端·人工智能·数据分析·互联网·产品经理
总是学不会.3 天前
第六篇:HTTP 的未来,会变成啥样?
java·网络·后端·网络协议·http·开发
哔哩哔哩技术3 天前
B站装机系统实践:从初创到规模化的演进
前端·程序员
程序员鱼皮3 天前
没事别想不开去创业!
计算机·面试·程序员·项目
绝无仅有3 天前
通用的权限管理系统的介绍与总结
面试·程序员·架构