But some fellow programmers have been asking me for career advice, and now I thought it was time to write another one. By the way, if you’re in the mood to check out something else – I’ve started documenting the horrible things I’ve cooked on Heinz’s Worst Recipes. Fueled by my overwhelming desire to eat well—as evidenced by my waistline—cooking became one of my passions. I am far from being a qualified cook because I never follow recipes, and therefore many of the foods I cook are discarded as "sadly inedible". Of course, sometimes after enough attempts, something goes wrong. After enough questions, I was able to get what I wanted. In my blog, examples of successes and failures are documented. Of course, this has nothing to do with Java.
How to become a Java champion programmer?
A few months ago, my business partner Carl and I were dining in a restaurant in Paris with our French course instructor Xavier. During the conversation, Carl and I laughed and joked about all the cool technology we used when we were younger. At the same time, I noticed that Xavier was silent for a long time, so I decided to ask him his age. Although I can't recall his age exactly, I remember that he was quite different in age from me and was about the same age as my second child. This meant that all the programming experiences Carl and I had simultaneously had over the years were worthless to him.
In the career of a software engineer, knowledge has a half-life of three years. This means that after three years, half of the knowledge you have will be worthless. For example, the older you get, the harder it is to see anyone who understands TSR (Terminate-Stay-Resident), and finding someone who has written a TSR is like finding a needle in a haystack. In a DOS system, multiple programs cannot be run at the same time. Therefore, when we need a background function, such as a calendar or calculator, we write a memory-resident program (Terminate-Stay-Resident program) and then activate it from another program through a specific key combination.
In this industry, the three-year half-life of knowledge is actually a great thing, so that you will never become a sinking tree. As a teenager, people warned me against becoming a programmer, thinking I would be forced to constantly learn new things, but I thought our work would benefit from it. First, the mind should be kept fresh and active. The last time I saw my grandmother, she was 98 years old and had difficulty walking, but she still had a clear mind. She saw my Macbook Pro and said, "Hey, that looks great, I want to buy one." It's because she's constantly learning new things that she keeps her head above water. Second, ignore technologies that you are not very interested in because they will soon be replaced. Let me give you an example with Subversion. I used it in the past because I had to, but I didn't treat it special and I didn't become a Subversion expert. A few years later, git appeared, and I could only wave goodbye to Subversion. Sadly, one of my clients actually migrated from CVS to Subversion this year! This is 2015!
Okay, let’s return to the topic - how to become a champion programmer? I think the following points are very helpful:
Strong memory. When I was in eighth grade, I convinced myself that my memory was terrible, all because of a dead history teacher. However, to my surprise, after years of working as a programmer, I was surprised to find that I could instantly reproduce Java source code that I had seen before. When I read a method in the JDK, I can often tell whether the method has changed from the previous version. Maybe I can't remember someone's face and name clearly, but I can remember Java code with a photographic memory - it would be great if the person's name was also a for loop. Fortunately, a lack of good memory does not prevent us from becoming champion programmers, but having a strong memory is still a clear advantage.
Mathematical skills. You don't need to be a math whiz to be a good Java programmer, but math skills will obviously help you have the qualifications to become a good programmer. In January this year I had some free time, so I decided to try Project Euler. One of the puzzles requires nine and a half hours of running time to find a solution. While it was running, I took a look at the problem and discovered a little relationship between the numbers that could be used to optimize the solution. I ran it again and this time it only took 6 minutes. Meanwhile, my first algorithm keeps running, trying to find the answer. I went back to the numbers again and discovered another pattern I hadn't seen before, and now it only takes 6 seconds to complete. I also tried brute-force optimization of the code using clever programming techniques and parallelism, which may have sped it up a little, but still couldn't get it to less than 6 seconds.
About ten years ago, Sun launched the Java Champion program. The idea is to discover the top 1,000 Java experts in the world who are actively doing things to help Java improve. We’re probably ranked 160th right now. Oracle Corporation continues this program, and over the past few years we have seen additional benefits of this recognition system. This is a self-selected group. New champions are recommended and voted on by existing champions. Typically, more than a dozen votes are needed before a champion is chosen, and one vote vetoes the proposal. Self-recommendations will be considered, but generally will not receive enough support.
Programmer friends often ask me how I became a Java champion programmer. "It's very simple" I said, "Just be like me and publish 200 Java-related articles; or write Hibernate, Spring, Jacoco or something; Or answer thousands of questions and publish a dozen good articles on StackOverFlow; or organize the largest Java developer conference in Europe. ”
You need to do something outstanding, which will take time and effort. No one becomes a Java champion programmer because of their charisma and good looks, it’s all about hard work, which is probably why we don’t have mugshots after our names ;-) . Even more, don't become a champion programmer for the sake of becoming a champion programmer. Get rid of selfishness and wait for other people's praise, which will make you feel better. Not every champion programmer will be officially dubbed "Oracle Java Champion (Oracle Java Champion Programmer)".
No matter which path you choose, becoming a champion programmer means dedication. It's completely different from working a 9-to-5 job. You can't learn everything you need while working. To become a champion programmer, you need to study in the evenings and weekends to keep up with the times. The most exaggerated joke is that programmers will enter the elimination period as soon as they reach 40 years old. Maybe they are doing just fine in Java programming - unless they refresh their knowledge by reading books, articles, or attending developer conferences and challenging courses - relying solely on a diploma will eventually become Worthless, the industry will throw them away like used napkins. Never become such a person! learn, learn and learn! And the best way to learn is undoubtedly to share knowledge with your peers.
How to share your knowledge? Nowadays, we have many options: we can answer questions on StackOverflow or other similar sites; we can discuss technical issues over lunchtime by ordering takeout - this is how we did it many years ago at a company I worked for. Go through the "Design Patterns" method. This requires a bit of sacrifice; you may have to give up lunch and spend some evenings preparing for your talks. However, there is much more to learn than simply being a consumer of information.
"The Java™ Specialists' Newsletter" is now read by more than 70,000 programmers in over 130 countries, but it started very small, I sent it to eighty of my friends and family (including my brother, and my parents) and I begged them to forward it to their friends and colleagues. It develops slowly over time. I believe if you look around you can find 80 email addresses and that's how it started. Everything starts small. It develops slowly, but its growth is steady. I know when you see the number 70,000, you might be shocked, but this is only a small percentage of Java programmers.
Finally, I want to end this post with a very helpful point: Passion. Most people have to do boring computer work and few enjoy it. At one of my jobs, they gave an electrical engineer the job of organizing the source code repository. He got it all wrong - when he was doing source control, let's copy the source tree between directories. We have to do this at the same time during every weekly build, and the server is as slow as a crawler. It can often take hours when the machine is stuck and everyone is left to wait, which is painful and frustrating. I have no enthusiasm for VSS (Visual Source Safe: used to manage different versions of source code and documentation in software development). Find something you are passionate about and it should be something you are very willing to do after get off work. For me, it's about studying the nooks and crannies of the Java ecosystem. Passion is what drives us forward when there are countless reasons to stop.
This is kind of why I love cooking. Fortunately, my programming skills are better than cooking.
Receive LAMP Brothers original PHP tutorial CD/"Essential PHP in detail" for free. For details, please contact the official website customer service: http://www.lampbrother.net
|