The goal of software engineering graduates

Source: Internet
Author: User
Tags abstract
The goal of software engineering graduates

By chance, one of the pioneers of software development, David Parnas, developed the goal of a graduate in software engineering from the Internet. Read it, can't help ashamed ....


The goal of software engineering graduates
1. Overall
1.1 Ethical conduct and social responsibility
Graduates should have a habitual honesty about their grades.
Graduates have to be quick to share the honors with those who make a contribution.
Graduates should be aware of their responsibilities to employers and clients.
Graduates should be aware of their obligations to society.
1.2 Human accomplishment and maturity
Graduates should be able to find commonalities in things that look very different.
Graduates need to understand their limitations and abilities and work within their limits and abilities.
Graduates should be able to deal with stress and know how to seek help or dispensing if necessary.
Graduates are asked to understand the conditions in which they have reached their best working condition and to achieve their own balance.
Graduates should be willing to admit their mistakes and failures and respond appropriately.
Graduates should be able to face criticism, not always defending themselves.
1.3 Professional accomplishment and maturity
Graduates want to know what their uncharted territory is.
Graduates should not be afraid to explore and ask questions outside their area of expertise.
Graduates need to know how to manage their own time.
Graduates need to understand how to develop long-term projects, rather than looking for shortcuts.
Graduates need to know when to risk and what risks they should take.
Graduates should be accustomed to anticipating potential problems and preparing for them.
Graduates should understand the importance of compromise (trade-offs) and know how to make such a decision.
1.4 Flexibility
Graduates should have the flexibility to be able to change with the environment.
Graduates should take the initiative to do something they think is "right", even if they are not told to do so. Demonstrate constructive initiative when you need it.
Graduates should be able to analyze various situations and find appropriate solutions. This requires them to understand under what conditions a method is appropriate and when it is necessary to choose or invent another method.
Graduates should be able to apply what they have learned to other areas, even in very different areas.
1.5 Thinking, learning and working skills
Graduates should habitually improve their abilities (lifelong self-learners).
Graduates should be able to work well in groups.
Graduates should be able to establish and lead groups.
Graduates should habitually study the history and detailed definition of ideas and concepts that they have not yet understood.
Graduates should habitually seek the exact definition of terminology.
Graduates need to know when and how to explore a problem with a "trial and error" approach (trial).
Graduates should learn to use the principles they first learned in a customary manner.
Graduates should habitually apply the principles of "divide and conquer" (Divide and conquer) to deal with complex problems.
Graduates should be able to question or refute certain assumptions and assertions.
2. Communication
Graduates should be able to properly organize conversations, documents, and papers to communicate their message to the audience in an appropriate way.
Graduates should be proficient in English to cope with the communication at work.
Graduates should be prepared to learn new natural languages in need.
Graduates should have communication skills within the group, particularly on such matters as objectives, tasks and progress.
Graduates need to know how to explain complex topics in less understandable words.
Graduates should be able to consciously express their principle of unconscious use.
3. Mathematics
3.1 General math skills
Graduates need to know how to think carefully and logically.
Graduates need to know how to abstract, how to find more general, more reusable concepts.
Graduates should be familiar with many mathematical concepts that have been studied.
Graduates need to know how to build a real-world model by removing irrelevant details.
Graduates should know how to apply mathematical knowledge and other abstract models in their work and daily life.
3.2 Applied Mathematics in software development
Graduates should be able to describe software states and functions in mathematical logic.
Graduates should understand the basic logic concepts, can prove, know how to choose and apply logic-based tools, such as automatic theorem proving machine.
Graduates should understand how to apply discrete mathematics concepts such as graphs, trees, relationships, etc. in software development.
Graduates need to know how to use digital math (numerical mathematics).
Graduates need to know how to use symbolic math.
4. Software development
4.1 Software Fundamentals
Graduates need to understand the fundamental mathematical laws that govern what we can do with software, and the laws of physics that govern the activities of applications and design.
Graduates need to know why software development is difficult.
Graduates should be aware of the current methods of developing the software, whether right or wrong.
Graduates want to understand why "person month" is not a measure of the complexity of software tasks.
Graduates need to know how to reduce the effort to develop and maintain software.
4.2 Software Technology
Graduates need to know how to use the existing tools and how to learn to use the new tools.
Graduates should master programming skills.
Graduates need to know how to develop Web application software.
Graduates know how to choose the right program development tools.
4.3 Software design and analysis
Graduates are required to be able to write procedures that meet the software specifications provided.
Graduates should be able to prepare program tests according to specifications.
Graduates are required to be able to check the procedure to determine if the specifications are met.
Graduates should be able to "modularize" the software so that each module can be independently developed, tested, and understood.
Graduates should be able to design software products and can design software components by writing interface specifications.
Graduates need to know how to develop (distributed) software that is independent of settings and devices.
Graduates need to be able to develop software that requires parallel processing.
Graduates need to know how to develop real-time software.
Graduates need to know how to estimate/limit the accuracy of numerical results in scientific calculations.
Graduates need to know how to choose and design effective algorithms.
Graduates need to know how to solve problems before they are detailed and know how to determine a complete set of consistent requirements.
Graduates need to understand how to organize data for products that need to store and process large amounts of data.
5. Scientific methods
Graduates have to understand what it means to know something, and how to "know Something".
Graduates need to know how to design and conduct experiments.
Graduates should understand how to draw the right conclusions from observation.
6. Management, project planning and economics
Graduates should have basic legal and business knowledge.
Graduates should have basic knowledge of accounting and taxation, enough to run small companies or work with specialized software specialists.
Graduates should know how to protect information to avoid loss and leaks.
Graduates should have a good understanding of information protection strategies so that they can ask the right questions to the strategy makers.
Graduates should have sufficient knowledge of intellectual property laws to understand their rights and obligations.
Graduates need to know how to make project plans, define milestones, and set deadlines to reach milestones.
Graduates should be familiar with the different methods of software project cost evaluation

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.