Psychological Technical Debt

Hello world. 

I’m 27 years old and just finished a boot camp to become an engineer, but my status as a professional hasn’t been consummated by receiving any money for my work. I supposed that makes me an amateur. 

Being a boot camp grad is hard for everyone. There are many companies that just don’t believe our kind are really engineers after only 12 weeks. My peers are amazing though, and it’s unfair that we have to deal with that stigma. That’s not my biggest problem though. Not even close.

My biggest problem is me. I am consistent only in my ability to let myself down. If it weren’t for me, I’d be a really good programmer. I mean I seem to have some aptitude, I’m just really struggling to overcome bad habits, self limiting beliefs and an ass-load of fear. Together, plus some things I haven’t noticed and/or named, these traits make up what I call my “Psychological Technical Debt.”

Donkey with scream emoji and the scream
FYI, that’s a really clever term and I’m extremely proud of myself for that. 

For those not in the field, “technical debt” refers to the work you put off until later. This happens when you settle for code that works but is not the best it can be. It’s like driving on a spare tire, the car moves, but there are “buts.” 

So, psychological technical debt is the self work that you previously avoided by pseudo-coping with your flaws. At some point, you’re going to have to dig into your inner dirt and pull out all the causes by their roots. 

Pulling out the carrots of self-limiting beliefs
Then you can plant something more attractive. I hope. 

I think I may have found a root tonight. Although my conscious mind is 100% invested growth, my subconscious is clinging to a fixed mindset. How can I tell? Evidence slips out when I’m crying at my husband. 

Tonight he told me I need to love myself. 

Me: “it’s like if I told you ‘you just need to fly!’ I don’t even know where to start. It would be easier to love an enemy.”

Also me: “how can I love someone who only ever disappoints me?”

He pointed out that I can change if I work at it. There’s a bit of a chicken and egg problem here. The thing I hate most about myself is my ability to avoid work (often by creating a melt down over how much I hate myself for not working hard enough). Saying that I can change that by working hard is sort of frustrating.

But what if, instead of convincing myself that working is impossible because I don’t work, what if I challenged my core assumption, the way I would if I were debugging? 

What if I can work? 

After all, I made it through boot camp. Someone must have been doing that work. If I accept that thought, I have something to work with.

So I can do work. Actually, looking back on boot camp, I can work hard and proactively if I have a clear task.

I have an objective: become a proud and competent, employed software engineer with lots of money and a side project. But there are too many tasks leading up to that. So I’ll have to prioritize. That sounds like work. Lucky thing we just established I can do work. 

But I need to work consistently. So my working can’t be contingent on the belief that I will reap the rewards, since my subconscious doesn’t believe I will work hard enough to get there.

I need a hopelessness-proof plan…

Haha, I’ll get back to you on that.

Advertisements
Featured post

Today

So, I said I would start posting regularly on Tuesdays, and guess what today happens to be!

Yep, it’s Wednesday.

Close enough.

I’m still really struggling to make myself…. do pretty much anything. But I feel more hopeful these past few days, and although it’s still a struggle, it’s a slightly more successful struggle than it has been in the past. I do at least one thing I feel good about most days now.

I’ve been watching node tutorials and learning about docker, but I’m getting anxious to get back to coding, start my project. It’s tricky, because I want to know the stuff taught in the pluralsight courses so that I can use it in my project, but I don’t want to wait to start my project until I’ve finished the whole course (cause I’m suddenly impatient. If only I had started earlier).

Yesterday, I met with the career services lady from the bootcamp I went to. I reached out to her last week because I was feeling lost and disappointed in myself. We came up with some things for me to do in the next two weeks and then we’ll check back in. I think I was already starting to get my head on straight before I saw her, but I appreciate the tiny bit of structure that meeting with her provides.

There’s another person offering me structure. I met her at a Meetup, and knew I had to be her friend (people who burst into song when the conversation provides an accidental cue are my kind of people). She’s given me the assignment to finish up my personal website by next week. I find her company very inspiring. She seems to believe I can do the things, so I just sort of roll with it and pretty soon I’m doing the things. It’s like magic. Also, she’s fun to be around.

In other news, I spent the whole of yesterday in San Francisco and ALMOST didn’t binge. I actually just sort of decided against all sorts of amazing things, not because I’d made some declaration,  but just to see if I could. When I finally did give in I think part of the problem was I was distracted by a podcast and not really noticing what I was doing… I was just sort of automatically serving myself frozen yogurt, and pretty soon it was over and I was all “what just happened?” But I’m choosing to focus on the hours and hours of not giving in, because that is progress. Usually, the first thing I do when no one is looking is buy (not joking) three or four pasties and eat them, sometimes more than once a day, nearly every day. These binges are not satisfying, but I typically regret it if I miss an opportunity. Yeah, you ready that right. I regret NOT bingeing. That’s part of what was so cool about yesterday though, was I actually felt pretty good about saying no.

