What experience do you have in terms of programming?

Started by
12 comments, last by Anri 11 years, 1 month ago

I've learned some C++, I've learned some SDL, and am now understanding DirectX 11. But I know I can't possible learn it ALL.....

When I think of the pro's, the experienced, the people who use their incredible skills of math and programming to make video games, I sometimes wonder, just how did they make it there? And knowing how they've made it there, just how good are they? These questions I hope will give me an idea to just how smart I should get in order to become a more sucsessull programmer in the future! So hbu? How much do you know? :D

Advertisement

There's really no magic recipe.

I know some truly phenomenal coders who have barely touched anything but C++. I've also known some people who have written in dozens of languages but couldn't code their way out of a wet paper bag.

I can offer three points of advice:

  • Know what you want to be good at. Put another way: pick a topic to master. You don't have to confine yourself to a specialization necessarily - you can always get deep in several areas - but you need a target, especially at first. Graphics, physics, AI, architecture, whatever it may be. Pick a topic and dive into it.[/*]

  • Stretch. Pick something just beyond your current capabilities, and go for it. Learn what you need to learn. Force yourself to expand, either in breadth, depth, or both.[/*]
  • Don't assume that you can ever stop learning. Stagnation is death. There's nowhere to "make it" to - just an endlessly vast landscape of things you still don't know. This is important for two reasons. First, you can never become comfortable, or you won't be relevant for long. Second, you need to retain perspective: no matter how much you learn, there's more out there, and people who know more than you do about it.[/*]
  • There's also this which really is just the same thing with a little more exposition.

    Good luck!

    Wielder of the Sacred Wands
    [Work - ArenaNet] [Epoch Language] [Scribblings]

    I've worked in the industry for about 7 years now. I started out as a generalist doing everything from UI work to databases, to tools, to rendering to gameplay, and now I'm specializing in animation.

    You don't need to specialize. Being a really good generalist can be beneficial as well, it really comes down to what you want to do.

    The real key, as ApochPiQ stated is to never stop learning. You don't need to be an expert when you start your career, but you need to have an ambition to work towards it. And once you are an expert, you need to work even harder to keep advancing the field.

    I probably was roughly as knowledgeable as you when I got hired (although it's hard to make that statement based on only one post). There are lots of entry level positions that don't require years of experience.

    As already stated by cardinal and ApochPiQ the key to software development is that it as a constant learning excersise.

    also people tell you that to be the best game programmer you need to know C++ inside out and have a firm grasp of Maths an d Physics. Whilst these may help it doesn't make you the best games programmer. What makes a good games developer is having the art of "Getting Things Done".
    When working in the games industry you will come across some of the most aweful hackery and botched coding possible but, the thing to remmember is whoever wrote that code got the job done (probably after two weeks of no sleep during crunch).

    When I think of the pro's, the experienced, the people who use their incredible skills of math and programming to make video games, I sometimes wonder, just how did they make it there? And knowing how they've made it there, just how good are they?

    Most good programmers/software engineers I know are good in what they do, because they are very experienced in what they do. Which means, they have been doing it over and over again for a very long time, most of them can be considered professional programmers for at least 10 years. Also most of them started out at a young age with coding and did a lot of hobby-projects to constantly learn new things. But no matter how good they are, none of them started out without making bad mistakes and producing ugly software in their early years.

    How good they are?

    • They get complex software of high quality done and shipped in time on a regular basis.
    • They can come up with good solutions in reasonable time for even the quirkiest problem.
    • They hunt down bugs with fearsome accuracy and speed before breakfast, more often they spot said bugs before they take their toll.
    • They write articles and books to teach other people on regular basis

    I think I could go on quite a while on how good some of the guys are smile.png

    My 2 cents:

    The best way to learn is from mistakes. Only geniuses learn from the mistakes of others. I am not a genius, so I had to do it the hard way. To really appreciate a design pattern, you need to have tried to implement it the wrong way first. To a smaller degree, you won't learn about mistakes from books, you will only find the correct answers. That is why it is hard to become an expert without actually do it yourself.

    Spend some time on this type of forum, ask questions and answer questions. You can learn surprisingly much when you are writing an answer and do some double check with other references. And you learn even more when someone else points to errors in your answers (falling into the category of learning from mistakes). The like/dislike button provides a powerful impact on the learning behavior.

    I have a son studying games development at university college. They do most of the studying designing small projects, under supervision. I think that can be a very efficient way of learning.

    [size=2]Current project: Ephenation.
    [size=2]Sharing OpenGL experiences: http://ephenationopengl.blogspot.com/
    I can effectively use at least 4 languages the other 4 I know I am mediocre with because I am rusty on the standard libraries. Some sort of topic specialization helps. Also don't be afraid to go way beyond what you know. An example is micro controllers. It is something I always wanted to learn and now I am doing it. I have learned so much in small amounts of time spent and I am just scratching the surface. It feels awesome to learn something new.
    You have to have passion about a subject to become an expert in it, and advance beyond even that point..
    I have programmed for 15 years, yet i'm not generally a good programmer. There's so much I don't know,
    but I know a decent amount about GPU and game programming, and quite abit about procedural world generation and the maths behind it.
    Especially signal theory.. To me, it's a matter of passion.
    There's a reason I'm only a 'good' progammer (I get by,) but I can creatively and intuitively create procedural worlds smile.png
    It's just a matter of tunnel vision..
    Do what you like to do, and don't spend any time wishing you knew more about everything. In many cases when I'm making game engines, I end up looking at other peoples solutions just to get past a point I'm not really interested in spending time learning.
    I'd like to meet the guy who knew every little detail of his field. smile.png

    I've learned some C++, I've learned some SDL, and am now understanding DirectX 11. But I know I can't possible learn it ALL.....
    When I think of the pro's, the experienced, the people who use their incredible skills of math and programming to make video games, I sometimes wonder, just how did they make it there? And knowing how they've made it there, just how good are they? These questions I hope will give me an idea to just how smart I should get in order to become a more sucsessull programmer in the future! So hbu? How much do you know? biggrin.png

    Sounds very glorifying for professional programmers. Many pros are in my experience very flawed. (Myself included)
    They can often be arrogant and cynical. Our code also tends to be sloppily written at times. We may be doing something too fast,
    and as I often respond when someone points out a bug I introduced; "Well, the more you do, the more errors you do."
    The developers who go home and "work" there as well, are the ones who are willing learn more. They're hungry for it, otherwise they'd go home and watch TV.

    I think this is basically what makes some people stand out. But a lot of developers are passionate about their craft.
    And the trees do of course, not grow to the sky. Some are better and some are worse. But there's far between the superhuman dev cyborgs you see hacking away in movies.

    Just find something you like developing and stick with that. -Then expand your horizon and never stop doing so.

    This is something I've wondering myself OP. But I think of it as "Well, I see all the new stuff I learned this year, extrapolate it by 10 more years, yeah, I can see how someone could know that much stuff".

    There wont be a moment when you say "I know it all now, no more reading for me!". No one actually does that, doctors learn more, lawyers learn more, musicians learn more, engineers learn more and, not surprisingly, programmers also always learn more.

    Not only programming is a steep hill, but a hill that never ends! :D

    "I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

    My journals: dustArtemis ECS framework and Making a Terrain Generator

    This topic is closed to new replies.

    Advertisement