Personal view of software development entry
Sand gull (WegO@163.com)
Grieved
I saw the article "Through the C # Trend - Item of Advice to the Beglass" - One angle: Avoid "impetuous", advocating the "practical" learning method, but I always feel that the author Title "- The advice of the beginner programmer" is too big, so I think it can be explored in some specific "way of operation" listed in it, as I have developed in a company summary, we accumulated What is it? "After talking to a colleague for more than half an hour, one of the colleagues mentioned that I can continue to refine this topic, just how to develop a more" operability "in just entering the row, I have said that" operability "guidelines. Telling them that this is just a experience in this line for more than 5 years, talking about "Guide" is too far, but you can mention everyone thinking, discussing.
Don't oversize the encoding
Don't really think that "Many Master's computer technology researchers are not programming", doing software development and coding is the most basic thing, only if you have a way, you have a way to go, no matter Doing analysis to do design to do project management, you need to know how things are implemented? Can you implement? Otherwise, a lot of: "Design is design, encoding is encoded", "product is the code person from head to tail." "How much time does it take to spend, how big is the difficulty of difficulty, and the developer is calculated," "Quality / cost / progress is all black box" ... phenomenon, if you do coding, it is more important :). Personally engaged in this industry (software development) must first start from "attention coding". After this level, you can consider doing systematic analysis, do project management ...
The various links of software development are complementary, analyzed analysis, design is important, the code is important, the test implementation has its status, any one is not good, just like we are familiar with The theory of buckets, "The weakest part constitutes its total capacity".
Since the encoding is important, how do you learn to code?
Concentrate on learning a language
Calculate the language that you have ever used (in parentheses, a relatively representative stuff to use the language), C (DOS version / icon editing tool, 96 "Computer News" is introduced), C (can be customized by square game of the square shape, is included in the adoption of the "Software" magazine on the "Software" magazine), compilation (DOS Chinese character system, completed by the end of 1997), PB (School automatic courses / exclusive module, 98 years ), ASP (a set of Web version of enterprise information system, 99 years), VB (core components of enterprise information systems, 99 years), Delphi (Workflow platform, component GIS system, etc.), Java (Delphi Client J2EE Server Collaborative implementation) ,. NET (rule engine), Phh ...
It seems that it seems to be a lot. I'm going to think that I really have learned the language that I have learned. It is "C", the TC2.0 of the DOS old, written a large number of applets, compare the systematic understanding of the programming What is going on, remember what software I have to see when I see how it is realized? If I let me achieve how it does? I also imitate a lot of things, although it is very surface imitation, but I have a thinking of myself The exercise is very beneficial. Later, it is basically just flipped with other languages, then finds its DEMO code to see, soon can enter status.
The language is almost, important is "the idea of encoding", which has the language of the ideology, just tools, what tools are realized, the formation of this idea is to "hone", " Language "to hood (even if you need" biting a whitening hole has been striked "), then you can" one Pattern, ", or you just have a surface to learn more, you can't bring it. Do real development. You can't understand the connotation of "encoding".
For example, when this year, I saw that too much written (or skilled) graduates, I used to give him a paper, let him (she) use her most The language writes a function of a calculation, this question, you see it is very simple, good, then I will ask, how many ways can be realized: cycle, recursive ... Is there any? How much can you write? What is the code quality? Code quality? Does it consider error handling (too many people write code will enter the dead cycle, such as the negative number)? How much is the upper limit of INT, use long? If input The value is relatively large, is it possible to get the result, how to achieve the big number of functions can be calculated? ... Look at the code written by him (she), I have to ask if I have a question, no matter what language you use, no matter what you use How many languages are "proficient", I only ask what these languages need to solve the problem, it is "the idea of coding". On the basis of the language, new things must be followed, otherwise in this industry You are very difficult to "mix", but after this "school is a special", you will be easy to follow, but you don't always have "chase" ~
In the process of "special", you will find the "algorithm" in the process of "special" one language. This is the "foundation" that will be said.
Basic important
When I interview, I will generally ask, how is the basic knowledge? Generally, the content is: "Data Structure", "Compilation Principle", "Database Principle" content. As for "by" text: "Assembly language" "Windows programming" I won't ask. These are things that can be further studied, but the current development is not necessary. "Software Engineering" I didn't ask, the theory of teaching materials is too far away. ~
"Data Structure" is very important, do not understand that there are many codes of data structures, "Hair", and often complicate "simple problem", and even complex to impossible to solve. Seriously learn "data structure" and try to use the language you are familiar with Going to implement the algorithm in it, you will find "the world is so wonderful" ~ Don't think you will not develop "programming language" does not need to learn "Compilation Principle", "Compilation Principle" contains too many development software "wonderful" Ideological case, seriously understand that you will definitely be a way to solve the problem, you can experience a lot of things, you can do it in the future software (whether it is design or coding, etc.), there are many existing methods available in yours. In the project, these follow-up "data structures" are complementary. On the basis of the "design pattern" book, you must also look at it.
Many applications are inseparable from the database, eventually find a place to "manipulate, store, analyze data", about the paradigm, about the lock, about SQL, about the set of Cartesi, you always know, otherwise I can't start, this Need to study "database principle". Senior knowing a few SQL statements are far less, how to ensure data integrity, security? How to improve efficiency, etc.
Of course, English is also the foundation. It is indeed important to read English. It is not only a book. There is a lot of information on the Internet. If you look at it, don't be afraid. After all, I have learned in higher education. I have learned so many years. In the end, cooperate with these two tools: "Jinshan word" and google.com, do not understand the word "means translation", but many nouns or basic knowledge is not clear, cooperate with search engines, with search engines Look, remember it, see how many times don't understand, silently remembering a small meeting, there are more things you can understand.
interest
Finally, it is interest, if you can really be interested in it (if you want to engage in software development and not interested, hurry to cultivate interest to ^ _ ^), seeing technical information, I want others to watch martial arts novels. If you follow the few points mentioned above (practical, first-color, the foundation is solid) believe how much you can do something out ~~