Introduction
A few days ago, I read this article by Dan Abramov, the creator of Redux: Things I Don’t Know as of 2018. After reading it, I felt quite touched. I had been thinking about things related to confidence recently and had made a simple summary in Can I Be Called a Senior Engineer Two Years Later?.
Coincidentally, I also saw some updated learning roadmaps for 2019 these days. Some comments still say things like “Why do front-end developers have to learn so much?” “How can we learn everything?” “Front-end is so difficult,” etc. Although these two things seem unrelated, I think they are actually related.
The Experts Are Not as Powerful as You Think
We often see many famous developers being called experts. There must be a reason for this title. Maybe they give speeches at conferences every year, have been contributing to the community for a long time, or have written an amazing book. They are indeed excellent in these aspects, but they are just people after all. They are good at what they are good at, but they don’t know everything.
The following is an excerpt from the article written by Dan Abramov:
People often assume that I know far more than I actually do.
大家常以為我會的東西很多,但其實沒那麼多
In this post I’ll offer an incomplete list of programming topics that people often wrongly assume that I know. I’m not saying you don’t need to learn them — or that I don’t know other useful things.
這篇文章會列出一些大家以為我會但其實我不會的東西,但我不是說這些東西不需要學,也不是說我不知道其他有用的東西
First, there is often an unrealistic expectation that an experienced engineer knows every technology in their field. Have you seen a “learning roadmap” that consists of a hundred libraries and tools? It’s useful — but intimidating.
首先,大家對大神們總有一些不切實際的幻想,認為他們在各自的領域中什麼都會。你有看過那些列出一大堆工具跟函式庫的學習路線圖嗎?那很有用沒錯,但也很嚇人
(The translation here is only for the meaning, and there may be some slight deviations from the original text.)
It’s not interesting to quote too many paragraphs. I suggest that you read the original article first, or you can read my article first and then go to the original article. In any case, you must read the original article.
If you don’t know who Dan Abramov is, let me briefly introduce him. He is the creator of Redux and later went to work at Facebook. He is currently a member of the React team. He publishes some small knowledge related to React or other articles on his blog. He is strong, good at writing, and loves to share. He is my personal role model.
In the paragraph quoted above, he wants to express that everyone thinks that an excellent developer knows everything. He is often thought to know a lot, but he doesn’t know that much. He then listed a lot of things he doesn’t know:
- He doesn’t know how to use Docker at all.
- He only knows about IP addresses, DNS, and a communication protocol called TCP/IP when it comes to understanding networks.
- He doesn’t know Flexbox and Grid.
- He has never learned SCSS/Sass.
- He has never set up HTTPS/SSL and only knows that it is related to public and private keys.
He listed more than 20 things he doesn’t know or is not familiar with. Some of them are more related to the back-end, so I just picked a few that are more related to the front-end (except for Docker).
By listing these skills he doesn’t know or is not familiar with, he hopes that after reading the article, everyone can understand:
Even your favorite developers may not know many things that you know.
儘管是你很崇拜的開發者,知道的可能還沒有你多(這邊原文 favorite 應該比較像喜愛?但我直覺翻崇拜比較貼近)
Regardless of your knowledge level, your confidence can vary greatly.
(這句不知道怎麼翻比較好)
Experienced developers have valuable expertise despite knowledge gaps.
At the end of the article, the author mentions that despite not knowing everything, experienced developers still have valuable expertise in certain areas. This is why Dan Abramov, the subject of the article, writes about what he is good at in his next post, “The Elements of UI Engineering.”
What is the inspiration for me?
At first, the author was intimidated by Dan’s article, thinking, “Wow, I actually know more than Dan. I’ve used Docker, I know SCSS, and I know the three-way handshake of TCP.” However, the author realized that this was only half true.
Yes, the author knew more than Dan in the areas he mentioned as not being good at, but that doesn’t mean the author knows more overall. Dan has knowledge in areas where he excels, such as understanding React, open-source projects, Redux, and common UI problems, which far surpasses the author’s knowledge.
The conclusion is that there is no real comparison between two people’s knowledge. It’s difficult to say who knows more, especially in a field as vast as front-end development. Instead, it’s better to find an expert in a specific area.
If you were to ask Dan to create a website with complex animations and effects, he might not do well. However, if you put him in a UI engineering position, he would excel.
Don’t lose confidence because you don’t know everything. Instead, be confident in what you do know.
What does this have to do with a learning roadmap?
The author compares a learning roadmap to a map. Just like a map, a learning roadmap is detailed and comprehensive, but it doesn’t mean you have to know everything on it. It’s there to give you a direction and a concept of what you can learn.
If you’re just starting in front-end development, focus on HTML, CSS, and JavaScript, and maybe one of the three major frameworks. You can ignore the rest for now and learn them later.
Even if you’re an experienced developer, you don’t have to learn everything on the roadmap. Front-end development is vast, and so is back-end development, Android, iOS, and other fields. It’s normal not to know everything.
When you see a learning roadmap, don’t think, “I can’t learn everything.” Instead, use it as a guide to decide what you want to learn.
Conclusion
Learning should be a happy experience. The author believes that Dan enjoys solving UI problems, just like the author enjoys writing technical articles.
In summary:
- No one can learn everything in any field, and that’s normal.
- Focus on what you’re interested in and become an expert.
- Don’t lose confidence because you don’t know everything. Be confident in what you do know.
Comments