Don't be trapped in a box you've built--write it. NET Programmer

Source: Internet
Author: User
Tags learn php lua php compiler php programming sapi silverlight

From my personal point of view, this article ". NET programmer "means a group of programmers with the following characteristics:

The technical scope of study and work is limited. NET platform and derivative, there is no active contact or learning desire for technology outside of. NET.
Constantly learn all kinds. NET platform, such as the Ado.net,asp.net mvc,wpf,silverlight,wcf,wp,ef,nhibernate ...
Work cannot be divorced from Visual Studio and is accustomed to a graphical work environment.
Often complaining that Microsoft's technology is being updated too quickly, Microsoft's development platform is too much for its own value.
A great deal of enthusiasm for objects, design patterns, software architectures, and so on, preferring to spend a lot of time making up various "design pattern stories" rather than taking the time to learn something new (like the IPC under Unix).
To Java quite a criticism, I think C I can't use, as for PHP? It can do that. NET can do, think that most of Linux in the installation force, and Lisp, Lua, Eiffel God horse are clouds, I do what they do.
It is considered that object-oriented language is synonymous with programming language, and imperative programming is deep into the bone marrow, not much understanding of functional language or contractual language.
With. NET for many years, but feel that they have no breakthrough, no progress, all day to make some additions and deletions to change the unwinnable.
Often discussed or thought about. NET or Java or C or other languages which is good, which makes more money for this problem.
If you have more than 3 items that meet the above characteristics, I think we can have a chat, because according to my observation, I feel that this kind of friends in the blog Park is quite a lot.

I hope I can do it onlooker sees most
There is a fact that I would like to clarify with you first, in fact. NET is just my hobby. Because the blog park is mainly biased. NET platform, and friends in the garden are interested in object-oriented, architecture and the like, so I wrote a lot about. NET and architectural articles (if you observe, you will find my blog this kind of article is declining and tend to disappear), in fact, compared to the design, architecture and other things, I am more interested in specific science and technology, such as the principles of various programming languages, application and implementation of expansion, operating system principles, network programming, communication protocols , algorithms and data structures, mining, machine learning, distributed and so on; I prefer PHP, Python, Lisp, etc. in terms of programming, but I prefer the programming philosophy and the programming method under Unix; I love vim better than vs no multiple.

So. NET and C # I have always been a hobby to develop, I hope this does not make anyone feel depressed. Many friends and I QQ or MSN asked me about the. NET problem, I often do not answer, many people may think I am unreasonable, but I actually really do not answer. For example, I wrote a series of articles about ASP. NET MVC in my blog, a lot of people are in the series of articles to add me, but in fact, ASP I only in the beta version of the two weeks, and then never touched, so then a lot of friends asked me to close the question I really can not answer.

So, in the blog Park this with. NET and architecture like the main community, I am a half-spectator, I see a lot of friends in the garden are imprisoned in their own creation of the box, so I would like to as a bystander, give these friends a few suggestions.

Contact and learn a language every six months
There are a lot of people who think it's half the idea to just learn a language. A programmer should have a proficient language, but still have to learn new languages (not too often), not to prevent the day in case of the use of the language, but contact learning different languages will broaden the programmer's horizons.

If you've been using C #, try Lisp, and you'll marvel at the way you write programs, eh? It seems that I have to learn lamda calculus; Try Python, you'll be amazed at what's so small and beautiful; try Lua, you will find that the original language can be embedded in other languages, do you want to try to write a plugin for Wow? Try Eiffel, you'll find there's a way of contract programming, eh? What the? There's icontract on Java, so I'm not going to. NET implementation of one? With this learning process, your mind is naturally expanded, not full of class, Object, MVC, OO ...

In fact, learning language is not necessarily learning not heard, many of you hear the ear long cocoon but never in-depth study of "old friends", such as C, PHP, if you learn carefully, you will also get a lot of unexpected harvest.

For example, in the process of learning C, you will find it impossible to learn C from the UNIX environment, you will be exposed to POSIX and system V, you will take the initiative to learn the process, thread, signal, I/O, IPC, you will be exposed to the TCP/IP protocol. You will find that to learn C and understand the principle of computer composition, you will also find that there is a size end of this thing.

In-depth study of PHP, you will find that PHP is far more than just a web-making scripting language, you will find it sapi, PHP compiler and Zend engine of the beautiful structure, you will find opcode, you will find that PHP is all the extension points, you can extend the function, Extend compiler and Zend Engine, and even fully implement your own compilation and run logic. You will understand how APC caches OPCODE,APD is how to track the operation of PHP.

