[Index finger flying] Read The. Passionate. programmer [market selection]

Source: Internet
Author: User

The passionate programmer's choosing the market

> Lead or bleed

Choose leading edge technology or bleeding edge technology)

Leading Edge is a cutting edge, so leading edge technology is a dominant or leading technology. Relatively speaking, bleeding edge tech is more advanced, but not perfect technology. It may have a high rate of return, but it is risky.

This is actually a conflict between risk and return. Chad provides two examples in the book:

One is about COBOL and Java. If you chose Java in the time when COBOL was booming, you are right and get a considerable return;

The other is BEOs. If you thought it was promising and Apple would take it for granted that you would purchase it and put it into hard work, then you would be miserable. BEOs was later acquired by palm and eventually its development was stopped.

It seems that this bleeding edge is better than disruptive technology.

> Supply and Demand

Supply and demand relationship

As Chad mentioned in his book, just a few simple HTML operations a n years ago will bring you a lot of revenue, but as more web designers, A considerable revenue also gradually balances the supply and demand of the market and is no longer that easy.

When choosing a technology set to focus your career on, You shoshould understand the effects of increased supply and lower prices on your career prospects.

When choosing which technology to focus on, you need to carefully consider the impact of supply growth and lower price career prospects. When choosing which technology to focus on, you need to carefully consider the impact of supply growth and lower prices on your career prospects.

The most important lesson we can learn from the supply and demand model is that with increased demand comes increased price competition.

The most important lesson we can learn from the supply and demand model is that demand growth will inevitably lead to price competition.

To compete in the mainstream technology market, you'll have to compete at a higher tier. alternatively, you cocould exploit market imbalances-going where the offshore companies won't go. in either case, it pays to understand the forces at work and to be skilled and nimble enough to react to them.

In order to be competitive in the mainstream technology market, you have to face higher-level competition. Otherwise, you can find an imbalance in the market and find jobs that others can't do for the moment (Chad focuses on outsourcing companies ). In both cases, you must make efforts to improve your skills and sensitivity.

> Coding don't cut it anymore

Programming is not enough.

It's not enough to think about what technologies you're re going to invest in. After all, the technology part is a commodity, right? You're not going to be able to sit back and simply master a programming language or an operating system, leader the businesspeople take care of the business stuff. if all they needed was a code robot, it wocould be easy to hire someone in another country to do that kind of work. if you want to stay relevant, you're going to have to dive into the domain of the business you're in.

It is not enough to think about which technology to invest. After all, technology is just a product. You can't stand by, just master one programming language, or be able to operate a system, and then let the business people take care of it. If they only want to find a robot that understands the code, it is better to hire a foreign cheap programmer. If you want to gain a firm foothold, you must gain an in-depth understanding of your field.

You might be "just a programmer," but being able to speak to your business clients in the language of their business domain is a critical skill. imagine how much easier life wocould be if everyone you had to work with really understood how software development works.

Maybe you are just a programmer, but if you can use the professional language of the customer's industry to communicate with them, this is a very important skill. Just like if the people you work with really understand what is going on in software development, do you think everything will become more handy?

In light of the importance that you shoshould place on selecting a business domain when rounding out your portfolio, the company and industry you choose to work
Becomes a significant investment on your part. if you haven't yet given real, intentional thought to which business domains you shoshould be investing in, now is the time. each passing day is a missed opportunity. like leaving your savings in a low-yield savings account when higher interest rates are to be had, leaving your
Development on the business front in stasis is a bad investment choice.

Given that industry selection is very important, it is also important for you to select the company and field to work in. If you have not considered this issue carefully, start thinking about it now. Opportunities flow every day
Die. Just as interest increases immediately, but you keep your money in a dead-end account with low interest rates. Limiting your own development in a static industry is not a good investment choice.

> Be the worst

Be the worst person.

The people around you affect your own performance. Choose your crowd wisely.

People around you affect your performance. Select your circle wisely.

Find a "be the worst" situation for yourself. you may not have the luxury of immediately switching teams or companies just because you want to work with better people. instead, find a volunteer project on which you can work with other developers who will make you better via osmosis. check for developer group meetings
In your city, and attend thosemeetings. Developers are often looking for spare-time projects on which to practice new techniques and hone their skills.
If you don't have an active developer community nearby, use the Internet. pick an open source project that you admire and whose developers appear to be at that "Next level" you're re looking to reach. go through the project's to-do list or mailing list archives, pick a feature or a major bug fix, and code away! Emulate
Style of the project's surrounding code. turn it into a game. make your design and code so indistinguishable from the rest of the project that even the original developers eventuallywon't remember who wrote it. then, when you're satisfied with your work, submit it as a patch. if it's good, it will be accepted into the project. start over, and do it again. if you 've made decisions that the project's developers disagree with, either induplicate ate their feedback and resubmit or take note of the changes they make. on your next patch, try to get it in with less rework. eventually, you'll find yourself to be a trusted member of the project team. you'll be amazed at what you can learn from a remote set of senior

