Archive for the ‘Know Thyself’ Category.

Know Thyself: Context

If you’ve been following the Know Thyself entries in recent months, you’ll know that I’ve had trouble pursuing my goals in the last few years. Thanks to a few articles on StevePavlina.com, I’d tracked the problem down to a lack of purpose and context, but I didn’t know how to move forward from there. Trying to discover my purpose gave me a list of things that inspired me to a greater or lesser extent, but nothing that I could get really excited about.

Yesterday morning, I decided to try a different approach. I went over the list of potential purposes that I’d come up with and picked out half a dozen that seemed to resonate most strongly with me right then. (Oddly enough, almost none of them were the ones that I’d marked as being most important while I was writing the list.) Then I tried to analyze them, looking for underlying themes they might have in common.

The first thing on both my full list and my short-list was “to get rich and famous.” Why, I asked myself, do I want to get rich? Because, myself answered, wealth equal freedom. The wealthier a person is, the more freedom he has to do what he wants. But there was more to it than that.

I’ve always hated being forced to do things, with a passion that little else can equal. I think it’s genetic, because one of my nephews has a full helping of it too. And when you’re not wealthy, there are people who can force you to do things — your employer, for instance. Well, even though I’m my own employer now, other forces still tell me what I can and can’t do. The lawn still grows; somebody has to cut it regularly, and I can’t presently afford to hire someone else to do it for me. I’m free to run off on vacation whenever I wish, but finances limit me in where I can run off to and what I can do when I get there. Wealth gives you more options to deal with problems (like the lawn), as well as more choices (like where to go and what to do on vacation). A truly wealthy person can not only do what he chooses, but can’t be forced to anything he doesn’t want to. That is what “freedom” means to me, and what I truly desire from wealth.

The other half of that is fame. But I’m an introvert; on the face of it, pursuing fame doesn’t seem to make sense. But then I thought about the people that I look up to the most. Financial teachers like Robert Kiyosaki and Ken Roberts. Fiction authors who (deliberately or inadvertently) teach people about themselves or the world, like Mercedes Lackey, Peter F. Hamilton, and Steven Brust, among many, many others. Life coaches like Barbara Sher, Steve Pavlina, and David Allen. The obvious thread is that they all teach ways to understand or improve your life. I’m driven to change things that I perceive as wrong, and eliminating ignorance would also eliminate most of the things that I feel are wrong with the world. I want to help people to learn how to think better so they can live more fulfilling lives. Fame is a shortcut to that, because people automatically give more weight to what a famous person says. (Ironically enough, that’s one of the things that I think eliminating ignorance would cure.)

Once I realized those two things, I could see that all of the potential purposes that I picked out for my short-list, and nearly every one on the full list, has one or both of them behind it. Project Badger did as well, and even writing this blog helps fulfill one of them. :-)

Every time I remember the fierce joy of seeing the light of sudden understanding in another person’s eyes when I’ve explained something to them, I feel a very strong desire to see it again. And every time I remember the burning rage and humiliation of being forced to do something, I rediscover the drive to become wealthy enough that that can never happen again. Any goal or task that leads to one or both of those outcomes should be easy for me to follow through on. Project X will help me achieve both, and now that I realize that, very little should be able to slow me down.

So, unless I discover something more to it, this will be the last Know Thyself article. I’ve found the answers that I sought, the deep inner passions that drive me. It’s time to get serious about achieving them.

Know Thyself: Goals, Context, and Purpose

A few months ago, I thought I’d found the answer to my motivation problems. A tweak to my purpose, thought I, and all would be well. As usual, things weren’t that simple… it helped, but after the initial surge of enthusiasm wore off, I discovered that it didn’t make enough difference to keep me moving.

Earlier this week, while working through my read-it-later list, I came to an article that perfectly described the problem:

Goals do need a context as well; otherwise, they’re irrelevant too. A goal without a meaningful larger context is pointless.

