Why is "passion" such a driving-force for our generation? We keep hearing this word, and we keep applying it to the context of jobs. The more we talk about it, the more people get bogged down by the two not intersecting.
Let's agree to disagree and say "some people have passion, some people don't. If passion and job intersect, that's dandy. Either should be okay, just pay the bills and live your life the way you want.
The word has definitely been abused. Employers use it to mean work 80 hours a week. That's not what I meant.
I meant what I said in the post; you really like doing it and have a lot of interest in it. I couldn't think of a better word for that, or I would have used it.
Most people do work in jobs they don't have any passion for and I think that's fine, but some fields are really hard to do well at without that extra level of enjoyment. More extreme than programming would be music. Pursuing a career in music without passion would be truly horrific, as it is so hard to build a career in that field.
Because "passion" justifies paying you less and making you work weekends. Just as "changing the world" justifies not getting paid because the startup is having financial trouble.
You can get interested in anything, you put your mind to it. Passion isn't some intrinsic thing like talent or good looks. It can be fanned into flame by enthusiasm and hard work.
Articles like this seem to be promoting the Cognitive dissonance that most developers hold. Namely: 1. I need to be always learning about programming, even on my spare time! 2. Work/life balance is important.
"Imagine a doctor who doesn’t actually like helping people with their health problems. Or an automotive engineer who actually thinks cars are stupid and boring."
Lots of doctors and automotive engineers just do their job and then come home, in fact most employees don't come home and continue to work on semi work related things on their spare time. My wife is a civil engineer and yet she doesn't build a 1/16 scale bridge in our basement when she comes home. Does that make her a bad civil engineer?
"If you aren’t passionate about programming I don’t think you should become a coder."
"... lifetime of constantly learning and working in your spare time ... to keep your skillset fresh and relevant."
I have asked a few programmers I know what makes a successful programmer and I have always gotten the answer of "passion". But what even is passion? Maybe they are super passionate about VB and FactoryFactoryObservers? Is that good passion? Okay our field changes a lot. but then shouldn't seek the ability and willingness to learn rather then some vague 'passion'. Employers should also set up our teams in such a way that learning is encouraged. (Work Time + Money for conferences/continuing education.)
Edit: Changed the first cognitive dissonance to include the term programming as that was my implied but not stated meaning.
> I need to be always learning, even on my spare time!
You should always be learning even in your spare time. Maybe not always about programming but about something.
If you don't then you've relegated yourself to walking around like a robot repeating the same things you do every day not ever thinking about your actions.
Right now I have a huge facination with machining/metal working. I can't own any gear for doing such stuff but I wish I could and I devote a larger amount of my time to learning about machining just because I find it interesting. If I could get into, and start working at a, shop near me I'd be very happy with it as a hobby but I have no intention of being a machinist.
Why would I spend so much time learning about machining then? I enjoy it and it's something I've never seen. It has nothing to do with my programming ability and I'll never need the information in a practical sense but learning about it bings a sort of happiness to my life.
Learning is one of the few things that keeps us human. Always exploring ideas, possibilities, and how to solve problems even if they aren't directly applicable to us. When we stop doing that we just turn into vegtables in my opinion.
I meant coming home from your job and continuing to work on your job in some form or something that directly relates to your job. Because that strikes me as indicative of deeper issues. Does your job not give you enough time to finish projects? Does your job not give you enough time to stay up to date in your field? Do you constantly feel like an impostor?
I have no quarrels with someone having side projects. But those side projects shouldn't be fueled by some existential dread related to one's job or position.
I have corrected the language to be more specific.
> But those side projects shouldn't be fueled by some existential dread related to one's job or position.
If you're looking at it like that then you're not going to have any interest in programming after work. If you look at it like "I am a tradesman and I can either pay someone to do this for me or I can just take a few minute and hack together solutions for myself then I can save time and money".
I write a lot of software for my own tasks to automate things I need to do like recently I made a remote Steam Streaming machine so I can finally fully migrate to linux and to do so I needed to write a control service on my machine and write a daemond that listens for a packet to run a `shutdown /h` on the windows machine. It was a bit of programming but it wasn't "existential dread" and it definetly wasn't in some attempt to bettering myself as an employee. It was because I wanted a product that doesn't exist so I made it and I think more software developers should be interested in that. Not for work reasons but because making things is cool and we live in a time where people are happy to give you perfectly good hardware that they think is "garbage" because it's 1 version out of date. This is the perfect time for the engineer to live, and not just the Civil or Software but any engineer.
> ...indicative of deeper issues. Does your job not give you enough time to finish projects? Does your job not give you enough time to stay up to date in your field? Do you constantly feel like an impostor?
You are confusing 3 completely different issues and not accounting the enjoyment of learning new things.
This is exactly what I believe passion is. Passion isn't something that's 'vague' or that you have to search for. It's the simple joy of doing some activity or learning something related to that activity. No joy, no passion.
> You should always be learning even in your spare time. Maybe not always about programming but about something.
Actually, one of the most important things I learned 'the hard way', is that you should actually 'learn not to learn' (i.e. really rest), and let go of any anxieties that may urge you to 'always be learning'.
This insight improved my joy in life and tech, and also my focus and productivity, by much more then an approach of anxiously trying to be learning all the time.
Maybe for others things work differently, but generalizing into 'everyone should always be learning' seems too strong a claim to me.
Well the alternative is that you narrow your knowladge to a small problem domain which sounds horrible for
1) your own mind,
2) your ability to talk to people who work outside of your problem domain, and
3) your ability to think outside of the "box" that is held by your field.
How is the alternative to always learning narrowing your knowledge to a small problem domain? It's not. The alternative is... taking a rest every once in a while.
Learning isn't a tedious process. It can be as simple as saying "hey, how does that work" or "what are you doing" to someone working. I think talking to people, or thinking through how things work is relaxing.
Also there is no reason why you can't rest. We dedicate ~8hr/day of our lives to resting. We also get full days on weekends. We also get about 7-12hr/day for doing whatever we want while awake.
In those 7-12hr you can sit and stare into the idiot box and laugh when the talking heads tell you to laugh or you can read a book, go out side, think about "how would I make X", prototype some code for doing something, talk to some people who are professionals in a craft and ask "how do you build X".
I think one is way more fun then the other.
Now don't get me wrong, I watch a lot of TV but most of the TV I watch is "What If". I like science fiction stuff and a lot of it is some social commentary put into a setting that makes it ok to talk about or even asking moral questions that are different all together. Thinking about those dilemas falls under the classification of "learning". This isn't technical knowladge but instead social.
>In those 7-12hr you can sit and stare into the idiot box and laugh when the talking heads tell you to laugh...
>I watch a lot of TV but most of the TV I watch is "What If"
You can watch TV and be an idiot or you can watch the kind of TV I approve of and as such become a better human being.
I mean if you broaden the definition of learning to include watching sci-fi and pondering whatever social commentary you read into the script then great. I'm going to go learn super hard.
I don't think it is passion that makes a developer successful. I've always found it to be two things: give a shit and critical thinking. Too many devs are lazy and just want to be done, play whack-a-mole. Others take a "I'm just doing what I'm told" approach. I want to add value, even if I am not passionate about the value I am adding. When you take time to understand the problem and think out how best to solve it (including things like time and money) and then give a shit enough to solve it in the best way you can, you will always add value and when you are always adding value, you will be content, happy and feel pride in your accomplishments.
> Lots of doctors and automotive engineers just do their job and then come home, in fact most employees don't come home and continue to work on semi work related things on their spare time.
And perhaps they chose the wrong profession. Perhaps they come home and think to themselves "gee, I wonder how my life would have been if I chose art school like I wished instead of engineering like my parents encouraged me.". Ideally people should work on jobs they (at least tangentially) enjoy.
> But what even is passion?
Enjoying what you do. A constant eagerness to experiment, learn, and build something. Passionate people will always be ahead of their peers. Because learning or practicing that activity makes them happy they are more inclined to spend their time honing their skills. And they spend their time practicing that activity not because of some "existential dread related to one's job or position", but precisely the opposite: they enjoy doing it.
I believe encouraging people to pursue carriers in domains they enjoy is a general good advice. The article touches on programming specifically because there is a current trend / hype to push people toward programming.
>Lots of doctors and automotive engineers just do their job and then come home, in fact most employees don't come home and continue to work on semi work related things on their spare time. My wife is a civil engineer and yet she doesn't build a 1/16 scale bridge in our basement when she comes home. Does that make her a bad civil engineer?
Perhaps not the best example you could have chosen: Physicians and licensed engineers do have mandatory continuing education requirements that more or less require them to be learning for a lifetime.
That's part of the tradeoff for software development not being a licensed and regulated profession. (The other half of the tradeoff being that anyone, regardless of education or credentials, can be a software developer.) You can't have your cake and eat it too.
In our modern economy, lots of people do things they aren't passionate about in order to live a life of relative freedom. You happened to find success programming, but that doesn't mean I'll find success writing music (or whatever else my real passion may be).
It's a tool just like any toolset. You don't need an undying passion for mechanics fueled by a thousand suns to use and understand a torque wrench. The allure around this job is invented and idealized in too many cases for it to be genuine to me. It has too many ordinary and mundane problems shared with other industries (i.e. social) to be a special industry. If it were really special, people would be tripping over themselves to get out of your way and see what you build or do next. Some people get to this level but the vast majority don't. Compare to being an astronaut.
There's also no tragedy in being a doctor that just wants to do a good job. Not every case is going to be an interesting medical mystery. In fact, it's probably gotten more frustrating as people suddenly start trusting internet articles and you have to endlessly urge caution and explain anything they've got wrong.
I just spent several hours debugging a nasty npm / shrinkwrap dependency clusterf* across multiple repos and I don't think passion has any bearing on my state of mind right now.
Passions don't necessarily have to be ingrained from birth. Plenty of people get into something for one reason or another and gradually build their passion
The problem with focusing on passion as a driving force is that it reverses the direction of how professional "passion" is often developed - through experience. I can't find the source now[0] but I recall reading about research investigating professional passion in college administrators. It found that passion was directly related to work years. In other words, experience and advanced skills bred more confidence and passion over time.
The other problem with making passion a mandatory requirement is that it's selfish. Passion has nothing to do with providing value, which is largely what yields professional success. Most people are passionate about their fun hobbies, but that doesn't mean they should pursue them professionally. If an employee isn't passionate about coding but gets the job done, then what's the problem?
Interesting notion.i can certainly see that applying to me.
I'm a digital marketer and I love love love going deep on analytics, attribution, etc. as a part of that. However I wasn't even aware of half that stuff when I was first starting out.
Professional experience led to greater and deeper exposure of new areas of the discipline that were way more interesting to me than the fundamentals that first got me interested. I now engage in discussions on those topics with other professionals in my spare time because it interests me beyond my job.
> If, like me, you have no interest in managing other people and want to just do coding for your career, then you’re eventually going to hit a ceiling in any organization
I can't think of one job where you won't hit a ceiling if you don't want to manage people.
This is a fair point. My thought was that some careers have a higher ceiling at least in terms of pay. Very quickly in programming you hit a point where you have to manage a team or manage projects or manage entire departments in order to get any more big raises. But you might be right that this is true for 90% of careers.
As long as there is a market where <SOMEBODY> pays a regular recurring paycheck for <ACTIVITY>, that <ACTIVITY> will attract people who are not particularly passionate about the job. This is ok.
That activity is different from <SPECULATIVE WORK> without a steady paycheck such as writing novels, composing a song, and painting original art. Those fields absolutely require passion because of the constant rejections and overwhelming odds that your work will not be a "hit."
Programming work is a very wide field that encompasses both maintenance work and the artistic work. The jobs that are mostly maintenance work can attract people who are competent but not necessarily passionate. They're not going to wake up in the morning and get excited about moving a zip code field 1 pixel on a shopping cart form. But they compartmentalize that 8 hours of that programming that companies need and then go home to play with their kids. The essay ignores that scenario which is probably the vast majority of programming jobs.
"If you are pursuing programming to become wealthy, you’d be better off pursuing a career in management"
This is hopefully false for interesting companies, otherwise, just flee! If you are working for an organization that does not value senior software engineers, this organization is just crap.
It depends on what is meant by "wealthy" really. Plenty of non-manager technical staff in the bay area can become financially well enough off to be considered wealthy, given enough time and judicious allocation of their savings. There are very few programmers outside high-paying tech hot-spots like SF who will ever be wealthy without moving into management.
There are other factors to consider though. Generally speaking in most instances, even the interesting companies, management is going to be a faster, more reliable path to wealth. My observations lead me to conclude that:
1. Most technical staff is generally considered fungible by management, even at interesting companies, so layoffs can and do tend to impact non-management harder and more frequently, and this impacts long-term earnings.
2. Even at interesting companies management is generally compensated better in terms of salary, bonuses and (as management level rises) bonuses and stock grants. This generally isn't just a few percentage points difference in the pay, either: in most places outside those high-paying hotspots managers tend to be paid wages that are much closer to SV wages than programmers will ever see, so the difference is even greater there.
I agree completely. I became a pro dev 31 years ago when I had passion, and while I don't regret my career choice, my passion has waned, especially for dev (coding ways & means). I could never have survived this long in this business without passion in what I do -- even if it's no longer a passion for programming.
I've also witnessed most/all of the points David offered, esp the ceiling in job growth and the tiresomeness of learning the latest fashion in coding that does the same old thing, just in a more complicated way.
My own solution has been to turn away from development as an end unto itself and to get more involved in the problem space du jour (social network analysis, data mining, image analysis, medical biomarker resolution, etc). This doesn't address either of the woes I echoed, but at least it motivates me better than fantasizing about category theory while I feed yet another database while sitting in my cube.
The discourse on "passion" in the context of CS has gradually been poisoned by commercial interests.
It started as a way of describing great programmers. Those who are at the top of the field probably are very passionate about it. Once "the best programmers are passionate" became established as a common meme, it was co-opted as a hiring signal since everyone only wants to hire the best. In response, all job-seekers are now obligated to being passionate, because after all thats what the companies are looking for and why wouldn't a company choose a passionate candidate over one who's not? Not to mention "passionate" is now abused as a euphemism for "60 hours of work at 40 hours pay! lucky you!"
The truth is the same as always - the majority of people have no passion for their jobs. That means they won't be as motivated as someone who loves the job, but they can do a good job nonetheless. If you do love your job, count your blessings.
Passionate engineers can be a total drag to work with and lead. Imagine having to fight through squalls of passion in a business setting. "Passionate" has become in my mind another bullshit word that people use without understanding its meaning or implications.
In my experience, "passion" usually manifests itself as several hour-long discussions about trivia that have little to do with what's actually at stake.
I agree with you. My point was mostly that people should pursue fields that better fit with their own interests and enthusiasms, and that programming as a career is not a bed of roses and if you're going to go into it without passion you're gonna have a bad time.
Very few people are lucky enough to have their passions overlap with a career that's marketable.
What if your passion is woodworking? Making beautiful, detailed cabinets that sell for $16,000+ may sound profitable, but I took a class from a woodworker who did exactly that, and he said that the net pay after materials costs (which were less than $1000) came to about $7/hour. Passionate? Insanely so. Probably one of the best woodworkers on the planet; certainly top 100. Only reason he could afford to be a woodworker is that he was on disability and owned his home outright.
I know some passionate knitters. They would probably make about $3/hour, if they're lucky, selling their wares.
Renovating old cars? Maybe $8/hour.
Cooking? Opening a restaurant is a huge capital outlay, and 90% fail in the first year. Working at a restaurant can maybe get you $16/hour. At least we've gotten past starvation wages here.
Singing or other musical interests? Only the very top make a solid career out of it.
Many, many domains that people tend to be passionate about have a power-law distribution of money making. A few knitters make decent money by selling knitting books or videos; the rest do it just because they like it. The top musical stars make tons of money, and second tier stars can make a living, but you need the talent and luck to make it to the top.
A rather mediocre programmer with a couple of resume items courtesy FreeCodeCamp can make $25-40/hour, and then pursue their passion in their spare time. Top programmers make more, but for many people $40/hour is outside of their earning potential in any other field they're qualified for. For some people $25/hour is a serious pay raise at this point. So I totally wouldn't discourage them.
Well said, though one small difference is that no one will call you at 2AM to work on their car / wait on another table / etc. Dev work is potentially stressful in ways most jobs aren't, which isn't to say that it isn't also very well compensated, too. Personally I'm content to like what I do without having that rise to the level of passion - and I don't realistically expect more from my mail carrier, my mechanic, my waiter, or really even my doctor. I don't want them to hate what they do, but I don't have any illusions about them loving it so much they'd do even more of it if they only could. It's work.
People will call you at 2AM if you're a plumber. Or a doctor. Or a dentist. Or a locksmith.
And sometimes you'll get stuck waiting tables on XMas because the restaurant you work for requires it.
Yes, it varies by job. But 2AM calls are hardly unique to programming.
FWIW I really do want a doctor that's passionate about medicine, for the same reason that I want my lead developer to be passionate: If it's "just a job" they may not be following current best practices, which do change rather rapidly.
To be honest, I think the "GP" doctor's days are numbered. A registered nurse with a really good AI medical reference would likely to a better job than the 80th percentile of doctors, maybe even match the 99th percentile. There's too much information that isn't in any doctor's head, and a GP is basically a human expert system. A really good AI expert system would do a better job, and a solid nurse following the directions could handle the human part of the interaction.
Really? Okay; tell me, right now, about another field where I can make over $100K per year nearly ANYWHERE in the US, without additional formal education, in a working environment that gives me free breakfast, lunch and dinner, doesn't make me wear a uniform and actually pays me to learn new things.
I do think that many (most?) people would be able to learn to program to the point where they can make a good living, in an age where it's harder and harder to make a good living doing anything.
But I've been passionate, at least in some definitions, about programming since I was a young teen. Before that, even, if you count simple programming. Passionate may not be the right word, though. Obsessive might be better. Or driven. I can't not learn about programming.
But I try not to claim that everyone has to be passionate or obsessive or whatever. Yes, I am. And yes, I'm quite a good developer. But I've worked with and encountered plenty of people who get the job done and who clearly aren't passionate about code. And they're making a fine living at development.
Low-skill jobs are going away en masse over the next 50 years. Maybe new jobs will magically come in to replace them, but I don't think so. Not all of them; not this time.
And so discouraging people from learning to program may be discouraging them from learning the one skill they can pick up in a reasonable time frame that keeps them from collecting welfare while working at WalMart.
Everyone should write. Few become authors. It is the way of things. And programming will invade every corner of our essence. Much like this post, it is not the best, nor must it be for us to exchange information and better each other.
The real distortion in cs is the fact almost everyone needs a damn CS degree these days for mid-tier pay. Never mind needing to be under 30. (slight exaggeration to drive home the point)
That Modmaj article is not really a counterpoint to DM's article because Modmaj's focus is whether passion is required to acquire "skill" at programming.
David Matteson's essay is talking about passion as a prerequisite for programming jobs to help with "happiness" and life satisfaction.
My apologies. It's just that "counterpoint" was easier to type than "an article that examines similar but not perfectly analogous ideas from a differing point of view."
I drifted to a career in programming because I loved it. I used to do a lot of hacks and side-projects, but once in working life, I came to realize just how much legacy code bases I'm going to deal with. Nobody in general likes rewriting or fixing legacy code, but unlike others, I felt unable to enjoy the feeling of getting the legacy work done. As I worked more with legacy code, paying off the technical debt of others, I started having signs of burnout towards programming. I stopped doing side projects and even glimpsing code on the weekends felt bad.
Then I came across this career advice which suggested choosing a job which's struggles you love to solve. I realized that I loved the struggles of self-discipline to get the last 10% of a project done, the struggles of dealing with bad clients and the struggles of marketing and acquiring the first ones. I realized the programming required in professional software engineering was not the struggles I wanted to deal with.
Later on, I met a startup founder who had struggles with their company. The founder told that it seems like the end is near. Despite all the efforts throughout the years with many ups and downs, it seems like a single mistake took the venture down. It seems like the years were wasted on not becoming rich and successful, but then added that despite not becoming rich, she was happy with her life all the long way down. She told me that as long as I am comfortable with my life, I should not worry about the risks of running an unsuccessful company. Ultimately, a greater regret would be to push forward a life in which you don't find yourself happy in.
> These sorts of coders won’t have the deep knowledge to craft wild new algorithms for flash trading or neural networks. Why would they need to? That level of expertise is rarely necessary at a job.
I think the author greatly underestimates software complexity and future development in complexity. IT is not a narrowing field, where any task soon can be solved by slinging some javascript. I agree, that some tasks are simpler than others and don't require a full computer science degree, however software development still does require that you know wth you are doing. I do not want my bank software written by a guy who just finished a 6-month javascript course.
Passion is not really interesting. I'd rather hire someone who is skilled, easy to work with, and will get stuff done. I don't really need him to get hyped up on caffeine and write medium articles about how passionate he is; I'm paying him to do a job.
I also am not sure what to make of the Op's mention of starting to program at 10. I read my dad's copy of K&R and installed some Linux distribution at that age too, but I didn't make any real progress until I realized that it's just a job and started acting more like a professional.
"Looking for your passion, purpose, or calling is an example of the fixed mindset. You’re assuming that this is an inherent and unchanging thing inside of you, like trying to read your DNA or blood type. But you won’t find passion and purpose there, because that’s not where those feelings come from.
Passion and purpose are emotions that come after expertise and experience. The way to get them is to commit to the path of mastery, get great at something, and do great work."
I believe this is the worst advice ever. Passion is a really misunderstood concept. What does it mean to be passionate about something?
Does it mean enjoying doing something all the time? Well, that's just unhealthy.
Does it mean you have a skill in something you constantly improve? Everybody needs to start from zero.
Does it mean you work on your pet projects in your free time? This will likely change throughout your life.
Does it mean the field excites you? That is not a good reason to work on something - I'm really passionate about books, but I'm not a writer and don't think I will ever be(or will want to be).
The only real metric for passion is sticking with something for a long time and being happy about it. How the hell would you know it before you start? How would you even know it a few years in? People burnout all the time.
Saying that you have to be passionate about something is terrible. It discourages people from actually trying. It makes them question their motives. It makes them think if they should start doing something instead of actually trying to do it.
You don't need passion to be a decent developer. Hell, sometimes you'll hate your job and it's normal too. What you need is talent, by which I mean cognitive ability to learn field's concepts. You won't know if you have it unless you try.
Yes, people shouldn't get into programming just because they think it is a good career - there is a lot of stuff that will turn people off which code schools do not mention - lots of stress, cognitive load, sedentary lifestyle. It's not for everybody. But TRYING to get into field because it's a good career is as good a reason as any. Time will tell if you stick around.
I'd rather have a colleague who isn't passionate about programming, but passionate about helping the customer than the other way around. Though I'm not even sure what people mean when they say someone has to be "passionate". How do you measure this?
Perhaps it's just my perception, but I find we as Americans are very keen on this notion of being absolutely "passionate" about the career we choose. My mother had a much more practical outlook (maybe it had something to do with her immigrating to America as a refugee at the end of the Vietnam war): she said "very few people are actually in a field they love. It's common for people to completely change their careers several times over their lives. If you can find a job you don't hate and it pays well, great! That's better than what a lot of people have. If you can find a job that pays well and that you maybe even like from time to time, even better."
Don't get me wrong; I enjoy programming. But it's far from my #1 passion in life. It's what pays the bills. I don't do side-projects (at least as of right now).
I'm actually inclined to agree with the author to a certain degree: being passionate about programming will make you a better developer. The same could be said for any field though.
Also, to his last bullet point about needing to constantly be learning: I think a person could learn a long-living language (e.g. Java, C++, C#) and expect to have a decent career. Sure if you're aiming to work for startup X, you'll probably need to be hip to newest (and therefore supposedly "best") tech. Even though Java has been the butt of many jokes, it seems like there's always a need for Java engineers!
81 comments
[ 1.2 ms ] story [ 181 ms ] threadLet's agree to disagree and say "some people have passion, some people don't. If passion and job intersect, that's dandy. Either should be okay, just pay the bills and live your life the way you want.
I meant what I said in the post; you really like doing it and have a lot of interest in it. I couldn't think of a better word for that, or I would have used it.
Most people do work in jobs they don't have any passion for and I think that's fine, but some fields are really hard to do well at without that extra level of enjoyment. More extreme than programming would be music. Pursuing a career in music without passion would be truly horrific, as it is so hard to build a career in that field.
The idea of "passion" for programming might or might not have originated on the hiring side, but that side sure seems happy to run with it.
[EDIT: Not disagreeing with the original post, though. Just responding to the above comment about where this word comes from.]
"Imagine a doctor who doesn’t actually like helping people with their health problems. Or an automotive engineer who actually thinks cars are stupid and boring."
Lots of doctors and automotive engineers just do their job and then come home, in fact most employees don't come home and continue to work on semi work related things on their spare time. My wife is a civil engineer and yet she doesn't build a 1/16 scale bridge in our basement when she comes home. Does that make her a bad civil engineer?
"If you aren’t passionate about programming I don’t think you should become a coder."
"... lifetime of constantly learning and working in your spare time ... to keep your skillset fresh and relevant."
I have asked a few programmers I know what makes a successful programmer and I have always gotten the answer of "passion". But what even is passion? Maybe they are super passionate about VB and FactoryFactoryObservers? Is that good passion? Okay our field changes a lot. but then shouldn't seek the ability and willingness to learn rather then some vague 'passion'. Employers should also set up our teams in such a way that learning is encouraged. (Work Time + Money for conferences/continuing education.)
Edit: Changed the first cognitive dissonance to include the term programming as that was my implied but not stated meaning.
You should always be learning even in your spare time. Maybe not always about programming but about something.
If you don't then you've relegated yourself to walking around like a robot repeating the same things you do every day not ever thinking about your actions.
Right now I have a huge facination with machining/metal working. I can't own any gear for doing such stuff but I wish I could and I devote a larger amount of my time to learning about machining just because I find it interesting. If I could get into, and start working at a, shop near me I'd be very happy with it as a hobby but I have no intention of being a machinist.
Why would I spend so much time learning about machining then? I enjoy it and it's something I've never seen. It has nothing to do with my programming ability and I'll never need the information in a practical sense but learning about it bings a sort of happiness to my life.
Learning is one of the few things that keeps us human. Always exploring ideas, possibilities, and how to solve problems even if they aren't directly applicable to us. When we stop doing that we just turn into vegtables in my opinion.
I have no quarrels with someone having side projects. But those side projects shouldn't be fueled by some existential dread related to one's job or position.
I have corrected the language to be more specific.
If you're looking at it like that then you're not going to have any interest in programming after work. If you look at it like "I am a tradesman and I can either pay someone to do this for me or I can just take a few minute and hack together solutions for myself then I can save time and money".
I write a lot of software for my own tasks to automate things I need to do like recently I made a remote Steam Streaming machine so I can finally fully migrate to linux and to do so I needed to write a control service on my machine and write a daemond that listens for a packet to run a `shutdown /h` on the windows machine. It was a bit of programming but it wasn't "existential dread" and it definetly wasn't in some attempt to bettering myself as an employee. It was because I wanted a product that doesn't exist so I made it and I think more software developers should be interested in that. Not for work reasons but because making things is cool and we live in a time where people are happy to give you perfectly good hardware that they think is "garbage" because it's 1 version out of date. This is the perfect time for the engineer to live, and not just the Civil or Software but any engineer.
You are confusing 3 completely different issues and not accounting the enjoyment of learning new things.
This is exactly what I believe passion is. Passion isn't something that's 'vague' or that you have to search for. It's the simple joy of doing some activity or learning something related to that activity. No joy, no passion.
Actually, one of the most important things I learned 'the hard way', is that you should actually 'learn not to learn' (i.e. really rest), and let go of any anxieties that may urge you to 'always be learning'. This insight improved my joy in life and tech, and also my focus and productivity, by much more then an approach of anxiously trying to be learning all the time.
Maybe for others things work differently, but generalizing into 'everyone should always be learning' seems too strong a claim to me.
Also there is no reason why you can't rest. We dedicate ~8hr/day of our lives to resting. We also get full days on weekends. We also get about 7-12hr/day for doing whatever we want while awake.
In those 7-12hr you can sit and stare into the idiot box and laugh when the talking heads tell you to laugh or you can read a book, go out side, think about "how would I make X", prototype some code for doing something, talk to some people who are professionals in a craft and ask "how do you build X".
I think one is way more fun then the other.
Now don't get me wrong, I watch a lot of TV but most of the TV I watch is "What If". I like science fiction stuff and a lot of it is some social commentary put into a setting that makes it ok to talk about or even asking moral questions that are different all together. Thinking about those dilemas falls under the classification of "learning". This isn't technical knowladge but instead social.
>In those 7-12hr you can sit and stare into the idiot box and laugh when the talking heads tell you to laugh... >I watch a lot of TV but most of the TV I watch is "What If"
You can watch TV and be an idiot or you can watch the kind of TV I approve of and as such become a better human being.
I mean if you broaden the definition of learning to include watching sci-fi and pondering whatever social commentary you read into the script then great. I'm going to go learn super hard.
And perhaps they chose the wrong profession. Perhaps they come home and think to themselves "gee, I wonder how my life would have been if I chose art school like I wished instead of engineering like my parents encouraged me.". Ideally people should work on jobs they (at least tangentially) enjoy.
> But what even is passion?
Enjoying what you do. A constant eagerness to experiment, learn, and build something. Passionate people will always be ahead of their peers. Because learning or practicing that activity makes them happy they are more inclined to spend their time honing their skills. And they spend their time practicing that activity not because of some "existential dread related to one's job or position", but precisely the opposite: they enjoy doing it.
I believe encouraging people to pursue carriers in domains they enjoy is a general good advice. The article touches on programming specifically because there is a current trend / hype to push people toward programming.
Perhaps not the best example you could have chosen: Physicians and licensed engineers do have mandatory continuing education requirements that more or less require them to be learning for a lifetime.
There's also no tragedy in being a doctor that just wants to do a good job. Not every case is going to be an interesting medical mystery. In fact, it's probably gotten more frustrating as people suddenly start trusting internet articles and you have to endlessly urge caution and explain anything they've got wrong.
The other problem with making passion a mandatory requirement is that it's selfish. Passion has nothing to do with providing value, which is largely what yields professional success. Most people are passionate about their fun hobbies, but that doesn't mean they should pursue them professionally. If an employee isn't passionate about coding but gets the job done, then what's the problem?
[0] Study Hacks blog by Cal Newport, maybe?
I'm a digital marketer and I love love love going deep on analytics, attribution, etc. as a part of that. However I wasn't even aware of half that stuff when I was first starting out.
Professional experience led to greater and deeper exposure of new areas of the discipline that were way more interesting to me than the fundamentals that first got me interested. I now engage in discussions on those topics with other professionals in my spare time because it interests me beyond my job.
We need a better way to interview :)
I can't think of one job where you won't hit a ceiling if you don't want to manage people.
That activity is different from <SPECULATIVE WORK> without a steady paycheck such as writing novels, composing a song, and painting original art. Those fields absolutely require passion because of the constant rejections and overwhelming odds that your work will not be a "hit."
Programming work is a very wide field that encompasses both maintenance work and the artistic work. The jobs that are mostly maintenance work can attract people who are competent but not necessarily passionate. They're not going to wake up in the morning and get excited about moving a zip code field 1 pixel on a shopping cart form. But they compartmentalize that 8 hours of that programming that companies need and then go home to play with their kids. The essay ignores that scenario which is probably the vast majority of programming jobs.
This is hopefully false for interesting companies, otherwise, just flee! If you are working for an organization that does not value senior software engineers, this organization is just crap.
There are other factors to consider though. Generally speaking in most instances, even the interesting companies, management is going to be a faster, more reliable path to wealth. My observations lead me to conclude that:
1. Most technical staff is generally considered fungible by management, even at interesting companies, so layoffs can and do tend to impact non-management harder and more frequently, and this impacts long-term earnings.
2. Even at interesting companies management is generally compensated better in terms of salary, bonuses and (as management level rises) bonuses and stock grants. This generally isn't just a few percentage points difference in the pay, either: in most places outside those high-paying hotspots managers tend to be paid wages that are much closer to SV wages than programmers will ever see, so the difference is even greater there.
I've also witnessed most/all of the points David offered, esp the ceiling in job growth and the tiresomeness of learning the latest fashion in coding that does the same old thing, just in a more complicated way.
My own solution has been to turn away from development as an end unto itself and to get more involved in the problem space du jour (social network analysis, data mining, image analysis, medical biomarker resolution, etc). This doesn't address either of the woes I echoed, but at least it motivates me better than fantasizing about category theory while I feed yet another database while sitting in my cube.
It started as a way of describing great programmers. Those who are at the top of the field probably are very passionate about it. Once "the best programmers are passionate" became established as a common meme, it was co-opted as a hiring signal since everyone only wants to hire the best. In response, all job-seekers are now obligated to being passionate, because after all thats what the companies are looking for and why wouldn't a company choose a passionate candidate over one who's not? Not to mention "passionate" is now abused as a euphemism for "60 hours of work at 40 hours pay! lucky you!"
The truth is the same as always - the majority of people have no passion for their jobs. That means they won't be as motivated as someone who loves the job, but they can do a good job nonetheless. If you do love your job, count your blessings.
Very frustrating.
Very few people are lucky enough to have their passions overlap with a career that's marketable.
What if your passion is woodworking? Making beautiful, detailed cabinets that sell for $16,000+ may sound profitable, but I took a class from a woodworker who did exactly that, and he said that the net pay after materials costs (which were less than $1000) came to about $7/hour. Passionate? Insanely so. Probably one of the best woodworkers on the planet; certainly top 100. Only reason he could afford to be a woodworker is that he was on disability and owned his home outright.
I know some passionate knitters. They would probably make about $3/hour, if they're lucky, selling their wares.
Renovating old cars? Maybe $8/hour.
Cooking? Opening a restaurant is a huge capital outlay, and 90% fail in the first year. Working at a restaurant can maybe get you $16/hour. At least we've gotten past starvation wages here.
Singing or other musical interests? Only the very top make a solid career out of it.
Many, many domains that people tend to be passionate about have a power-law distribution of money making. A few knitters make decent money by selling knitting books or videos; the rest do it just because they like it. The top musical stars make tons of money, and second tier stars can make a living, but you need the talent and luck to make it to the top.
A rather mediocre programmer with a couple of resume items courtesy FreeCodeCamp can make $25-40/hour, and then pursue their passion in their spare time. Top programmers make more, but for many people $40/hour is outside of their earning potential in any other field they're qualified for. For some people $25/hour is a serious pay raise at this point. So I totally wouldn't discourage them.
And sometimes you'll get stuck waiting tables on XMas because the restaurant you work for requires it.
Yes, it varies by job. But 2AM calls are hardly unique to programming.
FWIW I really do want a doctor that's passionate about medicine, for the same reason that I want my lead developer to be passionate: If it's "just a job" they may not be following current best practices, which do change rather rapidly.
To be honest, I think the "GP" doctor's days are numbered. A registered nurse with a really good AI medical reference would likely to a better job than the 80th percentile of doctors, maybe even match the 99th percentile. There's too much information that isn't in any doctor's head, and a GP is basically a human expert system. A really good AI expert system would do a better job, and a solid nurse following the directions could handle the human part of the interaction.
I do think that many (most?) people would be able to learn to program to the point where they can make a good living, in an age where it's harder and harder to make a good living doing anything.
But I've been passionate, at least in some definitions, about programming since I was a young teen. Before that, even, if you count simple programming. Passionate may not be the right word, though. Obsessive might be better. Or driven. I can't not learn about programming.
But I try not to claim that everyone has to be passionate or obsessive or whatever. Yes, I am. And yes, I'm quite a good developer. But I've worked with and encountered plenty of people who get the job done and who clearly aren't passionate about code. And they're making a fine living at development.
Low-skill jobs are going away en masse over the next 50 years. Maybe new jobs will magically come in to replace them, but I don't think so. Not all of them; not this time.
And so discouraging people from learning to program may be discouraging them from learning the one skill they can pick up in a reasonable time frame that keeps them from collecting welfare while working at WalMart.
Everyone should write. Few become authors. It is the way of things. And programming will invade every corner of our essence. Much like this post, it is not the best, nor must it be for us to exchange information and better each other.
The real distortion in cs is the fact almost everyone needs a damn CS degree these days for mid-tier pay. Never mind needing to be under 30. (slight exaggeration to drive home the point)
https://medium.com/@WordcorpGlobal/programming-doesnt-requir...
David Matteson's essay is talking about passion as a prerequisite for programming jobs to help with "happiness" and life satisfaction.
Then I came across this career advice which suggested choosing a job which's struggles you love to solve. I realized that I loved the struggles of self-discipline to get the last 10% of a project done, the struggles of dealing with bad clients and the struggles of marketing and acquiring the first ones. I realized the programming required in professional software engineering was not the struggles I wanted to deal with.
Later on, I met a startup founder who had struggles with their company. The founder told that it seems like the end is near. Despite all the efforts throughout the years with many ups and downs, it seems like a single mistake took the venture down. It seems like the years were wasted on not becoming rich and successful, but then added that despite not becoming rich, she was happy with her life all the long way down. She told me that as long as I am comfortable with my life, I should not worry about the risks of running an unsuccessful company. Ultimately, a greater regret would be to push forward a life in which you don't find yourself happy in.
Would I go back to be employed, I'd go after a product role.
I think the author greatly underestimates software complexity and future development in complexity. IT is not a narrowing field, where any task soon can be solved by slinging some javascript. I agree, that some tasks are simpler than others and don't require a full computer science degree, however software development still does require that you know wth you are doing. I do not want my bank software written by a guy who just finished a 6-month javascript course.
I also am not sure what to make of the Op's mention of starting to program at 10. I read my dad's copy of K&R and installed some Linux distribution at that age too, but I didn't make any real progress until I realized that it's just a job and started acting more like a professional.
Passion and purpose are emotions that come after expertise and experience. The way to get them is to commit to the path of mastery, get great at something, and do great work."
From https://sivers.org/career
Does it mean enjoying doing something all the time? Well, that's just unhealthy.
Does it mean you have a skill in something you constantly improve? Everybody needs to start from zero.
Does it mean you work on your pet projects in your free time? This will likely change throughout your life.
Does it mean the field excites you? That is not a good reason to work on something - I'm really passionate about books, but I'm not a writer and don't think I will ever be(or will want to be).
The only real metric for passion is sticking with something for a long time and being happy about it. How the hell would you know it before you start? How would you even know it a few years in? People burnout all the time.
Saying that you have to be passionate about something is terrible. It discourages people from actually trying. It makes them question their motives. It makes them think if they should start doing something instead of actually trying to do it.
You don't need passion to be a decent developer. Hell, sometimes you'll hate your job and it's normal too. What you need is talent, by which I mean cognitive ability to learn field's concepts. You won't know if you have it unless you try.
Yes, people shouldn't get into programming just because they think it is a good career - there is a lot of stuff that will turn people off which code schools do not mention - lots of stress, cognitive load, sedentary lifestyle. It's not for everybody. But TRYING to get into field because it's a good career is as good a reason as any. Time will tell if you stick around.
Don't get me wrong; I enjoy programming. But it's far from my #1 passion in life. It's what pays the bills. I don't do side-projects (at least as of right now).
I'm actually inclined to agree with the author to a certain degree: being passionate about programming will make you a better developer. The same could be said for any field though.
Also, to his last bullet point about needing to constantly be learning: I think a person could learn a long-living language (e.g. Java, C++, C#) and expect to have a decent career. Sure if you're aiming to work for startup X, you'll probably need to be hip to newest (and therefore supposedly "best") tech. Even though Java has been the butt of many jokes, it seems like there's always a need for Java engineers!