What do you do if you're not a good programmer?
I'm a 25 year old female who was just fired from my 2nd programming job for not being able to improve fast enough. I did the usual career path, computer science degree in 4 years and got a programming job at a very small electrical engineering firm right out of college. I was at that company for 2.5 years, but I really struggled and eventually I was let go. But I thought to myself: "well maybe that just wasn't the right fit! I did feel very lonely in that job! I'll try again elsewhere and ask to be more involved!"
So in less than a month, I got another programming job a much, much larger company, about 300-400 people, and I definitely felt less lonely. But it's only been 6 months and I've just been let go. I KNOW I'm not as fast as the other programmers, but its not from a lack of trying. It just takes me so long to figure out a problem compared to others of the same age/experience. I did fine in school. I got a 3.4 GPA, but I worked my butt off for a 3.4 GPA. I could never have gotten a 4.0 GPA. And I also minored in Japanese, so I had several liberal arts-like classes to bump up my GPA. It would have been much lower if I only took programming and math classes.
I've never been awesome at straight math. I can learn it, but its always been more rote-memorization of problem patterns. I'm very good at recognizing patterns in math class, rather than having a natural instinct for it. So if you give me an almost identical problem, I can solve it because its the same pattern to solving it, but I have only the barest true understanding of it.
And I think I did this to a certain degree with my programming classes without realizing it because I'm a great googler, great at recognizing patterns and mimicking them, and great at asking for help. But in the real world, you're not allowed to ask for much help because that takes time away from other people getting THEIR work done. You're expected to be your own little island, for the most part, and solve problems and often these problems or their patterns are not on google at all. Although I could sometimes find examples in the code base I was working with, but its not always guaranteed. I never cheated to get my degree, but the textbook or google was very good at providing pattern examples. And the problems were just never as deep! "here program this checkers or chess game" is so much easier than "hey I need you to modify this massive code base in a very specific way and don't break anything else without knowing what anything else does!" And you must show us you can self-learn and get up to speed in only 6 months because frankly we're only going to let the manager mentor you for 3 months because these problems should be easy because everyone else your age/experience has no problem figuring it out. (This was oracle SQL and webforms. And in my mind it shouldn't have been difficult either. But I still struggled even though I arranged my life around my job and did nothing but program, eat, & sleep the past month in an attempt to improve myself. But I knew it still wasn't fast enough.)
On the other hand, I'm great at foreign language, which is part of why I love programming. I view programming as a language or a pattern puzzle or something. I don't see it as math.
However, I seem to have a better memory for languages and words than programming. I find myself forgetting stuff all the time and having to relearn it. I have the core concepts down, but if I haven't seen that particular piece of code in a few months and I've been buried in another part of the code, I've forgotten a great deal of the previous code. It's just so freaken hard to remember it all! And I try to write down as much as possible! I describe it as being buried in "French" for awhile, then being told to go get buried in "Japanese" for awhile, but don't forget a single word of "French" while you're in Japan because you'll be expected to go back to it asap. Yet this is all the same language (SQL), it's just different parts of a massive code base.
I have great memory for languages and quotes and all kinds of wordy stuff. But I always feel like a computer with less HDD storage when I'm trying to remember ALL the things I learned from previous projects and all the tips/tricks of dev tools and languages. I feel like an alzheimer's patient when it comes to programming because there's SO MUCH to remember. I actually think memorizing an entire foreign language with its grammar rules is far less complicated than remembering everything you need for programming.
Is there anything I can do with my computer science degree if I'm just not smart enough to be a programmer? I did ask my previous employer if they would switch me into an IT position, but they said "no, that's an entirely different skill set. we hired you to be a programmer. So get used to it or leave."
Would I be capable of doing IT or it is just as difficult as programming? It doesn't seem as difficult when the IT person right next to you is on facebook half the time and in comparison you're desperately using every minute to try to get better at programming because you're too slow to solve problems. But maybe those guys are just geniuses at IT and that's why they have free time for facebook.
I don't know if I could do something like business analyst or not, or if I could even get anyone to let me try. My huge problems are analyzing and understanding large amounts of code I didn't write, and coming up with a good solution in a reasonable amount of time. When I finally do understand HOW to solve the problem, writing the code is pretty quick. Although I can still get tripped up on syntax or structure sometimes aka I'm still a slow programmer.
If I could work at a speed that's natural to me, then it would be ok. But that speed isn't profitable to anyone, freelance or corporate or otherwise.
I need to be a "programming secretary" or something, where they always give me baby problems, or they give me the exact answer of a complicated problem and I go code it. That's the only way I can get done quickly because anything more complicated is going to take too much time and I become unprofitable.
I'm the person who seems like a great fit at first because I come with entry-level skills, but then I can't get past entry-level because I'm not smart enough. I'm trapped. I'm stuck.
I know I've improved a lot since I left school, but its not the level of improvement I need to compete with my peers, not even close.
I have a great personality and have no difficulty talking to people although I'm introverted. So that's probably why I "ace" interviews because many programmers are very intelligent but very mole-like and don't have a personality. The only time I don't do well in interviews is if the interview is very programming-intensive and makes you solve complex problems on the spot. I can talk about technologies and techniques all day. But let me start solving problems in front of you and I will definitely be entry-level or average at best. But that always makes people think they can improve me! They look at that and think, "Oh she's got the basics down, she just needs a little polish and shine to really fly!" But its been tried twice now and I couldn't get up to speed fast enough! Not in a super-small relaxed company who gave me 2.5 years to do it, and not in the high-strung corporate company who only gave me 6 months to prove myself.
UPDATE: I do keep lots and lots of notes while programming in attempt to remember everything, settings, pieces of code, etc. And as for working on programming outside of work, I'm usually so exhausted from "mind-grinding" all day that I don't have any intellectual energy left. I did programming as a small hobby as a kid with the idea I would do bigger stuff if I didn't have to go to school, so I got a job in it. But now that I give 40 or more hours a week to it already, I have no desire to spend an extra 10 hours on top of that! I do have outside interests!
I don't know what I'm going to do yet, but its nice to hear encouraging words from both sides of the opinion fence. I want to go and find another programming job so bad, but I'm afraid the exact same thing would eventually happen. I wouldn't be able to keep up and they'd get rid of me. I hate constantly looking, I want to be good at the job I do! I've always been good in school. I loved school with all my heart. But so far I've always hated the work world because I just can't meet the standards that I need to meet. Job satisfaction comes partly from being GOOD at your job.