The original address
We haven’t seen each other for a long time. Although it has become a new blog, I still insist on using words to record my study and life.
I’d like to start with the Amway Notion app, which has brought a lot of changes to my life this year. Here are a few examples:
- The blog. I used to use Markdown + Github to maintain my blog
- Daily study notes and documents. I used to use MindNode mind mapping
- Task management, whether it’s personal time management or teamwork on projects.
- Keep a journal, weekly report and summary. Before Day One
- Accounting, etc.
In addition to VSCode, Notion is the second tool I rely heavily on.
Being powerful is secondary to being able to write whenever and wherever I want, just by opening a web page. I can throw away all the other tools. This convenience gives you no excuse not to write.
It is like a piece of white paper, will let a person have a kind of pen to write to draw desire.
In fact, I can now do a lot of my production work with just one browser. For example, I have recently been using Code-Server to achieve seamless overtime from home. With The help of Docker, the development environment can be made into a mirror image, and a development environment can also be quickly built.
Get back to business
Why did you think of writing an article again today? Mainly in the morning, I saw a public account push: Deno hit the top, vue. js ranked second for the first time, who are the “rising show” of JavaScript 2020?
Vite, ESBuild, SWC, TailWind, Snowpack, Vue3.0, Recoil, Deno, Lowcode…
Whether it’s the front end, whether it’s the technology, whether it’s the entertainment industry, every year there’s a ton of new gadgets, and every year there’s a new fire.
In the past, the annual technical conference, now early talk a year to do a dozen times.
All kinds of course posters forwarded by friends circle…
This is a multi-angle, all-round attack. Am I behind The Times? What am I going to compete with? Life?
What about new technologies?
In the interview, I read on my resume that I am proficient in jQuery, Vue and React. I usually ask this question:
JQuery was so popular, why is it nowReplaced?What problem was solved?
Historically, all technological renovation and obsolescence are inevitable, including ourselves. First of all, we should have an open mind to look at new technologies.
Second, it’s an era of Internet celebrities, and so is the technosphere. A lot of technology may also have been too much packaging and marketing, dazzling people, easy to follow blindly.
It’s worth noting that not all technology is worth spending a lot of time messing around with the skill tree. Go with the flow, easy to let people sacrifice, tired of running, the loss of core competitiveness.
So when it comes to thinking about new technologies, ask yourself these questions:
-
What the hell is this?
-
What problem is it solving?
-
To answer this question, you need to know something about the history of the technology involved. We can learn from history. If you’re an experienced developer, your knowledge of history is to your advantage, or at the very least, you’re more likely to see problems at their core.
Having said that, recommend another book doodlewind translated JavaScript for 20 years
-
Can you solve the problem you’re facing right now? If you can’t solve your current problem, chances are you won’t need it. If you have limited energy, you can put it aside. When you need it later, if it is really useful, it will come to you.
Because from a pragmatic point of view, you don’t have the opportunity to practice it, and you soon forget about it.
-
-
If you are interested, then you can go deeper and see how to solve it.
- What’s the architecture? What’s the idea? The most important thing is thought
- A little deeper, what’s the whole process?
- If you want to become an expert in this area, you need to go deep into the source code
If you don’t understand the above questions, it’s easy to fall into the trap and go astray. This kind of example is everywhere, such as micro service, middle Taiwan is more popular, everyone has to imitate, do not do this is not a cow force, to the last fill the pit…
One reason may be that the technology itself is immature. Another reason may be that certain technologies cannot survive outside their soil.
What is worth learning?
-
Fundamentals of computer science. The more core things, the lower the frequency of updates, this is the internal work of every technical person. Like Zhang Wuji, the stronger the internal skills, the miscellaneous martial arts are not at hand?
-
Something that has settled down.
Whatever the time, new technologies tend to come in droves. Like all kinds of CSS-in-JS libraries, all kinds of state management libraries, all kinds of cross-platform mini program frameworks, view frameworks…
Is that really what you need? If you don’t need to solve your immediate problem, slow down and wait for them to shuffle the deck by themselves. In the end, what you should learn is what survives.
What’s more, we should form our own knowledge system, summarize and internalize knowledge, and find out the correlation between knowledge. When scattered points connect into a network, waiting for the next qualitative change.
Depth or breadth?
Zhihu has many similar questions above:
Is depth or breadth of knowledge more important to young programmers?
Which is more important, breadth or depth of knowledge?
Is depth important or breadth important?
.
Obviously that’s the question a lot of people are asking
A more important rule than depth versus breadth is this: Don’t set boundaries for yourself. This is a common mistake that many people fall into. Here are some common examples:
- I’m just quietly typing my code, I don’t care about business requirements
- I’m prototyping the page, and I don’t care how the user uses it, okay
- The unfinished task is the backend problem, the back-end interface has not been provided, the front end can not work
- I always work overtime, and the project is still overdue. It is the TeamLeader’s job. I have done what I should do.
- Requirements review meetings and technical review meetings are like cross-talk sessions between backend and products. They have little to do with me and are a waste of time
- .
This should be the frog in the well of the new era. Setting boundaries for yourself will only put you in a passive state, which not only limits your development and horizon, but also makes you pass the buck. The ability to resist risk will also be relatively poor, easier to be replaced.
One of the key words to r&d efficiency is to “break down silos”, which means we need to break down our own boundaries and take a higher or bigger view of the problem. You’ll find this reflected in many popular techniques and practices, such as:
- Full stack engineer.Full-stack development is about making engineers not just responsible for a single function, but responsible for the final product. Full stack development is a good starting point, gradually improve the degree of full stack development, people’s goals will naturally align, and take the initiative to improve, that other aspects of improvement is much easier.
- The conversation, SRE
- Development shift left, development shift right, test shift left, test shift right
After the silo is broken, the above problems might go something like this:
-
I’m just quietly typing my code, I don’t care about business requirements
You will be involved in the entire development process, including requirements review, domain modeling, design, development, testing, deployment, and so on.
On the one hand, you need more clear information, to avoid information in the process of layer upon layer of transmission error, resulting in closed-door;
Secondly, it can find various bottlenecks in the process and make targeted optimization and suggestions.
Third, understanding this information is conducive to subsequent development planning and prioritization
Fourth, close communication and collaboration can improve the operational efficiency of R&D and learn from each other’s advantages. For example, the thinking of the product facing the user, the abstraction ability of the back-end business, the meticulous and meticulous testing…
Finally, it is obviously a business exercise
-
I’m prototyping the page, and I don’t care how the user uses it, okay
Eating your own dog food, thinking of yourself as a user, is it reasonable to analyze your needs from the user’s perspective? Is the user experience user-friendly?
Focus on the business problem to be solved behind the requirements, not the requirements of the product manager. If you want to get rid of the fear of being dominated by the product manager, then you need to swim upstream, find out the original business needs, try to understand and analyze them, and then judge whether the solution given by the product is reasonable or not from the perspective of technology. Try to put forward their own views on product requirements, improve and even reject unreasonable requirements.
-
The unfinished task is the backend problem, the back-end interface has not been provided, the front end can not work
What are the problems with the front and back end collaboration? Can we develop some collaboration norms? Examples are document-first, API mocks, and interface automation testing
-
I always work overtime, and the project is still overdue. It is the TeamLeader’s job. I have done what I should do.
What’s wrong with the process of the project? What are the bottlenecks? How to improve the efficiency of each link of research and development? Is the feedback mechanism good? Are there problems with communication? Why can’t the problem be exposed in advance? What can automate and improve process efficiency?
-
Requirements review meetings and technical review meetings are like cross-talk sessions between backend and products. They have little to do with me and are a waste of time
Instead of setting functional boundaries for yourself, try to move left and right to participate in upstream and downstream processes.
Business capability is very important, technology people are originally to use technology to achieve business automation?
The back end of many companies focuses on requirements analysis, design, and review before coding. In the front of the link to consider the consideration of all, the back can be less detours. The business process is sorted out, the business model is established, and then mapped to the table structure, and the implementation of the rest is basically to follow the example.
These are all worth learning.
-
.
Talk about depth and breadth after you’ve broken down your silos.
Obviously, the two are not in conflict. We need breadth, not only in technology, but also in soft skills such as life, communication, collaboration, management, and money management. We also need depth, which reflects your expertise, which is your core competency.
Of course, more desirable, as Morgan says, are “M-types” with “depth in multiple areas,” which are not always available.
Maybe the problem here is that most people do not know which direction they want to go, eyebrow beard grasping everything, I go where my country needs me. Is that true of you?
On the front end, there’s cross-platform, Iot, data visualization, NodeJS…
These areas are expanding and interacting with other areas such as AI, Serverless, big data…
How to choose or to see their preferences, and whether there is a platform for practice. At the end of the day, don’t set boundaries.
In addition to avoiding active boundaries, beware of passive information cocoons. That’s for another story
What is the core competitiveness?
For technical people, technology is the foundation of life. But don’t think the bar for mastering your skills is that high? You can JS, HTML, Vue, React, others no basic training a few months out can also ‘a shuttle’. Besides, when you are old, how can you compete with young people for good fortune?
This is a question I often ask myself. Especially on the days when the screws are being rescrewed day after day, day after day.
As for core competitiveness, I think it can be divided into two parts:
First, it’s hard. As mentioned above, you have breadth and depth of skills, which shows your expertise and ability to move horizontally. The depth and breadth of these techniques are the result of continuous learning and accumulation, not just a few months of training.
The second is soft, which involves many aspects and is more abstract. Early to talk about this interview topic is good (two GG, early to talk to remember to give me she), through the big factory recruitment gave us a portrait of an excellent technical person. With my understanding, I sorted it out:
-
Basic ability
- Logical thinking.
- The ability to learn
- Ability of communication, collaboration and organization
-
Solid professional knowledge, including theory and engineering
-
There are unique highlights
- Depth.
- Have a deep understanding of a certain field and certain technologies
- Business capability. That’s a field
- Keep it small. – Projects
- Know your business value in the company, and try to enhance their business value.
- Be able to participate in project business construction (including research, modeling, design, etc.);
- Be clear about the business objectives of your project. Who are the users? What’s the goal? What was your contribution to it? What were the results of the project? Can you explain it with data?
- Say it big. – The company
- Have an independent view of the company’s business development and even strategy, be able to solve the business pain points, lead or influence the business development
- Get out of here. – Industry
- Have a clear understanding of the overall product technology, can find the business and business model shortcomings, and propose solutions
- Keep it small. – Projects
- Breadth. Backend, operations, testing, cross-platform, AI, etc
- Systemization. A further step is to form a set of systematic knowledge network, from the point, line, to the surface
- Depth.
-
cognitive
- Know yourself. Define your own position and business value, and have clear goals and career planning.
- Professional knowledge. Look at the technical dimensions, depth of understanding and pattern. Standing on the point, on the line or on the surface, structured model thinking, can see things in a certain system cognition.
- Cognition of career. Knowledge of the profession, staff and team. These can affect people’s career planning, work attitude, responsibility, teamwork.
- Critical thinking, that is, the ability to see the truth and to think and analyze, to see things as they really are.
- Avoid dualist cognition. It’s either black or white.
- Can draw inferences from other cases. The same problem can be looked at from many angles, with different solutions. The same solution can be extended to solve other types of problems.
-
Self-management, self-drive, self-optimization ability. The power of initiative
- Have clear goals and an executable plan
- Have awareness of time management
- A sense of lifelong learning
-
Want to sex
- I see ali department recruitment is very particular about sex. Desirability refers to a process attitude that the individual actively wants to participate in promoting and leading the change, and the continuous behavior of pursuing the landing and getting the result. To put it bluntly, to pursue, to be positive, to actively explore, to actively promote change, rather than passively execute it.
- Not limited to their own professional division of labor, but also to the upstream and downstream, the overall understanding and thinking
- Enthusiasm for technology. Curiosity, love toss, love learning, love summary.
- Self-motivation. Self-learning, self-management, self-optimization.
- Unwilling to mediocrity, self proof. Not content with getting things done, the pursuit of doing things well, even extreme
- Summarize ability. Have the ability to summarize myself, project, team, company and industry, and be able to promote further optimization
-
Have output, have results, have influence.
- It’s really a self-validation, not just to manage yourself, but to influence the team, the business, and the community.
- There are project outcomes, individual outcomes
I sometimes ask questions that I am confused about in an interview to see if they have different answers.
Although I am responsible for technical aspects, BUT I also know that many times we investigate some basic technical issues, can not fully reflect a person’s true level. So I try to give them more opportunities to express themselves and spend some time looking at their soft strengths (or potential)
You should also have many people around you who grow up very quickly in a year or half a year. They may start relatively late, and can achieve beyond later, mostly by virtue of their own needs.
I asked the same question in an interview recently, what are your core competencies? What can you do that maybe someone else can do after a year or two or a few months of training? How do you make sure you don’t get replaced?
Most of the answers I got were: strong learning ability, willing to work hard, able to finish independently…
Can you show me the results?
Business capabilities have been mentioned many times in this article, but this one is singled out because business capabilities are really important to technical people and are something that many front-end developers tend to overlook. After all, most people are in business development, and technology ultimately serves the business, can it not be important?
I was also dismissive of business competency development, which means I set boundaries for myself, thinking that the business is the project manager, the product, the back end is the thing, the front end is the page, and the upstream input is all that matters.
How is this any different from assembly line workers?
Until I moved to another company, they were all involved in product reviews, technical reviews, and my status was like this:
The key people in the meeting — the product, the project leader, the back end — are in flow, and business terms are flying around, coming and going, reacting quickly, arguing.
I found myself unable to keep up (although I found that a lot of people were like me), just sitting in, even wandering…
At first, I resisted. Some of these meetings would last for hours, so much so that people who were in a flow state would lose track of time. Those of us who are not familiar with or concerned with the business may find it a waste of time.
After that, I also reflected that I had stayed in my comfort zone for a long time. I was one-sided in pursuit of technology and ignored the cultivation of business ability.
Products needless to say, the back end is the main implementation of the business, they are very good at business process combing, business modeling, it is easy to get involved.
As for how to improve their business ability, nonsense is to participate in more, standing in the user, company, implementation and other angles to think. Interested students can refer to the end of the article to expand the reading. I know my business ability is weak, and I can give some advice to those who are strong in this aspect.
If I have to talk about my core competitiveness, I can only say that I am self-driven reflection, summary and optimization. Unwilling to accept the status quo, can let you to find and reflect on the problem, summary and insight into the cause of the problem, and finally targeted optimization, spiraling upward
Life is ceaseless, walk ceaselessly
Some recent feelings, if you like do not say
Further reading
Some of the references mentioned in this article and extended reading
What’s the difference between an average programmer and a great programmer?
Programmer business ability
Research and development efficiency to break the road
The 10X programmer method
Is it possible for a front-end engineer to become a CTO?
Do back-end students understand the business faster than front-end students?
How can technicians improve their understanding of the business
A brief history of “messing up” in China and Taiwan: successful China and Taiwan are all alike, and unsuccessful China and Taiwan have their own failures!
Technical Selection guide
Snake catcher: Personal knowledge management system series
JavaScript 20 years
Flow theory
How to understand the concept of information cocoon room?
PDCA cycle working method/Deming ring
Soft skills
The discipline of programmers