One context that makes goals matter is human need, branching from the basic root need of survival. [...] But if all our goals occur only within the context of physical and emotional needs, then all we really get out of life is survival and mediocrity. [...] The second problem with having need as your only context for goals is that you’ll have a hard time pushing yourself beyond the point where you feel your needs are already satisfied. [...] for most people, at some point that context of need runs dry. You can tell if this has happened to you if, when you think about big goals, they just don’t seem to matter; they appear to be more trouble than they’re worth.

When I read the sentence that I’ve highlighted in bold, I felt something akin to an electric shock run through me. That’s exactly the problem that I’ve been having! I don’t have anything in particular to fear anymore. I have achieved financial security, which in itself eliminated most of the fears that drove me most of my life. And I have the freedom to do pretty much anything I wish, which was my second-largest desire. Project X, which seemed so compelling to me since my teenage years, seemed the perfect path to fame and fortune… but since I’ve realized that I already have enough fame and fortune, it has lost a lot of its allure. I still want to do it, very much, but the reasons that fueled that desire have lost a lot of their strength.

When you reach this point of stuckness, it’s time to move beyond the context of need. [...] if you’re now living in a situation where your needs are adequately met, and you don’t seem to be getting any more mileage out of need-based goals, then you need a new context for goal setting. [...] The next context beyond need is purpose.

Nice idea, but I thought I already had a purpose: dealing with problems. Project X is an attempt to preemptively deal with a whole class of problems, knocking out hundreds of birds with a single stone. But if it doesn’t inspire me to action, then what does that mean? That Steve Pavlina is wrong? While that’s certainly possible, a lot of the articles he’s written have been a perfect match for my own experiences, and take their ideas even further than I have. If he’s wrong, then I probably don’t have much chance of finding a solution. Assuming that he’s right though, the only answer is that I haven’t discovered a purpose that inspires me yet.

The more I think about it, the better that idea looks. I have some thoughts on where to look for one, which I’ll describe in a later posting, after I’ve had a chance to explore them further.

Know Thyself: Enthusiasm

This week, after more than six years of effort, I finally solved what seems to be the last theoretical problem to Project X. I have the entire high-level design now. Parts of it may still need some tweaks, but the whole thing hangs together remarkably well. It’s both a lot simpler overall, and a lot more complex in the details, than I originally expected.

And I find myself utterly indifferent to it.

I’m sure this is simply a reaction to how long I’ve been working on it, and the number of times that I’ve previously been on a promising track, only to have one or another of the thorny little pieces of the problem derail everything and send me back to square one. My conscious mind knows that the hardest part of it is finished at long last, but the rest of me is still tiredly slogging along, humoring me and hoping that I’ll finally give up soon.

GoddessJ and I are going to go see a movie tonight, a ridiculous but amusing-looking piece of fluff. Maybe I’ll take a day or two away from the computer entirely, and see if my enthusiasm returns after that. But come Monday morning, enthusiastic or not, I’m going to start writing code.

Wish me luck. :-)

Know Thyself: Programming Style

This is the third follow-up to my my previous entry on self-knowledge and motivation. The entire series can be found here.

I’ve finally figured out the problem that I’ve been having with motivation for working on Project X. It’s really pretty simple, and I don’t know why I didn’t realize it before.

I’ve taken some college classes in data structures and such, but I’m primarily a self-taught software developer. The way I design and write software was learned through many years of trial and error. It’s very good, but it’s not something that could be taught in a classroom.

Any good developer comes to have a software emulator in his head. It’s the natural consequence of writing and debugging code; he learns to read a function and mentally “run it” to see exactly what it would do when it’s given a particular set of inputs. The better he gets at this, the faster and easier he can debug a function, and presumably write one as well.

The better developers can look at an entire module, or an entire program, and see how each part interacts at a high level of abstraction. This is largely what makes them better developers; they write code that supports this mental model. They seldom need to write comments in their code, because their code itself explains what it’s doing: their variable names explicitly describe what they represent, their function names explain exactly what they do. Comments are generally reserved for explaining why something needs to happen, and that’s usually self-explanatory with code written by these guys.

(Although examples of this style of design are provided in most programming courses I’ve read about, and it’s often explicitly emphasized, most new developers simply don’t get it. I don’t think that’s a defect in the programming courses; it seems to be the natural consequence of the fact that it takes years of experience before a developer can really grasp the reasons behind it, and start writing code that properly supports it themselves.)