Ok, so I didn’t update like a said I would. Life happened, and also laziness. But I did come up with an estimate on how long the Recursive Resume app might take. Three weeks. That’s longer than I would like, but if I had just bit the bullet and started three weeks ago I could be halfway done by now. And if I had started six weeks ago I would also be halfway done.

time_estimate.png
recursion, no base case = infinite loop

My father thinks it should take less than three weeks. I guess there’s only one way to find out for sure. I’m going to try not to stretch too much past three weeks.

The plan is to build it in MySql, Node.js, Express.js and Angular.js. Some of you might be thinking “but Mongo!” to which I say “relationships are important to me.” Of those four (MySql, Node, Express, Angular) I am skilled in …… 0. I had a brief encounter with all of the above, though not together, several months ago, but I haven’t kept the little I learned. So, yes, I’ll have to be learning as I go. I realize that will be hard and scary at times, but I’m also excited. That’s how a real engineer would do it, just dive in and learn what’s needed as needed. If  When I pull this off it will be amazing for my self esteem.

In other news, I have high hopes for my new work station. It’s in the horrible, messy garage, with the bad light and the tripping hazards, but it’s worth it because TREADMILL DESK. I’m writing this post while I’m walking.

Why is that so exciting? Because I can stay awake and alert when I’m walking. I have this problem where I fall asleep involuntarily. A lot. It was a major contributing factor in my failure to complete the first bootcamp I went to. I was unable to stay awake during lectures and so was pretty lost in labs. I even feel asleep in a one-on-one tutoring session that was supposed to help me get back up to speed. In the second bootcamp I went to, I just requested they bring me my own podium in the back of the room and I used that as a standing desk during lecture. I got lazy towards the end of the course and tried sitting down for a few lectures. I didn’t stay awake for a single one of those (but I had alerted all the students and teachers that it might happen and so usually someone would wake me up and point to the podium. Good people).

Anyway, this is a problem if I’m to learn anything. I can usually stay awake when doing things, but in order to do a thing, you need to learn it at least a little.

You might be wondering why treadmill desk and not standing desk. I don’t love standing, I find it uncomfortable and therefore distracting. But walking is good, I don’t have to think about walking. And I remember I used to go on really long hikes and not mind walking for hours as long as my mind was occupied.

We already had the treadmill, we just bought a “SurfShelf” for around $40 and strapped it on and voila!

I’m secretly hoping that this will also be a good step on the path to getting healthy.

Do you believe in magic?

I’m not one of those people who loves coding because she loves puzzles. I love coding because I believe in it. I believe in it the way Harry Potter believes in magic. It was there all along, waiting for me to use it to solve all my problems. I keep having problems and then turning them into app ideas.

One problem is that I have trouble organizing what I’ve learned and projects that use that knowledge so that I can refer back to it. So, I want to write an app to organize examples of what I’ve done, searchable by the skills involved. This will be for my own reference and also to impress potential employers. Mostly for me though. It’s really handy to refer back to your own work when you need to do something similar again. It will have links to the exact files on github where the searched for skill is used. Perhaps there will be explanations as well. The working title of that project is Recursive Resume. Get it? Because it’s self referential. I’d love to come up with a recursive acronym to use as a title, but mostly the ones I come up with just sound weird.

The other app I want to write for myself is the app that will help me get healthy.  It will be based on the teachings of Elizabeth Benton of the Primal Potential podcast, specifically the type of food journaling she recommends. The idea is you track your food items, not even worrying too much about amounts, and you track certain side effects afterwards, such as levels of hunger, energy, cravings. Then, after a while, you start to see patterns. Except I think doing that in a journal is clumsy. I tried it. But imagine how better it would be in an app that provides data visualization! Also I think if I made a whole app I’d be motivated to use it regularly so that all that coding doesn’t go to waste. I have no catchy name for this one yet.

There’s even a third app I’ve got in mind: I call it Time.pie. Basically, it’s to help me visualize my day as I’m planning it by allowing me to plan my day in pie slices. Will it change the world? Nope! It would be fun to figure out how it could work though, and maybe it would be useful.

I’m a little stuck on starting because don’t know which to start with.

