10 Reasons Why People Initially Suck at Programming

Initially everyone sucks at programming. So we decided to compile a list that identifies reasons and advice to improve your programming skills.

1. Is programming right for everyone?

Let’s get this straight. Programming is not for everyone. Programming is for those who have a passion for solving hard problems to make everyday life a lot better.

For example check this 16-yo Kid Makes a Million Dollars Following His Hero Steve Jobs. The only reason he is so successful is because he had a passion for what he was doing.

So if you find yourself lacking some motivation, maybe thats why you aren’t that great. Go find it and last time I checked, money pushes so many people forward.

2. It’s a skill that takes time to master.

Beware of my coding skills!

Like anything else, programming is an art in itself. Yes, you’ll have trouble initially but if you stick with it, you’ll develop the skills necessary to become an avid programmer.

Many will be intimidated by the nerds, naturals, prodigy childs, or even how hard programming is. Just fear not, put them aside and focus what really matters, your skills. I didn’t know much about programming when I started in my CS career in college, and before I knew it, I became an Amazon Code Ninja (Arizona).


3. They have the wrong attitude

I’ve seen this way too many times where people start blaming the professor who can’t teach, the TA, the crappy compiler, the IDE, or even the OS. As long as you keep complaining, your programming is going to be just as bad. So get a positive attitude!

Did you know Roller Coaster Tycoon was written almost entirely in assembly? Yeah go figure. If there is a will, there is a way.

4. I just don’t understand these abstract concepts.

Programming requires you to think outside the box. When you are a beginner, you’ll come across algorithms, data structures, conventions, and an entire myriad of other things that will mess with your mind.

Take it slow, and just start learning everything one step at at time. If you don’t understand Wikipedia it, Google It, or ask someone who knows (That by the way, is my secret recipe for learning something new). Try out examples until you fully understand it.

If you don’t understand the basics, how do you think you are going to understand the advanced topics?

5. Wait, we can use Google?

When you have trouble debugging your code or can’t figure out how to do something, Google is your best friend. I don’t encourage it for plagiarizing code, I’m encouraging it because thousands of other people have probably had your same exact question. And guess what? Others help them to figure out their problem and provide a solution.

GoogleSearchProgramming

Just do it. Everyone does because its the smartest thing to do.

So if you forget about to make a random number, don’t understand a bug, or simply can’t figure something out, Google it!

6. Careful planning and design? Just code while you go!

Before I help anyone with their code, I ask to see their algorithm. If they can’t provide it, I tell them to develop one and nearly all the time they’ll figure out why their program didn’t work.

An algorithms is the framework, and basis, of a program. Many beginners don’t develop one, and write as it goes. When that happens, they lose track of their direction in solving the problem and it becomes difficult debugging. – Benjamin

So next time, save yourself some time and jot your plan of attack on a piece of paper. Start programming until you know how to solve your problem. I do it, and it works amazingly.

You don’t want your program looking like this poor guy, Asimo falling down stairs, do you? So plan accordingly!

7. I have a ton of Errors!! What do I do??

Calm down and relax. Errors are inevitable and happen more frequently than you might think. They are usually accompanied with a line number, simple explanation and sometimes a suggestion. Just go back and try understanding what went wrong. If not, just copy and paste the entire message into Google. Most of the time, it’ll work.

Another thing to try is, code in short snippets and compile your code, frequently. This method will guarantee that you won’t have a terminal full of error messages you don’t understand and will speed up your programming.

8. I don’t understand the language, syntax, or programming environment.

Well, if you don’t understand it, then there really is a problem. In my senior design class we were making a video game using Ogre3D. Let me tell you, it wasn’t the best experience since we were all coding as we went and never really had a great introduction to the environment. We ended up starting from scratch 8 weeks into our project and had to put in about an average of 8 hours a day for two weeks. The last few days we were putting in easily over 14 hours while taking 3-4 other classes…

This taught us to put in the time beforehand to really understand everything about the language, syntax, concepts, and programming environment before we started programming. This would’ve saved us not hours, but days.

9. But the problem is so hard!

Look how I jump into 5 million wallets!!

Do you have an algorithm? Well, that’s your first problem. If you still can’t solve it, try taking a break. People usually figure out how to solve a problem when they are away from the computer. I’ve had many times where I even came up with a solution in my sleep.

Many times all a programmer needs is some fresh air or even a distraction. This will free up your mind and possibly let you see what you didn’t before.

Even sometimes, the best way to solve your problem requires an elegant solution. So the next time you try coming up with a convoluted idea for an iPhone game, check out Doodle Jump. All you do is jump and this game has managed to sell over 5 million copies.

10. I’m waiting for my friend here to solve this problem

This is probably the top reason out of all listed above why some people just plain suck at programming. If all you are doing is waiting for your buddy to help you out, then you aren’t learning anything at all. Sure, they might spend hours trying to figure it out, but in the end that experience is what counts.

So stop depending on other people and learn to become independent. If you aren’t, maybe that’s why you aren’t that great (Or hey, maybe you can become lucky like Mark Zuckerberg).