Every time you learn a language, you will find it is not a language, but a new world, there are too many exciting and novel things, and if you insist on "." NET box, you will never know this.

Take the initiative to overcome yourself and accept more challenges
if everything is used to learn, the code is useful to write, then I can only very sorry to say that you are not a programmer, but just a code worker. Programmers should have a sense of initiative, should have no contact with the field of infinite yearning. Fortunately, there is so much wealth on the Internet that you should do everything you can to get in touch with learning about the unknown, and not always want me to learn that it can change money to buy diapers and powdered milk for children.
you can have a lot of excuses, but I want to say, excuses to find always have, time to find also always have, or to see what they want. Don't lie in a box and complain that you're not making progress.

Google Publication, for example, has a summary of the theory and practice of the world's best Google engineers to read these great papers, see what this great company and a great group of people have done, and find out what map reduce is, If you know you naturally want to try Hadoop, there are bigtable and GFs, Oh! Too shocking, the original storage data also have so much attention, not to put on the hard drive or insert the database through insert on the line. These English papers may be difficult to read, but I think the requirement for a week is not high (I still keep reading two essays a week). You know, the latest and most rigorous stuff is in the paper, and if you're just learning through books or community, you'll never know what's going on in the field of computer science and technology today and what's new and exciting.

Do not be too lazy, you write and delete change to write tired? Come on! Have you ever thought of writing a small httpd yourself? Of course you need to learn the HTTP protocol (rfc2612), and try to write a php sapi extension to make your httpd handle PHP scripts. Have you ever thought of using Lex and YACC to implement a small language of your own, or not completely useless, perhaps you have been to your domain business logic in the chest, then to achieve a domain language of their own. Ah! I'm going to learn the principles of compiling, the formal language and the automata ... Well, this thing is quite interesting, to see the calculation theory to go ... If you come here, you are already in touch with the mathematical nature of the computer, and your level will be sublimated.

Learning is like this, take the initiative to break oneself, give yourself some challenging tasks, life is interesting. Trapped in. NET box, do we have the gall to call ourselves a programmer?

Get out of the IDE and play plain text with the shell
Programmers who have not used Ides may be tragic, but programmers who have never been out of the IDE are absolutely tragic!

Have you ever felt more and more like a "heap program" rather than a "programming" one? OK, even if you can not leave the IDE at work, so spare time to get your IDE out, and so on, you switch to Notepad? I'm mad at you! Try vim or Emacs and experience the fun of using a plain text program to compile connections with GCC. You will find that "YYP" than "Select a line, CTRL + C, click on the start of the next line, CTRL + V" More simple, you will find that click on the "0" than 20 times "left arrow" more convenient. Wait for the source program is many, perhaps you will want to study Makefile's writing. You will somehow find yourself better at compiling and connecting the process.

Believe me, writing a program with plain text and shell is much cooler than using the IDE, do you want to attract girls? Ask your class or the most beautiful girl in your company, and she will think so. The important thing is that this cool is not "pack B" cool, but the efficiency of the cool. What the? You can't stand the IDE anymore ...

Accept more programming philosophies and learning styles
Note that I use "accept" instead of "change", you do not need to change anything, write. NET program is very good, but you can properly absorb the other areas of programming philosophy and learning methods. You can say that Windows (especially. NET) Programmers and UNIX programmers think differently, and if you need a car now, Windows programmers will build a "all in one" car manufacturing base from smelting iron to assembly, and UNIX programmers will go to separate mining sites, Metallurgical plants, design companies, materials factories, machinery factories and assembly factories. I don't want to discuss their pros and cons (because it's easy to get into a pointless religious dispute), but for you, knowing some other programming philosophy doesn't hurt you.

The other is learning, for example, you want to learn PHP, please do not go to the bookstore to buy all kinds of "21 days of proficiency in PHP" or "PHP programming Treasure", you should first open Google, find the website of PHP, and then go to official documents where to find learning resources. There are also various wiki,mailing lists and communities on the Internet, please do not abandon these resources. Then at the same time you can go to Amazon to read the book review, then carefully and carefully choose a relevant book (the best copy, the translation version second).

It is not easy for a person to break through oneself, the key is that he has no intention to break through. I sincerely hope that one day, your brain will no longer be asp.net,asp.net mvc,wcf,wpf,ado.net,silverlight,ef ... and fill up, if to that day, you will find, eh?! The level of my. NET has also increased dramatically!

Original address: http://www.cnblogs.com/leoo2sk/archive/2011/02/24/dotnet-box.html

Don't be trapped in a box you've built--write it. NET programmer (GO)

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.