The end result is that a really good developer can design an entire program in his head before he even touches the keyboard. The design is subject to change and refinement as he develops the program, but even those changes are almost instantly designed in his mind. If you describe a bug in code that he’s written or studied to him, you’ll often see him sit back with his eyes unfocused for a few seconds, then he’ll be able to tell you exactly what the bug is and how to fix it, or at least exactly where in the code to look for it.

And that’s the problem: nothing quite like Project X has been done before. I can easily remember dozens of details about Project Badger, even about code that I designed and wrote a decade ago, because it all fits into a well-understood framework. But I find myself flailing and grasping to hold onto some simple details about Project X because I don’t have a clear mental model of the overall design yet.

As I’ve worked on it over the past couple weeks, I’ve found myself tensing up and getting anxious because I can’t see how the end result should look. After an hour or two of work, I have to get away from the computer or work on something unrelated to calm down, and it’s hard to get back to it because I still don’t have answers to the design questions that drove me away in the first place.

A clearly-identified problem usually contains the seeds of its own solution. I’m getting anxious about working blind. There are two obvious paths to counter that: don’t work blind anymore, or don’t get anxious about it.

There’s little I can do about the working blind part. The reason I don’t have a clear vision of the end result is because it doesn’t exist yet. No one knows how to do it. The only solution to that is more thought and experimentation. So is there anything I can do about getting anxious about it?

Maybe. Simply understanding why it’s happening should help counter it. Giving myself permission not to know exactly what I’m doing… easier said than done, because it goes against nearly twenty-five years of experience at designing software, but it’s worth a try.

I’ll write more on this as I get it.

Know Thyself: Self-Discipline

This is the second follow-up to my previous entry on self-knowledge and motivation.

In the last article I talked about habit, and how I was able to establish some useful habits that let me overcome my urge to sleep all the time. Near the end, I noted that I wasn’t able to establish a habit of working on Project X, which is the one that I wanted most.

The site where I’d found the article on how to get up early looked interesting. Since it’s devoted to personal development, I thought it might have some other insights that I could use, so I started exploring it. Bingo — there are a lot of interesting things there, but the ones that sounded most immediately useful were an entire series of articles on self-discipline. I started reading eagerly.

There are five pillars of self-discipline, according to this fellow. He’s devoted an article to each one:

  • Acceptance, or the accurate perception of reality and the conscious acknowledgement of it. No problem there, I’ve been working on that since my early twenties, and I think I’m pretty good at it already. Next!

  • Willpower. When I read that title, I thought I’d found the winner. Willpower, the ability to force myself to do things. The crux of self-discipline, or so I thought. I judged my willpower to be near zero, since I could rarely force myself to do painful, unpleasant, or distasteful things for more than a few weeks at most, regardless of how much I knew I needed to do them.

    Except that, according to him, no one has that kind of willpower. It’s just not the way willpower works. You can only force yourself to do something for a short period of time. And looking back over my life, I can see that it’s true: whenever I watched anyone try to do something by willpower alone, any success they had was always short-lived. Thanks to my stubborn nature, my willpower was actually better than average already. It was quite an eye-opener. Okay, a lack of willpower isn’t my problem… what’s next?

  • Hard Work. Not as in working hard (that’s covered in the next point), but as in doing work that’s difficult, because there’s “a lot less competition and a lot more opportunity” there. I already knew that — Project Badger was the most commercially successful thing I’ve done to date, precisely because it was so difficult and time-consuming, and most people couldn’t devote the time and effort into teaching themselves what they needed to in order to write something like it. And Project X is even more difficult. Okay, next?

  • Industry. The ability to put in the time that it takes to get something done; the opposite of laziness. This is the “working hard” part of the equation. Again, Project Badger shows that I’m no stranger to this — for months on end, I worked twelve- to sixteen-hour days on it, seven days a week. And I’ve been working on Project X for years already.

