One problem I'm constantly having to remind myself of is that professional software development is just as much business and people skills as it is technical skills.
You have to learn how to communicate, whether it's with your team, with your managers, clients, customers, etc. you need to be able to engage in conversations that ensure you're building what's actually needed. Part of this is working with the boring and complicated issue trackers, being active in meetings, learning to ask the right questions, and learning to not just accept, but graciously welcome both positive feedback and criticism.
You also need to look at all your code through a business perspective, or how will it help you or the company make more money. It's so easy to get lost adding cool new features that don't really help the business, and to want to give away code for free, but that's not going to put food on your table or keep the company in business.
This hits too close. I am guilty of almost all of the above and it’s almost painful to know there are many others in the same boat too.
Makes me wonder if this is solely an isolated problem or something that we are culturally cultivating in the profession.
Many of us give undue emphasis to what we do and extend it to encompass all aspects of professional and personal life.
Thanks for sharing.
On your learning to communicate, you also have to allow yourself a few bumbles now and then too. I used to be SO hard on myself I'd shut down and "hide inside", getting nothing at all done. Be kind to yourself, no one is perfect at being human.
This is what happened to me here at this lovely website when I interned here. It doesn't do your team any good to shut down like that. I realize this now, but when it was happening I was defeated. This is a good reminder for me and an encouragement.
I have this tendency and only recently I have been able to get some control back. It takes time but even a little improvement matters.
Completely agree. Tech addresses the needs of a business. Not vice versa. Thanks for the reply :)
Pretty good advice. My 2p / 2¢:
Don't worry if coding is your only hobby. Just be ready for the moment it gets boring (for a while) and accept that it's OK to enjoy something else. Maybe you'll come back to hacking in your spare time, maybe not - just remember it's for you to unwind and not a thing you have to do.
I don't gym, I run. Some of my colleagues walk. Or just walk to a restaurant. Some of us do none of the above because they can't. Exercise is great for many reasons, but you could play piano, read a (fiction) book, practice meditation or mindfulness. This is all particularly useful not just for lunchtime but for whenever you're stuck. Grab a colleague, tell them it's coffee time and go walk and chat.
My 'worst developer habit', in myself and others: not talking. Try not to sit with your headphones on all day 'working' on a problem. Talk to everyone about what you're doing. Or your weekend. Or the latest episode of Doctor Who or whatever.
Forgive yourself. You do not have to know it all, do it all the time, be super productive. If you take the pressure off doing what you have to do and try and do what you want to do - what makes you feel 'happy' - you'll be both more productive, happier, nicer to work with.
A worthwhile read is Apprenticeship Patterns, which is full of good ideas that I've used from time to time to move forward in my career. I'd stress ideas though - not everything is right for everyone. Really, listen to yourself and how you feel, try out things and see how they make you feel.
I'm wary of anyone who only has one hobby, regardless of what it is. It really limits your conversation, especially with people who don't have the same hobby as you, and it limits your variety of experiences!
I love the last bullet, we often forget to be kind to ourselves. I definitely think the third bullet is a missing piece in my day-to-day work and I want to start doing it TOMORROW! I have a hunch that I would be better if I "thought out loud" more.
Love all your points David. Certain things won't work for everyone and that's ok. I will for sure give the Apprenticeship Patterns a read :)
Can't remember who said it, but I agree: hobbies are for people who don't love their jobs.
Wow, very spot on. I’m guilty on lots of this stuff.
I have definitely had the problems of too little sunshine, too little exercise and way too much coding. It burned me out a few times. Solution for all of them for me was getting a dog. I walk her for min 8km per day, usually late afternoon/early evening. It takes around 2 hours. Solved all 3 issues in one stroke. I wish I could claim it was some genius but it wasn't, I just wanted a dog
A dog really is a blessing in disguise. Helps you get fit and stay outside. What kind of dog do you have? :)
She is a scent hound, a French breed called a Griffon Bleu but she is a mix and doesn't look much like the pics that will return from Google. They don't do any murder they are just used to flush out wild boar. Upside (and downside) of that is she is crazy playful and social
Pretty good advice, not just for developers but for any kind of job. Specially the going out part. I have the privilege of having lots of green areas on my workplace, it really helps going outside when I'm mentally fatigued.
I'm fully in the "Staying too comfortable" realm at my day job. There is absolutely zero effort from decision makers or chance to learn a new technology or even play with modern frameworks (Laravel, Vue, etc...) What's worse, I'm technically the only PHP developer at my job, yet I'm not allowed to explore anything mildly interesting. We're still using Codeigniter and jQuery shudders.
To combat this, I have been working on side projects in my spare time (thus, putting myself into going to programming as a hobby).
It's ok to have programming as a hobby :). It's a shame that you're lack of progress is due to the decision makers at your work. Perhaps you can show them a demo of laravel and vue and change their minds? Thanks for the reply Adam :)
It is great to see that you are not alone in the world. hahaha
Not going outside and exercises are standard problems, unfortunately.
I don't have only programming as hobby despite expending a lot of time doing it and I'm definitely not comfortable and with this I fall into the last problem: direction.
As you've said, too many frameworks and languages to choose from; being full-stack or not, etc. Many problems for a young programmer to solve to testing your problem solving abilities. hahaha
I keep giving this advises to other peers/mentees, but now I have an article to show them what are the benefits :D
Also plenty of sleep. I know it's mentioned in many other articles about the well-rounded developer, but it is useful knowledge. it's easy to get carried away, but the older you get the more important a regular sleep schedule is.
Having other hobbies is also important. I have outdoor and non-technical hobbies I enjoy, but I've also been getting into video and photos editing. There have been many times while pursuing my other hobbies that I have had "ah ha" moments about work.
Here is what I changed over the years:
1) we (almost the entire team) go outside for lunch and we walk at least 15 minutes in fresh air
2) recently I started again to work out (heavy weights and cardio, 60/40) and this helps me to be more balanced. The brain is a muscle too, but we need to train every muscle
3) In my free time I write books and draw comics (long time hobby of mine), which contributes a lot more to balancing
but, I love programming and I continue on my Github projects, even starting new ones here and there
you cannot stop programming
"Only having programming as a hobby." That hit me harder than I thought it would. Beyond reading & listening to music I don't really do much else outside of coding.
Thanks for the food for thought!
It works for lots of people :) I just know that a lot of people often burn themselves out quickly. Thanks for the reply TJ.
I couldn’t agree with you more, we tend to forget about all of this things when we are having fun.
Another thing worth mention is that every fix that you provided will definitely help when trying to avoid being burnout.
That clear direction was me a week ago. There are so many things bringing up daily which confuse a lot a newcomer like me because as a dev its hard to decide the coolest of all of the coolest things.
I am lucky enough to get some right advises and writings to decide what I actually wanna be right now!
And to add more I also had eye strain issues. I have now a program running constantly that helps me to remind of some movement.
I'm lucky enough to work for a company where they offer a lot of opportunities to get the kinks out. We have an employee formed 'push up' club that meets daily for about 10-15 min and they have a yoga instructor come in every Wednesday for an hour class that is SUPER helpful.
I also try to get out from behind the screen for 10 min of every hour, if I don't I feel like my eyes dry out :)
I have the go outside problem, but I do take my lunch break in the gym so I get that at least.
Wait, you eat lunch while working out?
ha! No, our building has its own gym so I use that then eat at my desk afterwards.
I agree with pretty much everything here, I cycle to and from work, even when I'm a bit tired, so I get my exercise.
Whilst I do program as a hobby, I do it when I feel like it, right now I'm building a roguelike game to learn the rust programming language but If i don't feel like programming I won't.
I can often spend weeks where I'm not programming at home, but when I do, I do my best to not allow what I do and learn at home to be guided by stuff I need to do at work, that way it's more of a hobby for the sake of hobby then a hobby for the sake of work.
I honestly find the direction thing a bit weird, I mean I get it, but for me my direction has always been what I liked at that time rather than a specific end goal, so I tend to float about. I did some dev-ops but found I didn't like it so I'm not doing it, I do like development so now I'm developing an app at a startup.
Same thing in terms of learning stuff, I'm learning rust because I wanted to learn a systems language, I wanted to try functional programming, I wanted it to not be C/C++ and I wanted to learn something that would compliment my ruby skills.
That said, not having a clear path would suck.
For me, my problem is probably communication in the context of a professional environment, I'm not very good at it, I'm getting better but I still find it hard.
Also, don't eat lunch at your desk. I don't do this anymore, but was guilty of this many times in the past.
Amen! I seriously signed up for violin lessons. I'm pretty stoked.
These are my problems:
Not going outside during breaks. - I always play cs 1.6 in the office, in summer i go out, but i can't go out in winter :'(
Not having a clear direction. - I have no idea what to do with my life, so, I have no idea what to do with my professional path.
A good habit that I'm trying to acquire.
Unfortunately all of the points are true.
Hey, just think of it as being self-aware. Now we all know how to fix our problems ;) Thanks for the reply Hamza.
Wow, I'm surprised that I have none of these!
Thanks for article.
Tell us your ways....
Great post. I love it
Good points, these past few months I avoided programming while at home.
And now started pick up a new hobby which is mechanical keyboard (not programming, smh)
A hobby is a hobby nonetheless. Glad you found something Omar :) thanks for the reply.
It's an article to not just read once!
Really caught what all devs once in life need to face it, and for sure it's a good thing to overcome and transform to self-improvement :)
Thanks for sharing!
I must emphasize on the "too comfortable" part.
If you feel comfortable at any point in your career as a developer, then you are certainly doing something wrong!
Remember, you are a problem solver, if you don't know everything, that's ok.
Remember, you are a problem solver, if you don't know everything, that's ok.
How did Dreamstime get that picture of me?! :-)
Seriously though, good stuff!
Another common one I see everywhere in our code base and this article as well -- spelling errors. Proofreading and reviewing your content is important. exercise* your* body and mind
The worst bad habit, in my opinion, is to let the depression develop for whatever reason and not cure it in timely manner. It causes lot of problems in the long run.
Number two on your list is a biggie. Developers who have nothing else in their lives are pretty boring people.
Great article, thanks!
Started lifting three years ago.
Four times a week, 45min at lunch time.
You might have preconceptions about muscles, "only jocks and jerks have them", or "if I get muscles my brain will wither"... You're wrong.
What I do know is this:
I sleep better, I don't feel anxious anymore
I have better posture
I'm less stressed out, Petty shit is irrelevant
Another thing developers need to stop doing is over-complicating things. Stop over engineering everything.
Lastly remember that your ability to be awesome depends on being able to make your team mates look and be awesome.
Gap in the market: a developer lifestyle magazine haha. DEV health, great article!
Great article. I have to admit I probably have all of these listed habits (not good for person with clinical depression), but I'm working on it!
Thank you for the great post. Wanted to make a quick recommendation. If you want access to an amazing selection of photos that you can use with no royalty fees, have a look at unsplash.com
In my opinion,It's very important that everyone's life has to be "Healthy" and "Happy" , it doesn't matter whatever carrer we are in. For that, we have to wisely solve it in our own ways. thanks.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.