Another repost from my Quora answers, this time some info for anyone looking to move into programming.
What are the pros and cons of making your career in programming?
Pros:
- It is a very rewarding career financially. Software development often ranks in the top 10 highest-earning careers in most countries
- There is a lot of scope - you could be developing web applications, mobile applications, embedded applications, client-side, server-side, data analysis, artificial intelligence, games, etc
- It is very difficult to be bored. You can always automate away the boring stuff. Different projects always present different challenges. The field is evolving rapidly so there are always new things to learn.
- It is both a creative endeavor and a technical endeavor
- Lots of opportunities for remote work/working from home, if that is your thing
- You get to work with a lot of smart people
- Access to a worldwide community of people who think in a similar manner. Most beginner and intermediate problems easily solved through the internet
- Generally, working in a programming company is more likely to be a meritocracy - people with better technical skill are more likely to be valued
- There are a lot of opportunities - if you are unhappy where you are, you can easily look for another opportunity
Cons:
- It is not for everybody. It requires a certain type of thinking that you may or may not be used to. Typically the field needs the ability to think logically and incrementally (step-by-step through how things happen) and to understand how multiple components work and interact together. More advanced challenges will also require significant out of the box thinking
- After some time, you will tend to interpret things more literally. This is a side effect of working with computer programs that may affect your social interactions
- Many people outside of the field will often find it difficult to understand the amount of work that goes into a computer program. This can lead to difficult conversations, especially with clients
- Your nonprogrammer friends and relatives will often ask you for technical help, even though you know nothing about their printer and will most likely just google the information
- Typically, the industry is very bad at estimation and scheduling, leading to a lot of overtime and the corresponding stress
- The field is evolving rapidly, so there is often a need for a career programmer to self-educate to remain up-to-date with current trends
- Encountering a highly difficult problem that no one else has been able to solve may drive you insane
Link to the original answer on Quora
(Annoyingly I just realized that the permalink to a Quora answer may change if the text of the answer changes, since they use the question slug instead of an id in the url.)
See Also