A good. NET programmer must learn skills-----refer to learning goals

Source: Internet
Author: User

Recent roommate Chat told me, he collected on the internet as a Java programmer must have something, he felt he had to have a direction, otherwise will be in the flat ordinary where the work, not thinking enterprising, eventually muddle through. Really let me wake up suddenly ah, as a bottom-level programmer, how can I spell out the university elite and social veteran? Learning must be essential. Although I'm a little lazy, I'll write these down and try to understand them later.


web/winform/-all, including namespaces such as Asp.net,webservice,remoting,thread,serializable,ado.net
Proficient in UML
Proficient in Designpatterns 23+n mode: The UML diagram of each mode of dictation, memorize the way of code implementation, example, as well. NET-related interfaces
Proficient in the CLR
vb.net/c#
Proficient in OOP concepts
Be proficient in db design and t-sql,sql2005.
Be familiar with Ajax complete technology
All Wpf/wcf/wf/linq
WEB 2.0 concept, Understanding Blog/wiki/rss architecture, SOA philosophy
Proficient in data structure/operating system/Secure encryption
Master. NET design Specifications
Research more than 5 sets of classic source code, such as: Sharpdevelop,petshop,dotnetnuke,smartclient,nunit,fotovision,csla, etc.
Familiarity with DirectX programming patterns
translated 1-2 technical books


These basic professional skills usually determine the level of a programmer, and the ability to use these skills is directly related to the programmer's career. Many novice programs are also missing, not up to, or unfamiliar with these basic skills, so they need to have veteran bands and need to work on these skills. Advanced programmers should be very familiar with these basic skills and have the ability to be competent and lead other inexperienced programmers.

Here are the basic career skills that programmers should have:

Reading code -This skill requires the programmer to be able to read the existing code, which allows the programmer to analyze the program's behavior and understand the program so that it can work with the development team, inherit maintenance, or improve existing programs. (Related reading: "Reading good Code is a shortcut to improve the development of developers")

Writing Programs-programming is not included. Do not think that programming is a very simple thing, many programmers think that programming only need to understand the syntax of the program language, and the implementation of the design can be. But that's not enough to write a program, and what coding style to use is the basic skill you need to write a programmer. The ability to use very good programming styles directly determines the programmer's level.

Software Design -This ability directly determines what kind of code technology is needed to achieve the function, and the system architecture design directly determines the quality, performance and maintainability of the software. Not all programs are very good in this respect, but each programmer needs to be more or less aware and master this basic skill.

familiarity with software engineering -Every programmer should understand what software engineering is and should know about the phases of requirements analysis, design, coding, testing, release, and maintenance. Of course, almost all of us know these things, but not everyone knows them well. Many senior programmers now confuse the requirements Specification FS with the HLD design. In addition, programmers need to know some software development methods/theories, such as: Agile development or Waterfall model.

using libraries or frameworks -a programmer needs to learn to use the existing code, whether it is a library of superscript, or a third-party, or a company-internal, that needs to be learned. For example: C + +, you need to learn to use STL, MFC, ATL, BOOST, AC, Cppunit and so on. Use these things to make your work more effective.

Program Debugging -Program debugging is the most direct ability to analyze bugs and solve problems. No one can guarantee that the program is written without debugging and can run normally, and no one can guarantee that the program will never bug. Therefore, skilled use of the debugger is a programmer needs to have the basic skills.

using the IDE -learning to use IDE tools also makes your work more effective. For example, VC + +, Emacs, Eclipse and so on, and to know the strengths and weaknesses of these Ides.

Use version control -Be sure to learn to use version control tools, what is called mainline/trunk, what is tag, what is called Branch, how to do patch, how to merge code, how to reverse, How to use version control tools to maintain different versions of the software. This is the most important piece of software configuration management that programmers need to understand.

Unit tests -unit tests are what each program needs to do. Many unit tests also need to be coded. Be sure to learn unit testing under the Xunit framework. Like JUnit, NUnit, Cppunit and so on.

Refactoring Code -each programmer needs to have the most basic ability to refactor existing code so that the code is optimal but does not affect any existing functionality. There is a book called "Refactoring of Software," and every programmer should read it.

Automated compilation -programmers need to use a script that automates the programming of all engineering and code, so that the entire development team can constantly integrate code, automate testing, automate deployment, and use tools for static code analysis or automated testing.

A good. NET programmer must learn skills (GO)-----Reference Learning Goals

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.