All through this, I’ve been getting more puzzled. Now I’m 80% of the way through the list and I still haven’t found anything that I’m missing. Nothing I’ve read so far would help me develop my self-discipline. Maybe I misjudged this guy; maybe his article on getting up early was a fluke and he really didn’t know any more than I did? But I continued on, to…

  • Persistence. I didn’t realize what he meant by that word; to me, it seemed synonymous with industry. But as he explained it at the beginning of the article:

    Persistence is the ability to maintain action regardless of your feelings. You press on even when you feel like quitting.

Well, that’s pretty close to what I’d been lacking. When the going got tough, I had to have something to drive me on. Most of my programming work had been driven by a combination of curiosity, boredom, and the need for control over some part of my life. The most difficult parts of Project Badger were driven by strong emotion. But despite the progress I’d made over the last six years, Project X hadn’t gotten appreciably easier yet, and even my legendary stubbornness wasn’t sufficient to drive me forward for that long.

So how did he suggest improving persistence?

Persistence of action comes from persistence of vision. When you’re super-clear about what you want in such a way that your vision doesn’t change much, you’ll be consistent in your actions. And that consistency of action will produce consistency of results.

I can see what he means. In a lot of the things where I lack persistence, it would help to work toward a vision of what I wanted. But that didn’t help with Project X, because I had a vision for it, and a compelling one, and it still wasn’t sufficient to keep me motivated.

Maybe a lack of self-discipline wasn’t the root cause of my problem? But if that’s not it, what else could it be?

I’ll continue documenting my search in the next article.

Know Thyself: Habits

This is the first of several planned follow-ups to my previous entry on self-knowledge.

As mentioned there, in the last year or so I haven’t had much reason to get out of bed in the morning. Literally — I was in bed until nearly noon most days, despite having gone to bed between midnight and 2am the night before. And despite all that sleep and an otherwise clean bill of health, I was usually tired. The only physical reason that I could come up with for it was a lack of exercise, but adding an exercise regime didn’t make any difference to it whatsoever. That only left a mental reason.

The knowledgeable will immediately suspect depression, but that’s not it. I had chronic depression from early childhood until my late twenties, and I know its symptoms well. I didn’t feel the least bit depressed; if anything, I was content most of the time. The only thing irritating me was that I didn’t have a programming project that I could really get into (Project X didn’t count — its difficulty and tedium kept me from getting into it deeply very often.)

I concluded that I was simply bored. And boredom is not an acceptable excuse for not doing what I want to do, in my book. So, after a few unsuccessful attempts to combat it by finding other interesting side projects to get into, I did what any self-respecting geek does when confronted with a problem he doesn’t know how to solve: I turned to the modern font of all wisdom, the Internet.

And as usual, it didn’t let me down. The top-ranked Google page for getting up early described the exact problem I had, and how the author overcame it. The trick? Habit.

The way to get up early is to make a habit of getting up early.

I had my doubts about that, but I decided to give it a try. I couldn’t bring myself to practice going to bed and getting up, as recommended in that article, but I did start setting a daily alarm and forcing myself to breathe deeply, stretch, and get out of bed when it went off.

To my surprise, it worked. After a few days, it was a lot easier to get out of bed when the alarm went off, and it kept getting easier. I went right back to sleep once, a few days into the process, but other than that I’ve been getting up at the same time for several weeks, and it’s all but automatic now. And to my even greater surprise, it feels good! I don’t feel as tired all the time, and I’m enjoying life more.

Buoyed by this success, I tried it on a couple other small things, both of which were successful. Then the big test: I tried applying this to working on Project X. There, it failed… I got some important things done, but I couldn’t force myself to work on it every day, no matter what I tried, so it never became a habit.

Conclusion: habit is a powerful ally, but alone it’s not sufficient for everything I need. Fortunately, there are a few others I can court. That will be the subject of the next article in this series, probably next week.

Know Thyself

For the past several years, I’ve been trying to design and write a very ambitious programming project (referred to here as Project X). But even though I find the project fascinating and intellectually stimulating, recently I’ve found that I’ve had less and less drive to actually work on it.

