22 July 2016
tl;dr In a recent blog post, a commenter asked some questions that I felt were a bit more easily answered in the main blog format than in comments. Specifically, he asked two of the more common "How do I..." questions---finding motivation, and finding time.
How to motivate myself to grow and learn, when I'm the only senior java developer in my company. I'm surrounded with people who don't care about gro wing [sic], and learning.
Let's say I can change my "corporation".
For this one, I'm going to channel some Susan Fowler and suggest that motivation comes in two basic forms: "extrinsic", whereby motivation comes in external forms (external rewards, such as bonuses or raises, or external threats such as being reprimanded, shamed, or fired), or "intrinsic", whereby motivation comes from within.
Intrinsic motivation vastly trumps extrinsic motivation. Psychology has confirmed this through a variety of studies. Anecdotal evidence will usually affirm it as well, if you happen to be in a position to observe both.
The real message is what Fowler says in the very beginning of the book: It's not a question of motivating you. You're already motivated; the real quetion is what you are motivated to do. And whether you're motivated to do the things that you think you want to do. (It's not always easy to answer that, and it's not always as obvious as we might think.)
For example, you're already motivated to learn, Greg. You're asking questions, you're reading blogs and watching videos, and you're looking for new input. This isn't a question of motivation for you. At least, not yet, anyway.
What you may be feeling is frustration, given that you're surrounded by people who don't feel similarly as you do. And that's where I'd turn the tables on you, put on my philosopher's and psychologist's hat, and ask, why does their motivation matter to you? It's the only obstacle you cite in your question, so it's clearly important to you, but why?
In fact, you're sort of arguing that they're not motivated. I would disagree---as Fowler points out, they, too, are motivated, but they are motivated in a different direction than you are. It might be an interesting exercise to find out what they're motivated to do, rather than blame them or implicitly shame them by suggesting that their motivations are somehow inferior or less professional than yours. (And I'm not suggesting that you're making a big deal out of it; I'm merely saying that there is a strong strain of "Everyone working in this industry should be constantly growing and learning" that is common to the Software Craftsmanship movement, and I find it to be a little (or a lot) elitist.)
Getting back to the practical, I think your question is not so much about motivation as it is about facilitation---in other words, how do you find new things when it's not coming to you through the channels of your current job? And for that, I think you can probably guess the answers: user groups, hackathons, and so on. You've already hinted at the idea of leaving your current work situation, which is obviously one approach, but I wouldn't be too quick to pull the trigger on that just yet. Yes, it's always cool to (as Chad Fowler once put it) "Be the worst musician in any band you're in", so that you're always surrounded by people who will challenge you, but those positions can be hard to find, and they still don't always give you everything you want or need. One thing that I do, which you may find one avenue to approach, is to teach---I currently guest-lecture at the University of Washington on mobile development, and frankly, I find that I've learned more about mobile development for both iOS and Android from doing that than I ever did "just" writing code. (Students are amazingly good at challenging assumptions and asking questions you never think to ask yourself....)
What is the most efficient balance between learning and working? I have two kids and no time after work to learn. The only time I can find is during my working day. Unfortunately project I'm working on, don't give me any new experience...
As a father of two boys-grown-to-men (23 and 16 as of this writing), I have total sympathy with you. It's not easy, trying to juggle family life and professional life outside of the usual forty hours a week. And while it would certainly be nice if work would help out by allowing you some dedicated time each week towards study and/or other kinds of advancement, the key thing is to remember that most companies are a little short-sighted on this point---they believe they are paying you for your time spent delivering direct value to the company, and most don't do a great job of tracking the indirect value that you can bring through taking time to train. We can rant and wail about how that should be different, but given the tight margins under which many companies operate, it's an established---and not soon-to-change---fait accompli.
And the fact is, I can't really tell you how to balance your life, other than to tell you to balance your work/life balance deliberately.
People will often speak of "finding" time. Time is not "found". We all of us have the same amount of time per day, and the only variable here is how we choose to spend it.
Most of the time, people will utter statements like the above with the intent to persuade you to spend more time with your family. I won't do that; in fact, I'll even go so far as to tell you to spend more time at work, not because I think you need to do so in order to be a solid "Craftsman", but because if you are the principal breadwinner in your family, then you need to make sure you are doing your due diligence to your family not just for today, but for the next eighteen years (or more). You do that by maximizing your opportunities to bring in revenue to the family, so that your family can have the financial freedom and flexibility to live the kind of life you want them to be able to live.
But, paired with that, is the realization that your children will only be young once. They will be looking at you all of the time, and they will be learning from you how to be an adult, even when you think they're busy playing with their toys or nose-deep in their phones.
Yes, I'm speaking out of both sides of my mouth here, because this decision---how much time to spend in your off-hours improving yourself both as a programmer and as a father---is one that is intensely personal, and not one that should be made for you by anybody other than yourself.
Thus we get to what I mean by the phrase "make it deliberately": examine the things you do in your life on a daily basis. Look for ways to cut things out of your life that aren't really things that you think will bring real value. For example, none of my family watches TV together. (As a matter of fact, we don't really watch much TV at all, though my 16-year-old likes to binge-watch anime from time to time.) Cutting TV out actually creates a ton of extra time for reading or coding or cruising through blogs and such.
When I tell this to people, I sometimes hear "But in some families, TV time is the only time the family really spends together, so if you cut that out...." In my family, that's not the only time we spend together; about ten or so years ago, one of the popular board-game companies (Milton-Bradley, I think) started an ad campaign about "Family Game Night". Each week, one night is reserved for the family to play a board game together. My family started doing that, but before long we found that after making dinner and doing dishes, we were kind of burned out about cleaning up the table to set up a game.
So we adopted a new rule: We took the games with us out to restaurants, and we played over dinner, there, in the restaurant. Lots of different games: Settlers of Catan, Magic: The Gathering, Carcassone, Ticket to Ride, Smallworld, and others. Wait staff at restaurants soon recognized us and (because we tended to tip a little extra by way of thanks for letting us consume a table for two or even three hours, sometimes) greeted us by name and took us to the larger tables so that we would have room to play.
What does this have to do with making time to learn programming? Simple: It's easy to feel less guilty about telling the kids, "Hey, I have to go out and get some work done" when the kids know that they will get time with you later, and it will be "quality time", playing a game and tossing trash talk back and forth. (Games in my family tend towards the competitive end of the spectrum.)
This is where I get a little philosophical again, and start talking about that weirdly Zen thing called "mindfulness". It's really not all that deep of a Zen thing, not like "the sound of one hand clapping" or anything; mindfulness is simply the idea that if you're going to be doing X, be doing X, and not any of the two hundred other things that tend to distract and weaken your presence.
If you're in a meeting with somebody, and they're constantly checking their phone, looking at their laptop, jumping up every so often to take a phone call or send a text message, and so on, it's generally not a good feeling. You can't be sure that you've got their full attention. Any decisions that come out of that meeting are always going to carry with them the stain of "But was Fred really listening to me when he said that?"
If you're going to spend time with the kids, then focus on them. Play with them. Talk to them, listen to them, create new stories and games with them, and so on. Be "present" in that moment with them, without the distractions and without the constant interruptions (to the best of your ability; there's always going to be exceptions, obviously).
But the other interesting thing about family is that sometimes, you can actually spend time with them and be doing things that help your career simultaneously.
Case in point: As I write this blog post, I'm sitting in a restaurant with my wife. She is heads-down on her laptop, as am I. We're just sitting here, not talking to one another, each of us doing our own thing and in our own world, yet this will, in some indescribable way, count as "together time". I've done this with the kids, too: they bring homework, I bring the laptop, and we work together at a restaurant (have I mentioned my rather serious addiction to Diet Coke before now?). I'm there if they have questions (though now at their age, I'm generally not of much help other than to try and work through to the answers with them), and the rest of the time, I'm heads-down writing code or working on an article or whatever.
Keeping up with all of the things going on in this industry is tricky and hard. Do so deliberately---mindfully---by deciding very specifically what you want to study next. (Turns out it won't really matter what you choose, only that you choose something to study.)
Decide very specifically how and when you want to spend the time with your family, and don't be afraid to carve out some time for yourself to do that study.
Look for ways to claim some time back---if you currently mow your own lawn, look at the cost of hiring a gardener to do the work for you, and use the time you've saved to study instead.
Create some forcing functions---user group presentations, articles for publications, anything with a deadline---as extrinsic motivation to make sure you get that study time in. (Deadlines also help provide "justifications" to the family for why Daddy needs to work, and can't help with the dishes, by the way. ;-) )
Lastly, do all of this deliberately and consciously. Think about spending your time the same way you would your money---sit down with your spouse or significant other and discuss how you need to invest time into your career during the off-hours. Budget. Carve out some time for yourself to study whatever it is that sounds good. Take Sunday afternoons for yourself, and block out any sort of social activities with the family for that time, if you must.
The first book(s) I ever wrote, I would do so at night. I would come home from work, do dinner and after-dinner with my wife and kids, then about 9pm or so, after the kids were asleep, I'd take a laptop down to a 24-hour restaurant in town, and work on the book there until about midnight or 1 (or later, sometimes). Head home, slip into bed, wake up and go back to work the next day. Didn't leave me much time for doing much socializing, but that was OK with me---my friends understood that this book was a big deal, and from time to time, I'd put the book aside and hang out with them for a while, just to recharge the batteries. Weekends, Saturdays were writing time, but Sundays were family time.
You don't have to commit that kind of time. You don't have to give up anything you don't want to give up. But you do have to understand that all of life is about priorities and budgeting time, and that if you're doing it right, the time you're spending on activities matches the priorities that you've set for yourself; if they're not, then it's time to do a thorough audit of your "time budget", and get them back into line with one another.
The rest, as they say, is up to you. Good luck.
(EDIT: My wife read this after it was published, and found a few typos and places where things weren't clear, so I tried to clean it up a touch. Release early, release often, as they say...)
Last modified 22 July 2016