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.
> 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 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.
> ...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.
> 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.
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. 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.
> 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.
"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.