At the boiling point of the eighth issue, the Team invited JustJavac, the author of Zhihu column V8 engine and LibrarySniffer, to do a three-day Ask Me Anything (AMA) activity (has ended).

We’ve compiled a selection of questions from users and justJavac’s answers.

About justjavac

  • Nuggets column: juejin.cn/user/352688…
  • My blog is justJavac.com/
  • Weibo address: weibo.com/justjavac
  • GitHub address: github.com/justjavac

Community partners ask questions

How to learn V8 engine systematically? ─ @ YibuMe

I really want to systematically learn V8 engine, but I always read articles, always feel that there is something less, I do not learn in-depth, please ask justJavac great V8 learning experience, how to systematically and effectively learn? What prior knowledge is required

I’m not systematic. It’s just a drop in the bucket. V8 is definitely too complex and has too many tricks in it. If you want to see how the ES specification is implemented by the engine, look no further than the JSC. But V8 is the dark horse of the JS engine world, attracting a lot of research.

  1. Official Po v8project.blogspot.com/
  2. Youbute video, I put together a V8-related playlist www.youtube.com/playlist?li…
  3. twitter
  4. V8 introduction to Google I/O or Developer
  5. Blog:
  • www.jayconrod.com
  • www.mattzeunert.com/writing.htm…
  • Mrale. Ph/v8 / resource…
  1. The source code

What are your contributions to V8 and how do you feel about other people’s comments on you? ─ @ doodlewind

  1. Are you a V8 contributor/maintainer? If so, how would you participate in non-trivial community development (non-source code parsing, document translation, news handling, etc.)?
  2. What do you think of yu Creek’s evaluation of you as “chief Markdown Programmer”?
  3. Do you think your technical output matches the visibility of the community?

I have read all the questions, yours is the most interesting, I will answer you first.

  1. I’m not a V8 contributor/maintainer, I’m just a V8 hobbyist who likes to spend my free time researching V8/Chrome/Node, and I like to write an article about my insights as a trivial exercise. This is where many people get involved in open source projects, because most of the further part is maintained by the core developers. Luckily, I once submitted some bugs to Babel, and he fixed the bugs and submitted pr. But there was no official merger, and the core team eventually fixed it directly in the refactoring code of Bebel 7. Be aware of open source etiquette, such as reading code_of_conduct.md and CONTRIBUTING.
  1. Especially a joke, in fact, we in wechat, there is no lack of more excessive joke than this. This title was also invented by me when I was making fun of myself at the beginning, which is well known to many people. The fundamental reason is that MY article markdown on Github got the highest star ranking in China. When someone mocked me for being the “lead Webpack configuration engineer,” I replied that I was also the “lead Markdown programmer,” and then it was made into a meme.
  1. The third question is difficult to assess.” But do good, don’t ask about the future. By “technical output,” you’re probably referring to the narrow open source projects on Github, and I’m not producing much. As for “community awareness,” I don’t think I’m that well known, and if you’re under the illusion that I am, maybe we’re too much in sync with our community. I mixed with the community is not much, most of the visibility has early dividend in it, if the simple evaluation:
  • Nuggets community: My output > awareness, I was an early user of the Nuggets, how long before the nuggets. Have you seen my AMA photo this time? It was taken by me to dig gold many years ago. At that time, it was still called rare earth, and the company was not established. Do I have any name recognition with the Nuggets? No.
  • Iteye: The first community I worked in, I was just taking notes. In 10 years, I have written more than 600 articles with a total page view of nearly 5 million times. I think my articles should help many people. As for community awareness, I don’t know what that is. All I knew was that when my friend was being falsely accused in a foreign country, I wrote an article and texted ItEye founder Eric Van Kay and asked him if he could forward it, and he replied, “No problem. Your ID looks very familiar to me.”

I answered 500 questions in Zhihu and 1000 questions in SF. I personally believe that I have made a great contribution to the community. Even if I have gained some so-called popularity in the community, it is still reasonable.

Why not recommend outsourcing? ─ @ ® e. l. a. N ©

Just read the comment why not do outsourcing? Is it because of low technical requirements?

Let me put it this way, there are a lot of developers who have 5 + years of experience, but they only have 6 years of experience, and then repeat for 5 years. In my recruitment requirements, I do not recruit two kinds of people: one is training institutions, the other is always outsourcing.

Is it because of their low technical requirements? Yes, and dozens of projects a year, mostly with the same technology for N years. Why? Stable, low cost. Do you have code review? No. Is there any refactoring? No. UT? No…

Compare the product to the outsourced development process. When the final development goes live, it means the project (outsourcing) is over and ready for acceptance and delivery. The product, when it finally goes live, is just getting started. Constant feedback, iteration, polishing,… From a software used by a dozen people to tens of thousands, hundreds of thousands, millions of people, each stage is different technology, different architecture.

Finish a deliverable software vs. continuously polish a software

® e. l. a. N © :

1. Although a large part of outsourcing companies are just like what you said, those companies that do not do outsourcing still do not have similar code review. Although the project is iterative, each iteration is hastily launched. It doesn’t give you a lot of time to optimize the code and codereView and after coming to Beijing I found that a lot of companies do this but I guess from the interview. All company products are business oriented. The specific code level depends on the technical leadership of the technical ability direction responsibility.

There is no absolute, but “six months of experience, followed by five years of repetition” is a high proportion of outsourcing companies. Even if you’re building a product, you don’t always optimize the code, and most companies focus on the end result, the final product quality, regardless of the code quality and development process.

