Programmers talk "Alien"

Published January 29, 2014
Advertisement
A little frustrated because just browsing through forum posts on any programming website full of competent programmers sounds like alien talk.

I mean, do you really have to abbreviate english? See so many topics that sound like the person is speaking in a broken english-like JAVA.You don't use terminology that requires specific knowledge when you are making a tutorial for beginners. Just doesn't make sense. And you don't assume people know this terminology and make a video called "For beginners," with a side note that no prior experience is required.

Most youtube videos I see have a bunch of views for the first video, and then those views exponentially decrease with each new video. Most college courses are like this also. First few days are cool, then they start to crack.

I made a full tutorial on the basics of computer programming that breaks it down for the average person, yet gives a lot of good and "must-have" information.

Now, if only someone could take some time out to teach me what they are talking about in "Alien" so I can simplify more advanced concepts. Anyone know of any tutorials that make it so easy a cave man can do it? I am just tired of looking for them (yes, I have tried Bucky).

SPECIFICS:
Firstly, please check out the tutorial I made to see how I explain programming as a reference to my train of thought when approaching an entirely new subject.
http://snapguide.com/guides/understand-computer-programming/

Secondly, the reason I started to learn programming is because I thought it was an interesting new hobby. I learned it within a year, and now I want to understand more advanced topics better.

Thirdly, I do understand Object Oriented Programming (though not in the guide I made) sorta well.

Fourthly, I finally found a solid instructional video about C++ (I have always dreaded it, because the syntax is scary):


SO NOW:

I do not know how to improve the performance of my software. I don't understand most algorithms (I understand what algorithms are and such, but don't understand why a particular algorithm might be more efficient).

I don't understand all of the extra terminology that comes with more advanced programming topics such as when working with OPEN GL, or "binding" stuff, and such. I do understand what compiling means. I don't always understand how to compile stuff (different for each environment). Eclipse is scary, but Scite is... not scary.

I thought GML was the best method of programming, but now I understand why just typing it out can be faster and easier and less "clunky"

I have written a program that is 300 + lines, but mainly because I like my program neat and nicely commented (no long comments though)

It is far beyond me even how to get started programming my own engine (although if I could do this, I'd feel I have arrived).

Hmm, there might be more, but I do think that if someone could take me from completely ignorant to being able to write a full game engine while keeping it easy to understand (nice allegory style), with terms and concept and all, then I will feel like I better understand the more advanced concepts.

Also, if someone could teach me how to make a complex program in C++ starting with no knowledge at all of it, while keeping it easy to understand (a breakdown of the terminology in easy to understand terms), I would feel more capable with that too.

Lastly, it is easy to find information, and very frustrating to find good AND FREE information, that is why I started my site. So yes, I do get frustrated trying to make things simple for the simpleton- me.
2 likes 14 comments

Comments

Bacterius

I'm not sure a cave man could be made to use a computer, which would seem like a necessary requirement to programming :p

January 29, 2014 08:35 AM
Mike.Popoloski

OK.

January 30, 2014 02:00 AM
Zao

OK.

January 30, 2014 02:01 AM
benryves

OK.

January 30, 2014 02:01 AM
Navyman

I like that you are at least asking for more material vs just saying there isn't any useable ones.

January 30, 2014 06:12 AM
TheChubu

I'm not sure a cave man could be made to use a computer, which would seem like a necessary requirement to programming tongue.png

We've been like this for like 200 thousand years. We essentially are cave men using computers.

January 30, 2014 01:47 PM
TheChubu

Oh btw, OK.

January 30, 2014 01:47 PM
Aardvajk

"I made a full tutorial on the basics of computer programming that breaks it down for the average person, yet gives a lot of good and "must-have" information."

Link please so we can apply the same level of criticism as you have to this site. Thanks.

January 30, 2014 02:20 PM
molehill mountaineer

If you're going to learn about computing you should get used to abbreviations because you're going to have to get to know a boatload of them (dslam, lan, isp, tcp, udp, rfc, gui, cli, the list is seemingly endless).

I can understand why you would find it frustrating but there is a good reason why people use this "alien language" - if I say to somebody "I made my main engine class a singleton" I can describe in 7 words what's going on rather than the more difficult to understand "I made a class which serves as an central administrative point for all subsystems with a private constructor, it can have only one instance and is globally accessible".

Don't worry though, you live in an age where things can be researched in a matter of seconds (programmers in the eighties had to use paper manuals, now that's a pain!). So google everything you don't understand and if you still don't get it try the gamedev chat, it's full of knowledgeable people who will be happy to help you.

Also, if you're going to ask questions you should try to be a bit more precise: what terms don't you understand and what should the tutorials you're asking for be about? If you're looking for introductions to programming you could try udacity.com (intro to computer science would be my choice).

January 31, 2014 12:31 AM
Tutorial Doctor

"I made a full tutorial on the basics of computer programming that breaks it down for the average person, yet gives a lot of good and "must-have" information."

Link please so we can apply the same level of criticism as you have to this site. Thanks.


I'd appreciate any criticism on it, so that I can work on making it even better. As a matter of fact, it's a good idea to get feedback from people who understand it more than I do.

There are comments at the end of the guide to show the response of people who had no idea about programming.
http://snapguide.com/guides/understand-computer-programming
January 31, 2014 01:44 AM
Tutorial Doctor

If you're going to learn about computing you should get used to abbreviations because you're going to have to get to know a boatload of them (dslam, lan, isp, tcp, udp, rfc, gui, cli, the list is seemingly endless).

