Google engineers teach: Top 10 things new developers must invest in

Google engineers teach: Top 10 things new developers must invest in

[[120406]]

As a software developer, what are the things you must invest in? Google software engineer Emanuel Saringan compiled the ten things he thinks are necessary investments, the first of which is physical health. Are English and mathematics also necessary skills? Let's see what he says. (The following text is written in the author's first person)

Your health

Software development is undoubtedly one of the most sedentary professions in the world.

Sitting for eight to sixteen hours a day with only a few breaks is a sure way to keep your belly growing. Obesity can easily increase your risk of other diseases, such as heart disease. To avoid this, allocate time for exercise as much as possible or spend a little money on the gym.

Typing for long periods of time in an unergonomic way also puts developers at risk for repetitive limb injuries, such as carpal tunnel syndrome. To avoid this, stretch your wrists every few hours of typing and buy a wrist pillow for both your mouse and keyboard.

Staring at a screen for long periods of time can also put stress on your eyes, which is why if you wear glasses, it's best to get anti-glare glasses, not just regular glasses.

Improve your math skills

Mathematical skills can improve your logical thinking ability, your attitude towards problems, and even your patience.

Some math skills can be directly applied to software development, such as discrete mathematics; other skills depend on the field and have different uses. For example, game developers will use physics and calculus frequently, but enterprise developers will hardly use them. In any case, math can make you better.

o Improve your English skills

Programming/scripting/markup languages ​​are all in English, and common open source projects such as Linux are also in English. Developers all over the world use English, and developers working for multinational clients are forced to know English in order to find solutions for their needs.

Did you notice? English is to humans what binary is to computers.

Personal Domain Names and Websites

Isn't it much cooler to have your own email address than [email protected] or [email protected]? Owning your own domain name only costs a small annual fee, but it can make you stand out.

A personal domain name can also let potential clients and colleagues immediately recognize your confidence and professionalism: your brand is you. Of course, the premise is that your personal domain name is not something like "hotmale-loves-chicks.com".

An active GitHub account

For developers, a GitHub account is like an artist's portfolio.

A reliable machine

Have you ever heard of a developer without a machine? Me neither. Being a software developer without a machine is like being a Jedi without a lightsaber. A good machine here has at least 4GB of RAM, and 8GB at best. I can recommend a $4,000 Mac Pro, but that doesn't apply to those with extreme needs.

Fast network

The Internet is the oxygen of developers. Being unable to access the Internet for a long time is like being cut off from the oxygen supply, which is unbearable. Having a stable Internet connection gives you the advantage of watching online tutorials, dining and forums, and keeping up with the latest technology news.

Read more classic books on information science

Here is my recommended bible for software developers:

1. Structures and Interpretations of Computer Programs (PDF)

2. Code Complete 2

3. Pragmatic Programmer

4. Refactoring

5. Introduction to Algorithms (The MIT Press) (PDF)

6. Discrete Mathematics and Its Applications (PDF)

7. Mythical Man Month

Bachelor's degree

Whether you are a recent graduate or someone who has just left a job and is looking for a new one, a bachelor's degree can greatly increase your chances of finding a job. Just think about it, if there are millions of graduate students scrambling to apply, how high is the chance that a college graduate's resume will be discarded?

Certificate (optional)

Certification exams are a way of identifying a candidate's skills in a specific technology. Passing a certification exam means that the person is qualified to have a deep understanding of the organization's core values.

Some companies pay special attention to developers with certificates and offer higher salaries; some companies don't care at all. For example, if you are a certified Java designer, it means that you have a thorough understanding of the Java language, but it does not guarantee that you have strong problem-solving skills. Some companies will value critical thinking more than programming language expertise. After all, programming languages ​​can be learned, but problem solving cannot be learned.

<<:  How to manage contacts in WeChat Enterprise Account Development

>>:  How to manage multimedia files in WeChat Enterprise Account Development

Recommend

Deeply debug network requests using WireShark

background Recently, I found that our product has...

Product News | What are the recent important updates of Baidu Promotion?

Commercial products are updated quickly...How can...