Even with the teams I’ve led, the products I’ve made. In my opinion, there is no need to review or reconstruct the product V1.0 and V2.0. The goal of the product at this stage is to be “usable” and put into the market quickly. If it is recognized by the market, it will continue to iterate and optimize to achieve the second goal of “good use”. As codebase grew larger and more complex, it began to focus on code quality and development processes.

There are many kinds of outsourcing, and it can’t be done with a stick. Some are long-term service outsourcing, with project cycles of several years or even irregular. However, most of the projects of outsourcing companies are short and medium term, with a project cycle of 1-3 months or even shorter, including but not limited to the construction of the company’s official website, enterprise APP, mini program, mall and so on. Others are in specific industries, such as catering. Is to pick up a variety of catering industry projects, the specific development process does not need to elaborate, are basically a set of templates and some customized development. No different than an operator on an assembly line.

The attractive part is that the interview is easy and easy to enter, which has become the choice of many fresh graduates. In terms of salary, there is usually a project bonus for each project. I have a high school classmate who graduated one year later than me. When MY salary was only 3k, he was already 7-8K (this comparison may be unfair, he was in Beijing and I was in Tianjin). Later, when my salary reached 20K+, he finally broke 10K. Then the whole outsourcing industry went bad, and so did their business. Fortunately, he taught himself iOS programming and moved to a mobile game company.

How to read a somewhat boring technical book? — @Rmb players

Read books that are gradually more in-depth. It’s hard to find out how to effectively deal with long paragraphs.

Stop, think, play, and move on. Set yourself a goal of reading for 20-30 minutes at a time, committing yourself to reading and thinking about it for 10 minutes. In this way, I spent three months reading Einstein’s Theory of Relativity and Harari’s A Brief History of Mankind in parallel, and then compiled 200 pages of notes and drafts.

Part of the reason is that there is too much pressure in life and work, which makes many people feel anxious. When you don’t read, you increase your frustration, and eventually form a vicious circle. Especially as we get older, it becomes more and more difficult to accept new things, new ideas and new knowledge.

When I was in college, I borrowed two copies of Martin Fowler’s Reconstruction from the library, the original English version and the Chinese translation. I read the English version of the two books in less than a month.

After work, I can only use the early hours of the day to read. Then MY wife and I decided a family reading day, every month to choose a weekend, this day read more than 4 hours together. If you add in the book selection, the setting, the atmosphere and so on, it basically takes a day.

Reading is a habit, just stick to it

I should add that ritual is also very important, and all of a sudden reading feels sacred

I might add that getting a girlfriend and studying together is more motivating

How to balance work and study? Hope to meet you tomorrow

I entered into programming entirely out of interest. Compared to others, I have no talent, but I have been persisting all the time. The company is in the growth stage, so I cannot practice the technology, and I want to start over the front-end technology, but I don’t have time

“The company belongs to the growth stage”, can I understand that the development process of the company is not standardized, there is no room for improvement.

I have worked with several small companies in their growth stages, and I have led teams of more than 100 people in large companies. It’s not about size at all. And the process from non-norm to norm is also a kind of growth.

And when you say, “I don’t have time,” that’s a total excuse. As long as you have time to check your wechat moments, you have time to study. As long as you have time to brush the Nuggets, you have time to learn. As long as you have time to play games, you have time to study. Two hours a day. Just squeeze it out.

You’re probably young. When I was your age, I had plenty of time. Now that I have a family and a child, I suddenly have less time, but I still have time to play games and brush up on Zhihu in the evening. I usually get up at 5:30 am to read books, write codes and write articles.

If the boss tells you to finish XXXX and give you a $20,000 raise, I guess you’ll have time to learn right away. To put it bluntly, there is still not enough motivation.

There’s no need to learn the front end from scratch, you can learn it again, but there’s no need to learn it from scratch. Keep learning related skills based on what you’re learning. Or the knowledge point that has not been studied in depth before, now carries on the in-depth study again.

The front end is only a small part. Be a qualified programmer first, then a qualified front-end programmer. There are many skills that are not limited to languages and platforms.

How to balance React and Node stacks? — @Gatorade with goji berries

JJC: My technology stack is 50/50 between Node.js and React. If we continue to split the time between the two technology stacks, it feels like neither side can do anything. I hope to get some advice from you. Thank you.

You don’t have to give up half, you just put your primary energy into one and your secondary energy into the other. Focused learning. Even the so-called full stack engineers have a focus, such as Uncle Wolf, who calls himself the Nodejs full stack, but his tech stack focuses on the back end.

What is the full stack, is not to limit yourself, from one technology point radiate other related technology points, and then continue to improve, this is the full stack. React, Vue, NodeJS, MySQL, Python… Is it a full stack? No, it’s a handyman. If you have to learn all the skills, what’s the use of learning more.

If you target backend NodeJS, then learn js syntax, NodeJS, platform, class library, framework; Then memory management, HTTP protocol, caching strategy; Then load balancing, high concurrency, high availability; Step by step, technology is a process from point to net. The more you learn, the more you will find yourself lacking.

Early stage can pursue breadth, are many a few door frame or technology. But the later stage must pursue depth, a technology stack and related peripheral technology to learn the essence of learning, do not stay in the “can use” level forever.


Thanks to JustJavac for answering a lot of practical questions from the AMA community. For more q&a, go to justjavac’s AMA to read and discuss.


Justjavac AMA Foley: The Book artificial Intelligence

Justjavac chose 2 questioners from all the questions to give away his book artificial Intelligence. Be sure to check for notifications