One thing specific to programmers is the ability to whip up a little program to help people. Someone spends an hour every day retyping lower-case data in uppercase? Take ten seconds and write them a program. Someone complains how they always forget to shut down their computer and waste electricity? Write them a widget to shut it down at 1am each night.
When I take a bit of time to write programs for people I care about, people are usually very grateful and vastly overestimate the difficulty of whatever I just did. As always, relevant xkcd: https://xkcd.com/1425/
Jobs that have been around a lot longer, like construction or accounting, allow you to just leave your work when you go home.
In that way I think developers face a unique challenge. We all know how prevalent burn out is in the industry, it's tough making sure relationships don't burn out as well.
Thanks for the feedback!
And this is problem with our industry. I have friends that are mechanical or electrical engineers, very good ones, and they do not spend their non-working hours doing engineering. If their work requires them to learn something new, their employers actually give them the time and money to learn that skill, rather than just expecting them to learn it in their spare time.
When I first came into software 16 years ago, I did do a lot of "programming for fun" in my off hours, but I also came into the industry with no formal education in software engineering. Once I got out of the start-up world about 10 years ago, I discovered that my employers would allow me keep up with industry trends on company time, and while I still may hack a bit on things outside of work if something interesting intrigues me, I generally avoid doing any programming in my off hours and instead investment my time in other things.
Lol no. If I'm coding it's not free time, and if I'm coding to learn it's professional development, not recreation. "Coding is a lifestyle" is such a scam.
Have you ever just wanted to write a web scraper in a new language to see how it is different from your usual?
Never coded a small video game?
Why are you a programmer then?
What about an accountant? Ever quiz them or deride them for not going out of their way to balance budgets and crunch numbers for family & friends?
Why is programming this anomaly to people where there's a necessity for you to want to spend your personal hours doing what you do for 40 hours a week (or more for many) professionally? If you don't make your life entirely centered around your career you're obviously not a real programmer despite many people having lives outside their career still being extremely talented and successful.
I think it's a lie we tell ourselves and perpetuate. People who sold their lives to programming expect to surround themselves with others who've done the same. You end up on the hiring side of an interview and you want the candidates to have a portfolio of personal projects to show off because that's what shows dedication. I get along best with the coworkers I have that have a wide variety of interests because they're not a bore to talk to and get a beer with. Jobs in the middle of nowhere are far more tolerable with those who you can stand to be cramped in a room with for two weeks rather than the guy who can only relate with RocketLeague anecdotes.
We need to recognize that programming is a creative craft and the norm for those is to do it as a hobby.
Most musicians, including "professional" ones, play for fun as well. As do dancers, poets, writers, artists, etc.
Do you think most academics leave "work," go home and never think about their research again?
I have no problem with people who somehow decided to program despite not enjoying it enough to do it in their free time. But they shouldn't attack those of us who do for daring to spend our free time in a pleasurable way. And they should accept that there's a simple reality that those of us who enjoy it are going to spend more time at it and thus level up more quickly.
These make no sense. There's a huge, huge difference between building an addition to your house and building additions on all your friends' houses. I like to do all the maintenance on my own car, and I'll do it on my spouse's car, but I'm not about to volunteer to do maintenance on all my friends' cars too unless they're having a real hardship and need a little help to get out of a bind. I may know how to work on cars, but that doesn't mean I have infinite time to help everyone I know with theirs; there's other stuff I'd like to do with my spare time. If a carpenter has no interest in doing any carpenter-ing on his own personal house, that doesn't sound like a top-notch carpenter to me. I knew a guy not too long ago who was a carpenter/woodworker, and he absolutely did have a bunch of stuff in his house that he had made himself.
For an accountant, I would really hope that a decent accountant would want to do a great job balancing their own personal household budget for their family. If you're an accountant but you can't manage your own family's finances, then I wouldn't want to hire you. But that again doesn't mean you have infinite time to balance budgets for all your friends and extended family.
If a guy is a plumber but then calls another plumber when he has a leaky pipe, instead of just fixing it himself, what does that say about his professional abilities? If someone is an auto mechanic but doesn't even do his own auto maintenance and repair, what does that say about his abilities?
If someone is a professional and passionate about their career and work, then I absolutely do expect them to carry that into their off-hours to some extent. I would not expect them, however, to spend all their free time doing free work for all the people in their life. But I absolutely do expect them to make use of their skills for themselves and their own household. I'll make an exception for dentists, however (just for themselves).
We should really make an effort to try to accommodate the people in the programming profession who do not want to spend their free time coding on projects. Programming is very, very enjoyable (to me), but I have a family with which I want to spend as much time as possible. Do I want to write a web-scraper in rust in my free time? Sure it sounds like a nice exercise. Would I rather spend that time with my kids? Yes.
That stuff can be as fulfilling as cleaning the house/having sex/shooting guns/dancing but it's only happening on company time-- Especially when the terms of my contract essentially give my company ownership of anything I write. Also, 8-12h per day of any one activity is enough
I don't usually "code for fun". Sure, I like the feeling of accomplishing a task or solving a problem, but overall I don't generally enjoy programming enough that I would want to try something just "to see how it is different from your usual". I won't say I never write small programs or try new techniques; that's an exaggeration.
I call this job my "bronze handcuffs": other jobs pay substantially less, are more physically dangerous, and are more susceptible to being consumed by automation. So it makes sense to keep doing what I'm doing.
I also suspect many academic professions fall into this trap as well: mathematician, physicist, etc.
As a developer myself, I don't think this particular aspect is unique, instead I think it's a matter of perspective and what we value in life.
For example, many individuals if they see someone reading a phone as they're walking may look unfavourably upon them thinking something like "people glued to their phones, bleargh". However, if the same individual was walking reading a paper book instead, many would simply shrug it off as "that person is a studious individual / bookworm".
Well, if I'm an artist, there's probably not a clear line between "work" and "hobby" unless you are regularly commissioned to create specific works (and even then, unless you're painting portraits, you probably have some freedom in your choices). Photography might be an edge case, as you may do journalism by day and some form of art photography by night.
I suspect, however, that other engineers (mechanical, electrical, chemical, etc) don't have to spend their evenings doing engineering work to stay sharp.
This hit me hard. Feels like the years have just slipped on by since I graduated university.
Not particularly sure how to stop it though...maybe a few more years and I can just take a few months off and travel or something?
I would suggest to find a hobby that involves other people.
I've been hired by a few friends-of-friends to build automation and although the coding and electrical is done at my little workstation there's a local maker group that I like to share my works with.
I always recommend picking up a hobby that has tangible products. Gaming and Reading are all mind exercises. Doing something with your hands helps work the body and when you've worked at something for long enough its much more visual for how you've honed your craft. Its a different type of reward than coding is. I don't know if I can describe the feeling it gives but it's different somehow, and it's a good feeling to look down upon a physical creation with pride.
Music is also a group activity. Have you never heard of a "band" (or "garage band")?
There's also cooking clubs on Meetup.com.
What exactly is your idea of a hobby that involves other people?
Hiking by yourself is glorious.
Two hours if sweating put your mind in a very different state.
Music is good as well. Anything that starts up other brain areas than "watching" and "reading".
If it can make you feel better, I don't think that's related to development as much as "getting a job and growing up". Most people feel the same, which is why the "school reunion" trope is a staple of modern cinematography.
How about, say, a month from now, take 3 weeks off to go somewhere you haven't been, or go be with your family. Or maybe next week, take Monday off, or maybe Thursday and Friday and just have a nice quiet weekend away from the computer. You don't need to be able to take a bunch of months off in order to get some quality down time in. Don't let great be the enemy of good. Sure it may be great to take a few months off at a time, but it's good to take a couple days or weeks off here and there.
I wonder what that fifth of my brain would have been thinking about for the past 10 years, if not programming. Maybe it would have been dancing, or painting, or soccer. Instead of context switching into thinking like a computer, it'd be how to move my body around or how to meld colors together. I feel like that would lead to a much more fulfilling life.
I used to program for fun in middle school. It was probably halfway through high school when I stopped programming for fun. It was always that little nagging voice in the back of my head: Play it safe. Programming is an in-demand field! You're good at it! Look at all of that awesome shit you made.
At this point, the only "hobby" I have is programming. I don't even know what else I like anymore.
Well, that's on you, but the good news is that you can change that as soon as you want. Why not start today?
For me that is writing poetry and making music for myself, which I randomly stumbled upon after having had so many other hobbies in the past besides programming
- sports is an obvious one. Bonus points for team sports where you'll get a different community / social circle for free
- as others suggested music is great way of playfully easing into different activities. A fun start would be Melodics ( https://melodics.com ). If you'd like to keep it close to programming take a look at Max/MSP. Play around with a software synth, or get a hardware one like Korg's entry level offerings. If you'd like to move up to advanced levels, take a look at Ableton Live + Push, which is a very play- AND powerful way of learning a DAW.
I’m speaking to myself, BTW. I have spent a good portion of my life of explaining it to others and questioning it myself. I started programming in the 80’s though, and I had to fight through a wall of people with the mindset that computers were inherently “evil” and treated with high suspicion because they were not commonly understood. Yes, I grew up in a backwater.
Do all people who paint water colours also have some other totally different unrelated hobby they are just as passionate about, like motorcycle restoration? I'd wager not.
For me, running became a sort of "hobby" as such - I guess you could call that "sport". What were the other things you were thinking about at school when you "played it safe"? Never too late to learn/relearn things.
Digital signal processing and music for example.
I suppose cooking might have actually been the best avenue. I find that the more i cook the more i draw parallels. It's quite associative and borderline object-oriented. I watch cooking shows where a dish is mentioned and the chef immediately starts building a menu in his head. It reminds me of when someone asks a programmer to design a blog/website/etc.
No matter how much someone directs you on how to program something, you always have that little bit of wiggle room to add your own creativity to it.
Programming is like art. The coding is the medium. The thoughts and solutions, when it all works together, just feels right.
My job when it goes into stuff other than programming, I find myself coding at night to feel that structure, control, creativity and freedom all rolled into one.
Most other fields don't offer that.
If not programming, that 20% of your brain would have been thinking about whatever else it is you did for a job.
By default, this "computer brain" of mine is carried with me when I leave work. I have to make a concentrated effort to context switch back into "real life" mode (similarly how I have to context switch into "computer" mode). I think that's why so many of the good programmers are a little weird and introverted, because they don't bother to context switch back.
Art is art!
Another pro is we don't have a big gap in salaries being more or less well paid (in Germany).
The drawbacks are that you are quite limited in scope, you don't learn something new outside of your programming domain. The mindsets are pretty similar: sometimes I think my wife is too logical, and we have a similar way of thinking after many years in the profession, which can be a bit boring.
I'd say in general it helps the relationship, but it does not come without pitfalls.
Dating someone in the same field gives greater likelihood of finding that, but there's other ways to do it too. People who went to similar schools, people in related fields, people who hang out at similar social events...
Your work is one field where you can find overlap, but there's lots of others. My fiancé works in a completely different field, but we have similar preferences in how we spend our spare time. I'd have never met her if I restricted myself to programmers (she's in conservation and events; an odd mix to say the least).
Rationally I would never pick somebody from the same field as me.
seeing people dying and suffering will change you, especially the young ones. a lot of those stories is not something you actually want to listen to after hard day at work...
Speak for yourself..
It gets boring even when your occupations are so alien to each other, that there's little you can share beyond bog-standard office gossip.
My fiance works in a t-shirt printing shop and I work as a developer. I enjoy hearing about his work, he enjoys hearing about mine but we know neither of us could do what the other does.
I had a really good friend at work for a while but it always had this flirty undercurrent. We both had SOs, but enjoyed the "office wife/husband" thing (my real wife actually knew about it and was not jealous). Anyway, the flirtationship thing makes you as vulnerable to criticism as an actual relationship, so the occasional sarcastic tirade or bad mood day really hurts. Long story short, we're not only no-longer-friends (this happen, I've worked at the same place for so long some friendships are cyclical); we can't talk to each other or work in the same open plan office. It's a small wonder no one's been fired. Ultimately the drama/good feeling ratio doesn't work out.
I work in a small shop and was hired as the third developer, about 4 months after developer number two. Of course, Number 2 and I became friends pretty quickly and we would hang out outside of work on occasion. That is, until one day when some totally insignificant disagreement resulted in threats of physical violence against me. Needless to say, I didn't enjoy that, we never hung out again. I brought the comment up with management (the company owner) and as far as I can tell nothing came of it.
Now, as our company and development staff has grown the owner has put this same guy in a managerial role that I have to answer to, and because of our history, it's becoming more difficult to stay productive in our interactions.
In other words, friends in the workplace can be a good thing, but if it backfires, and especially if you're both candidates for advancement in the same department, the repercussions could have you polishing your resume.
I'm a software engineer, and a hetero male. Why would I want to flirt with other men?
I frequently wish I had gone into another career (probably medical) so I could try out this flirting with coworkers thing I keep hearing about.
I'd suggest the fashion, tourism or entertainment industries.
Are you one of those people who really thinks a grocery store is a place to meet women?
But hey, we're talking flirting, right? Finding fuck-friends is probably easier with dating apps; and maybe one of those even converts into a sweetheart. Flirting is really fun though.
So instead, I've been trying (during better weather than current conditions) hiking groups on Meetup.com, since I do like hiking a lot, and would like to find a woman who also enjoys hiking. That hasn't gone all that well; it seems most of the people in these groups are retirement aged. I do see age-appropriate women out hiking, but they're usually with a husband/boyfriend, not in one of these groups. AFAICT, the single women in the age range I'm interested in (30-45) in this area (DC) are not into hiking at all, but they are into getting drunk from what I've seen of them downtown. And from what I've seen on dating apps and OKCupid, the ones who aren't downtown socialites are mostly Trump voters who spend their weekends at the gun range.
I strongly disagree with this one, although I'm not sure if my reasoning is broadly or only personally applicable. The last thing I want to do at the end of a long day of work is recap what I did. Even in the best-case scenario of a day full of victories, it's just exhausting to try to relive all of them with the added burden of explaining the decade-plus knowledge base you'd need to understand why Problem X was so hard to solve. I'm much happier with a base of other interests to talk about after work with a non-programmer instead.
That being said, I also find that some problems are strictly-technical in nature, and can't really be distilled to anything informative (e.g. Ionic's livereload dev server randomly serves up an old build rather than the most recent build due to weird interactions with gulp watch). In those cases, sometimes it's okay to just say something like "our tools were being frustrating."
The goal, at least with my fiancée, is to make an effort to communicate with her how my day went, because on a deeper level what I'm communicating is that I want to share my life with her, and that we're a team.
There's a lot of implicit emotional elements to human communication, and sometimes to communicate one thing implicitly, you have to work really hard to communicate something seemingly-unrelated explicitly.
I think it's hard for someone else to actually understand the problem when you two are not in the same knowledge framework. Cause then she/he will be perpetually asking the why and how question and being not satisfied.
The technical details and why it was hard to solve aren't the parts that matter.
I believe that. My girlfriend really pushes me occasionally about my day, and I think it's because she knows that talking about her day really helps her. I'm happy to listen for her, but I've just come to the conclusion that trying to recap things I've done makes me more stressed out, and the fifteen seconds of "no, I really don't want to talk about it" is worth it.
And for what it's worth, having read back over that, I am not in a high-pressure job. I consult about thirty hours a week or so.
When I come home, I too would really rather not relive the last eight hours of fighting with broken hardware, broken tools, broken networks, and broken customers. Its time to put it out of mind, as best as can be done. I'd rather play with the dog, water the garden, and cook dinner.
Its about the same in low pressure full time work.
So to my annoyance at work my happy sea of happy freebsd has gained two unavoidable ubuntu, and ansible worked on them precisely once after initial install and then never again. Incredibly frustrating. Obviously must be a problem with our standard sshd config although ssh into the boxes works fine... Turns out ansible does NOT just use ssh, but speaks sftp which is a subtle difference in protocol and is handled completely differently inside openssh and I never use sftp other, apparently, than every time I ansible-playbook something (all scp here for generic file transfer) so I never noticed it. To make a long story short sftp is implemented in a loadable subsystem module located in /usr/libexec/sftp-server which is specified by FULL PATH in sshd_config on a unix-like OS but on Ubuntu its in /usr/lib/sftp-server. Thanks Ubuntu, wish you were a unix! Also if sshd tries to access its sftp loadable module and fails because of wrong path in sshd_config, there is no error logged to any file and running the client in verbose mode tells you nothing other than connection dropped, almost like a firewall dumped a RST packet on us. There is no way to indicate the problem, the only symptom even if you run the client -vvvv option is the connection just drops, nothing in syslog on the server side, nothing auth.log, nothing. Once the problem was found all I need to do is have ansible provide /etc/ssh/sshd_config with slightly different OS specific paths based on specific OS which is a good 30 seconds of work. So no small amount of my work time is pounding head on desk swearing and annoyed until I isolate the problem and then the fix takes about 10 seconds. Actually given that I'm pretty good at this stuff and highly experienced and I know the business problem domain very well and I know my toolset, the easy stuff is all automated or avoided or well known and all I do all day is pound head on table for hours until truly obscure problem is isolated, then implement fix in about a minute, repeat. Figuring out the correct solution is about 99% of my day and endless judgment calls takes a lot out of a brain.
After that end of workday I had no interest in talking about SSH or ansible or any of that, in fact it took near 24 hours to cool off from that one and write this post, went home, ate an awesome homecooked meal, took whole family to hiking trail and tried to catch pokemon, generally hung out and had a good time and enjoyed the nice park and nice weather. My wife used to program PBXes and did something with ACD call routing on an old fashioned physical PBX (don't remember the language, its all obsolete now replaced by VOIP and doesn't matter) but even back when we had similar-ish jobs I think we both just need time to chill out away from work. If work is stress, I don't need constant stress or constant work, no interest in talking about work outside of work.
Music, sports, reality tv, literature, friends, etc. Basically anything else.
This had me laughing:
(No, changing your Vim colorscheme doesn’t count as a “different experience.”)
Is this really true for everyone? I sacrificed my relationship because I prioritize my projects and I've never been happier. I can't imagine getting into another since it would mean compromises I'm not willing to make.
Good relationships are a key part of being happy.
Bad relationships...not so much
Your projects might feel more important now, but that may not always be the case in the future.
Speaking from my experience, as a younger guy I actually kinda enjoyed the 80+ hour weeks during crunch times on my projects and I was always supremely motivated and had the mental energy to basically abandon a social life and concentrate almost entirely on the work, including the time when I had my sister banging on my door one day in tears wondering if I was even still alive since my family had not heard form me for so long.
As I've got older and got more experience, those attitudes have changed.
Work and projects are important, but don't throw everything else away to pursue them. Projects can fail (often for reasons outside of your control), and companies will often show zero loyalty when it comes to redundancies or bankruptcies. Don't pin your life and your future (financially or emotionally) on these things - the money and success will come regardless of the hours you work if you're worth it.
tl;dr - For me companionship is more important than pouring my entire self into projects or work. It wasn't always the case, but as I've got older and more experienced, the importance of my work vs my life has only decreased and I'm richer now than I've ever been.
I see beauty in math and algorithms. I'm sick of people, who just see such things only in dollar terms.
However, I think there is a greater cultural attack on technological professionals. I feel like we are devalued as some sort of machine that cranks out code. Many play into this as well. I don't think it is healthy.
This statement is more accurate if you remove the comma. What you wrote makes a blanket claim about all people (which is highly unlikely to be true for even a majority). Without the comma, it's a useful heuristic for what kinds of people you should avoid so that you can have a more fulfilling circle of friends.
There is nothing wrong with seeing beauty in math and algorithms, because it's certainly there. But taken too far, it can become self-validating by judging other people as lacking value, and refusing to see beauty in other people with different interests.
This might be part of what you view as an attack on technological professionals, where we're stereotyped as people with only an interest in computers/math and have no interest in actual people.
Try seeking out people who also see beauty in maths and algorithms and you might have a better experience. Finding people who have similar values to you goes a long way in having good relationships (as long as you don't entirely limit yourself to like-minded people).
A bit offtopic, but the author seems to assume you are a straight coder guy. This was probably not his intention though. Why not replace "girlfriend" by something more neutral, like "your better half"? Being inclusive doesn't cost much, really.
The language we use, especially the language we use casually, defines how we appear. To those outside the predominantly straight white male clique of programming, repeated exposure to these casual assumptions of stereotype pile up and create a sense that those not fitting the stereotype are unwelcome. Imagine if, every single day you had to drive around the same pothole in the road into coming traffic: eventually, you'd find a different route.
"Come and see the violence inherent in the system. Help, help, I'm being repressed!"
There is a straight, white male clique-iness to the programming world. Most blog posts assume the reader is a straight, white male. These are turn offs to some people, whether conscious or not.
That said, I can understand people being touchy about this, as these issues have become very polarised. PC should be about helping people choose to use inclusive language, but some people choose to shame people for getting wrong.
And BTW, "girlfriend" could apply to gay coder chick.
The author is just giving examples of people you can talk to, if it just said 'Call your girlfriend' that would be different.