The following sections are forwarded from: 1. Share the first article: "education represents the past, competence represents the present, and learning represents the future ." In fact, this is a research result from the field of education outside China. I believe that my friends who have worked for several or more years have some experience in this process. 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,
You must 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, through your subconscious, it implies that your behaviors are 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 you will be able to stand on your own 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. In the software development team, technology is not omnipotent, but it is absolutely impossible to have no technology!
In technical teams, technology and character are equally important. Of course, appearance is also important. , Especially in teams with a large number of mm. In the software project team, the technical level is an important factor to be valued and respected. Whether you are engaged in management, system analysis, design, coding, product management, testing, documentation, implementation, and maintenance, you must have a technical foundation. 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. The project's "successes" can be noticed.
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 ). Please remember: "If a software developer has never updated his or her own 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 with money 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 in the second-hand market stalls. "Having books doesn't mean having knowledge; having knowledge doesn't mean having skills; having skills doesn't mean having culture; having culture doesn't mean having wisdom.
"Only by turning a book into your own wisdom can you truly possess it.
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. Develop a Windows application. Take a look at the design, loading, and execution principles of the Windows program, analyze the PE file format, and try to develop a Windows application from scratch using the SDK; using VC ++, Delphi, Java ,. NET development application,
Take the 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) to design the system architecture, 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 libraries. 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 (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, understand in practice, analyze, design, and implement software products, and want 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 far behind our own, but it has evolved well and so many users are using it. And,
Do not keep your own technologies and ideas, communicate and share with others as much as possible, or pass on to development team members. . "After talking to people about Apple, everyone still has only one apple, but after thinking, everyone has two ideas, but how many people can really 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, and network 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. In essence, it is to improve the idea of understanding, analyzing, and solving the problem. Many methods and principles of software expertise can be easily extended and applied to other aspects of life.
C:
On the basis of being competent for the job, we will immediately explore the professional knowledge in other fields, enrich our knowledge system, and improve our overall quality. Especially those who are not technically focused.
(2) problems related to software or hardware.
I cannot give an accurate answer to this question. It depends on your interests, professional skills, and what kind of work you can find.
Your top priority is not to consider whether to do software or hardware in the future. Instead, you should first "Make yourself strong", learn the professional knowledge well, and strive for a bright spot.
Educational qualifications represent the past, abilities represent the present, and learning abilities represent the future