Waiting for the light on the bench~~ Developers in the community, have a good weekend!
Before I knew it, the brand new section of the SegmentFault community, #extremely objective, has been online for three weeks~
Extremely Objective Focus on topics such as technical direction, programmer career development, personal growth, etc., and is committed to initiating valuable discussions and outputting valuable opinions.
In this column, we will recommend topics that are hotly discussed in the #extreme point of view section, and select interesting viewpoints to present to you. Looking forward to our growth and progress together 🥰🥰
Today's key words: #the importance of reading#enhancing oneself# the code of "technical content"
The importance of reading to learning technology
Topic initiator: Mu Mu
If you encounter problems, you can use Baidu and Google. What is the meaning of reading?
Interesting point:
Finding answers to questions on the Internet is quick, but reading books is just as necessary. It just depends on what book we are reading. There are many excellent books, and the content of the book cannot be explained thoroughly on the Internet, or in a short blog post. Books can help us understand a technology more systematically and deeply. People who read high-quality technical books for a long time will understand some technologies more thoroughly, and the ability to solve problems naturally will be stronger. Problem solving is a passive behavior, while reading is an active behavior. The former can quickly improve one's development level, while the latter is the cornerstone of making one go farther and wider. The combination of the two can complement each other.
—— —— Community User: BeerBrar
Interesting point:
In my years of experience, reading is too inefficient for learning technology.
First of all, you need to know what your purpose of learning technology is. If you are preparing for postgraduate entrance exams and postgraduate entrance exams, doing academic research and writing papers, then maybe it’s useful for you to read books. It may be useful to have a solid system knowledge and understand every concept to prepare for the exam. But if you just want to learn a craft, just want to solve a problem, then reading is undoubtedly the least efficient of all methods. For example, when you are programming with js, you encounter a problem: to find the b string in the a string, do you read a book for this problem? If you want to master this skill, you might as well write 5,000 more lines of programs, and use this function often, and you can memorize it without Baidu in the future. That’s enough.
Secondly, engineering is not the same as science. Engineering does not need to be so rigorous, but requires speed and time. Your boss has no time to wait for you to study a book and then help him solve the problem. All he wants is an answer: Can it be done? Hurry up, if you can't, replace it. It's that simple. He is not your parents. When you grow up, how you grow is up to you, but for the boss, the people who can solve the problem right now are the people the company needs most, so reading books is the most important thing for the company. unacceptable.
The so-called systematic study of knowledge means that human knowledge grows through the blind man touching the elephant. There were not so many experts in the past, some were polymaths, miscellaneous scholars, and they learned a lot. It was only later that there were universities and majors. , it is the need for education and examinations that came up with the concept of so-called systematic knowledge. This concept is not natural, but man-made, but you have been instilled in such an education system for more than ten years. You create an illusion that knowledge can only be mastered by systematic study. In fact, the knowledge that can be learned by reading books is not even one-tenth in the world. The large class of social practice is only nine-tenths of what you need to make up for it. place of knowledge.
The ancients of China did not stress that reading and reading to become a nerd. There is a good couplet in A Dream of Red Mansions: the world is well-informed, and all the knowledge is learned. At the time when they thought that studying the Four Books and Five Classics was the only way to learn, many people had already seen it through: where is the knowledge? Not in the scriptures, but in the insight into the nature of how everything in the world works. Where do these insights come from? from repeated practice.
Chairman Mao's "On Practice" concludes:
The truth is discovered through practice, and the truth is confirmed and developed through practice. Actively develop from perceptual cognition to rational cognition, and actively guide revolutionary practice from rational cognition, transforming the subjective world and the objective world. Practice, cognition, re-practice, and re-understanding, this form repeats itself endlessly, and the content of each cycle of practice and cognition has entered a relatively high level. This is the whole epistemology of dialectical materialism, and this is the view of unity of knowledge and action of dialectical materialism.
Practice is not only the only criterion for testing the truth, but also the only means to discover the truth. Any means that try to obtain the truth directly without practice is doomed to be delusional.
—— —— Community user: Zhang Jing
I am a front-end, and my work is to do some business, so how should I improve myself?
Topic initiator: Ziqi
The work is basically some business. The difficulty is basically not the technology, but the understanding of the demand. I have also learned some things, such as jest, such as rollup, and I have also read the micro-frontend, but I basically don’t use it at work, and then I don’t use it very much. In fact, it can't go deep.
In addition, I also want to join some open source projects, but many open source projects have been iteratively updated for a long time, and I have not found a good entry point.
Interesting point:
This is indeed the case. Most of the development is around the business, and most people are driven by the business to learn, not driven by the inside. Therefore, when faced with technologies that have no business requirements, you will feel that there is no way to implement them, and you will not be able to study them in depth. It feels superficial.
You can try to write some small toys yourself, such as the mentioned jest to write unit tests. But in many cases, in order to catch up with the construction period, the test unit will not be written. You can try to solve this contradiction. In the process of trying, you will learn more peripheral knowledge than you originally expected. In fact, learning a piece of content alone can improve yourself even more.
If you want to participate in some open source projects, you can start by raising Issues, slowly start to find problems and give solutions, and start trying to raise PRs. When the quality of your PRs becomes higher and the frequency of submissions is acceptable, naturally there will be Opportunity to join the maintenance team.
Of course, the improvement of capabilities is not limited to technological development. If you have the ability to understand and organize your needs better than others, you can show that too, and that's part of your ability.
—— —— Community user: Zhishang Seimei
Interesting point:
The first is to clarify the principle: go fast alone, go far in groups, and give priority to promoting the company's business development.
Therefore, if there is currently a lack of tests, write more tests. When writing a test, you will find that it is very laborious to write and inefficient to read, and then you can study test-related knowledge, such as e2e testing, such as chrome devtools' new operation recording tool, such as automated testing. Then you can think of ways to optimize the process.
Or if the front-end opening speed needs to be optimized, you can study how to improve the build tools or change the packaging results, and then you can also generate more efficient pages.
In a word, start from the company's needs, start from the real value, do it first, don't be afraid of being tired and don't be afraid of boredom. Many times I didn't do it, or I didn't know how to do it. In fact, I thought about making a Vue, and I would not worry about eating and drinking in the future.
—— —— Community User: Meathill
For programmers, what counts as writing "technical" code?
Topic initiator: why technology
Such as the title; for programmers, what counts as writing code with "technical content"?
Interesting point:
The term "technical content" is not easy to define.
Here is a story: junior programmers run the keys like flying, write 1,000 lines of code a day, which is very efficient; senior programmers are like old monks, staring at the screen for a long time before trying to touch the keyboard, and only wrote less than 100 lines in two days ...
Seeing this, the bosses all want to recruit junior programmers, after all, they are efficient and not expensive. But then what?
Within a month, the 1,000 lines of code written by junior programmers were often revised repeatedly, and the additions and subtractions had reached thousands of lines of changes; while the code of less than 100 lines of senior programmers only changed two spelling mistakes...
Then, the 1000 lines of code always had unsolvable problems, so the senior programmer had to deal with it. So after 3 days of refactoring and modification, the senior programmer changed the 1000 lines of code to 100 lines, and it never appeared again. question……
Stories are stories, but to a certain extent they also reflect facts. The gap between senior programmers and junior programmers lies in "technical content", and the so-called technical content is not only reflected in the code, but in the understanding of the target, complete logical analysis and accurate code description and high In terms of fault tolerance of coverage - to put it bluntly - even if it is a small task, it still needs to go through several stages of analysis, design, writing, and testing, rather than simply writing it literally and stacking the code. something happened.
Software development technology, covering all aspects of software professional knowledge. The various principles, languages, data structures, algorithms, and even mathematics and English learned in college can serve to enhance software development skills.
Of course, if you just want to say and write some high-level statements, it's not difficult, you only need to do two things:
- Know your technology stack, especially syntax, be familiar with the uses of various syntaxes and be able to use them appropriately when writing code
- Understand the function library (class library) of the technology stack, know what can be used when writing functions, instead of stacking code to implement an unstable new wheel.
In addition, with the power of tools, you can submit your own programming skills very effectively, such as:
- Familiarize yourself with your IDE/Editor and tech stack toolchain
- Use Lint-like tools, especially those with built-in repair functions
- Refactoring class tools, which will prompt for refactorable offers (although not necessarily implemented according to the prompts)
- Smart code tools, you can easily see how others consider and deal with similar problems.
—— —— Community users: Border Town
Interesting point:
The first is to look at your code and feel that you have a solid grasp of the basics and won't make those low-level mistakes. For example, you have implemented some array operation functions yourself; when classes and subclasses call methods, you don’t know how to call them, which ones to call, some functions provided at the language level, but you don’t know, etc. .
Under the premise of conforming to the business, whether your design is reasonable and clear, whether the logical consideration is complete, the design of modules, the design of classes, the design of related algorithms, etc.
For the very logical parts, do you have enough comments so that others can clearly understand your ideas, instead of writing a bunch of code with obscure, high-level syntax piled up mountains, logic that can be implemented in a simple way, There is no complicated, obscure way to do it.
—— —— Community user: hero
Do their views and discussions inspire you as well? Do you have any interesting ideas that you would like to share with you? Scan the QR code to join us, let’s communicate and grow together, waiting for you🙌🙌🙌
Welcome to leave your opinion in the comment area~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。