Thread: Putting Programming Knowledge To Practise

  1. #1
    Registered User
    Join Date
    Jul 2007
    Posts
    1

    Putting Programming Knowledge To Practise

    Hello,
    As ths is my first post I'd like to quickly introduce myself before I ask my questions. My name is Dan, I am a 3d Artist/Animator and over the past year have been studying C++ and hope to one day utilise my programming and art skills together for game development.
    I have spent quite some time reading books and working through tutorials learning the fundimentals of programming and the C++ language, sometimes in general terms and sometimes game specific. Recently though, I have started to slow down and have come to a bit of a learning block. After a year of study I don't have a great deal to show for my hard work and its occured to me that I have never really put my knowledge into practise. I've found that I understand most of the things I have covered well, but, as to actually using them I find I have a bit of a mental block.
    For example, I have gone through many of the quizes on this site and pretty much get 100% of the questions right. Ones I don't I look up and understand where I went wrong. Then I moved onto the challenges and tried the 3 'code completion' tasks and managed to do each one very quickly indeed, from memory, 100% correct. So then I moved onto the help free and just about got through the first one, looking up many parts from past tutorials i've covered, but then the second has causes me to grind to a halt. If I looked at the solution I would probably understand all the code used, but I'm just not able to get there from scratch. It feels like i'm not in the right frame of mind to approch programming problems yet.

    So my question is does anyone have any advice? Can anyone remember how they first started to apply there knowlege when first learning? Is anyone going through a similar problem now?

    Thanks for your help, sorry for such a long first post, I feel i just needed to explain where I'm at, at the moment so hopefully can get some advice and start to move on from here.

    Dan

  2. #2
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    It sounds like typical "I want to write a program, but I don't know what I should write" - which is a very common problem when you are programming for study reasons on your own, rather than for example doing it for a living or as a university course.

    Unfortunately, I don't have a great deal to offer.

    If it's game programming you want to do, why not take a SIMPLE game, and try to recreate it from scratch. And when I say simple, I really mean REALLY SIMPLE. Start with a 2D game, then try a really basic 3D game (young kids games are a good place to try here).

    The reason I say simple game is basicly that if you start embarking on a "Quake 5" or some such, you'll probably not finish it, simply because there is SO much to it.

    If you really don't want to recreate an existing game, try your hand at some simple ideas of whatever your favourite game type is (racing game, shoot-em-down, fantasy/role-play or whatever). But keep it REALLY simple, just a simple map of the area you can move in, a basic play-scheme, etc, etc. It will not be anything that you'd actually want to spend a lot of time to play, but it'll teach you lots.

    You'll for example find that you're now writing a BIG program, and you're solving problems that you don't immediately know the solution to.

    --
    Mats

  3. #3
    Registered User
    Join Date
    May 2003
    Posts
    1,619
    There are lots of people (myself included) on the flipside of that coin -- a lot of programming experience but no art experience. You can try to collaborate with someone like that; teach them art and learn programming.

    There's an art to programming, too, it takes practice like anything else; the difference between knowing the language and writing a program is similar to the difference between knowing English and writing a novel.
    You ever try a pink golf ball, Wally? Why, the wind shear on a pink ball alone can take the head clean off a 90 pound midget at 300 yards.

  4. #4
    Registered User manofsteel972's Avatar
    Join Date
    Mar 2004
    Posts
    317
    I remember reading an article online called "Teach Yourself Programming in Ten Years" by Peter Norvig. With all the books out there that make it sound like you can learn to program in 24 hours a lot of people have this misconception that programming should come to them very easily. Maybe for some it does. But a majority of people studing any subject, take about 10 years to become really proficient. My advice would be first to realize this is not something that will come instantly. Second, if you are worried about volume, more isn't always better. It is good to practice, don't get me wrong. But if a person doesn't fully understand what they are doing. All they are going to do is output a huge volume of crappy code. Then you will probably feel more depressed that you spent so much of your time outputing all this code that will probably require even more time to go back and fix. If it is really bad then you will have to rewrite it anyway. Like Cat said, knowing how to program is very different from knowing how to design a program. If someone were to give you a specification, I would guess that you probably would be able to figure out how to write the code. From what you have posted, it sounds to me like you are having trouble with comming up with a design that works not with the actual programming. Of course I could be wrong, this is all just my own opinion.

    [Edit] Just another side note. Usually when you come to a problem, you can solve it in many different ways. Sometimes this can cause some indecision. For me, I have a tendency to want to choose the best solution to a problem. I get so caught up in finding the best solution, that I spend an inordinate amount of time on it instead of just implementing a reasonable solution and making a note to come back later and try to improve it. Bascially this a form of analysis paralysis. If you have problems, post on the boards. Sometimes a fresh pair of eyes can point out something that you are not able to see.
    Last edited by manofsteel972; 07-28-2007 at 01:49 AM. Reason: corrected title of article and added comment
    "Knowledge is proud that she knows so much; Wisdom is humble that she knows no more."
    -- Cowper

    Operating Systems=Slackware Linux 9.1,Windows 98/Xp
    Compilers=gcc 3.2.3, Visual C++ 6.0, DevC++(Mingw)

    You may teach a person from now until doom's day, but that person will only know what he learns himself.

    Now I know what doesn't work.

    A problem is understood by solving it, not by pondering it.

    For a bit of humor check out xkcd web comic http://xkcd.com/235/

  5. #5
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    I completely agree: reading about programming is as useful as reading books about how to drive a car - it will give you some idea of what you need to do, but once it comes to doing it, you need to practice. You still need to understand the theory and rules, of course [no good driving on the wrong side of the road, for example].

    Also, there's a similarity between driving for the "driving test" and "real life driving" - when you pass your driving test, you think "that's it, I know how do to this", but with more experience, you learn how to anticipate situations, and regularly doing things will make them "happen automatically", rather than having to think about every step of something like you do when you are a "beginner".

    Writing large applications is similar to driving a long (and complicated) route - you need preparation - plan your route (at least roughly - no good going straight north, when your goal is southwest of you). What CAN be done is "take it day by day" for the EXACT plan of what to do, but if you need to be the other side of the US by the end of next week, you'd better not stop at every tourist attraction on the way to sight-see - but perhaps neither do you need to go straight on for 24 hours per day without stopping, you'll have some time to sightsee. So, an overall plan of what you're trying to achieve, and some smaller portions that you need to sort out on the way - going back to the driving analogy, perhaps you need to stop and see your aunt Mable in (somewhere) which means that you need to take her location into the route. But the details CAN be dealt with ad-hoc, as long as you have some overall plan.

    Prepare for the plan changing as you go along - you may find that your main data-structure needs changing - this is where handling things inside a datastructure in only one or a few places makes good sense, for example. By isolating functionality, it reduces the need to change things all over the place.

    --
    Mats

  6. #6
    Registered User Frobozz's Avatar
    Join Date
    Dec 2002
    Posts
    546
    Quote Originally Posted by manofsteel972
    I remember reading an article online called "Teach Yourself Programming in Ten Years" by Peter Norvig.
    http://norvig.com/21-days.html

    Quote Originally Posted by matsp
    reading about programming is as useful as reading books about how to drive a car - it will give you some idea of what you need to do, but once it comes to doing it, you need to practice.
    Yeah that's something I had to get over myself. Last C++ book I purchased turned out to be an almost total waste of time. I figured because it was big (C++ Primer Plus - around a 1100 pages) I would become better at C++. And sure I learned a couple of points that I didn't know before, but largely it turned out to be a waste of time, money, and effort.

    Unfortunately now the hard part starts. Using my knowledge to code small programs while trying to keep from going overboard with features I want to add but don't have the experience to do.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Linux Putting my children to sleep with futex!?
    By Abs in forum Linux Programming
    Replies: 18
    Last Post: 02-12-2009, 06:43 PM
  2. Replies: 6
    Last Post: 06-30-2005, 08:03 AM
  3. Putting a password on the prog
    By Inferno in forum C++ Programming
    Replies: 24
    Last Post: 09-18-2004, 01:07 PM
  4. C++ Knowledge Needed For Making Graphic Games?
    By Krak in forum C++ Programming
    Replies: 14
    Last Post: 07-11-2003, 09:11 PM
  5. knowledge corrupts
    By Sentaku senshi in forum A Brief History of Cprogramming.com
    Replies: 63
    Last Post: 06-07-2002, 11:12 AM