Find a place that can make yourself the "worst. People who are better than themselves can get together, get ears and ears, and improve themselves. Of course, the company will not give you this opportunity to stay with cool people.

Sometimes you may participate in some development community gatherings. Developers often do some projects in their spare time to learn new technologies and hone their skills.

You can also apply to join some high-level open source projects you enjoy. If you can successfully join and become a trusted member. You will be pleasantly surprised to find that, even if you have no chance to hear their voice, you have the opportunity to learn from senior developers who are far away from others.

> Invest your intelligence

Intellectual investment

Tianyi software uses the Web search engine to sort programming languages based on the actual usage of experienced engineers, classes, and third-party vendors around the world. Although this statistical method is not very scientific, it still has reference significance.

Chad mentioned the recruitment experience in his book. When it is difficult for them to find excellent talents, Chad recommends searching Smalltalk on the Internet, because there are very few people who know Smalltalk in India, most of them are really talented people who love programming.

Unfortunately, our ability to attract these developers for the salaries we were able to pay was limited. they were calling the shots, and most of them chose to stay where they were or to keep looking for a new job. though we failed to recruit sort of them, we learned a valuable recruiting lesson: we were more likely to extend offers to candidates with diverse (and even unorthodox) experience than to those whose experiences were homogenous. my explanation is that either good people seek out diversity, because they love to learn new things, or being forced into alien experiences and environments created more mature, well-rounded software developers. I suspect it's a little of both, but regardless of why it works, we learned that it works. I still use this technique when looking for developers.

They are qualified to submit conditions because they are excellent. Unfortunately, our salary limit is insufficient to attract them. Most people choose to stay in the original company or continue looking for work. Despite failing to live with them, I learned valuable recruitment experience: We prefer candidates with rich experience than those with a single candidate. I think a good programmer is looking for a job of change and diversity because they like to learn new things, or because they know that to become a more mature and comprehensive programmer, they must learn new technologies, work in a new environment and gain new experience. I think both aspects work. I still use this technique to recruit programmers.

For me, as a hiring manager, the first reason is that it shows that you're interested. if I know you learned something for the sake of self development and (better) pure fun, I know you are excited and motivated about your Sion. it drives me crazy to ask people whether
They 've seen or used certain not-quite-mainstreamtechnologies only to hear, "I haven't been given the opportunity to work on that" in return. Given the opportunity? Neither was I! I took the opportunity to learn.

