1. Laying the foundations for in-depth study of linguistic features


For example, for Java programmers, it is important to understand the basic concepts and core features of the Java language, including object-oriented programming, collection frameworks, exception handling, multithreading, and so on. This can be learned by reading the official documentation, tutorials, reference books, or online resources at Java .


If the basic foundation is not solid, do not talk about improving skills. For example:

  •  Do you know the difference between HashMap ConcurrentHashMap ?

  • When should I use ConcurrentHashMap ? When manipulating files
  •  Do you know about freeing resources in the finally block?
  •  Do you know of any scenarios where generalization is appropriate?


Therefore, to enhance their own technology, the first thing is to lay a solid foundation. Some partners say, work no time to learn the basis of ah, in fact, not so, the basis of this thing, the daily subway commute to work to see, after work to return home to see, look at home on the weekend, more points to write code, generally one or two months, your foundation is very good.


Again, some of you are saying, how can I improve my Java foundation? You can:


  • Read Java-related books or tutorials, such as Java programming ideas, Java core technologies, Java virtual machine, rookie tutorials, etc.

  • Read Java blogs and communities to participate in discussions: Follow blogs, forums and communities in the Java space to learn about the latest technology developments and solutions, and communicate with other developers.

  • More practice, more knocking code: find a Java basic video to watch at the B station, usually more practice, more knocking code

 2. Familiarize yourself with common development tools


A good programmer is a good programmer. So a good programmer tends to code more efficiently. And to improve the coding efficiency, it is generally required to be familiar with and flexible in the application of tools. For example, Eclipse、IntelliJ IDEA、Maven、Navicat and so on. Familiar with the use of these tools, you can improve the development efficiency.


Let me give you an example, for example, if you are familiar with the shortcut to IntelliJ IDEA , you can generate the setter getter method of the entity class in a couple of clicks, while some programmers are still knocking on the door slowly, line by line.

 3. Summarize the pitfalls you have stepped into in your daily work


Good programmers, the reason why good, because he will summarize the pit he stepped on, to avoid repeating the same mistakes. Therefore, Tianluo brother suggests you, daily development, if you stepped on which pit, you need to summarize down. After dinner, and then review review.

 Like, you know:

  •  Redis distributed locking, what may be the pitfalls?
  •  What are the pitfalls of thread pool usage?
  •  Java date processing and what pitfalls?
  •   Arrays.asList What are the possible pitfalls of using it?

 If you forget for a moment, you can read these previous posts of mine.


These are my work summarized, but also hope that your daily development, what pitfalls encountered, are summarized down.

 4. Work, read your project’s excellent code and design documents


Confucius said, three people, there must be my teacher. We usually look at the code, do not always spit out the project’s bad code. In fact, you can pay more attention to write excellent code, and then see why others write these, imitation to write.


Of course, some good design documents are also: why people so designed, where the benefits, where the shortcomings, if you to design, how you think and so on. The good design, read and understand, record, into their own knowledge.

 5. In the daily work, summarize some general technical solutions.

 In the course of our daily work, we have organized a number of general technical solutions.


For example, idempotent design, how to design distributed locks, distributed transaction design, interface optimization, flow-limiting design, library and table design, deep paging problem solving and so on. You can see some of my previous articles on general program design.


Of course, Tianluo also suggests that you, in your daily development, summarize some of the universal design solutions that you have encountered, and familiarize yourself with these universal technical solutions.

 6. Participate in technical discussions, active technology sharing


Participating in technical discussions and exchanges can help you share experiences, solve problems, and learn new knowledge with other Java developers. Engaging in technical sharing can deepen your understanding, build a professional reputation, promote personal growth, contribute to the technical community, and more.


For example, if you encounter some difficulties in doing requirements, you can discuss them with experienced colleagues or technical leaders. Some common problems can be recorded after the discussion, and then do technical sharing.

 7. Sense of ownership, actively tackling the project’s challenges


As a development engineer, it’s important to have a sense of ownership and to proactively attack the challenges of a project. When we encounter a difficult problem in a project, we need to take ownership, find a solution and take action proactively, regardless of whose problem it is in the first place.


And in the process of technology to find a solution, we also grow. When the problem is attacked, you are also recognized by the leadership, and good performance is not far away, all in one go!

 8. Reflect on what could be done to improve efficiency in the project.


In day-to-day development, almost most programmers are performing additions, deletions, and checks. How how to avoid being a mediocre add, delete, and check programmer.


I think it can be done this way: in ordinary work, think about the project, what can be improved efficiency. This includes familiarizing yourself with development tools, mastering appropriate debugging skills, familiarizing yourself with commonly used frameworks, continuing to learn and pay attention to technological developments, and so on.

比如:

  •  Good debugging tips to find problems quickly

  • Another example is a plugin easyyapi that lets you quickly generate yapi interface documentation with a single click instead of manually knocking out interface documentation field by field.


Of course, there are many more techniques/tools that can improve efficiency in day-to-day development, waiting to be discovered.

 9. Familiarize yourself with your business so that you are not easily replaceable


Most of us regular programmers are in business. Usually work a five years or more, the level of difference is not too much. How to avoid being eliminated yourself? My personal advice is to try to be as familiar as possible with the business you are doing, so that you become irreplaceable.


10. take a look at your system, what problems may exist, such as interface time-consuming, slow SQL, and so on


The general system, more or less, has some problems. For example, interfaces take too long, slow SQL, frequent fullGC, and so on.


First of all, you need to master these skills, such as how to optimize the interface, how to optimize the slow SQl, fullGC how to troubleshoot and so on. You can read these articles haha:

 11. Learning by doing, applying theoretical knowledge to practical projects


Many of my friends say that they have read a lot of computer-related books, read a lot of blogs, memorized a lot of eight-letter words, and still can’t make a system.


I think that you can think a little bit more and apply what you have accumulated in your life to real projects. It’s not useless to memorize the eight-legged text, you can apply it to the actual development. For example, if you read Tianluo’s article, “IO Model Explained”, you can apply it to real-world development.


This one seems on the surface to be a common octet of knowledge that doesn’t seem to be used at work. But I use this similar asynchronous idea at work:


For example, to initiate a batch transfer, but the batch transfer processing is more time-consuming, this time the back-end can first tell the front-end transfer submitted successfully, wait until the results are processed, and then notify the front-end of the results can be.


Then, for example, after you read Tianluo brother’s: MySQL index 15 even ask, resist! , you are not able to look back and see, your system, those sql indexes added whether it is reasonable? Is it possible to think about how to optimize, right. Therefore, is to learn to use.


12. Read the source code of some excellent frameworks, such as spring, rockectMq, etc.


If you have spare time, it would be advisable to take a look at the source code of some optimization frameworks, such as spring、rockectMq and so on.


For spring source code, then, you can by module to ah, such as aop,spring , etc., you first write a demo , and then debug tracking process, through the debugger step by step to track the source code execution process, to observe the relationship between the invocation of each method and data changes. It is better to combine with e-books together, such as ( Spring this book together)


We can learn a lot of coding ideas from the source code of good frameworks, come on.

 13. More coding, less laziness, good programming habits


As a programmer, you must code more, don’t be lazy, code more, you will. And yes, be less lazy and stick to it! Effort! Develop a good habit of loving programming.


In short, upgrading skills requires continuous learning, practicing, summarizing and accumulating experience.

By lzz

Leave a Reply

Your email address will not be published. Required fields are marked *