Call us the entitled generation, but millennials are increasingly seeking more from work than just a fat paycheck.

But finding work you love is very difficult. Most people fail. Many people give up the search all too quickly. Few people end up finding a job that fulfills them.

For me it was programming. And I believe if more people gave it a shot they will discover it might be the perfect job for them too.

Programming is one of the few jobs that combines all the qualities that make you fall in love with work.

1. Joy of the craft

A simple test of whether people love what they do is whether they’d do it even if they weren’t paid for it.

In 2018, 31 million developers contributed over 200 million times on Github for free.

Let me repeat that, 31 million developers spend their spare time writing code for free — that should tell you all you need to know about the joy of coding.

How many corporate lawyers would do their current work if they had to do it for free, in their spare time?

Ask any programmer what they love about their job and inevitably the conversation will turn to flow states, even if they don’t use that terminology.

Flow is the state of mind in which people are so involved in an activity that nothing else seems to matter. The experience itself is so enjoyable that people will do it even at great cost, for the sheer sake of doing it.

It is a peak state where we both feel our best and perform our best.

Mihaly Csikszentmihalyi’s work on flow is one of the most cited studies in psychology. According to him, flow is more than just an optimal state of consciousness, it also appears to be the only practical answer to the question: What is the meaning of life?

There are moments that stand out from the chaos of the everyday as shining beacons… In many ways, one might say that the whole effort of humankind through millennia of history has been to capture these fleeting moments of fulfillment and make them part of everyday existence. ~ Mihaly Csikszentmihalyi

For many of us, the opportunity to enter such states underpins the attraction for a career in programming.

What makes programming so special is that the three basic requirements for flow is built into the craft.

1. Clear goals: When the brain is charged with a clear goal, focus narrows considerably, the unimportant is disregarded, and the now is all that’s left. 2. Immediate feedback: Immediate feedback refers to a direct, in-the-moment coupling between cause and effect. The smaller the gap between input and output, the more we know how we’re doing and how to do it better. When feedback is immediate, the information we require is always close at hand. Attention doesn’t have to wander; the conscious mind need not get involved. 3. Challenge/Skill ratio: Flow appears near the emotional midpoint between boredom and anxiety, in what scientists call the flow channel — the spot where the task is hard enough to make us stretch but not hard enough to make us snap.

“Immediate feedback” is what separates programming from many other jobs. When you code the feedback is instantaneous — like a game. It is addicting. Each time you succeed you get a jolt of excitement, and each failure builds a curiosity that pushes you to solve the the problem.

While thrill-seekers risk their lives to climb mountains and jump from planes to experience this state of mind, most programmers have it readily accessible when and where they want it.

Which brings us to the second reason.

2. Freedom

Researchers found that adding 20 minutes of commute a day has the same effect on job satisfaction as a 19% pay cut.

Commute is a drag. The average commute time in the US is 50 minutes round trip, many people spend far longer getting to and from work.

We all hate it, but it is one of those things that we just need to learn to live with.

Or so we think.

According to a 2017 survey by StackOverflow 11.2% of programmers in US said they work remotely full-time.

US is just catching up to a global trend where much larger proportion of programmers work remotely.

All you need to do your work as a programmer is internet and a laptop. You can do it in your basement, at a coffee shop, at the beach or in your pajamas.

Increasing number of programming jobs are turning remote. Remote jobs not only reduce costs for the employer but it also attracts talented developers.

As the race to acquire developers heats up, most — if not all — programming jobs will become remote.

3. Income

One of the biggest problems of a job that people love is that they pay little. That is where the phrase “starving artist” comes from. Why should anyone pay you a ton for a job that you wouldn’t mind doing for free?

On the flip side, most high paying jobs are mind-numbingly boring — the more boring a job, the more they have to pay you to do it.

But programming is an outlier.

When I graduated from college in 2012, the median salary for a programmer in US was $84,200. Today the median salary for a programmer is $101,790.

And that is expected to rise every single year, as technology eats up bigger portion of the economy.

4. Security

Most of the jobs that exist today will be automated in the near future. AI revolution is coming.

A study by McKinsey Global Institute predicts that by 2030, as many as 800 million jobs could be lost worldwide to automation. In the US alone, between 39 and 73 million jobs stand to be automated — making up around a third of the total workforce.