I can understand why you would find it frustrating but there is a good reason why people use this "alien language" - if I say to somebody "I made my main engine class a singleton" I can describe in 7 words what's going on rather than the more difficult to understand "I made a class which serves as an central administrative point for all subsystems with a private constructor, it can have only one instance and is globally accessible".

Don't worry though, you live in an age where things can be researched in a matter of seconds (programmers in the eighties had to use paper manuals, now that's a pain!). So google everything you don't understand and if you still don't get it try the gamedev chat, it's full of knowledgeable people who will be happy to help you.

Also, if you're going to ask questions you should try to be a bit more precise: what terms don't you understand and what should the tutorials you're asking for be about? If you're looking for introductions to programming you could try udacity.com (intro to computer science would be my choice).

You see, now that is why I like gamedev haha. Solid and useful response. I think it is the same reason I like asking math guys for advice. They are used to being precise and detailed in their explanations (the nature of math folks, especially for NASA math folks.) And for some things I like "english folks." They are more interpretive in their approach, and for deeper insight into the emotional or social aspect of things, I ask them for advice.

From learning computer programming, and viewing a few responses to my tutorial posted above, I truly do think that Computer programming should be a main high school subject. The reason I say this is that it can encompass every other subject and implement them in useful ways. It can use science and math and social studies and english .

And the cooler part is, YOU CAN MAKE GAMES WITH IT, now that will get people exited. But the most useful thing about it is that it teaches problem solving in the best way I think. It requires you to use all other subjects if need be to solve real life problems. It teaches you to not only solve problems, but solve them logically.

I have been thinking about disposing my knowledge of programming, but I want to help as many people understand it before I move on to another subject. It made me feel good to know that people who thought they would never get that "nerd stuff" understood the basic workings of computer programming.

Okay... now for the specifics....

January 31, 2014 01:59 AM
Tutorial Doctor

Just went to Udacity.com and they broke my policy within the fist 10 seconds.

I think information should be free. I wish Codecademy was setup more like this though. I like how they help get you started. But I refuse to invest in something I cannot try unless I am almost 90% sure it is worth the investment, from hearsay and reviews and such.

I can't do 90/month because I can't afford it, and yes, I would prefer college (more structured) for learning computer science, but I can't afford that either.

January 31, 2014 02:52 AM
molehill mountaineer

Ah my mistake, they used to be free but it seems they switched to a subscription format - pity!

There's still the whole wide internet at your disposal though, here are a few links to help you get started:

(remember that shopping around for a resource that suits your learning style is part of the process so always keeps google at the ready)

http://en.wikiversity.org/wiki/Introduction_to_Computer_Science

http://math.hws.edu/eck/cs124/javanotes6/

http://www.deansdirectortutorials.com/Lingo/IntroductionToProgramming.pdf

EDIT: I see that you've clarified your initial question. Learning how to write an engine is mostly writing the code that you would be able to reuse in your next project (your next game will also need input, sound, graphics, etc -- this code is called the engine because it 'drives' the game and is usually seperated from the game logic to make it easier to reuse).

So, rather than google "how to build a game engine" you should take a look at tutorials for graphics libraries (directx, opengl, sfml, sdl, ...) since this is primarily what your engine will be doing.

If you click the link for the directx tutorials below you will see example code that runs a gameloop, constructs a window and draws stuff onscreen - just add input and sound and you've got an engine!

http://www.directxtutorial.com/LessonList.aspx?listid=11

Obviously I'm simplifying things a bit here - constructing an engine also requires careful planning (if your code is a mess and the game code isn't seperated properly you will have a difficult time reusing the code).

Now I wouldn't recommend directX for a beginner, since it can be quite daunting. In fact I would forget about making an engine altogether and focus first on learning the principles of good software design. This means learning about datatypes, design patterns and writing a few small programs to get a hang of them.

http://www.tenouk.com/Module2.html

http://sourcemaking.com/design_patterns

http://www.oodesign.com/

Once you feel confident that you know how to write good code and structure it logically it's time to make a few small games using beginner-friendly API's such as SFML. This will enable you to get familiar with how to use a game engine without having to actually write out everything. This step is very important! I did it the dumb way and just started writing a directX engine - the result is it took me way too much time, the design was sloppy and the performance wasn't great. Not very motivating I can tell you! Yes, I learned alot but I could have used that time to make 6 games in SFML so trust me on this one.

http://www.sfml-dev.org/tutorials/2.1/

http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition.aspx

After writing a few games you will have some experience under your belt and now you can start thinking about how to write your own engine. Start by taking a look at the source code of other engines (SFML is open source, for a start) and planning everything out on a piece of paper (this is where your experience with design patterns is vitally important and it's also the reason you shouldn't make engines unless you've made few games - how would you know which classes the engine needs if you don't know how to use one?).

EDIT: also, don't worry too much about doing things the most efficient way possible your first go around - get it to work first. Your only goal for now should be to get the code to do what it's supposed to, the rest will come naturally from experience. I have never made a program that didn't require some googling and self-education along the way.

January 31, 2014 12:00 PM
Tutorial Doctor
Thanks molehill!! Fantastic info! I'll look into ALL of it. I'm going to record my learning and perhaps make a tutorial on my findings. I did find a great resource the other day. It's called udemy.com People are making a bunch of money from teaching things like this. However, the main issue I see is that they don't make it dummy simple. I think it takes more effort to take complex topics and make them simple, and keep it simple throughout. I might put a tutorial on there that is free of doing he basics, although I am tempted to charge for it haha.
January 31, 2014 06:16 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement