Here are 8 ways to go from being an average programmer to being a great programmer. Let’s start improving your development skills right now.
It’s easy to set goals for yourself to improve your development skills, but “wanting to be a great programmer” is not an easy goal to achieve. First, saying “I want to be better” is based on your recognition of what “better” looks like. In addition, too many people pursue progress without knowing how to achieve it.
So let me share eight practical guidelines that you can use as a flowchart for improving your programming skills. All this wisdom has come with 35 years of computing.
1, always remind yourself: study
The first step in learning something is admitting that you don’t know. This sounds normal, but experienced programmers remember how long it takes to really admit it to themselves. Many computer science majors graduate with an arrogant “I know best” attitude, but it’s really just bravado, confidence that comes from nowhere, as if they know everything and need to strongly prove it to each new colleague. In other words: Your “I know what I’m doing!” This attitude prevents you from learning new things.
2. Don’t try to prove yourself right
To be a good person, you must learn to learn from your mistakes. But be careful, experience can teach us to repeat bad behaviors and even to form bad habits. We’ve all met programmers with eight years of experience. For them, the same experience was repeated eight times. To avoid this syndrome, look at everything you do and ask yourself, “How can I make this better?”
Newbies (and many experienced developers) will look at their own code and appreciate the wonder of it. They write tests to prove that their code works, rather than trying to make it fail. Really good programmers actively look for their mistakes because they know the end user will find the missing bugs.
3. The goal of “code ready to run” is not an end, but a starting point
Yes, your first step is always to write high-quality code that is full of comments. But the average programmer quits at this point and moves on.
But as soon as it’s “done” it stops that thought and it’s like taking a snapshot and expecting it to be a work of art. Great programmers know that the first iteration is just an iteration. It’s up and running. Congratulations! But you have a lot of work to do. Now, make it better.
It’s all about defining what “better” means. Is there any value in making it faster? What are the benefits of being more reusable? More reliable? The answer varies from application to application, but the process is the same.
Write code three times
The goal of a good programmer is to write software that works. Great programmers write software with the goal of running really well. This is almost impossible to happen with a single authoring. The best software is usually written three times:
First, write software to prove to yourself (or your customer) that the solution works. Others may not realize it’s just a proof of concept, but you do it.
The second time will make it work properly.
The third time you can make it run smoothly.
This level of work may not be obvious when you look at the work of the best developers. Everything they do looks great, but what you don’t see is that even the biggest names in development can throw away the first and second versions of their software before they show it to anyone else. Throwing away your previous code and starting to write another version is a powerful way to integrate “better” into your personal workflow.
If nothing else, code three tells you how many ways you can solve a problem. And it prevents you from getting stuck in a rut.
5. Read lots of code
You might want me to guide you through this tip, but in fact, it’s the most common and valuable tip for improving your programming skills. The reason for reading other people’s code is also important, but it’s just not obvious.
When you read other people’s code, you see how other people solve programming problems. But don’t think of it as literature, but as a lesson and a challenge. To get better, ask yourself: How can I write that piece of code? Now that you’ve seen other people’s solutions, what do you think?
What did I learn? How can I apply this technique to the code I’ve written in the past? (” IT never occurred to me that I could use recursive descent to process that piece of logic “). How can I improve this code? If it’s an open source project and you feel more confident about your solution, go for it!
Code like the author. Practicing this will help you get into the writer’s mind, which can improve your empathy.
Don’t just casually think about these steps. Write your own answers, whether in a personal journal, on a blog, during code reviews, or in a forum with other developers. Just as explaining a problem to a friend can help you solve it, recording and sharing your analysis can help you understand why you react to someone else’s code in a particular way. This is part of the introspection I mentioned earlier to help you calmly judge your own strengths and weaknesses.
Warning: It’s easy to read a lot of code without needing to be a good programmer, just as a would-be writer can read great literature without improving her prose. Many developers look to open source or other software to “find the answer,” and most likely copy and paste code to solve similar problems. Doing so actually makes you a worse programmer because you blindly accept the wisdom of others without examining it. (Plus, it can be more trouble than a summer picnic, but because you don’t take the time to understand it, you’ll never realize that you’re like nature’s porters only doing manual labor.)
6. Don’t think of coding as just a task
There are many advantages to working on personal programming projects. First, it gives you a way to learn tools and techniques that you don’t use in your current job, but that will make you more marketable in your next job. Whether you’re contributing to an open source project or doing pro bono work for a local community organization, you’ll gain technical skills and confidence. (Plus, your personal projects demonstrate to potential employers that you’re a person who never stops learning.)
Another advantage of writing code is that it forces you to solve problems yourself. You can’t leave these tough questions to others, so it can make you seek help too soon.
Pro tip: Don’t just pick individual projects that you can never fail at. You need to fail! But you probably don’t want to fail at your job, or you don’t want to fail when you’re given a deadline.
7. Do everything possible to work face-to-face with other developers
It’s very helpful to listen to others. This might mean pairing up for programming, or participating in a hackathon, or joining a programming user group (such as Vermont Coders Connection). When contributing to an open source project, pay attention to the feedback you get from users and other developers. What do you see in common in their criticisms?
In doing so, you may be lucky enough to have a mentor you can trust completely, from coding to career decisions. So don’t waste those opportunities.
8. Are you learning technology, not how to use tools
Programming languages, tools, and methods are all temporary. This is why you need to gain experience in as many languages and frameworks as possible. Focus on programming fundamentals, because fundamentals never change; Focus more on architecture than how to program. If you feel like there’s only one right way to do something, it might be time for a reality check. Restrictions can hamper your ability to learn new things and make it difficult to adapt to change.
I can keep going, but the key to self-improvement is knowing when to stop.
Click on the blank area below to see the answer
▼
“I can’t be seen on my phone”
Other styles can be inserted at a fixed height of 180px, and the height can be adjusted by modifying the code!
-
How does Android novice learn to develop an App?
-
10 Daily Habits to Live a productive Life after work
-
Android Plug-in Quick Start and Instance Parsing (VirtualApk)
Every day for you to push Android dry goods and the latest, freshest, most interesting Internet technology information!