Hello everyone, I am programmer fish skin. Recently, the fall recruitment is hot, this year, the big manufacturers in order to grab talent, each with strange tricks. For example, Tencent school recruitment support 24 freshmen delivery, Jingdong school recruitment open 18,000 positions, at the same time will school enrollment salary again significantly increased!
In addition to the salary and benefits of large factories can beat, resources and supporting facilities will also be more complete, for example, for research and development personnel equipped with computers are clear Mac Apple computers.
Why do all the big manufacturers ship Apple computers? Is it really just because Apple computers are a little more expensive? Or is it because there are other reasons?
There's actually a very important point: Apple computers use Mac systems, while other brands of computers basically don't use Mac systems, most of them are Windows.
So is the Apple system the king of development or not? What kind of computer do you really use to learn programming?
On this issue, in fact, online controversy, some students said that the Apple computer performance is good, less bugs, proper productivity:
Some students also say that Linux is the best for development and Mac is useless except for pretending:
As a programmer who has used Windows, Mac and Linux for many years, I will combine my own experience to give you some references and suggestions.
Let's start by talking about the strengths and weaknesses of each operating system separately.
Windows
Let's start with Windows, the most popular operating system in China, which I first came into contact with in the first grade, and have been using for nearly 20 years. I was a Windows user until I joined ByteDance as an intern in my junior year of college.
Of course, the main thing to do with Windows before college is not to learn programming, but to play games. gta, DNF, watchman, the name of the game I basically played, once also want to go over to open the game live haha. Oh yes, a while ago, I did open a few black myth Goku game live, this game you do not use Windows computer is basically not play.
One of the advantages of Windows over other operating systems is the ability to play games with it!
To extend this a bit, one could say that the WindowsThe software ecosystem is very rich The Windows program is a great way to get the most out of your computer, whether it's for gaming, office work, or even just watching movies. And even in 2024, some software is still only available for Windows, for example, the software I use to broadcast live is only available for Windows, so I can only use a Windows computer to broadcast live.
After all, the user base is there, so it's understandable.
And it's also relatively easy to use software on Windows, or "force software to be used that wouldn't otherwise be available", which saves a lot of time and money costs for students. I won't expand on this point, you get the idea.
In addition, Windows has some other advantages, such as. For example. For example.
Okay, on to the downside of Windows. I've been using Windows for years, and one of the things that really bugs me about the experience is that itNot secure enough, not stable enough The computer configuration is high, but still inevitably appear blue screen and crash. Pirated software more, not paying attention to the computer is poisoned; computer configuration is high, or the inevitable blue screen and crash, lost data really mind explosion ah!
We have a $30,000+ Windows top-of-the-line mainframe in our office, and we still get the occasional blue screen in the summer, so I'm sure we've all had similar experiences.
In addition, Windows upgrades are relatively frequent and the version changes for each upgrade are significant and oftenSoftware compatibility issues This has resulted in software that was working properly not working after updating the system. The Microsoft global blue screen incident some time ago should not have been forgotten.
For students learning to program, there are 2 more problems with Windows.
first of allInstallation of programming-related environments is a bit tricky If you want to install Python, Java or something else, you may be fine at first, but when you want to install Docker or run some well-known open source projects, you will know how troublesome it is. Although you can use WSL (Linux subsystem) or a third-party virtual machine on Windows to assist in building a programming environment, it's not as flavorful as the natural support.
And then there's the WindowsLess customizable The system is not transparent to the user. The vast majority of students just use it to office can not feel this, but in the back of your programming to build the environment, especially when learning some system security knowledge will find that many times you want to modify the system settings, it is difficult to find the corresponding entrance, or is necessary to repeatedly restart the computer to modify the success.
In summary, I feel that Windows is better suited for home entertainment and basic office work.
Mac OS
I was first introduced to Mac OS systems during my junior year of college when I interned at ByteHop for the simple reason that the company issued them.
As a Windows user for more than a decade, I was very uncomfortable with the Mac at first, in terms of interface, shortcuts, and terminals. So I use a Mac for work during the day and switch to my Windows laptop after work.
I remember I had a coworker at the time, and he was telling me how great and efficient Macs were. And I thought, "Well, I'm pretty efficient on Windows, too," he said.
But I didn't realize that after six months of using it, I'd gotten "really good" at it, and since my senior year of college, I've basically had a Mac as my main machine.
The first thing I've noticed about Mac OS is that I've been using a Mac for a few years now, and I've almost never had a crash. I've crashed, but only a handful of times, and that's significantly more than with Windows.High stability 。
MacEasy to install software too Just like installing software on our cell phones, Macs have their own legitimate app store, which makes installing software more efficient, managing it better, and keeping it safer.
Some students said: Windows also has an app store?
But do you download from the store when you use Windows?
And I personally feel that the Mac OS interface is also better looking atmosphere, of course, this may also be related to the Mac computer screen and design. So front-end developers and designers will have a better experience with Mac. However, the influence of this point is less and less nowadays, because many other brands of computers are imitating Apple's design.
In addition, if you're an Apple person, you'll also feel the power of the Mac ecosystem, which makes it really easy to synchronize data between devices. Even if you don't use the Mac ecosystem for anything other than your computer, like I do, you won't have any negative experiences with a Mac.
For students learning to program, there is no greater highlight of the Mac OS than the fact that it isBased on UNIX operating system It comes with a lot of development tools and terminals, and many of the commands of the terminal are similar to those of the Linux system commonly used in enterprise development, which makes it easy for us to set up the environment and learn how to use the command line:
With Homebrew on Mac OS, it's easy to install whatever development environments and libraries you want:
In addition, Apple computers have continued to evolve in recent years, with the chip leaping from M1 to M3, bringing a more silky smooth system use and programming development experience. Under the same configuration (for example, 16 G), the smoothness of development and the development of software open speed is much faster than Windows, and basically there has been no software jamming.
Many Windows laptops don't last as long as a Mac, and for programmers, you might want to take your computer with you when you travel. If I take a Windows laptop with me, I'm already sweating by the time the battery is less than 10%, so I have to bring a big charger, while if I take a Mac with me, even with a lot of software running, I still have enough battery to last me for a day, so I don't need to bring a charger. And I basically close the lid of my Mac when I'm done working, and then open it the next day, and the battery is basically intact.
Why do big manufacturers use Macs more? There are 2 more important reasons.
The first is security, which can prevent employees from installing some risky software, and large manufacturers will generally install monitoring software on the computer, and almost any of your behavior will be recorded. I was using a Tencent work computer to work at home, as if I wanted to download some software, and the company's IT robot sent me a warning, which scared me a lot.
The second is the consistency of software development. Since online deployment projects usually use Linux servers, local development with Linux or Mac OS is easier to maintain consistency with the online environment, which can reduce the probability of bugs. For example, the classic file path problem, if you use Windows development + Linux deployment, you may need to write additional adaptation code. As I said before
Of course, Mac OS also has its drawbacks. First of all, for a white-collar user like me, I find that I can't use a lot of software on the Mac freely, and the number of software on the Mac still can't compare with that of Windows, and there are no alternatives to many of the software that works well on Windows on the Mac. So basically, I can't play a lot of games freely on a Mac.
It's also for this reason that I gave my cousin, who likes to play single player games, an Apple computer after her high school exams.
But for the King of Rolls, maybe that's one of its strengths?
Finally, another problem with Mac computers is that they are still relatively expensive.
Linux
For the vast majority of programmers, with the exception of Windows and Mac, two operating systems intended for mass users, theLinux is a must. The reason for this is that the vast majority of projects within an organization are currently deployed on Linux servers! This is because the vast majority of projects within an organization are currently deployed on Linux servers.
Why?
Because the Linux system is open source, it is more secure; and it is customizable, so you can build a system with higher performance, lower cost, and higher stability based on business scenarios and the actual situation of the project.
However, having to learn Linux doesn't mean that we have to have a computer with Linux installed on it, and it doesn't mean that we have to reinstall our Windows computer as Linux to use the Linux interface. For example, when I was in college, I installed Ubuntu kylin and Linux Mint on my Microsoft Surface computer, and it didn't work as well as I thought it would.
In fact, in most cases, we only need to spend tens of dollars to rent a cloud server or build a virtual machine locally, through XShell, SecureCRT and other tools to connect to it, it is enough to learn and deploy the project. I believe that many students' personal blogs are also built on Linux cloud servers like me.
If you are studying C++ development or network security, you need to know more about Linux. Java back-end or front-end developers will be able to use Linux to deploy projects and learn common commands, which is basically enough.
How to choose?
So with all that said, which operating system do people actually use to learn programming?
There is certainly no standard answer to this question, depending on your currentThe environment, your usage habits, and your budget Comprehensive selection.
Let's start with the environment. For example, if you are a college student now, and all the teachers in your school use Windows to give lectures, and all the resources given to the software packages are also Windows, then using Windows can undoubtedly reduce the cost of getting started; and when you enter a company, if your colleagues around you are using Mac or Win, then it is better for you to keep in line with them, so that you can build the environment, pass the software and code packages, and even have other people help you change the bugs, all of which will be more convenient. It's easier for you to fix bugs, and you can get up to speed quickly.
Then there are habits. In fact, when learning programming (especially at the beginning), we just keep our previous habits. For example, if you used Windows before, you can use it to learn programming as fast as you can. You don't need to change computers to familiarize yourself with new shortcuts, or install a Linux system by yourself. You have enough time to do whatever you want. But I would recommend that beginners focus on learning the basics.
Also, don't get hung up on saying that you have to have an operating system of some sort to learn programming, or that you have to change computers if you learn a certain level.
Most of the development tools out there are basically uniform in style on any system, such as VS Code, JetBrains Full Bucket, etc. There's basically no such thing as not being able to learn without a particular operating system (with the exception of developing Mac apps). And even if you want to use another system, you can get cloud hosting, or use virtual machine software like VM Ware or Parallels Desktop to run another system on your main computer.
Like myself, I'm currently using mostly Macs for development, Windows for live streams and projects, and Linux cloud servers for deploying projects.