But if you are a programmer you needn’t worry. That is why the BLS projects the software development field will grow by about 31 percent by 2026 in US, with 255,400 jobs added by that time.

5. The Last Meritocracy

Here’s the secret to success in most corporate jobs: “kiss your immediate manager’s ass without making it obvious”.

This is true in most jobs but not programming — at least not as much.

Because unlike most other professions, your effort and skill is easily measurable in programming. One can simply look over your code to understand your effectiveness.

In jobs where the value of your effort is not measurable the main factor that will dictate your career trajectory is what you immediate manager thinks of you. “Kissing ass” is not just optional, but a requirement if you want to get ahead in these fields.

As programmer, your impact is clear. Your value is evident in the code that you write. If you are a good coder, you know it. Your coworkers know it. Your managers know it.

In short, you career as a programmer will be dictated by your programming skills, not your schmoozing skills.

6. Anyone can do it

There is a myth spread by programmers that “It takes a certain type of mind to learn programming, and not everyone can do it.”.

That is just plain wrong.

Anyone can be a programmer. If you can learn to use spreadsheets, you can learn to code. Consider how readily Alan Kay introduces children to programming.

Coding is a skill like any other. Like language learning, there’s grammar and vocabulary to acquire. Like math, there are processes to work through specific types of problems. Like all kinds of craftsmanship and art-making, there are best practices that people have developed over time.

However it is also true that anyone cannot become a “great programmer”. But this is true in every single field. Anyone can learn to play basketball, but anyone cannot play basketball like LeBron James.

To become the best of the best requires an innate level of talent, aptitude and understanding that 90% of software developers will never acquire.

But that is fine. You don’t need to be the best to do most programming jobs. Most coding jobs require you to do simple tasks that require basic logic and reasoning skills.

It is becoming increasingly easy to find a job that you can be competent with just 6–12 months of education.

And learning does not need to cost you your entire life savings or acquire crippling debt.

7. Learn for free

The average cost of college keeps increasing each year. College Board estimates the following budgets for undergraduate education in 2017/18:

$101,160 (in-state students at a four-year public college)

$163,760 (out-of-state students at a four-year public college)

$203,600 (private non-profit four-year college)

People come out of these institutions with a degree that is worth less than the paper it is printed on.

But it doesn’t have to be that way.

You can learn everything you need to get a job as a programmer for FREE.

According to Stack Overflow Developer Survey, over a quarter of programmers do not have a college degree. It is not that rare to find accomplished professional developers who have not completed a degree.

If your goal is to get a job, then university is not the answer. The hottest job in the world does not require a college degree.

There are plenty of free online courses, tools and mobile apps that teach you coding.

If you like the structured format of classrooms there are bootcamps all across the country. They even have bootcamps that only require payment after they have helped you find a job.

They are so confident that you will get a job, that they don’t ask for money upfront. Can you imagine any university working this way?

8. Work in any industry

Want to work in health care? Manufacturing? Hospitality?

Want to work for an exciting start up?

Or maybe you just want to help single people find their soulmate?

Teach people meditation? Music? New language?

Whatever you want to do, you can do it with programming. Technology is the building block of almost every single enterprise in the world today.

Once you become a proficient programmer, you can choose to work in almost any industry that you find interesting. Programming opens up more opportunities than any other job.

9. Become a better thinker

Steve Jobs famously said, “Everybody in this country should learn to program a computer, because it teaches you how to think”.

If there is one thing that can improve the world today it is — better thinkers: People who can use reason and logic to come to reasonable conclusions.

A programmer uses logic to analyze and solve problems in a systematic manner. Doing this over and over all day long will create a better mind. A mind suitable to navigate the complexities of modern world.

10. Creative Freedom

As a programmer there is nothing limiting you other than your creativity.

Have an idea? Turn it into an app and publish it out to the world without asking anyone’s permission.

Facebook was started in a dorm room. Everyday programmers think up of interesting new apps that make our lives easier.

A programmer can sit down in front of a computer and create wealth. A good piece of software is, in itself, a valuable thing. There is no manufacturing to confuse the issue. Those characters you type are a complete, finished product.