Thanks to Tony, Jay, Chris, William, Miguel, Al, Roby, Joseph, Felicia, Benjamin, Jesse, Pierre, Erick, and Tony for your amazing input on my Why do people initially suck at programming? note on FB.

Have any other reasons you encountered that brought you down? Feel free to post them below and how you managed to do better, if you did! We’d love to hear from you.

Tags: , , , , , , ,

  • guess

    I was pretty good (not great though) at the mandatory programming classes we had to take in college and I really enjoyed the problem solving but I did see the attitudes you described here. I think in particular the points are – you need to have a passion for it, put the time towards it and not be afraid to make mistakes [as in ask google].

    No matter what you do.. Ability + Effort = Success.

  • http://profiles.google.com/bennix1986 ben baygas

    Great sum up sir.I love your article and your site lay-out. I have followed your blog in the Networked Blog and I don’t regret,it worth. If you have time please visit my blog here:www.bennixville.com

  • Del Greg

    It’s only three:
    1. They are not thinkers.
    2. They don’t have imagination.
    3. They don’t have the passion.

  • http://www.techonologyreview.blogspot.com Technology review

    research program is really heahache thing
    reg cleaner
    voip software
    mobile tracking

  • http://www.facebook.com/BlackHarpy María Castro

    I really love this article, because it IS so true. I think the most important is to find the motivation and passion to solve problems. The rest just arrive with hard work. And even with all the pressure that involves programming the satisfaction when you see your solution working is overwhelming =)
    I’ve also found myself coming up with solutions after a nap or a distraction from the problem. It feels like magic!

  • Pippo

    Hi Diego, great list. I love programming and I hate it at the same time: nothing is so extremely rewarding or so extremely frustrating… it’s like one or zero.

    I think most of the people don’t even realize how hard it is, they go like “computer nowaday do all the stuff for you” and they think you, the programmer, just sit there and put random number inside the box.

    Sometimes I think about those projects that fail for some reason, despite all the effort that some coder put into them. Think for example of videogames, e.g. Montecristo’s Cities XL, released in oct 2009 and declared a failed experiment in mar 2010, with subsequent shutdown of the company in may 2010.. I really can’t begin to imagine how I could have reacted to this if I was part of the team, it’s crazy… you do so much work, mindblowing difficoult work and then get criticized by some random idiot that puts tins onto shelves for living.. but who is right nevertheless.
    What are the chances to spend your precious time in something that will fail when it comes to programming? How many dead projects are out there? For one and a half year I worked for a project that I decided to quit because it was leading to nowhere.. I did my best but I was useful to nobody (not to my pockets as well).

    Yep, sometimes programming is tough, even for the toughest of us.

  • Rugved Mandrekar

    Very nice article. I would also like to add that it is equally important that you maintain an archive of the details of the difficulties of the problem(s) you encountered while trying accomplish a particular task in a project, the corresponding measures and methods you tried to solve the problem(s), their corresponding results, the further difficulties faced and finally the ultimate solution required to solve the problem(s) and the final outcome of the procedure followed. Writing such a type of a documentation will always help in your long run as a prospective computer programmer. Best of luck. :)

  • Hhasdh

    Thank you for helping realize that I’m in the good tracks for beeing a programmer

  • Angela

    Nice article! I agree to all of the points as I am into programming from last 2 and a half years. Well, my problem is a little different, and now its kinda messy situation for me :( . Throughout these years I have been trying to choose a single programming language and gain stability and master it. But my work place does not allow me to do so and at the same time I need some stability in resume to switch my job in C++ domain. Now what I am trying is to fake it out and get into another organisation and gain stability there, but even its not working for me, may be I need to prepare a lot. I am good in complex problem solving, debugging and can code in a number of languages.But this does not helps at interviews :( Can anyone suggest a solution. Help please. :)

    • Miyafred

      To be honest, there is no short cut to a solid career path. I remember struggling with the same dilemma when leaving college; should I pursue my dream career ( in design and animation, which offered no prospects at that time), or a safer path ( statistics, which offered guarantees). I chose the latter. It was a daunting route i took, but 15 years down the path, I’ve had more opportunities than I can possibly imagine. My path has finally brought me to programming.Whatever you choose to master, you’ll still have to take some measure of risk. I believe risk-taking is an important ingredient to being a good programmer, because you spend endless hours writing codes that might or might not work. I suggest you ask yourself what would you like to do when the chips are down, because half of a good career is sticking in when everything else tells you to quit.

    • Miyafred

      Sorry, I meant to say, I chose design & animation over statistics.

  • Pingback: 人们最初厌恶编程的10个原因 « 编程王网站

  • http://www.giftsspace.com/blog Online Strategies

    As a programmer, I have the following suggestions. Always look for new direction to solve hard to crack problems. There may be alternatives, try them. Discuss the problem with the team to get fresh perspective.

    • Fix70

      I would also add; just take a break ; )
      Let your mind wonder off to other things. It’s a great key at unlocking mental blocks.

  • http://www.facebook.com/people/Maxie-Byron-Fuqua-Jr/788598882 Maxie Byron Fuqua Jr.

    the biggest reason i havent been able to learn programming and coding is, quite simply, the complexity. there’s so much to remember and most often every tiny little detail is of vital importance that if you make one mistake your entire project is completely screwed until you find the problem in hundreds if not thousends of lines of code. or millions or billions for that matter.

  • Michael McDonald

    Google is your friend!  If you are ever stuck, simply google the name of the language and what you want to accomplish and you will get code samples galore.  Then sift through the code and understand what it does :) 

  • http://www.Miamiwebdesignpro.com Miami Web Design

    I’ve been meaning to get into Programming but it always seemed like such a daunting task I never bothered to try it. Specifically to try my hand at designing a game with some fellow friends. I’m stilla lil shaky but its true; won’t know how it goes until I try right? time to set SC2 aside for a little bit :P

  • http://www.canofcode.co.uk/ Josh Browning

    Great article, couldn’t agree more, especially about being independent. I gained that ability by having nobody technical around to ask!

  • Mark

    Nice list.  Thanks.

  • Pingback: 10 Reasons Why People Initially Suck At Programming « Pohvin dotCom

  • http://www.desi-date.com/ DD

    I would put the list in a different order, but otherwise it is good. Programming is an art and not for everyone.

  • Leslie

    Hi,

    I’m starting off as a junior developer and finding it pretty overwhelming taking in a lot of new information. A lot of times, I feel so unmotivated because I feel like I need to know this all. I know that I need to be better at problem solving and being independent, but the struggles as a noob don’t seem normal to me. I’m in my 4th month and I really want to get better at it. Im learning so much and enjoying it when I understand and get things working. I’m wondering what a typical jr developer goes through and if the overwhelming feeling is normal? Im very hard on myself and have been told this all the time but it’s important that I do well in my position because it’s something i really want to do. Any one have thoughts or experiences about their first year in development was like?

    Thanks

    • http://talkbinary.com 0xD1E60

      It is perfectly normal to feel overwhelmed. Have you talked to your coworkers? It takes mostly about a year or so for one to truly understand how to use all the tools and get acquainted with the development cycle of a large company. If you are struggling but maintain a good pace for learning and making progress, you should be right on track.

      • Leslie

        I’ve talked to some co workers, yes. But at the same time,i want to be a hard worker. Things just don’t click right away for me so I don’t know if it’s normal. I feel like I might be expecting high expectations bc I want to understand everything but there’s a ton of code and I guess that’s what gets overwhelming. However, Ive been thrown into my first implementation just a month into it… And getting another one soon,, I feel like the more I’m exposed to, that I’d get better at it. I just hope I reach my time where I can say,,, cool I got this ! Beginners are such a struggle!
        Thanks for replying :-)

  • http://jjcorner.com jimmy johanes

    very nice article, if you are not capable in programming and any logic thinking, please find other jobs, don’t be a programmer, don’t waste your time and resources.

  • Pingback: 10 Reasons Why People Initially Suck At Programming | Pohvin dotCom

  • Danjekshadow

    Man, now I realized how sucky I am. Thanks for your help.

  • Pingback: People initially dislike programming 10 reasons - Open News

  • http://waiverform.org/ Waiver Forms

    Anyone can learn to program, not everyone can be good at it.

  • Bogz13092

    The last item is what was happened to me while I studied programming. I took hours of solving an algorithm and voila, several of my classmates copied my work. I have not much expectation of myself to solve the problem. Rather, I expected them of getting ahead because of the fact that they got higher grades in programming than I did. And the lesson I learned is grades don’t count as an excellence of the field of study. Usually, the tests are multiple choices. 

  • Juicebox

    With a little humility, everyone reading this post can see where they need to improve. It’s hard profession, but extremely fun!

  • http://www.facebook.com/ashwing13 Alexa Hannah Powell

    Once whilst working in a part-time job in a bar, I happened to get talking to a programmer who worked for Microsoft. He admitted quite humbly that object-oriented programming confused him to no end, and that the best thing you can do when you don’t understand something, even in a meeting where you might feel embarrassed, is to ask. Paraphrasing: “The chances are, someone else doesn’t understand it, either. Or, perhaps, they only thought that they did.” Just goes to show that you’re never too far along in your career to ask questions.

  • http://twitter.com/Larryfaggot Larryfaggot

    THis is a fuckin gbird

  • ABHISHEK SURESH

    Thanks a lot for this article. I don’t have much background with maths , How much of mathematics is really important for programming?

    Thank you

    • ohgodkillmenow

      Depending on what you’re programming, possibly none. For example, you could end up working on mindless CRUD apps where all you do is ferry data between a database and a screen. Nothing will make your life seem longer and emptier.

  • Sean Fallon

    I’m ok with programming, what I’m terrible at is passing the judgment of extremely advanced senior developers that enjoy grilling the crap out of me.  But I think for me, it’s the time barrier, although that in itself is very difficult when trying to pay the bills.  In the end, I often rethink my career in IT. Personally, I think I’m just tired of being judged so harshly and getting no where.