I've had to remind myself far too often lately that things will get better if I can just keep my head above water long enough. Specifically, work things. Transitioning to this new position, even 6 months later, has not been as smooth as I'd like. While I'm a single oral test question away from my engineer's cap (a question I've been waiting to answer for over a month now), I still don't feel I know what the heck I’m doing more often than not.
I have been doing real work consistently for almost 2 months now, and sporadically before then. I've completed 10 cards, ranging from a quick 5 minute fix to the most recent issue which took almost a month. My final class was in December, and I haven't had steady classes since October. I have completed at least one card without having to ask questions, which was a nice confidence boost. Other cards turned out easier than originally thought, and I was able to resolve them both quickly and almost entirely on my own. Then I hit a few cards which were more challenging. I am unaccustomed to feeling lost for long, and the experience has bruised my self esteem.
My most recent card, I paired up with one of the more experienced Devs. I say paired, but it was really like I was in the kiddie cart while he drove. He did all the real work. All I could do was run through the scenarios and try to find where his solutions weren't working. I tried for 2 weeks to read the stored procedure the issue centered upon, but it's thousands of lines long and there are too many things about it I just don't understand. My pair explained what some of those things are supposed to do, but I still don’t see how they actually work. Meanwhile, I wasted his time trying to find a solution for for an issue that turned out to be something I forgot to enter when creating the scenario in the front end. Very frustrating, to repeatedly be so very, very not right.
My pair decided the card was complete enough to submit this morning. When QA failed it almost immediately, I was at least able to explain the households he was looking for but not seeing were in a different BIN (basically under a different contract), so he shouldn't see them in that situation. He found one other situation he didn't think was right, but he also didn't think it would matter based on how clients use the software. He passed the card. Now we wait to see if it passes the final test. The Product Owner will look at it when she's back in the office tomorrow. If she believes it works well enough to push out to clients Thursday night, the card is complete.
Meanwhile, I picked up the card I'd put on hold when the one above failed. Another Dev had worked on it for a few days, but that particular Dev was on loan from another team, and the loaner Devs all went back to their team Friday. The card was not yet complete, so went back on hold until someone else could pick it up again. Since I already had some background on it, I picked it up again.
The good news is, he sent me the notes he had on the card. The not so good news is, the easy part is fixed and I have to figure out the rest. At this point I feel more confident with this card than I did on the last, so at least I have that going for me. Of course, all I've done so far is recreate the issue. We'll see how it goes when I get into the stored procedures.
I don't know how much longer I can tell myself that I'm still in the early stages of this job, that I'll get it if I give it enough time. I'm impatient, for one. I'm frustrated with my lack of progress and understanding. I'm unaccustomed to feeling so clueless for such long periods of time, when I've invested a good sized portion of my self esteem into feeling intelligent and accomplished. This is extremely uncomfortable for me, and I'm not 100% confident that discomfort will go away. I'm afraid it may be a facet of the job itself, to struggle until solutions are found. If that's the case, this may not be the career for me.
I'm holding off judgement until I've given myself a fair amount of time, until I can say I really put everything I could into succeeding. Among other things, this means gathering as many tools as I can to make the job easier. Toward that end, I'm taking Harvard's CS50 course, which is free online here. It's basically an intro to Intro to Computer Science. This course is very much like the MIT course I started taking a few months ago, only less dry and more contemporary. So far I like it a lot better. Certain concepts were introduced right away, and the language in use is C rather than Python. I'll also touch some PHP and SQL toward the end of the course. So the course will introduce me to new languages, but it is also supposed to teach me how to troubleshoot code issues. This is something huge I feel I'm missing. Every time I pick up a card I feel I'm starting at square one, that I go through far too many unnecessary steps to actually figure out what's going on. I don't know this for a fact, because I've never been trained to troubleshoot logically. I'm hopeful this course will help my confidence levels, if nothing else.
|Maybe I should pin this to my wall...|