The rapid iteration cycle of Internet information technology is obvious to all, so learning and updating knowledge becomes quite important. Today, Lei Jul, a senior technical expert of Ali, will share his usual learning methods and experience, hoping to give you some inspiration.

Why keep learning, not by experience?

Many people say programmers make good salaries, comparable to doctors and lawyers. The difference between programmers and doctors and lawyers is continuous learning. This is not to say that doctors and lawyers do not need to learn. Doctors and lawyers can accumulate a lot of experience based on previous cases (this is one of the reasons why people prefer to seek older doctors), and these experiences can be reused to a large extent (many causes and punishment cases are similar).

The programmer profession is different, mainly because the industry changes so quickly that the accumulated experience quickly becomes inapplicable.

A few examples:

If you are a Java programmer and are very good at Struts + JSP development, you solve many problems of the Struts framework. But today, this part of knowledge is outdated and needs to be relearned. If you stick with the old technology, you can put a heavy technical burden on your colleagues and your company. Look back at how many skills you’ve lost since graduation. Inside Alibaba, many of the technologies have been phased out.

In terms of programming, there are a lot of programming languages and pedigree battles. The experience you gain in one language may not translate to another. I rarely hear of a Java group recruiting one. Net senior engineer, if any, it is for the product. Net SDK Client.

Software experience is also reflected in an architectural design. Many students will say that more experience leads to better architecture, which is not necessarily true today. Everyone is on the cloud, and the services provided on the cloud are basically similar, with the same architectural ideas and services used on the cloud.

