No more confusion, how the programmer chooses the technical direction

Source: Internet
Author: User

Recently wrote "When programmers are old", "the real value of programmers" two articles, spread widely, today is the third: "How to choose the technical direction of programmers," history called the "programmer trilogy."

What are some of the programmer's articles written before that? What about writing a programmer's article later?

An afternoon in the autumn of 2008, the warm sunlight fell in front of me through the window of the long writing desk, sitting opposite the table is a small programmer, his name is Xiao Ming, Xiao Ming is a little dazed, he looked at me, do not know what to say.

Programmers are very rigorous, I have to issue a System call first:

What do you do at the customer site for half a year?

Write unit tests.

What's more?

Without it, I've been writing JUnit.

Does anyone else write unit tests?

No one wants to write unit tests, only I write.

......

Why do you want to go to the academy?

I want to write some real programs.

What is the real program?

Like Java, for example, object-oriented programming, you always write classes and various methods, rather than writing Test cases all the time.

OK, along this staircase, on the third floor, there are a bunch of programmers like you, who not only write Java, but also write the various programs related to EE, you will find what you need.

Are you sure?

It's true

At that time my prime, not now so prudent, the sun shines on my legs foot, everything seems very unreal, in the eyes of Xiao Ming, then I estimate very much like "The Matrix" in Morpheus, but he is not sure that he is not "the one". Xiao Ming puzzled to see me for a while, and eventually went upstairs. At this point, he completed the first technical direction of choice. On the third floor, he met a group of equally rigorous programmers who not only learned to write real Java programs, but also mastered some of the WEB programming and server-side programming, including JavaScript, JQuery, Spring, Hibernate, JMX, Web Service, and more. Xiaoming became happy, and gradually got rid of the shadow of the doomed lonely life.

After a period of time, Xiaoming is not satisfied with writing Java-related programs. One day he saw my iPhone and Mac, as if I had met the lover of my first love, and I had a green glow in my eyes, and he knew about the IOS developer. Soon, he spent all his money buying Mac and IPhone, started travelled day, learning IOS development. He writes the OBJECTIVE-C code in the Java gap, builds the IPA while compiling the Web App, debugs The program in the twilight of the morning, whispers to the simulator every night ... He completed the second stage of the technical direction of choice.

Finally, when it was time to leave, he was going to look for a bigger dream, and years later, in a southern city, he became an iOS master for a well-known company and developed several famous iOS apps, such as "Clove Doctor" and "Medication assistant" Family medicine "and so on, it is difficult to imagine, if not Xiao Ming, Zhang teacher how to see sister-in-school, Feng teacher how to save the Internet, how the second Ye Kam Book, West Lake How to raise vinegar fish!

The first story is finished, the protagonist Xiao Ming use two active technical direction of choice, completed from the ball to the calf of the reverse attack, so that now even girlfriend have.

At this time, there are readers to ask, how are those Daniel to make the technical choice?

Daniel does not need to do the technical direction of choice, they need what to learn, what will become. They are like the "Nine Yang Martial art" of Zhang Mowgli, various types of technology and procedures to their hands can play a huge power. Technology is the most important part of their lives.

If you think I'm bragging, I'll give you an example. I wrote a technical master in "Mactalk life Meta Programming", his name is called climbing. For a long time I didn't know what technology he had, because his technology was a superset of many of us, and all the problems we encountered could be solved in him, he just knocked on a few lines of code with a cigarette in his mouth. Later I learned that he had been obsessed with computers in high school, the University of self-learning a lot of computer-related knowledge, operating system, data structure, algorithm after he graduated from college has been clear on the chest.

It was only recently that I got a copy of his profile a few years ago from the Internet, and his resume was this way:

ID: Plansee

Gender: Male

Division Gates: Computer Science and Engineering 98

Occupation: Web engine Designer

People background: Proficient in C, C + +, Java, Pascal, Basic, Fortran, Cobol, pl/m, Perl, Python, Lisp, Prolog, Smalltalk, Bind, Ldap, PVM, MP I, programming automation, Linux Core code, JDK source, GLibc Source, Apache Source, Common network protocol internal implementation, network communication ... is really proficient in

Military study attainments: Never impose the limits of computers on people take it for granted that man is not a slave to machines, but to know the limits of machines as a computer-literate standard can only be self-deceiving.

Game Testimonials: IP Routing and authentication of the dual function will be the future of network game development obstacles, the future network should be distributed directory service-based, network equipment as the center, independent of the specific host. A network that integrates a wide range of authentication and authorization capabilities (all over the company no one can understand what he is saying, but everybody is accustomed to it).

All are graduating in 98, the difference between people and people so big? No words tears thousand lines!

Two stories are finished, how to do the choice of technology direction? The answer is floating in the wind ...

1, the operating system, data structure, algorithms, network and other basic technology should be in the university in-depth study, if you have not mastered the graduation of these content, then with the use of learning with. Learning these basic theories is extremely boring, only the actual work needs can give you the greatest learning motivation to master these difficult content.

2, at least to master a static language, such as C, C + +, Java, C #, Objective-c and so on. Learn at least one dynamic language, such as Python, Ruby, PHP, and more.

3. It is recommended to learn some language features, such as Go, Swift, and Scala, which have both dynamic and static languages. This gives you a deeper understanding of object-oriented programming, process-oriented programming, compiled, and interpreted languages.

4, the system to build their own knowledge system, rather than confined to a certain point. Often readers ask me, I have been writing vba/actionscript/delphi/sql a few years ago ... Now that the project team is suddenly no longer using these languages, what to do? Many people are uncertain about the future of technology, but you should at least build your own technical barriers and platforms. To learn Java, you should build your own Java EE platform, objective-c corresponding to Ios/os X development platform; C #, corresponding to the. Net platform, SQL, corresponding database platform. If you are using ActionScript, you should not confine yourself to Flex, you are the entire front-end platform.

Based on the platform, you will stand very steady. Based on a point, you may fall very miserable, that is.

5, the active choice of technical direction than the passive waiting for good. According to their own interests and the development of technology active choice, like xiaoming, sometimes give up also means to get.

6, do not chase the new, not every one of the "subversive" language or technology are invested in energy and resources. The consequences of chasing new is probably the study did not learn, should not learn to forget the end of the study. I have a buddy, and when we're all writing JavaScript, he thinks Java's new JavaFX is the future of the front end ... And then there's no more. When we all use Java, he thinks that ERlang is the future of programming language ... Then there is no then, can be described as a step early, step early, let a person bemoaned sigh.

7, do not be too conservative, such as Go, Swift, Docker and other technologies, I personally think is worth investing time and energy of technology.

No 8, written here, the winter night is not as black as it looks. Standing on the balcony looking out, as if looking at some huge IDE black coding theme, I think of a certain Daniel's sentence: I do not know much, I just learn fast.

This article is reproduced in the Fool Bean Cake PHP Blog: http://www.shazidoubing.com/fyb/345.html

No more confusion, how the programmer chooses the technical direction

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.