Last week, I saw another Ford commercial. This one harps on the safety of Ford vehicles, and tries very hard to make you afraid, even going so far as to imply that if you don’t purchase a Ford vehicle, your children are going to die. Nothing new there; although it’s seldom invoked so baldly, it’s well-known in advertising circles that if you can position your product as something that makes people safe from something that they feel afraid of, you’ll sell a lot of whatever it is. And if people aren’t afraid yet, you can always persuade them to fear by exaggerating the threat in their minds.

But the ad got me thinking about why people do things, and specifically why I was having so much trouble working on Project X. Looking back over my life, I suddenly realized why I originally felt drawn to programming, and why that drive no longer applies.

As a child, I was taught that I had to fear everything. I had to get good grades in school or I’d never be accepted into a college, so I’d be a complete failure in life. Strangers were out to kidnap me as soon as I talked to them or got out of sight of my own home, so the few times that I was allowed outside, I couldn’t go more than a few hundred feet away. I had to do whatever my parents said, when they said it, without a word of complaint, or I wouldn’t be allowed to leave my room (I spent a lot of time confined to my room). I had to do what the teachers said or I’d be paddled. I had to do what the preacher said or I’d go to hell.

And it didn’t stop after childhood, either. I had to get a job or I’d be homeless and starving. I had to continue going to school or I’d be stuck barely making enough to live on. I had to do what my boss said or I’d get fired.

I essentially spent my entire life trying to run from one fear or another.

The only things that made life bearable were fiction and, later, programming. Fantasy and adventure stories let me pretend that I might someday be like the heroes in them, powerful enough to do what I wanted, instead of what someone else dictated. And when I was programming, I was the only one pulling the strings — the computer would do anything I told it to, limited only by my own ever-increasing ability to tell it how.

Fast forward a decade or so. I’m forced by circumstances to quit my job with the Post Office, but the Internet has made it possible for someone with programming skills and the right idea to make a good living doing nothing but programming work, and I’m already making enough to live on even without the job. Within a year I’m making more with my programming than I’d ever made at a job, and the amount just kept going up. I still couldn’t do whatever I wanted, because I had to work twelve- to sixteen-hour days, seven days a week, to keep up with what my customers demanded — but I was my own boss, and at least nominally in control of my own life.

Jump forward another five years. I’ve sold my Internet business and started another one. Now I have both the money and the free time. I’ve achieved my childhood dream; I’m finally free! I can do anything I want! And I know what I want: Project X has been beckoning me for years.

Hop forward another couple years to the present, and I see a commercial that makes me realize why programming isn’t as appealing to me as it used to be. I have control of my life now. And I’ve quelled all of the fears that I could effect any control over.

I have nothing left to run from.

I feel like I should have picked up on the problem years ago. Have you ever had a lucid dream? I’ve done it a few times, completely by accident. I’ve suddenly realized that whatever was happening wasn’t possible in the physical world, so I had to be dreaming. And once you realize that you’re dreaming, you can do anything you want. But each time I’ve realized that I was dreaming, the whole thing has just fallen apart. Once I can do literally anything I want, I find that there’s nothing that I want anymore. There are no fears to run from.

It might sound great — there’s nothing to fear anymore, nothing to run from, no one standing over me telling me what I have to do. And it is great, to a point. But what do I do now? With nothing to run from, I feel that I’ve got no reason to move at all. I’m too easily bored to just sit around doing nothing, but I’ve seldom been able to force myself to do anything difficult or tedious without something to drive me, and Project X is both difficult and tedious. I want to do it, but I don’t know how to drive myself to move toward something I want, instead of away from something I fear. And I don’t know how I could make myself feel powerless or afraid again now that I’ve progressed beyond that, even if I were willing to do so.

That’s where I am today. I’ve explored lots of things in the last year to try to get me moving — various mental and productivity tricks, promises of rewards for progress, different philosophies and ways of looking at things — but most of them have had no appreciable effect. But now that I see the root cause of it, it’s obvious why they failed, and I’m much better equipped to tackle the problem.

I’ll continue to write about my experiences in this blog, in the hope that they’ll help others facing similar problems. And though it may sound odd, I hope that lots of other people do have this problem, because it’s very liberating to graduate from a life of fear… even if you don’t yet know what you’re graduating to.