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

news/2024/9/20 19:31:20/文章来源:https://www.cnblogs.com/yupi/p/18396100

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

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

 

更多编程学习资源

  • Java前端程序员必做项目实战教程+毕设网站

  • 程序员免费编程学习交流社区(自学必备)

  • 程序员保姆级求职写简历指南(找工作必备)

  • 程序员免费面试刷题网站工具(找工作必备)

  • 最新Java零基础入门学习路线 + Java教程

  • 最新Python零基础入门学习路线 + Python教程

  • 最新前端零基础入门学习路线 + 前端教程

  • 最新数据结构和算法零基础入门学习路线 + 算法教程

  • 最新C++零基础入门学习路线、C++教程

  • 最新数据库零基础入门学习路线 + 数据库教程

  • 最新Redis零基础入门学习路线 + Redis教程

  • 最新计算机基础入门学习路线 + 计算机基础教程

  • 最新小程序入门学习路线 + 小程序开发教程

  • 最新SQL零基础入门学习路线 + SQL教程

  • 最新Linux零基础入门学习路线 + Linux教程

  • 最新Git/GitHub零基础入门学习路线 + Git教程

  • 最新操作系统零基础入门学习路线 + 操作系统教程

  • 最新计算机网络零基础入门学习路线 + 计算机网络教程

  • 最新设计模式零基础入门学习路线 + 设计模式教程

  • 最新软件工程零基础入门学习路线 + 软件工程教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/792027.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Minesweeper++

好久之前的冷饭,来炒一下。 代码链接本文来自博客园,作者:haozexu,转载请注明原文链接:https://www.cnblogs.com/haozexu/p/18396085

如何在 Cursor 中使用驭码CodeRider?

驭码CodeRider 是极狐GitLab 公司自研发布的 AIGC 产品,可以用来进行 AI 编程和 DevOps 流程处理。本文分享如何在 Cursor 中使用驭码CodeRider。 Cursor 是近期比较火爆的一款 AI 代码编辑器,通过将 AI 能力引入软件研发来提升软件研发效率。而驭码CodeRider 除了具备 AI 编…

04 Windows批处理中的条件执行

if 命令在所有编程语言中都很常见,它只会在条件为真时执行一行或多行代码,而只有在条件为假时才会执行另一段代码。 其基本原理很简单,但是在批处理中,条件子句为true或false的实体与其他语言中的类似子句有很大不同。大多数比较操作符都是批处理所独有的,在本文中,我们将…

在centos上安装docker

第一步,安装docker,因为我是在centos上面安装的docker,这里就细讲centos的安装步骤 1:官方建议Linux内核为3.10及以上 ,我们可以查看一下自己的Linux内核uname -r2:启用centos-extras存储库 该存储库默认情况下是处于启用状态的,如果之前禁用过,需要重新启用它yum repo…

iLogtail 开源两周年:社区使用调查报告

尽管收集到的有效问卷数量可能未达到传统统计显著性的门槛,但这批反馈却异常宝贵,为我们的策略制定与优化提供了第一手的洞察力。这些见解不仅直接源自实际应用场景,还蕴含了用户对于提升 iLogtail 功能体验、文档丰富度及社区互动多样性的真切期待,为后续的社区建设与发展…

CogVideoX huggingface 接口说明文档

https://huggingface.co/docs/diffusers/api/pipelines/cogvideox 预览

回归树模型 0基础小白也能懂(附代码)

回归树其实是将输入空间划分为$M$个单元,每个区域的输出值是该区域内所有点$y$值的平均数回归树模型 0基础小白也能懂(附代码) 啥是回归树模型 大家在前面的部分学习到了使用决策树进行分类,实际决策树也可以用作回归任务,我们叫作回归树。而回归树的结构还是树形结构,但…

如何通过API接口实现库存的精准掌控

https://img2024.cnblogs.com/blog/3506472/202409/3506472-20240904105309327-1011277110.png在电子商务的快速发展中,库存管理已成为衡量企业运营效率的关键指标。随着消费者对快速配送和商品可用性的期望不断提高,电商企业必须找到更智能、更高效的库存管理方法。电商库存…

manim边学边做--曲线类

manim中曲线,除了前面介绍的圆弧类曲线,也可以绘制任意的曲线。 manim中提供的CubicBezier模块,可以利用三次贝塞尔曲线的方式绘制任意曲线。 关于贝塞尔曲线的介绍,可以参考:https://en.wikipedia.org/wiki/B%C3%A9zier_curve。 本文主要介绍贝塞尔曲线和两种带箭头的曲线…

adb获取手机电池信息

1、获取手机电池信息adb shell dumpsys battery字段说明Current Battery Service state:AC powered: true #交流供电USB powered: false #usb供电Wireless powered: false #无线供电Max charging current: 75000 #最大充电电流Max charging volt…