hi sonicakes,
There is a lot of good advice here so far, but I’ve actually been in the industry for 20 years, and after reading your words and understanding your pain, I thought I would add my two cents.
So, first things first … let’s address the mythology of your statements above. You being a girl has nothing to do with your ability to learn this stuff. I’ve known many people in the industry over the years, some guys, some gals, and I have yet to meet a female programmer that couldn’t do what a male programmer can do … and I’ve met some talented folks. The other myth is that you believe that your level of Math may not be up to par with what programming requires. I’ll say two things here … (1) programming is not really about Math, and I’ve built a lot of things over my career, but not used much more than basic algebra, save maybe two to three exceptions … (2) programming is about logic and problem-solving, and like anything in life that has some complexity, you need to spend time at it to become better. With programming, the trick is to break down the complex into the simple, and when you do this, you can code the simple thing and then build upon it. This becomes easier over time. The programming language is just a tool to help solve the problem at hand, nothing more, so knowing the fundamentals of the language is key, and then code, code, code … you just have to keep coding and practicing and trying different approaches to solving problems. It also helps to download other people’s code and wade through it to see what’s happening … this is sometimes an uncomfortable way to learn, but it’s a great way to learn as you get different perspectives on how others solve problems using code.
Next, there is probably nothing wrong with you. I can say from experience that you will have to put something you said to rest, and forget about achieving it:
I recommend that you stop thinking this way … it’s a road to pain and agony. You will likely never reach perfection with programming, and that’s a great thing for two reasons … (1) perfection is boring, as you never learn anything new, and (2) this industry’s pace doesn’t allow for perfection, as you have to continue to learn new and different things to be a web developer. Also, if it helps, nobody knows it all … not even close.
Next, that you are trying to solve something every day is a great thing indeed … and congrats, you are ahead of most people in the world who just get done with school and coast, never attempting to learn anything new to improve their careers or enhance their culture, and thus, their lives. So, keep that up … learning should be fun and pleasurable. I suffered from both perfectionism and failure for a very long time, but I finally realized that perfectionism, again, is both a pipe dream and boring, and failure is not a bad thing, it’s a blessing!
When you fail, you assess and you learn … then you go after it harder, and with any luck you fail again, and then assess and learn. Before too long, guess what?!? … you’ve failed so much that you’ve reflected and learned a great deal … and then you start to understand that because you’ve failed, assessed, and learned so much, you are actually quite knowledgable at what you do, and so you understand that you’re not so bad at it, but quite good at it. If you can start to understand that failure = learning, and then relax into it, your journey will improve and become far more fun … btw, this applies to anything you decide to spend time learning.
Finally, I have met a variety of programmers over my years in college and in my career. There are those that get into programming as a financial means to an end. If this is you, run away very fast, as you will not find happiness here. It takes hours, days, weeks, months, and years of staying at it to become a successful programmer who has the confidence to take on any task and feel like you have a good understanding of how you will solve the more complex issues and projects … I’m still trying to find my confidence with some of this, but my love for technology and programming keeps me going above anything else. There are also those who don’t care about the money, but the love of the solve is what drives and compels them to keep at it at 200am, when it feels like you’re not even close to solving the problem at hand, and you just want to pull your hair out because this one stupid bug just feels seemingly impossible to solve.
But you keep at it …
and there is more hair-pulling and deep frustration …
and you keep at it …
and you question why you ever got into such a perverse industry that could drive an otherwise logical person to the brink of madness …
and you just … keep … at … it!
And then, a moment happens … you type a line of code … and it works! All those hours of pain and agony just fall away … and you know that in that moment … right in that moment … you solved the problem, and you have become the best coder you can be … in that moment. And those are the successful programmers! If this is you, then please don’t give up … you owe it to yourself to continue forward. If you have questions about why something works (or doesn’t work), seek out the answers … solve that problem … don’t feel like you’re alone, just reach out and get help. Understand where you went wrong, and understand where you went right. Because I can tell you that as frustrated as you are right now, if you have passion for learning how to program and want to solve problems for a living, then keep going … that feeling I described above, when it just clicks and you finally solve that problem … that feeling is, bar none, the best damn feeling in the world … because you’ve won!
Many people are not cut out for programming, but not because of gender or IQ (IQ has zero to do with it actually). It’s filled with frustration, but it’s also filled with triumph and pride when you see your creation come to life and functioning as you told it to. But, know what you’re signing up for. It’s often intense, and it means that the learning never stops. It seems that every 18-24 months, there are three or more technologies that you have to learn to keep up … it’s truly never-ending, unlike a great many other industries. Most of my friends that are still in tech are no longer programming, they’ve gone over to management. I will code at 900am, and I will code at 200am … I can’t breathe if I don’t have my hands in some kind of tech, creating, building, shaping … because that’s what I love and there’s where my place is.
Find what you love, and do that … the money will come. If that happens to be programming, then please stay the course and keep fighting for it … it’s worth it. I wish you the very best with your pursuits, whatever they may be.