My father (an engineer) thinks the Recursive Resume app is a really great idea for showing off to potential employers. He seems to think it would provide me an edge in seeking employment. I think he might be right, but I sort of wish I’d never had the idea. It’s just not exciting to me. But if it would help me get a job, I can’t just not do it because it’s boring, right? And it would be nice for keeping my knowledge organized. As I build the other projects I can add them to the database.

The health app is one I’m passionate about though. I’m almost exactly 100 lbs overweight, and that’s not great for my health, my mental health and honestly it’s stressing my marriage. I really believe in the concept of learning to eat “foods [I] love that love [me] back.” Somehow the idea of discovering a personalized food list sounds more fun and liberating than following someone else’s food rules. I hate being told what to do, but the idea of eating to optimize my mood in the immediate future… that I think I could get behind. If I could get the app working and it helps me lose the weight, that would be a huge set of accomplishments. I’ve been sitting on this idea for I don’t even really know how long. A year at least, maybe two. When I think about it, it’s like my mind is on fire with possibilities and hope. I really want to start making progress on it! But I’m also scared to start it because I want to get it right, and what if I need more practice before I can do the idea justice?

The third idea, Time.pie, is sort of a throw away. It could be fun, and if it turned out not to be fun I would be fine with abandoning it. The appeal there is that I wouldn’t be as tempted to stress myself out over it, which might make it a good one to start with.

You’ll notice these ideas cluster around a theme: personal growth. I want to be better, and I want to create a system that will support me in that, whether it’s to help me retain knowledge, to help me improve my health and therefore overall performance in life or a silly app to make time management more fun.

So yeah, it’s hard to choose. The path of least resistance would be starting with Recursive Resume, because my husband and I live with my parents and my father does periodically ask if I’m working on that app. I’m adverse to conflict, so it would be convenient if I could answer “yep.” I kind of hate that though, because, as I mentioned, I hate being told what to do. Also my husband feels I let my parents have too much influence over me and that I need to grow up and make decisions for myself. So if my husband were to find out that I’m listening to my father’s advice there might be an argument. So there is no guaranteed way to avoid conflict. Technically, I’ve already started that project, so there is some momentum in its favor… But is that momentum negated by the fact that I’m not excited about it and therefore very at risk of procrastination?

Part of the problem is I have no idea how long any of these will take, unless you count “twice as long as I thought possible, even factoring in that I expect things to take longer than I think is possible” as a valid time estimate. If I had a rough idea of what kind of time commitment I was getting into with each, that might make it easier to decide. If I knew that Recursive Resume would only take two weeks it would make sense to just knock it out of the way so that I could start the fun stuff with a clear conscience.

Probably I need to set arbitrary deadlines for each subtask to minimize how much I allow myself to get bogged down in details. I don’t have a lot of project experience on which to draw to make reasonable deadlines, so I’m going to have to balance the fact that I need to stick to the deadline to guarantee progress against the possibility that my deadlines may make no sense at all. I guess this is the sort of thing that the agile concept of velocity is supposed to help with? If you know what to do about this, please sing out in the comments, I would be grateful for advice.

Wow, I’m really glad I wrote all that. Suddenly I know what to do next: try and break my top two projects down into the likely subtasks and then just come up with guesstimates about how long each subtask might take. Then I’ll total up the timeline for each project and I’ll use that to inform my decision.

I feel really good now that I feel I know my first step. To be honest, yesterday pretty rough. Not that anything happened, I spent the whole day either on facebook, stressing over what to be doing, or crying bitter tears of disappointment, frustration and self hate. So, a pretty normal day in that nothing got done and I also really didn’t enjoy myself at all. Moving on.

It’s a relief to see that first step laid out in front of me like a stairway leading out of a dungeon. I’m excited to take that step. Here’s me committing, right now, to posting again tomorrow evening with a brief update on the outlook of the projects. Also, I think it’s time I got strict about having a blogging schedule, so I’m deciding right now that I should post every Tuesday at least. Thank you so much for reading, writing all this has really been helpful for my mood and decisiveness.

Like most bloggers, I’d really appreciate it if you felt inspired to leave me a comment. Here are some prompts for your convenience:

  1. If you’re a developer/engineer/similar, what advice do you have for a n00b who wants to pad her portfolio with a brand new project?
  2. Have you ever taken on a passion project (of any kind, not just coding) without any external structure and what was that like?
  3. Do you ever struggle with prioritizing things you want to do? things you need to do? Things that might be a good idea but you’re not guaranteed to benefit from?
  4. What inspires you or gives you hope?

Blog at WordPress.com.

Up ↑