Amazon’s pre-sales staff are all industry architects who give you good architecture and solutions, including migration solutions, so you know the architecture threshold. The senior programmers can spend half a day time to look at the Learn how to design the large – scale systems (https://github.com/donnemartin/system-design-primer), Although the primer, but still very practical, cooperate with the Awesome list (https://github.com/topics/awesome) have architectural idea and mode. You can become an architect in a day by understanding the specific features and comparisons of frameworks and development packages.

The joke goes like this: a product manager hires a designer with a personality to design prototypes and interactive scripts. Without looking up, the designer said, “Which website or App are you copying? Tell me and I’ll make it for you this afternoon.” If you read System Design Primer, when an architect comes to you, you can tell which site’s architecture you’re referring to. So let’s just go back and take a look at it and code it according to this design. On the cloud, the architectural design is basically pattern, and it would be a little difficult to understand if we spend a lot of time discussing the architectural design. But a thorough understanding of the products on the cloud is still needed. The industry is moving too fast, you have to learn, just experience doesn’t work, technology is going to go away faster than you can get experience.

Not the chicken Soup: Don’t talk about your programming history with a programmer. A lot of it doesn’t apply today. If you don’t focus on technology for 2-3 years, you’re almost out of touch with programmers and programming. Not always, but usually.

You have to be very skilled with your tools

Someone said to me, “Don’t brag. No matter how skilled you are in using IDEA, there is no need to connect learning with using tools.” To be honest, I can only say that I am a little bit of an amateur when I see the level of tool proficiency in some silicon Valley engineers’ training courses.

Once I had dinner with some Google engineers and talked with them. I asked them which ones they met were good. One engineer said that his leader was so good that when helping him find bugs, he was dazzling in the use of tools and debug. Many of the tools were new to him, and Python scripting was almost effortless. The reason is not that the leader can see the problem at a glance. Some problems are also the first time for him to encounter, but he tries many times in unit time, so he quickly forces out the problem.

Non-chicken soup: When it comes to troubleshooting and coding, if you can only do one thing an hour and someone else can do it 10 times, that person is better than you. Fast is the only way to learn and try new things. How skilled you are at writing demos, asking questions, and using tools will determine how quickly you learn and try new things.

Read & document

Learning also needs to be systematic. It’s not just a single article that makes sense.

I strongly recommend:

https://www.safaribooksonline.com/ 

Safari should be a publisher alliance, IT books can be found basically. Two small problems: there’s a fee, about $400 a year; The books are all in English. Safari Books Online has a very comprehensive selection of Books, covering almost all publishers. We are familiar with Oreilly, Apress, Manning, PacktPub, Addison Wiley, and updates are very fast. Also useful is Sarafi’s Learn Path, which helps you systematically Learn technologies such as Blockchain, AI, machine Learnging, and more. Now there are also a lot of videos, including expert training and some technical conference videos.

In addition to books, we also need to pay attention to references. Reference documentation for many frameworks and technologies is now very good. The first is that the quality of the documentation is getting better, and now the technology is all collaborative. Java programmers can look at Spring Framework, Hibernate, Kotlin, Groovy documentation, all very high quality.

If you’re stuck with documentation and a few pages of introductions and demos, you might want to change your point of view. If you look at the projects on CNCF, the documentation quality of almost every project is very high. Now many projects are not one or two programmers working alone, but a team with a very collaborative platform like Github, so there is very little mismatch between documentation and code and new features, and many issues are about documentation.

Other new technologies start with documents, and you can only read the documents before the book is published. Personally, when working on Service Mesh, I have fewer books to read, so I can only read the official Envoy + Istio document, but that doesn’t matter, it’s a little bit harder to read, but I’ll just have to read it twice, because we’re not geniuses or experts in the field.

Not chicken soup: Safari Books Online is worth an individual or group subscription if money allows it. And reread official documents from time to time. After all, official documents are the most authoritative and up to date.

Video learning

I used to read a lot of books, and as for video learning, I watched the conference videos on YouTube. In the past year, I paid more attention to video teaching.

What’s the difference between a video and a book?

First of all, the compilation of books is time-consuming (packtpub fast food books except), the author of books to have a certain level of writing, this is more trouble for technical cattle but writing is not good people or people who do not have enough time. Java programmers probably know Josh Long well. His Cloud Native Java took more than a year to publish, and he’s already posted a ton of videos in that time.

The video also has some functions that words cannot express: the book will only post a piece of code, and the code in the video needs to be input, then you will find a lot of black technology or black skills of the author, you can also learn. For example, in the React introduction books, Redux will be explained or referenced, while in the video, the corresponding website will be opened and some key features will be listed. In addition, some things that are easily overlooked in the book may be well supplemented in the video. Moreover, many of the video producers themselves are from the framework and technology development team, rather than third-party book authors, so the freshness and skill are very obvious.

Many people are allergic to large paragraphs of text, especially books with strong theoretical and academic properties. For example, many people ask how to learn Domain Driven Design, but it is very rare to read 2-3 chapters of DDD book without falling asleep. Mainly because the text is too much, there is no code, and unlike the novel has a plot, not sleepy but very difficult. On the contrary, DDD training video is not the same, PPT production is very good, and animation, relevant instructions are appropriate, easier to learn.

Here are some well-known video training sites, including Pluralsight, Lynda and Udemy.

Udemy’s videos need to be purchased individually, and a 3-4 hour video costs $10. If you read a lot, IT will cost more, and Udemy is not only focused on IT, so IT will not be professional enough. Lynda and Pluralsign are members-only, and you pay a membership fee and you can watch all the videos. Lynda has a lot of content, and many people say that the content is outdated. Personally, I have not subscribed to it. I do have this feeling after searching.

I recommend Pluralsight, which I subscribe to. The content is very large and relatively new, and some of it is in series, which is particularly helpful for cross-boundary learning. For example, when I was working on Service Mesh, SDN might be involved. If I was asked to read a SDN book on Safari, I could only say that I could not do it, especially if I was studying in different fields. But in a two-hour video tutorial at Pluralsight, I got it right away. Learn ES 6 + React Learning Path from Pluralsight. Learn ES 6 + React Learning Path from Pluralsight. Go back to the books and documents to supplement, knowledge also consolidated.

Not chicken soup: It’s money. If you can, buying a Pluralsight membership for $29 a month is definitely worth it. Pluralsight’s videos are all subtitled in English with the author’s PPT. Students who are not good at English can learn well. When you have nothing to do after work, find a meeting room with several like-minded students to make some drinks and play a crossover or new technology video. After watching it for 20 minutes, we can discuss it. Students who are good at English and have technical skills can express more opinions and other students can understand them.

Tech news, tech influencers on Twitter & attending tech conferences

The books, documents, and videos that have been introduced so far allow us to understand and delve into a particular technology should be no problem for the job. But if you want to keep up with trends and get inspired, you might also want to keep up with some tech news. Follow the tech giants on Twitter.

Everyone is lazy, Daniel is no exception. Sometimes they may not write articles, documents, or videos, but just talk. For example, I first learned about Spring Fu on Twitter. Before the project has even started, Kotlin + Spring’s core team starts dropping hints that you might get a good idea, and they’ll forward technical news that they filter, making it much cheaper for you to pick up.

There is no good unified management of technical news on local platforms, and it is relatively messy. You need to have your own method, or it will cost a lot to find. A lot of people like Hacker News (https://news.ycombinator.com/), but no, this is a bit of trouble. https://thenewstack.io/ is much better classified. When Google Reader shut down, I switched to Feedly, still subscribing to blogs.

Medium (https://medium.com/) is a good place to read and write big ideas and important stories. Many technology company bloggers have articles on Medium. It is said that there are paid members, personally not tried, highly recommended. Reddit can categorize a few topics, check it out. If you’ve been following a particular technology, join a Slack or Gitter discussion group for that technology, where people share good news and technical articles. I’ve seen a lot of new frameworks and related technologies in Kotlin Slack, and people are willing to share.

If time and money allow, I suggest you can attend the technical conference, after all, the scene atmosphere is different. Two or three days, no work, no thinking about anything else, around this topic, and Keynote, with multiple peers, the feeling is different. You need to be confident that you’re on the right track, which will give you more motivation to dig deeper. There are a lot of booths in the technology conference, it is not easy to gather the very outstanding enterprises and technologies in this industry.

Follow tech news and blogs on Twitter. Check out Slack and Gitter. Technical conferences are generally more in the United States, which poses some challenges to English and independent travel. We can accompany or find local students reception, the cost will be much lower. But at present, the ticket price of technical conference is very high, basically is 1500-2000 dollars, early booking may be about 1000 dollars. While the time cost is slightly higher, a 95 to 99 percent improvement is simply more time, effort, and money.

Do projects, write demos, look at the source code

I talked about learning, but programmers can’t do it without writing a Demo. Consider experimenting with new technologies in your project. We’re doing microservices now, so there’s a lot of freedom in the tech stack. It’s up to you to hold it. Not all of these techniques can be applied to the project, some are heuristic or intuitive, you need to write demos, and there’s nothing wrong with sharpening knives. As mentioned earlier in this article, the tools need to be very skilled, or a one-hour demo isn’t worth it. Read a lot, read a lot, and use code to help, even better. I’m not saying all of this is for code, a lot of it is for architecture. For example, learning ES 6 + React is hard to imagine mastering without code.

Reading source code is a very important skill. At least your code review skills are improved, but the cost is really high. Personally Kubernetes is still relatively familiar with, but let me see Kubernetes source code, great pressure, especially not good at the field. I have no problem looking at Spring Fu’s source code, but Istio and Envoy’s source code are too stressful. But if you decide to invest, look at the source help is still very big.

Not chicken soup: Try to learn new things in your project. Don’t stick to familiar techniques, because familiar things will soon become obsolete and it will be too late to adjust after they become obsolete. Write more demos and sharpen your knives. For your industry technology, some source code or to be able to understand. Crossover technology, read the source code according to his ability, let the Java program to see JS framework source code or C++ source code, is the need for psychological preparation.

Fewer people are reading nowadays

It’s unique to see a tech guy on YouTube talking about reading. In fact, modern people read more than before. They read more news, articles, videos and moments of friends when they open their mobile phones every day. Compared with books and so on, these knowledge is just too short life cycle, and nutrition is not high, which is why people think that reading less reason, does not help you to increase knowledge.

If you are not a product manager or need to analyze the industry, news apps may not be of much use to you as a technical person. It’s all about helping you find something to talk about, and it’s not going to be much use after dinner. It’s a waste of your time. You can spend half an hour scrolling through the news, and now there’s a smart algorithm for news that’s guaranteed to stick with you. They don’t care about your knowledge. They just want you to stay longer and watch more ads.

Not chicken soup: music is good, it seems that there is music for programmer coding, I am not a fan, but I still recommend it.

Appropriate hardware support

If you go into the office and look at a colleague’s computer, you can probably tell some occupations apart. You are not a Java programmer with a 13-inch MacBook Pro or Air. If you are a Golang or C++ programmer, you will not use JetBrains’ IDE tools, which are mostly Editor classes. The hardware advice is only suitable for Java class programmers, hardware is good for making you faster. Apple’s latest MacBook Pro 2018 is actually pretty good, and finally comes with 32GB of ram, so consider getting one.

conclusion

If there is no picture, video, just pure text, it will be more boring to read. We may have a lot of their own experience in the process of learning, such as good knowledge sorting methods, methods of taking notes, time management, etc. If you have a good method and skills, welcome to communicate in the message area, we make progress together.

Reprint statement: This article is reprinted from “Ali Technology”, search “ali_tech” can be concerned.

– MORE | – MORE excellent articles

  • How do you explain object-oriented programming to your girlfriend?

  • How many intelligence questions can you do?

  • Thread safety and serialization issues with enumerations in Java

  • Once barbershop boy, now ali P10 technology bull

If you saw this, you enjoyed this article.

So please long press the QR code to follow Hollis

Forwarding moments is the biggest support for me.