You must know. net
. Net website you must know|Anytao technology blog
[. Net you must know] 20th back: learning methodology
Released on: 2008.5.28 by: anytao
2008 Original Works of anytao.com and anytao. Please refer to the author and source in the post.
Before |
In this article, the source self-replies to questions about. Net learning from new graduates. This article, in fact, was originally planned to be written in the postscript section at the beginning of "You must know. Net". However, it is one of the regrets of making up the book because of the failure to do so. This article, as [what you must know. net] The 20th back of the series indicates that this series will begin a new journey, which is [you must know. net] 2.0. This article, as a non-technical chapter, is included in the. NET team that you must know. I want to answer at least the following questions:Must knowNon-technical question: what should. Net learn? How should. Net be learned? . Net learning method? This article is not suitable for all people. |
Start text:
Many new friends asked me about this question. I think one thousand people may have one thousand answers. I cannot guarantee that my ideas are suitable for all people, but they are my own experiences and experiences, hope to give you some reference value. At the same time, I also solemnly declare that I am also a learner and constantly pursuing it. Therefore, the experience here is just communication, not preaching.
As a fellow engineer, congratulations! You have entered a difficult and prosperous industry. This is the current situation of software and the future of software. If you want to succeed quickly or make a fortune, it is obviously a hard dream to achieve. Old Bill and Li Yanhong are difficult to replicate in this industry, so it is necessary to prepare for long-term hardships and hardships. At least, my friends, including myself, have gone through this process and are still tired and happy. Therefore, there is no immediate "money" path for such hard work. To develop in this field, you can only rely onPersistence and interest. The two are indispensable. For you who just graduated, this preparation is necessary. This is my first meeting, and it may be relatively imaginary, but it seems to me to be the most important one.
The first one is very important, but in addition to preparing for thinking, how should you start this problem? From my own perspective, I think the most important factors include:
1. The foundation is paramount.
In fact, as early as two years ago, I had the same question: a lot of energy and time were spent pursuing technical skills, technical applications, and technological plagiarism. A lot of valuable life has been spent on the road to tuition fees. Therefore, when I put all my energy into the topic of basic and essential research, I discovered a different world. The original fancy applications and wonderful skills are actually based on the technical foundation, without a deep understanding of the technical nature. This kind of experience is true and effective, so I will share and record my experiences, research and experiences all the way, so I have what you must know. net is the birth of this book. I actually think that starting from this point, you must know what you must know in order to understand those broader technical fields.
Therefore, if you can stick to it, don't give up the boring job, and start from the foundation of a solid learning foundation, I think you will surely make a breakthrough. In fact, this breakthrough also has a leap from quantity to quality. net as an example. I think I have a deep understanding of the CLR operating mechanism, memory management, type systems, exception mechanisms, basic FCL architecture, and C # language basics, understanding msil, metadata, attribute, reflection, delegation, and so on. Of course, object orientation and design architecture are essential basic content. You can get a general idea of the basic content from the "You must know. Net" directory. By the way, the advertisement is published :-)
At this point, I would like to recommend a few basic books. If you have time, you can study them well:
- Don box, Chris sells, essential. Net, a Bible, profound and profound. Why isn't it a second?
- Jeffrey Richter, applied Microsoft. NET Framework programming, the only classic in the. NET world, and even-class Jeffrey is my mentor.
- Patrick smacchia, pracical. net2 and C #2, an encyclopedia in the. NET field, can be used as a Xinhua Dictionary to read technology.
- Richard Jones, Rafael D history, garbage collection: Algorithms for automatic IC dynamic memory management, it depends on memory management.
- Christian Nagel, Bill evjen, Jay Glynn, professional C #2005, C # basics. Everyone is reading it, so let's take a look.
- Thinking in Java, yes, a Java book, but it not only brings about Java, writing a book to this point, it cannot be called a fork.
- Anytao, you must know. net. I am confident that I have no reason not to recommend this book. This book has nothing special about other works. Although I dare not rank as a master, the recommendation can still stand the test.
I have always advocated that there are not many books, and there are fairy spirits. In my opinion, the above is enough to lay a solid foundation. Of course, if there are more pursuits and thoughts, it is far from enough, because the pace of technology has never stopped. However, at least, it should start from here...
2. Are you good at OO?
No matter how hard it is to criticize OO in the industry or how cool it is to make unremitting efforts in OO, it is a hard task for them. However, our business cannot stay away from this mysterious kingdom, because any expert who is fighting from projects and products can understand the power and mystery of OO. It's just these things to stand on the top of the tower and watch the software. Therefore, in my opinion, oo is also a necessary basis for software technology and one of the basic skills for technical cultivation, therefore, I did not hesitate to include the object-oriented understanding in what you must know. net.
However, to be honest, the cultivation of OO is far from as easy as the. NET Foundation, so it is hard to chew on a good book and write ten thousand lines of data.CodeAnd may not be able to fully understand oo. This is a bit mysterious. It seems like wudao. I think of Wang Yangming, the pioneer who never came back before the Ming Dynasty. When I was a young man, I learned about dementia in things every day, I think this is really unreliable. In fact, few of us can fully explain our understanding in front of OO, so we are no exception. However, because it is so important that we have to find something or train of thought to fully understand, deeply understand, and constantly understand it, my advice on object-oriented development is: consistently cultivate and fight a protracted war.
How can we make a good fight? I would like to recommend a few classic works without exception:
- Ericfreeman, elisw.freeman. Head first design patterns, a standard Concise Expression, vivid and rare masterpiece.
- Erich Gamma, Richard Helm, Ralph Johnson, John vlisside, design pattern-reusable object-oriented Software basics. The work of kaishanzu is not a monologue.
- Martin Fowler, refactoring: improving the design of existing code, the same classic, very popular.
- Robert C. Martin, Agile Software Development: Principles, models, and practices. There is no right for design principles.
- Zhang Yi, the essentials and pattern of software design, the excellent works of domestic works, and the classic works in the garden.
It is far from enough to have a good book. Therefore, we have to continue to follow Wang Yangming's old path. Today is a thing, tomorrow is a thing, and what we see. In our terminology, we are constantly learning and practicing the wisdom of others, reading the classic framework, and writing skilled code. One of my idols once told me that I didn't feel it when I did not write tens of millions of lines of code for software. According to this standard, I found that I am still a primary school student, so I am not talking nonsense.
In my opinion, what are the things in the OO world and how to get involved? The following content can be roughly included, but the classification does not follow the subject standards:
- Basic object-oriented content: Class, object, attribute, method, and field.
- Basic elements of object-oriented: encapsulation, inheritance, and polymorphism. I will add another interface.
- Design principles: interface isolation, single responsibility, open and closed, dependency inversion, liskov replacement, nothing to say, these are too important.
- Design Model: There is nothing to say, it is too important.
- Singleton
- Abstract Factory
- Factory method
- Composite
- Adapter
- Bridge
- Decorator
- Facade
- Proxy
- Command
- Observer
- Template Method
- Strategy
- Visitor
- Layered thinking: for example, a classic three-tier architecture
- Modular
- AOP
- SOA
- ORM
- ......
The basic content of these oo fields seems to be full of orders. In fact, they interact with each other and complement each other. There is no separate division or concept of independence. Understanding this will inevitably lead to that, therefore, it is not alone in practice, but in constant comprehension, the original software can be so fascinating.
3. Willing to work is an art.
With the technical foundation and knowledge to cultivate Oo, the following is the question of willingness. Willing to give up, don't give up?
. NET technology has an almost exaggerated application scope, from Windows GDI applications to ASP. net web application, to the WCF distributed application, to the window mobile embedded application, to the ADO.. NET data processing, to XML WebService ,. net is everywhere. Therefore,. NET technology, you should have a minimum understanding, that is: I cannot understand. net, there is still a minimum problem, that is: do I want to learn?
Of course, it is impossible to understand everything. Therefore, you must select and be willing to take the lead. Do you want to learn more? Of course, you must first understand how to learn it? Among so many dazzling technological applications, there is a foundation that is always supported. NET technology the aircraft carrier is moving forward steadily, No matter what application, no matter what technology, no matter what framework, CLR always. NET technology. By listening to the sound of the heart on the surface, we can better understand the operation of the machine and understand the framework along the vascular context, so that we can understand the mystery behind the mechanism. The endless new technologies and new terms will always attract your attention, but never just stare at the cake and get rid of the whole gift. net learning must lay a solid foundation to understand the underlying CLR mechanisms and. net Framework class library, and gradually pursue your technical choices.
Good at distinguishing, not blind. Cnblogs, msdn, and other subscription technologies on a daily basisArticleIt is my habit, but if I read every article and read every article, there is basically no other time, so you must have the ability to distinguish and resist temptation. It is very valuable to find your own direction and stick to it.
In this regard, there is no reference, no recommendations, full screen own eye. Vision is a key.
4. Read several classic works.
In fact, this is not much to be said. The recommended works are worth a little effort to learn, because it is indeed the first time, and it is wrong to start from the start of the road, it is rare to catch up quickly. Therefore, classic works are a good starting point. I will also recommend better monographs on my blog from time to time. I hope you will continue to pay attention to J.
5. Observe the specifications and develop good programming habits.
In fact, this is a seemingly insignificant little thing. I often see the experts who think they are invincible in the world, and play their talents in the editor in a wild manner, but at last I did not know what the original intention was. Software is a sustainable resource. It is a bit of professional ethics for people to abide by rules. For myself, good programming habits are the beginning of a good learning habit. Looking at his own code, I feel as elegant as art. That is, when Jay Chou heard the storm, how can it be cool.
We recommend this book:
- Krzysztof cwalina, Brad Abrams,. net design specifications-. Net conventions, idioms, and patterns
6. Learn and pay attention to methods.
The specific learning methods vary from person to person. I never advocate learning others' methods, because human nature is hard to replicate. You only know yourself clearly, so you can imitate others' skills, but you cannot portray your soul. As for the learning method, I have never liked to refer to others, or do not like recommendations.
However, even so, it does not weaken the importance of learning methods. People who know themselves are real wise, So discovering their potential will always be at your fingertips. It is very important to find an effective method, but do not learn to imitate it. In this regard, I think only innovation can succeed.
If I do not have my own method, I feel that it is a good way to do it.
7. Find a good teacher.
If you are lucky enough to have a good-looking and dedicated instructor guide, it is indeed the luck of life, but this probability is too small. I did not catch up, so most people cannot catch up. No way. I still need a good teacher. So where can I find talented people with high talent and high morality?
The answer is internet. Google and Baidu cannot be less than one.
Msdn is a good tool, blog garden is a good place, and ". Net zen garden" is a good start.
8 English, inevitable.
As mentioned above, we must constantly cultivate and develop things, learn good works, and understand a good framework. Unfortunately, all these good things are occupied by foreigners, because they started from them, so they do not need to be discouraged. Since ancient times, the Chinese people have been masters of the technology and hope that the software industry will not go down. However, in other words, English has become a must and hurtful obstacle, but there is no way to chew on it. Read more, write more, and read more.
As for English learning and growth, I don't want to go back in the fast-paced English class. The school has been doing so many years of work every other time, so I am more pragmatic, I recommend a few good English websites and big bull blogs to improve their skills while improving their English skills:
- Http://www.gotdotnet.com/
- Http://codeproject.com/
- Http://www.asp.net/
- Http://codeguru.com/
- Http://www.c-sharpconer.com/
- Http://blogs.msdn.com/bclteam/
- Http://blogs.msdn.com/ricom/
- Http://samgentile.com/blog/
- Http://martinfower.com/bliki
- Http://blogs.msdn.com/kcwalina/
- Http://www.pluralsight.com/blogs/dbox/default.aspx
- Http://blogs.msdn.com/cbrumme/
Of course, not all of them are listed here. msdn and Asp.net are optional.
The above 1 + 7 articles are some experiences that are not experienced. Everyone knows, but not everyone can. Tired and happy, always the main melody of this industry. In front of the technology, I smiled and found myself very focused. That's enough.
Well, it may be experience or nonsense. As I said at the beginning, as a person coming from the past, I just want to share my experiences with each other, and I have never been forced into others. In addition to several recommended works, you can have reference options, and others can even be totally negative. In the end, I hope that more people will not take the detour that I used to bend. The road is truly happy and sad, and my mind has ruined my youth.
Good night.
Tao| You must know. net
Http://www.anytao.com/| blog: http://anytao.cnblogs.com/
Insert ad:
My new book |
. Net Support Center you must know What you must know about. Net blog |
2008 Original Work of anytao.com. Please refer to the author and source for posting and leave this information.
This document is provided as "the status quo" without any guarantee and does not grant any rights.
This posting is provided "as is" with no warranties, and confers no rights.