1. Share the first experience: "education qualifications represent the past, abilities represent the present,LearningPower represents the future ." In fact, this is a research result from the field of education outside China. BelieveWorkMy friends who have been in the past few or more years have some experience with this principle. But I believe this is also very important: "The important truth is that it is too late to regret it for a lifetime !" So put it in each article, so that those who just graduated can see it early!
2. Be sure to determine your own development direction and develop feasible plans for this purpose. Don't say anything. "I just graduated and don't know what I may do in the future ?", "Follow the feeling and do it first ". This is because your subconscious will imply that your behavior is idle and idle. I have been working on technology and will become an expert person in the future? Become a professional manager in the management direction? Are you familiar with the industry and fields, and be self-reliant in the future? Or is it possible to mix in the industry first? This is very important. It will determine that you have done the right thing in the past few years and ten years !".
3,Software DevelopmentIn the team, technology is not omnipotent, but no technology is absolutely impossible! In technical teams, technology and character are equally important. Of course, appearance is also important, especially in teams with more mm. In the software project team, the technical level is an important factor to be valued and respected. Whether you do management, system analysis, design, coding, product management,Test, Documentation, implementation, and maintenance, you must have a technical basis. I am ignorant. I have never seen a layman lead a software development team to successfully complete software development projects. I once saw a "highly educated cool" (non-technical) who had completed a project with a bunch of people. On the second day of project delivery, the project team members threw a phrase "I can't stand it anymore !" Split and run different things. Everyone can imagine the "success" of that project.
4. Develop your own software development knowledge learning plan in detail, and pay attention to timely correction and adjustment (software development technology changes too fast ). Remember: "If a software developer has never updated his or her knowledge within one or two years, then he no longer belongs to this industry ." Do not tell yourself that there is no time. The famous "principles" in the field of time management tell us that the use of the other eight hours will determine the success or failure of your life! Since my graduation, I have spent more than 2 hours on average every day.
5. Books are the ladder of human progress, especially for software developers. Books are the most effective way to learn knowledge. Don't count too much on your work to meet the "world-class" and don't bother teaching you. My personal experience in buying books is: Never buy books from other Chinese people! Those books I bought ,! 00% all regrets, and no such exception exists. Even more angry, these books are hard to be sold on the stalls in the second-hand market. "Having books doesn't mean having knowledge, having knowledge doesn't mean having skills, having skills doesn't mean having culture, and having culture doesn't mean having wisdom ." Only the wisdom of books can be truly possessed.
6. Do not limit yourself to the superficial use of a technology, even if you only use it once or twice. "Nothing should be done" is what engineers in any industry should not possess. DevelopmentWindowsApplication, let's look at the design, loading, and execution principles of Windows programs, analyze the PE file format, and try to develop a Windows application from scratch using SDK; use VC ++, Delphi, Java ,. net to develop applications. It takes time to study MFC, VCL, J2EE, and ,.. NET Framework Design or source code. In addition to excellent open-source products or frameworks such as J2EE, JBoss, spring, and hibernate, let's take a look at how masters abstract, analyze, design, and implement general solutions for similar problems. If you try to do this, you will encounter a few problems that make you confused in your future work, because many things you "know and know why "!
7. Programming in a language, but do not restrain your thoughts. In "code Daquan", "go deep into a language programming and do not float at the surface ". In-depth development of a language is far from enough. Any programming language has its own reasons. Therefore, no language is the "panacea" for "treating all diseases ". Examples of how programming languages affect and constrain how developers solve specific problems. My experience is: Why can't I use the modular encapsulation methods of C, C51, and assembly when developing some key modules using object tools? Why can't I refer to the IOC and AOP design ideas from the Java Community when using traditional desktop development tools (VC ++ and Delphi at present) for system architecture design, even learning from excellent open-source frameworks such as spring, hibernate, and JBoss? When designing and implementing functions similar to real-time communication and data collection, why can't we reference an excellent system framework and mode from real-time systems and embedded systems? Why does everything have to be solved with the tradition or experience of individuals and teams in the development language ??? "The Stone of his mountains can attack the jade ".
8. Develop the habit of summarization and reflection, consciously extract the results of daily work, and form your own personal source code library, general system architecture for solving certain types of problems, and even evolve into a framework. As we all know, there is a notable difference between having experience and having experience for software developers: inexperienced people start from scratch when completing any task, experienced users often solve the problem by reorganizing their Reusable Modules and class libraries (in fact, this conclusion should not be confined to the software development field, but can be extended to many aspects ). This does not mean that all reusable things must be implemented by themselves. Other people's mature testing results can also be collected, organized, and integrated into their own knowledge bases. However, it is best to implement it by yourself, so that there is no intellectual property rights, copyrights, and other issues. The key is to be able to grasp this knowledge point and possess this skill after implementation.
9. both theory and practice, both internal and external. Engineers observe and analyze things and the world from the engineer's perspective. A qualified software engineer is a person who truly understands the nature of software products and the essence of software product R & D ideas (personal opinion, welcome to discuss ). Mastering the software development language and application language tools to solve specific problems at work and accomplish the target tasks is the main work of software engineers. However, from the perspective of software engineers, this is only an external thing, it is not an important and essential task. Learn and master the theoretical knowledge and methodology of software product development, and understand in practice, analyze, design, and implement software products to solve specific software product R & D problems, is the real work of software engineers. In terms of mature theories and reliable methodologies, we can think, analyze, and solve problems. In practice, we can verify and correct these ideas and methods to form our own theoretical system and practical methodology.
10. How open your mind is, and how open your vision is. Don't hold on to your own technologies and achievements, and wait until they are obsolete and become junk. Please release your own research results in a timely manner: developed products, creative designs or code, published for everyone to communicate or use, your results have the opportunity to evolve and sublimate. Think about the windows system tools that I developed in 2000. Five or six years later, today we are still like that. Today, many popular Windows system tools are much later than we did, but they have evolved well, and there are so many users. In addition, do not keep your own technologies and ideas, communicate and share with others as much as possible, or pass on to development team members. "Exchange with people"AppleAfter that, everyone still has only one apple, but after the exchange of ideas, everyone has two ideas. "Everyone understands the truth, but how many people can actually do it?
11. Try to participate in the development of open-source projects, or develop some of your own products together with your friends. Do not do anything without earning money. The network is no longer just a "virtual world". There are many open source projects, cooperative development projects, and outsourcing projects on the Internet. This is an excellent opportunity to learn more than work, and can get to know more people. Do not study and understand embedded, real-time, communication, network and other technologies because your work is ERP. If someone else asks you for a contract, but you don't know it, you will regret it.
12. Do not limit your knowledge to technical aspects. Professor Simon, the winner of the Nobel Economics Prize, shows: "for a person with a certain foundation, he can master any knowledge within six months if he is willing to work hard ." The Educational Psychology community is named Simon's learning method, thanks to Professor Simon's research results. It can be seen that it is far less difficult and profound to master a strange knowledge. It is widely used in many ways. Consolidate your Influence Circle and expand your attention circle as much as possible. Financial, economic, tax, management and other knowledge, take the time to take a look at the time to hide your profile and plan ahead.
13. Summary and reflection of this article:
A: do not be a technical expert, unless your goal is the same. Although this article provides advice on improving software development knowledge, I have never agreed to be a technical expert. You can improve your professional knowledge, but you can do your job right away.
B: Improving Software Knowledge and technology is only the surface of the problem. The essence is to improve the idea of understanding, analyzing, and solving the problem. Many methods and principles of software expertise can be easily extended and appliedLife.
C: on the basis of being competent for the job, I will immediately explore the professional knowledge in other fields, enrich my knowledge system, and improve my overall quality, especially those who are not technically interested.