[51CTO.com original article] The corporate projects that Yida participated in during his postgraduate studies strengthened his determination to enter the IT industry. His persistence and problem-solving thinking made him more and more courageous on the road of development. In Yida's view, problem-solving thinking is equivalent to a soft skill, something that you will never lose once you learn it. The essence of the problem, analogy, borrowing ideas, and rigor are all elements of his thinking. When encountering problems, think more, ask more what and why, be patient, don't be impatient, communicate more, and check layer by layer to finally find a solution.
Yida Big Data Development Standing out as a student Yida chose the major of electronic information science and technology in the college entrance examination, with computer learning accounting for the majority. He officially entered the world of 0 and 1 from a complete novice who had almost no contact with computers, and gradually learned computer development languages such as C, JAVA, HTML, and Android. After graduating from undergraduate school, Yida entered the postgraduate study stage through guaranteed admission, studying wireless sensor network data clustering algorithms, SVM algorithms, neural networks, etc., and implemented them through MATLAB, comparing the advantages and disadvantages and making improvements. During his postgraduate studies, Yida participated in some corporate projects and taught himself Delphi and MFC-related knowledge according to project requirements. The actual project process benefited him a lot. In June 2015, Yida graduated from graduate school and entered the job as an Android development engineer. Since then, he has left the campus and transformed into a workplace rookie, starting another state of life. If you want to do something, do your best to do it well. When you first enter the position, you naturally need to adapt and learn, and these are mainly achieved through communication and self-study. Looking at the business code written by the old programmers became the first threshold that Yida had to cross. Due to the large business and the large amount of code, it takes a lot of time to learn. At that time, the first task he took over was to develop the payment SDK, which was completed entirely by Yida alone. At that time, he communicated and collaborated with other programmers in various ways, asking for information. He visited Git, 51CTO, Nuggets, StackOverflow and various technology-related forums and websites. When talking about this SDK task, he was most impressed by the WeChat payment problem. The interfaces of other UnionPay and Alipay are relatively easy to access and easy to test and debug, but the WeChat payment access is more problematic. However, he finally realized it after his continuous efforts to consult the information and adjust the test. After completing it, he did not continue to develop the SDK, but was transferred to the JAVA server to do real-time data calculation development according to the needs of the department. Backend development requires data statistics-related work. Yida started by getting in touch with open source tools such as Kafka and Storm, and more with the Linux system. He continued to learn various commonly used commands in practice and realized the writing of shell scripts. In server management, proxy tools such as nginx and haproxy are used, and the development process of netty and jetty is self-taught. Since the only veteran driver left, the maintenance work of storm clusters, mongo clusters, elasticsearch clusters, Docker clusters, etc. was also taken over by Yida alone. During the development, Yida felt that the legacy elasticsearch statistics were not very targeted to their business, so he is exploring and learning Apache Kylin and druid tools, and constantly improving IT skills to adapt to current business needs. Yida did not complain under such high pressure. In his opinion, doing one thing to the best of his ability is a reflection of his personal value. Self-study and reflection are essential elements of development Yida encountered countless problems during development. As a veteran, he reviewed the path he had taken and the pits he had filled, and sorted out the following 6 aspects, hoping to help programmers who are new to the workplace avoid detours. 1. In terms of code, the structure is clear, the logic is rigorous, and the comments are appropriate, which makes it easy for you to understand and test and locate problems, and also makes it easy for others to understand and read the code. 2. In terms of business, coordination, communication and understanding must be in place, otherwise it is easy to have various problems with the demand side, which may lead to various disputes and changes. For example, in the development of the backend service interface, if the business code encounters a problem, it is necessary to confirm with the interface caller in a timely manner and make adjustments in a timely manner. 3. In terms of basic abilities, self-learning skills is a good skill. If you don’t understand the basics of design patterns, data structures, etc., you must learn them. You can learn by combining them with open source frameworks, which generally contain a variety of design patterns and commonly used data structures, such as RxJAVA responsive programming in Android, and learn the ideas in it. 4. Resources: You should develop the habit of releasing resources in time during development, especially for JAVA development. After all, "Stop The World" is not a good thing. Unused objects should be cleaned up in time. Hardware resources such as CPU, memory, and load should also be monitored. 5. Performance, in fact, you should be aware of this when writing code, such as the resource release problem mentioned above. At the same time, you should pay attention to some details during development, for example: when processing data, use List data structure, generally ArrayList is more often used, but if your data is added, accessed sequentially, and deleted frequently, then it is not suitable. Compared with LinkedList, the linked list structure will be much better. Another thing is to learn performance tuning. In JAVA, you need to understand JVM, learn how to use tuning tools, and then locate problems and make corresponding optimizations. 6. In terms of distributed server development and management, it mainly involves the construction of various framework clusters and the use of service proxies (forwarding from external network proxies to internal networks, load balancing, etc.). If there is a problem with cluster construction, it will have a great impact. For example, the ES cluster left by the old driver is not reasonable in cluster node memory allocation and node role allocation, resulting in unstable cluster performance, so parameter adjustment and deployment are done again. In terms of data indexing, such as index mapping settings, routing settings, hot and cold data separation, data compression and other processing. In short, there are still many pitfalls encountered in the development process, whether it is at the business level or non-business level, developers must be patient to solve them. Once you enter the industry, it is like a deep sea. If you want to be like a fish in water, you have to learn to master more skills, constantly enrich yourself, and explore in breadth and depth. Maybe some things may not be used in development, but it is always right to learn them. Whether it is various open source frameworks or development languages, they are actually just tools. After all, frameworks are always emerging. Mastering the core ideas will allow you to travel better everywhere. If you are willing to share your story, please join the 51CTO developer QQ exchange group at 370892523 and contact the group leader. We look forward to your wonderful story! [51CTO original article, please indicate the original author and source as 51CTO.com when reprinting on partner sites] |
<<: Android easily implements RecyclerView suspension bar
>>: 60 technical experiences summarized in daily Android development
Arguing is the most common miscommunication metho...
Bed bugs are very annoying insects, also known as...
Information flow advertising style - interactive ...
[51CTO.com original article] Thank you very much ...
“If you want to dig for gold overseas, you need t...
Conversion bidding is the core of information flo...
1 Yuan group purchase· Zebra AI class animal voca...
[[414551]] According to foreign media 9to5Google,...
Is it easy to join the Turpan Marriage and Love M...
With the rise of short videos such as Douyin, sho...
Introduction: Model in hand, ideas at my disposal...
Based on the four elements of game theory, this p...
In the second half of 2019, short video live stre...
Today's WeChat is no longer the simple chat s...
Accounts related to agriculture, rural areas and ...