How engineers should learn

167
3
github

How engineers should learn

This one was written to my colleagues from the drop before I left the drop, and then to the new company, I found that the basic learning ideas of those excellent colleagues are actually similar, and at the same time I also learned from them some of the top sessions and papers they usually focus on.

The morning paper author of the article announced this year that he would no longer do the output, a person doing such a public service nature of the site output, do six years, it is indeed not easy. respect!

Maybe in the future, if anyone is interested, we can also set up a domestic organization to do fresh analysis of top papers? Maybe.

The following is the text

As long as one day self-proclaimed engineer, there is no way to give up learning. This article is not a technical article, but only to introduce some personal learning methods and experience. If many points you have already done and do well, a laugh can be.

Reading Books

For engineers, knowledge from books is essential. Nowadays, many young programmers will learn technology from web blogs, but most of the blog content lacks system (mainly said to summarize the nature of the blog content) and is not systematic. Many bloggers, in order to cover their unknown, encounter key points that they do not know and pass by, which in turn leads to the lack of. Even if the original author is very hard, the content is not missing, you can get from it is only a good summary of other people's knowledge, there is no active thinking, which lacks the process of precipitation, and is satisfied with the recitation of other people's summary of good knowledge, and finally only reduced to others' repeater.

For engineers, books are still the most important medium for acquiring knowledge. Even through the catalog overview, you can get the general blueprint of a certain field.

Most of the excellent technical books are still mainly in English, and the ability to read and understand English technical books is the hard power of engineers. How to train English reading skills? If not for exams, you can try to force yourself to translate some English documents/articles for specialized training. For example, in order to learn Go, I once worked with a community partner to translate "The Go Programming Language" [1], and later, in order to learn es in depth, I participated in the translation and proofreading of the community's "es Authority Guide" [2]. If there is a technical document that you physically hate, but feel compelled to learn the content, then you should force yourself to translate it. A document of a thousand words or less can be done in an afternoon on a weekend. It is already said here is forced, naturally you can imagine that this process is not as easy and pleasant as playing games, but as long as you survive this stage, reading technology-related English documents can significantly improve the speed.

