It is not easy to get started (book reviews on beginning C # objects Chinese edition)

Source: Internet
Author: User
Source: http://hanlei.name/archive/2006/03/29/8904.aspx

Due to the nature of work, I often need to interview for the companyProgramMember. In general, I will first ask the applicant to do two things: first, explain the similarities and differences between virtual methods, abstract methods, and interfaces. Second, break away from IDE, write a simple winform Program (for example, including two neatly arranged text boxes and three buttons, click the button to pop up the message box to display the text box content), and compile and run it in the command line. The first question is the concept of inheritance and polymorphism in the object-oriented model. The second question is the basic knowledge about C # GUI and C # unique features such as delegation, as well as the compilation and debugging skills. Unfortunately, more than half of candidates will lose in front of these two simple questions. In particular, the second question is hard to write.CodeProgrammers who have been there for years. Why? Because these programmers do not have basic object-oriented knowledge, they do not even understand the object-oriented implementation methods of C.

This cannot be entirely attributed to China's computer education. In fact, in the United States or other developed countries, programmers who really know object-oriented development are not everywhere. This is why beginning C # objects (and its original beginning Java objects) became a best-selling book and won high comments from readers on Amazon. The author wrote: "We often have meetings with some software developers-in the workplace, in the customer's office, in professional meetings, or on a college campus-these developers are trying to master a oo similar to C #.Programming LanguageThey participate in C # training, read books about C #, or install and use a C # integrated development environment (IDE) like Visual Studio. NET ). However, this is a case-by-case approach: they lack a basic understanding of what objects are, and, more seriously, they lack the knowledge to use objects to build software applications from the beginning ."

Open any C # entry book you can find on the market and see what the first chapter describes and how the first example is implemented. Close your eyes and you can tell me that the first chapter is mostly about how to install vs. net. The first example is to drag a button control to the form, double-click it, and enter a piece of code to call the message box. This is how our technical authors lead readers astray. IDE (integrated development environment) can greatly improve productivity, but the highly professional knowledge and skills required to develop applications are not replaced by IDE. Indeed, any cainiao may be able to use visual components to piece together "pretty good" applications, but such programs will bring about high expansion and maintenance costs.

Object-Oriented programming is not as simple as some visualization components. It involves many aspects such as the human thinking (abstract) model, modeling symbol system, and object-oriented methodology, and has high requirements on developers. Kung fu developers are not only technical experts, but also profound thinkers. It is not easy to translate a requirement from a natural language to an object model, and then translate an object model into a specific language code. What is the most basic object? If you have considered this issue, you will be inspired by it. For example, how can a piece of paper in the real world be abstracted as an object in the computing world? What features (attributes and actions) will this object have, such as size, color, texture, folding, cutting, reel ......? What are the elements of object-oriented architecture? The process of abstracting things into objects is a very challenging and interesting process of thinking gymnastics. If you still don't understand the concepts of objects and object-oriented, or want to spend more time with the author on this topic, the first part of this book is the best getting started manual.

I know some excellent programmers who studied architecture in college. These friends have almost strict requirements on the application architecture and/or development process, because they have a deep understanding of blueprints, materials, processes ...... How important it is to build a house. Static aspects of the Object Model (domain, data structure, etc.) are developed in applications equivalent to building material units, while dynamic aspects (behavior, method, etc) it is a guide on how to combine building materials. They are combined to form a "blueprint" for an application ". The more complex and large applications, the higher the requirements for blueprints; even simple applications, blueprints are more conducive to maintenance, upgrade, and expansion. Here is a requirement specification. How will you analyze it and organize the correct Object Model (blueprint )? If you do not have enough confidence, read the second part of this book.

The example involved in the third part seems too simple for experienced developers. Actually not. During the entire development process, no controls were dragged and dropped by IDE or compiled and debugged in IDE. There are two purposes for doing so: 1. Let readers know. net Framework and C # are not confused by IDE's fancy interface and eager for success. 2. They help readers learn to use the correct methods and modes (such as the recognized MVC mode) develop programs. For example, a delegate is a special language element in. NET Framework and is hard to understand. If you only know how to put a button into the form, double-click the button, and enter a line of code, you will never understand that this process reflects the clever way to handle events using delegation. However, if you leave the IDE to write the event processing method, you will soon be able to understand this truth and know how to use it for practice. IDE can improve productivity, but it cannot create productivity out of thin air. The source productivity is the knowledge and skills of developers.

Object-Oriented programming has been popular for many years. However, there are still countless beginners who are on the wrong track at the getting-started stage. They are holding the wrong idea and developing Italian programs in a wrong way. It is not easy to get started. For Beginners, it is important for experienced developers to go back and review their experience in the field of object oriented programming (OSS. The author of this book has rich development and training experience (one is a NASA Development Engineer and one is a university teacher and an object Technical Expert). He understands the misunderstandings and challenges that object-oriented programmers may encounter, the summary of their knowledge and experience has formed such a C # object-oriented development guide with good intentions, good guidance, and deep understanding. Every C # developer should read this book whether experienced or inexperienced. It's not easy to get started. Are you actually in the right corner?

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.