[Switch] My technology learning method-anytao

Source: Internet
Author: User

Original Author:Anytao-Wang Tao

His books:You must know. net

 

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. Basic

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. netA Bible is profound and profound. Why isn't it a second?
  • Jeffrey Richter,Applied Microsoft. NET Framework programming. NET is the only classic in the world. Even Jeffrey is my mentor.
  • Patrick smacchia,Pracical. net2 and C #2. Net domain encyclopedia, can be used as Xinhua Dictionary to read technology.
  • Richard Jones, Rafael D example,Garbage Collection: Algorithms for Automatic Dynamic Memory ManagementMemory management depends on it.
  • Christian Nagel, Bill evjen, Jay Glynn,Professional C #2005, C # basics, everyone is reading, so let's take a look.
  • Thinking in JavaYes, a Java book, but it brings more than just java. Writing a book to this book cannot be called a fork.
  • Anytao,You must know. netI 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 recommendations 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. It is not necessarily able to fully understand oo's subtlety to chew on a good book and write ten thousand lines of code. 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 patternsThe standard is concise, vivid, and rare.
  • Erich Gamma, Richard Helm, Ralph Johnson, John vlisside,Design Pattern-Basis for reusable Object-Oriented SoftwareThe work of the ancestor of kaishan.
  • Martin Fowler, refactoring:Improving the design of existing code, The same classic, very popular.
  • Robert C. Martin,Agile Software Development: Principles, models, and practicesFor the design principle, there is no right person.
  • Zhang Yi,Essentials and models of Software DesignExcellent domestic works, classic 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 Mode: 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
  • Stratified thinking: For example, the 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 be 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. I am used to reading cnblogs, msdn, and other subscription technical articles every day. But if I read every article and read every article, there is basically no other time, therefore, 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. Learning and 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.

 

About anytao, I think anyone who has read "You must know. Net" knows it, one of the great gods in the garden. He is now a startup, and a good team system tool is born. I wish the worktile market is getting better and better. My friends and I are also using worktile to manage small projects at ordinary times, it feels like advertising. This article is his answer to technical learning. We cainiao coainiao can also obtain useful information from them, learn from them-> practice-> thinking-> sum up and improve, cainiao will also have spring, wait for the day when we become stronger! Moday

[Switch] My technology learning method-anytao

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.