After having a certain English ability, the next is from what channel to get content. If you are not averse to e-books, a more economical option is to apply for a domestic ACM membership and use it to sign up for the oreily online bookstore [3]. For about $20 a year, you can read most of the publishers' technical publications in a timely manner. Since most of the publishers' websites still support early preview, you can even learn the content before the books are available, and get the first line of information about the whole industry, which can help you stay ahead of the times. When your colleague gets the raw Chinese version two years later, you can comfortably diss him for being a full two years behind in terms of information sources. (Of course, if you are interested, domestic publishers generally recruit translation volunteers when new books are published in English, so if you are particularly interested in a field, you can also get involved by following the publishers' news about these recruitments. If you are interested in a particular field, you can also participate in these recruitment news of the publishers. Here I would like to point out that you should not have too high expectation on doing translation, but focus on improving your ability. If you want to make money, forget it.)

If you like to read while writing and drawing on the side of the page, e-books are still slightly difficult, but of course you can also use the ipad pro + apple pencil to solve this problem. But some people prefer physical books in the hands of the actual feeling, some foreign books and even personal publications, such as the author before the purchase of the "timeless law of software development", these books on the Internet are not stolen, can only be considered through the sea amoy channel to get. Some years ago, Taobao's sea amoy service can also be used to amoy books, books are mostly heavy, shipping costs are not expensive. Some of the old books shipping costs may be up to half of the cost of the book to make people extra pain. And because the domestic control of publications is relatively strict, so in order to hedge the risk, these two years these amoy service providers basically do not help to buy publications on behalf of. For individual users, there are only two options left, direct mail and transit. Although direct mail is cheaper, but the Universal Alliance of EMS a go to China may be on the cattle cars, slow speed to break the limit. The basic brain is a little normal will choose transit. In addition to speed, some publishers' books are only sold in the U.S. Empire, and do not support global delivery.

If you take a transit, you need to do a visa or mastercard multi-currency credit card, so that you can pay in overseas websites.

After all these problems are solved, the acquisition of books will no longer be a problem.

Information source

While the article begins with great praise for traditional books, the downside of books is also obvious. In the technical field, this disadvantage is particularly obvious: the problem of timeliness. If what we are learning is relatively old domain knowledge, then just reading is basically enough.

But technology is changing rapidly, and if you want to become aware of all the new technologies in the field of that person. You still need to pay attention to some news sources other than books, and here are some examples.

Github Trending

Github Trending represents a wind direction, generally a project can be on the trending words, may be the author himself to hacker news, reddit did publicity, may also be a certain industry big brother with the flow. Because now there are more and more people in China on Github, many people in China learn technology is actually a more significant demand for interviews (Khan, once what xx interview/xx road to architects and other warehouses open will attract a large number of people in China point star, the quality of trending in the past two years has a downward trend.

But recently Github Trending has added a filtering function according to Spoken Language, so you can filter specific languages, which is still much better than before.

Github's trending is generally differentiated by language, so if you want to be an expert in a certain language, it's always good to know what new wheels people around the world are making every day in that language. It's also fun to read the source code of Repo, which has a lot of stars.

In addition to aggregating by time and stars, there are also people on Github who have opened various awesome -xxx summary pages, and such repositories are also useful for learning languages or technologies in specific domains. If you happen to find a gap in the field and take your spare time to build a wheel, you can also mention PR for inclusion. Since most of the awesome - xxx are personal projects, the authors are generally friendly. But now that there are more and more awesome - xxx projects, someone will want to do some awesome repository aggregation. And then these awesome aggregations are getting more and more, so someone will continue to aggregate upwards. So one after another there are awesome xxx, awesome - awesome, awesome - awesome - awesome. It's the dark humor of engineers.

follow Excellent engineers

There are many outstanding engineers around the world who are active on Github every day, every month, every year. We always hope we can be technically advanced all the time, but at the same time, as our age and years of service grows, we will fall into confusion from time to time, so it may be useful to see what code the best engineers of our age and older are writing and blogging at this time to solve our confusion at this particular time. Perhaps you have found a new field worthy of your youthful devotion.

In the beginning you may not know where to find these good engineers, there are also several sources, if you read the incisive code and think the author is outstanding, then immediately go to Github to find the project, and follow the author is a better choice. If you hear about a legendary programmer somewhere, like geohot, then follow him on Github. If you find yourself following people who follow others, then you can also look at those people in your extended chain of relationships and consider them if they are to your liking.

After you've followed enough people, you'll be able to see what they're doing every day on your Github home page. Another new news source.

reddit Related Communities

Many of the language and technology communities that have caught fire in the country are actually a bit divided, with everyone wanting to occupy a hill as a big brother. And each community has brought together some good content in bits and pieces. But because no one is convinced, the community ecology in China is artificially fragmented. We have no way to get or search for all the technical articles, questions, thoughts and summaries we want to know in the same community. So I suggest to focus on foreign communities.

reddit is a good choice. Of course, the community itself is strong because of the sensitive words. Here you need to look into your skills of crossing the wall.

The Morning Paper

In addition to engineering, after getting a little deeper in a field, we need to focus on the more cutting-edge theoretical parts. As a working coder, you need to read some of the new papers published every year to study theory. Anyone who has read a little paper in school knows that a good paper can be full of nonsense for some absurd reasons.

The Morning Paper is a personal blog created by the CTO of a foreign company (the CTO also reads papers every day, amazing), which helps us to decipher many new papers, saving us the time to read a lot of nonsense and formulas that are not so important for people in industry. It's a very good channel if you just want to understand.

Technical conferences and public sessions

In addition to reading the text, viewing videos and meeting people face to face is sometimes essential. Some of the problems that you have been thinking about but can not be solved, in a moment under the point of broadcast of the cattleman. This is also the full embodiment of the so-called listening to a lecture is better than reading a decade of books. People who work longer than us and often summarize can often bring a broad vision and impact theory to those who enter the industry, which is not brought to us by words.

Of course, it is also important to keep your head clear when listening to sharing at technical conferences, and not to be scared off by those smorgasbord concepts. Some people's sharing is very utilitarian, but in fact it is just a package of some old concepts. And the purpose of these people appearing on the scene may also be heavy on promoting themselves to facilitate the jump, so don't be fooled. Be slightly selective when listening to the topics, and try to avoid such smattering of flaky players.

In addition to technical sessions, there are many excellent public courses on ytb. If you go back ten years from now, many people complain that because of financial and family reasons, they do not have the opportunity to go abroad for further education and receive computer education from the world's leading universities. And the advent of open classes has made the restrictions imposed on us by finance and distance disappear. When you study in school, a course is only 36-48 hours, plus the time for thinking and homework, even if it is 72-96 hours. For those of you who are already working, you have 8 days a month on weekends, so with a little effort, you can basically finish an open course in a month. This can not only make up for the regret of your student days, but also fill the so-called nebulous "foundation can not" in some people's mouths. It's a great way to make up for your time as a student, but also to fill the nebulous "basic inability" that some people talk about. Foreign computer courses are often updated at any time with the development of industry, for example, early Sony's Playstation 3 after the market, there are schools of architecture class dedicated to explain the IBM Cell processor architecture design, the year before or earlier, there have been schools to explain to students some of the more modern design concepts in the Intel i7 processor. This is much better than what some people who have been working for 10 years but never paid attention to new technology can tell you.

Do more open source

Some students, after reading a lot of code and design methodologies, may still fall into anxiety while working. Why is the code we maintain within the enterprise a piece of shit, why is what I write every day just a pile of shit on a mountain of shit?

The software lifecycle of most companies is actually very short, and when there is no reliable solution in the open source world, in order to solve some temporary problems, companies tend to get the maximum benefit with the minimum resources, even for purely technical projects, we are doing some ugly temporary solutions. There are even MVP versions of products where the code would be lucky to survive more than a week. Some companies have internal technical tools that are open source by nature, but why not? It's not because of the heavy historical baggage and shitty code writing. Some times it is not the engineers do not pursue excellent code, the case of tight deadlines to write and write deformed.

The good thing is that spare time is our own, we can use the most stringent standards to write their own open source projects. And to operate these projects in a product way, which will not only improve our technical skills, but also bring us more opportunities. If your open source project is successful, you can also bring more influence to the industry, why not?

Do more summaries

After having enough information access, and personal ability to improve the means, should also be more summary. For engineers who have been working for more than 3 years, summarizing is not just for interviews. The content of one's work will definitely change with the advancement of time, and the field of work may also change after job-hopping, so how to make your history accumulation does not become the tears of the times? It is to make a summary.

The better means of summarizing are.

Build your own test code base

This is something that I think is best done by, LEARN [5], which is an engineer of Korean descent. If one builds such a habit from the university, all the paths taken in technology can be clearly visible.

If one's summary can make others look pleasing to the eye as well, it is still more successful. Even if we can't do that, it will be easier to search for some code snippets to demonstrate after we build our own code base.

Create your own blog

Blogging is the trajectory of personal thinking, our work is not simply to complete the task. While completing the task, we should refine our own methodology and gradually form our own views on technical issues, on business, on the company, on the industry and even on the whole world. Independent thinking is the most important quality of a person.

I have been writing my personal blog for more than 4 years since I joined DDT, and even though I could only write some simple content at the beginning, I can now make a more complete analysis and summary of opinions from any angle I want.

For engineers, in addition to the ability to code, the ability to write also needs to be trained. To be able to do things well, but also when necessary, through the article to promote their work out. Build your own personal brand.

Build your own library of notes

In addition to the complete blog output, there are some scattered knowledge that are not well organized, then you can put them in your own notes, these can be backups of what others have shared, or you may just record some simple commands. It is a good habit to keep notes, because one cannot always remember how to use all the tools. It is enough to quickly recall by consulting your notes when necessary.

Exercise acting skills

Because engineers work 80% of the time are dealing with technology, code, so it is also easier to ignore some soft skills training, here do not say some sensitive content, only talk about eloquence. According to my observation, most of the engineers actually do not realize that this is a problem. Even in the purely technical communication occasions will find some people's expression ability is really general, other technical staff to understand the effort, let alone to communicate with non-technical staff.

In this life, the most important thing is to be able to go wider and wider. For engineers, there are not many occasions to exercise soft skills, but that does not mean there are none. Even if not, you can create your own opportunities, such as intra-group, inter-group, and intra-departmental technical sharing are all good opportunities.

Larger-scale technical sharing may not provide you with such opportunities because the organizer is "snobbish" and not at your high level or not very influential, but as an upwardly mobile person, sooner or later you will get to this step one day. All you have to do is to prepare well in advance, and when that day comes, you will be in the limelight, talking and laughing.

Great. I read your article with great interest. And I began to regret even more that I did not start getting an engineering education, but chose the profession of a nurse. I was so exhausted by nurse essay writing that I realized that this was not what I wanted. Of course, I admire doctors, but it is incredibly difficult to study and I plan to quit this education and go to study as an engineer like my whole family.

Thanks for the article to the author. It came out extremely interesting and informative. I hope it will help someone to make more money. I am for example a trader here https://www.fxgiants.com/fxg/. It's an international trading broker, providing access to more than 300 instruments of 6 asset classes for retail and institutional investors. Operates in 150 countries