August 8th, 2013, 11:20 PM
Figuring Out You Suck at Programming?
I have a dilemma for experienced programmers out there. I'm hopefully talking to people who have full time jobs in the field.
I am a college senior in computer science (although I probably won't graduate until the end of next year). I work hard on my lab assignments and projects, putting in considerably more time on them than other students. I usually spend at least 15 hours on something for every 4-5 hours my peers will spend on it (not that my end solution is necessarily better, although it sometimes is).
Is this going to be a problem for me when I get in to the field? Will there simply not be enough time in the day for me to accomplish what needs to happen? I don't feel like my skills in programming are worth the salary that they normally earn. To be more specific, I feel like I should be earning the "minimum wage" of a programmer (you know, $10 an hour or some such). I don't even know where I would start with designing a desktop or web application, it would take me weeks to get up to speed in the environment/languages I would be using, let alone working on it.
I ending a summer unpaid internship I did over this summer (I had another job on the side, so I couldn't spend a whole lot of time at it but still did >40 hours per week). I took what they considered way too long on the assignments they gave me. I basically worked on one site for the entire 3 month summer (a mid sized eCommerce website), which I know is not a speed/skill level which would support me financially (if I did it freelance for example -- 3-4k income every 3 months isn't cutting it). They recently brought up their concerns with my lack of skill and offered to sign me up for online courses or buy books for me to improve. Basically they are bringing to my attention that I am slow, and not so great at what I do (not that I didn't already realize all this).
I guess I'm coming to terms with the fact that I may not be super great at programming. It takes me much longer than other to come up with results. Looking for advice. I don't know what to do or if I should switch careers, accept being a poor (both literally and figuratively I suppose) programmer, etc. Would I even be able to compete for jobs in the field? At this point I can't afford to move out from home, let alone a wedding, kids, etc (not complaining, it is what it is).
August 8th, 2013, 11:49 PM
Everyone has different speeds of learning programming. Some learn it at a really fast pace, while some don't. But it doesn't change the fact that eventually, if you work hard enough, you will end up being as good as others or even better than others.
What differentiates average programmers from good programmers is their dedication, interest and hard work.
Imho, you need to practice a lot. In programming, the more you practice, the better you will get. So don't worry about how long you take to finish something. Just keep programming and sooner or later, it'll get easier and easier for you.
August 9th, 2013, 12:16 AM
I agree on that completely. But I have trouble making up learning strategies for myself to learn. People always say "Start A Project" but I never know where to start. Whenever I try to look up where to start, I get overwhelmed or confused on the information that is there. It either makes no sense to me or I just cannot seem to find the info that I need.
I wanted to make a simple metronome app for Android (and iOS) as an exercise, but I don't know where to start with this. Should I just get a book on Android development, follow it through and go from there? I'm afraid that will tell me how to set up my environment (which is a very important step of course), and get my workflow in order and teach me the bare basics of the languages involved, but not give me the specifics on how to do what I want.
I have the logic part of it down, like making a click sound every so many cycles of the CPU... I mean I can do math/logic no problem, but I suck at actually just programming for some reason.
August 9th, 2013, 11:25 AM
Yes, starting a project would be the best way. Firstly, don't look up on what projects to start / conventional things. Think about what you like. What interests you. For example, when I first started programming, it was when I was 14, and it was because I was interested in creating games. So, I looked into the private server development scene. From there, I learned from trial and error by editing the files as well as using google for things I don't know. From there, I've become proficient in a few languages.
In short, you should work on something that interests you. It doesn't have to be something completely new at all. It could be something that's already existing, but you try to improve it / make it better. The most important thing, is interest. Because that itself would give you the push you need.
August 9th, 2013, 01:48 PM
Thanks for the reply. I think that is also definitely true, you'll excell faster at something you are enjoying. The brain doesn't block it out as much then, it lets it seep in.
I am interested in making a metronome app. And i've been interested in developing for android since i got the original droid way back. I just don't know where to start with it. I would guess I need to start with building the layout of the app in eclipse. I feel like some people can just open up eclipse and just know what to do, just go for it without much thought and finish it in a few hours, but i have to spend that much time just contemplating how/where to start, and then coding it would take me more time. Maybe that's useful though for larger projects, when the planning stage is that much more important.
August 9th, 2013, 05:41 PM
I can definitely say I've shared similar feelings with my own path to learn programming. I've currently been learning python for about 3 months. For almost 2 months I spent most of the learning process only reading, and doing very few of my own projects. I eventually started to learn more advanced topics until I realized that even though I understood most topics I had learned, I had absolutely no idea how to tie it all together into a progam.
Originally Posted by Anonyfool1234
I decided to start a project(simple banking program) and failed at a few time, but once I completed it everything just clicked for me. I'm now trying to convert this project into a somewhat good looking gui app.
August 12th, 2013, 04:05 PM
If you can get to the point where you are producing high quality code, even if it takes longer than your co-workers there will still be a place for you as a programmer. By high quality code I don't necessarily mean efficient. Here are some things that will help you stand out once you get a job:
- Good comments, both explaining any non-intuitive logic that is taking place, and summarizing what a function or routine does.
- Write unit tests to verify your logic. Comment these too, explain why the unit test should work this way.
- Consistent naming conventions -- make your code look polished.
All of the above do take time, but they are things that don't require a lot of programming skill, and are extremely helpful. One of the first things most programming jobs have you do is learn the code base so you can modify something. If while learning something you add a few comments and a few unit tests to 'make sure you understand' you've instantly done two things. 1.) Made their code easier to maintain and understand 2.) Added value in a visible way without writing a lot of code. By adding value in ways other than just cranking out code, you'll gain a lot of leeway if something takes you longer than it might take someone else.
That said if you find out you aren't cut out to be a programmer here are couple of jobs you can do to make use of your programming experience without writing code.
Business Analyst -- A BA acts as a go between for the Developers and the person with the idea, and gets on paper exactly what it is a program should be doing. It requires a lot of writing, and a lot communication skills. Having some programming experience can help you better know what is technically reasonable.
Quality Assurance/Tester -- having a basic grasp of coding will make you more valuable in a testing position. Having the ability to find a bug and dig into the code some to see what is wrong can give you an edge.
Hope this helps you as you leave your schooling for a job.
August 30th, 2013, 07:39 PM
I can relate. I'm now what I would call a fairly experienced programmer. I struggled early on with speed, but picked it up. My biggest hurdles however were organization and patience. I learned how to program in such a manner to pick my speed up. Often times planning in the beginning and coding the main shell or structure of the program is best in my opinion, and filling out much of the "inner-functionality" later on.
Originally Posted by Anonyfool1234
One thing you can do is learn how to leverage libraries, and/or write your own to make certain regular operations easier and quicker.
You also may be more comfortable working your way up the ladder. Start with a lower paying job, just to gain some experience and see how it goes. My first job, I was younger, it wasn't terribly difficult and believe it or not, noone really had any serious expectations for me. I worked at my own pace(while nobody was pressuring me, I pressured myself to work as quickly as possible) and learned a lot of fundamentals, even though much of the code was below my level. I wouldnt put too much pressure on yourself, if you get a "starter" position, even if they apply pressure on you, you're a front-line coder and they'll probably wait for you and help you grow.
Working in a professional environment isn't just good for direct coding experience, it's also great for exposure to other programmers who have been in the field longer. They can help you and give you insight. Not everyone is friendly, like any job anywhere, but you will meet people who will help you a long the way and maybe have things in common with you.
Find your strengths, and use them to your advantage, while working on your weaknesses. I bet in a professional environment if you do that for a year, you wont even believe that youre the same programmer you were a year ago.
One more thing - I believe most programmers are underpaid. Every person on this planet has strengths and weaknesses, and different unique abilities which can set them apart. I've worked as a programmer in many different industries, and when I see that front-line coders make less than labourers who press one button(and I'm not judging, I was also a labourer at one point who pushed a few buttons), it makes me a little hateful towards the way things work. Think of how much you know, how much school cost, how long you were there and how little most people understand about not only programming but computers in general, and I think that should arm you with the confidence to apply for a job, since you will most definitely deserve your salary.
Hope this helps