As a recruitment manager, I think the primary factor is whether you are interested in this line. If I know that you want to make yourself feel good for your own development or better, then I know that you are passionate about your career and are motivated. When we ask whether they have learned a non-mainstream technology, if someone says "no one gives me a chance to use it", I will send "Hong" (crazy. Opportunity? Who gave it to me!

(Seeing this, I think of a program magazine that talked about initiative. A kid said he was okay and there was no challenge in his work, in fact, he can do some reconstruction or other things on the existing system. How can he do nothing ?)

Finally, Chad recommends learning a new language, a language that can change your way of thinking. If you have been doing object-oriented development, you can try functions such as Haskell or scheme in the language. For me, it may be Scala.

> Don't listen to your parents

Do not obey your parents. Parents do not want their children to take risks, so they do not expect their children to have a great career, and their suggestions often include various worries for your failure.

In the end, just as Indiana Jones cocould never turn down the opportunity to search for the Holy Grail, I cocould no less turn down the chance to work for myself on something I truly love, no matter how safe the alternative might be. when I'm old and dying, I plan to look back on my life and say, "Wow, that was an adventure," not "wow, I sure felt safe."

Tom Preston-Werner is cofounder of GitHub.

In the end, just as Indiana Jones will never give up looking for holy grail, and I will not give up my career that I love, no matter how secure other options are. When I get older and are about to leave, I will look back on my life and say, "Wow, that was an adventure," instead of "wow, I sure felt safe ."

-Tom Preston-Werner co-founder of GitHub

> Be a generalist

Become a talent

If your goal is to be the last person standing amid rounds of layoffs and the shipment of jobs overseas, you better make yourself generally
Useful. If you're afraid that your once-crowded development officewill become home to an onshore skeleton crew, it wocould serve you well
Realize that when the team has only a few slots, a "just-a-tester" or "just-a-coder" is not going to be in demand. better, if you just want
To stand out and be remarkable, wrapping your head around the big picture is where it's.

If you want to gain a foothold in this industry, I suggest you become a general talent. If you are afraid of layoffs in your department, you should know that when you streamline the team, a person who will only test or only code will be cut. If you just want excellence, it's better.

> Be a specialist

Become an expert

So, what shoshould a specialist be in the software field? I can tell you what I was searching for in every nook and cranny on that recruiting trip. I was searching for people who deeply understood the Java programming and deployment environment. I wanted folks who cocould say "Been There, Done That" in 80 percent of the situations we might encounter and whose depth of knowledge cocould make the remaining 20 percent more livable. I wanted someone who, when dealing with high-level category actions, wocould understand the low-level details of what went into the implementation of those category actions. I wanted someone who cocould solve any deployment issue we might encounter or wocould at least know who to call for help if they couldn't.

So what kind of people can be called experts in the software field? I can tell you what kind of person I want to find in every corner during recruitment. I am looking for people who really have a deep understanding of Java programming and deployment environments. I want to find people who have already handled 80% of the problems we may encounter in our work, and have enough knowledge to deal with the remaining 20% problems. The people I need can not only deal with high-level abstraction, but also understand
Low-end details that implement high-end abstraction. I need people who can solve the deployment problem, or if they cannot solve it, at least they should know who to ask for help.

(1) Do you use a programming language that compiles and runs on a virtual machine? If so, take some time to learn about the internals of how your VM works.
(2) find an opportunity-at work or outside-to teach a class on some aspect of a technology that you wowould like to develop some
Depth in.

(1) Are you using a programming language compiled and executed on a virtual machine? If so, spend some time learning how the VM works.

(2) seek an opportunity to teach at work or outside of work.

> Don't put all your eggs in someone else's basket

Don't put all your eggs in others' baskets.

While managing an application development group, I once asked one of my employees, "What do you want to do with your career? What do you want to be ?" I was terribly disappointed by his answer: "I want to be a J2EE architect." I asked why not a "microsoftword designer" or a "RealPlayer installer ?"
This guy wanted to build his career around und a specific technology created by a specific company of which he was not an employee. What if the company goes out of business? What if it let its now-sexy technology become obsolete? Why wocould you want to trust a technology company with your career?

When managing an Application Development Team, I asked my employees: "What is your career plan? What kind of people do you want to be? "I want to be a J2EE architect," he said. "I am very disappointed with this answer. I asked him why he was not a "Microsoft Word designer" or "RealPlayer installer ".

This person wants to build his career path on a specific technology, which is created by a specific company, and he is not an employee of this company. What if this company goes bankrupt? What if the company's popular technology is outdated one day? Why do we depend entirely on a technology company for our career development?

So, although a single-minded investigation in one particle technology is almost always a bad idea, if you must do so, consider focusing on an open source option, as opposed to a too cial one. even if you can't or don't want to make the case for using the open source solution in your workplace, use the open source option as the platform from which you can take a deep dive into a technology.

Therefore, although it is unwise to invest in a specific technology with one mind, if you must do so, consider open source rather than commercial nature. Even if you don't want to or cannot use the open-source method in your work, you can use open-source as a platform so that you can study a technology in depth.

Try a small project, twice. Try it once in your home base technology and then once, as idiomatically as possible, in a competing technology.

Try to create a small project and do it twice. The first time you try to use the technology that you can use at home, and the second time, you use the most popular and competitive technology.

> Love it or leave it.

Either love it, or leave it.

If you think about the biographies you read or the documentaries you watch about the greats in varous fields, this same pattern of addictive, passionate behavior surfaces.

Think about the biographies you have read or the documentaries you have seen about great people. Although these people are in different fields, they all have one thing in common-obsession and enthusiasm.

Of course, natural talent plays a big role in ability. we can't all be considered art or Coltrane. but, we can all take a big step away from mediocrity by finding work we are passionate about.

Of course, talent accounts for a large proportion in terms of work ability. Not everyone can become Mozart or Coltrane. However, we can find jobs we love to get rid of mediocrity.

It might be a technology or business domain that gets you excited. or, on the other hand, it might be a specific technology or business domain that drags you down. or a type of organization. maybe you're meant for small teams or big teams. or rigid processes. or agile processes. whatever the mix, take some time to find yours.
You can fake it for a while, but a lack of passion will catch up with you and your work.

A technology or a business field may make you excited or drag you down. Maybe you are destined to stay in a small team or a large team, a rigid process, or a flexible process. For whatever reason, take some time to think about what you are suitable.

You may be able to pretend in a short time, but lack of enthusiasm will always affect yourself and your work.

----------------------------------------------------------------

Piaoger:

From the perspective of market selection, Chad has analyzed how to choose the right technical direction, be passionate, dare to take risks, do what you like, and finally become a red and professional technology "brick house ".

-----------------------------------------------------------------

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.