01, preface,
As a programmer, your job is to write code, of course; Like a lumberjack, his job is to saw trees; But if the saw is blunt, you can imagine how hard it is to cut the tree.
I’m sure 99.99% of programmers know how to sharpen a saw; But it’s estimated that only 0.01% of programmers are willing to stop and think about sharpening their saws — a general term for activities other than programming that can help you become a better programmer.
In this day and age, every programmer is as busy as a top (not to mention an invisible whip whacking us all the time) and has no time to stop and think, like a lumberjack who says he has no time to sharpen his saw when he can’t even cut a tree.
But no matter what I tell you, stop when you have to. We grow up with practice, and we write tons of code, but if we don’t know how to practice, it’s useless. Well, without further ado, let me tell you two good ways to sharpen the saw!
Worship Daniel as the teacher
If you work for a good company, you may want to hire a dedicated, experienced “hotshot” to guide you when you first join the company — they invest in you because they expect you to make valuable contributions in the future. So congratulations, you’re lucky. This is your chance. Hold on tight to this thigh.
It’s important to listen, observe, and give feedback, rather than following your master around every day, serving tea and sucking up to him.
Listening carefully means that when the master arranges tasks, he must listen attentively and make the task clear. Don’t pretend to know what he doesn’t know. When I was young, I often made this mistake. I always worried that my words would delay my master’s golden time, so I dared not speak out my doubts in my heart. As a result, I was in a hurry to work, but finally delayed his time and was scolded.
Careful observation means that you have to have an eye for beauty, to observe the effective coding habits of the master, the way of thinking when solving problems, and the skills of dealing with people. These are rare. They don’t teach them in school.
Finally, don’t forget to give feedback in a timely manner. Don’t wait there dryly. Wait for the master to come to you for results.
If you are not so lucky, the company is not quite reliable, the master is not quite reliable, how to do? Go online! Like these recommended bloggers on blogosphere.
Remember, don’t look at what they learned after they were successful, look at what they learned in their early years when they were just starting to grow (which is very valuable). I suggest you put their blogs in reverse order, starting with the first post (if they’re too shy to delete it). If I can go one step further, join their community. Don’t flood the group, absorb the nutritional value – if not, quit.
If the bull has left contact information, don’t be stingy and grab a seat first. Be sure to bring questions to ask or discuss. Because it doesn’t take much time to answer or discuss questions, they rely on experience and accumulation. In this case, they are very willing to answer questions. After all, influence is an important indicator of Niu.
But if you’re stuck in the “Are you there? “, “I’m confused. Can YOU give me some advice?” This kind of general talk, without any artistic questions, Daniel is too busy to care, after all, you are very busy, Daniel is also very busy.
03. Read a lot
Keep an open mind and read lots of blogs and books about programming.
There are plenty of programmers out there who have a real but unrealistic hope that after reading this blog, this book, I’m going to be a tech guru. But the truth is, if we can find even a little something that makes us better programmers, we’re paid. In fact, this is already greedy.
Some programmers complain, “Where am I going to find the time to read a book or a blog? Can I have a snack?” At such a voice I could not help feeling pity; Give you a lu Xun quote ah, listen – time is like the water in sponge, squeeze always some.
If I could go back in time, as a [Java] programmer, I would tell you in all seriousness that these 8 books (in no particular order) are must-read.
1) The Way To Clean Code. Five stars
There is room for detail, and neatness leads to great code. Lessons learned from Code Cleanliness:
- The difference between good code and bad code;
- How to write good code and how to turn bad code into good code;
- How to create good names, good functions, good objects, and good classes;
- How to format code to maximize its readability;
- How to fully implement error handling without interfering with code logic;
- How to do unit testing and test-driven development.
2) Effective Java, third edition, Recommended rating: 5 stars
The third edition contains a total of 90 entries, each discussing a rule in Java programming. These rules reflect some useful practices that the most experienced good programmers use in practice.
However, the Chinese translation of the book is so poor that it is a very stilted read. I had to read each paragraph two or three times before I could say “oh”. (If only all technical books were as interesting as my words)
3) The Myth of the Man-month, recommended score: five stars
In software, few books have been as influential and enduring as The Myth of the Man-Month. But then again, this book should be read not just by programmers, but by anyone who says, “The requirements are simple, it won’t take long to build, and if you need to build more, you can build more.”
4) The Zen of Design Patterns, 5 stars
One of the three recognized classics in the field of design patterns, this book is “fun, easy to understand, yet extremely well explained and thorough” — perhaps because its author (Qin Xiaobo) shares the same name as Wang Xiaobo (my favorite author)? !
After reading the preface, I fell in love with the book. In fact, this is how technical books should be written so that the reader can understand them.
5) How to Be a Programmer. Five stars
The book is made up of a series of separate sections covering topics ranging from personal responsibility and career development to various architectural techniques used to keep code flexible and easy to adapt and reuse, punctuated with entertaining anecdotes that greatly increase readability.
PS: Classic English books can’t be translated without a sour taste — as if I was driving a Bugatti Veyron.
6) Understanding the Java Virtual Machine in Depth, five stars
Almost every blog that writes about the Java virtual machine has a note to follow: This article is from Understanding the Java Virtual Machine by Chi-ming Chow. You can imagine how sexy this book is.
7) Java Network Programming, Five stars
Java network programming classic book, not to be missed.
8) Java Concurrent Programming, five stars
If you’re writing, designing, debugging, maintaining, and analyzing multithreaded Java programs, this book is just what you need. If you’ve ever synchronized a method and don’t understand why, you and your users need to read the book carefully from beginning to end.
04, finally
Of course, haphazard, aimless sharpening of the saw is counterproductive. However, if a programmer is not interested in any of this, then the problem is serious.
Libinlink left a message on my blog telling me to write less and code more (a reader took a screenshot of it in the group because he couldn’t read it).
Fortunately, some readers are sensible.
As a programmer, do you have any better suggestions on how to sharpen your saw?
PS: Welcome to pay attention to the “Silent King ii” public account, the background reply keyword “Java”, you can get the “classical e-book PDF version mentioned in the article” for free!!