10 Questions Programmers Should Ask Themselves

10 Questions Programmers Should Ask Themselves

Want to be a web developer? Then throw away those swindle books like "Mastering XX Language in 24 Hours". You should develop a habit of asking yourself the following 10 questions every day.

[[148355]]

1. Is there a pattern here?

Studying design patterns in situations where something works and doesn’t work allows us to discover underlying rules and understand seemingly unrelated concepts and behaviors. To gain a deeper understanding of your work, you need to ask yourself from time to time, “Is there a design pattern here?”

This applies to more than just your code. Are there patterns in the types of changes that occur based on business requirements? Are there patterns in the evolution of technology? Do you often see the same types of bugs pop up over and over again?

Understanding is a mode of perception. --Isaiah Berlin

2. How to make it simple?

As web developers, we usually want to come up with complex and scalable solutions. Doing something complex will make you feel very advanced. The problem is, you can never predict how your product and business will change in the future.

Architecture and coding are more like gardening than construction. You have to be able to adapt to changing circumstances. The more complex the solution, the less adaptable it is.

Simplicity is the ultimate sophistication. - Leonardo da Vinci

3. Why does it work this way?

Knowing that something works and knowing why it works that way are two completely different things. Knowing why something behaves the way it does helps you make significantly better decisions.

The difference between a great programmer and someone who just knows a programming language is the depth of their knowledge of how it works.

This also applies to fixing problems. “Just restart the service.” “Did you restart it?” We tend to say things like this when a problem pops up. However, if you say this, you’re missing out on a golden opportunity to learn.

Only by knowing why the problem occurred can we fix it fundamentally and avoid such problems from happening again.

4. Has anyone done this before?

When you feel like you have invented a complex algorithm, it probably means you are on the wrong track. The best way is to search if someone else has already solved the problem.
Need to write an algorithm to add a label to the menu item closest to the user's mouse? Don't worry, there's a solution. Want to find the shortest path for a delivery truck? There's a solution for that, too. Want to find a label similar to the one the user just entered? Don't worry, there's a solution for that, too.

The above are just a few examples, but believe me, the problems you encounter have already been encountered by others.

I can see farther because I stand on the shoulders of giants. - Newton

5.Who was the first to bring it up?

You think you know REST?

So, have you read Roy Fielding's original paper describing REST, and do you understand its intended purpose? Forget about that blogger who has more experience than you in using the REST API generation wizard in IDE V7.

So, tell yourself to try to read the original sources of concepts and theories. Then, by all means, learn about the latest developments from industry think tanks. If you don't know where to start, how can you understand the current state of development?

6. Do I really love my current job?

Let's face it: programming is hard.

Even though it's hard, programming is constantly evolving. Frameworks from 2 years ago were clunky dinosaurs by today's standards. To stay in this field, you need to commit to learning and researching for the rest of your life.

If you really don't like programming, then you have little hope of keeping up with those who love it. Find out why you are not interested in it. Don't decide to become a security expert because there is a gap in the market or because the salary is good. Don't decide to become a UX expert just because the latest article commented that UX is the hottest job in the high-tech field.

I will say it three times: Do what you love. Do what you love. Do what you love.

Do what you love and the resources you need will follow. - Peter McWilliams

7.Where else can it be used?

I've found that one of the biggest limitations of web developers is a failure of imagination.

When we learn something in a specific context, or see a technique used to solve a specific problem, we tend to think that's the only use case for it. However, this idea is basically wrong. Every time you learn something new, you should ask yourself: "Where else can I use it?"

Learned a cool new way to locate graph nodes, can it also be applied to find a data point in a 2-dimensional dataset? Found a cool way to send data from the client to the server over WebSockets? How can it be applied to building a scalable series of backend services? Sometimes it doesn't work, sometimes it does.

Logic gets you from A to Z, but imagination takes you everywhere. - Albert Einstein

8. Where did I fail?

The simplest way to innovate is to reduce the cost of failure.

Valve and some of its peers in the gaming industry take this as a golden rule. The same applies to web developers: if you are afraid of failure, you will never have your big break.

Be brave enough to try, learn from your failures, and try again.

Don't be afraid to make mistakes. Recognize failure. Then start over. - Benjamin Franklin

9. How to achieve this goal?

We live in a world where very few things are truly impossible.

Do things with the idea that anything you want to do is possible. You may find that what you want to do is not in line with current reality, but as the world continues to progress, it may become a reality faster than you think.

Until something succeeds, it always seems impossible. --Nelson Mandela (former South African president)

10.Who can I learn from?

Don’t work where you’re the smartest.

Choose jobs and companies that have colleagues who inspire you, challenge you, and make you better. It doesn't have to be code related, there is a world outside of text editors and command lines. Learn things in other fields and apply them to your work.

Regardless, being competent at the job isn’t enough.

<<:  Analysis of process and thread scheduling in Android: nice

>>:  Ubuntu Software Center Dead?

Recommend

Everyone is a new media (strategy + tool collection)

Strategy Self-operation of WeChat platform I thin...

How can Mini Programs effectively engage in fission marketing?

In this issue, I will share with you the efficien...

Understand GUCCI’s Metaverse Marketing in one article!

With the popularity of the Metaverse, related con...

Questions about setting bids for 360 search advertising promotion!

What is a bid? “The bid is the maximum amount you...

B-side operation strategy and growth model!

B-end operation is an unfamiliar field for many p...

Chongqing flood losses exceed 2.4 billion

Chongqing flood losses exceed 2.4 billion Zou Yu,...