Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 18, 2024, 08:10:50 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Learn programming. Where to start? Any mentors out there?
Pages: 1 2 [3] 4 5
Print
Author Topic: Learn programming. Where to start? Any mentors out there?  (Read 6044 times)
ThemsAllTook
Administrator
Level 10
******



View Profile WWW
« Reply #40 on: December 14, 2012, 07:58:17 AM »

Hi guys, i've been struggling with the same problem as Keops,and i' for some time, which led me to try game maker. I've been using it for a week or something and it's quite nice and simple, but in the long run i intend to make some 3d, or procedural rooms, or physics based games, should i stop "wasting time" with game maker and move on to unity and such?

I'd say not yet. The vast majority of what you learn in one programming environment will be applicable to any other, so as long as you're comfortable in Game Maker and it doesn't feel like it's holding you back, it should be fine to stick with it. Once it starts to feel constraining, it may be time to ditch it in favor of something more capable. In the course of my own learning, I hopped between several different development tools as I built up my understanding and needed more power to do what I wanted, and it worked out pretty well.
Logged

ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #41 on: December 14, 2012, 10:08:20 AM »

i started with qbasic, then went to c, then engines like ohrrpgce and game maker, and partially learned as3 (at least enough to make a small game in it) once. i want to try unity eventually

my recommendation is that it doesn't really matter what you start with. the human mind is pretty good, it can figure things out quickly. the idea that there's one best way to learn programming is obviously ridiculous, everyone learns it in their own way. i'd suggest trying out different languages and seeing which one you personally like the best, not going by advice on which languages others like the best

one more thing: most of my *finished* games have used engines (ohrrpgce and game maker). i started, but never finished, a lot of games in qbasic and c. the thing to recognize is that using engines to make games doesn't take as long as using pure programming to make games. if you love programming more than game design, and don't mind making "engines" forever and never finishing games, learn a pure language. if you love game design more than programming, and don't mind games that have engine limitations and sometimes go as slow as molasses, learn an engine

so basically, ask yourself if you see programming as *an ends in itself* or *a means to an end* -- if the former, use a low-level language like c, c++, etc., if the latter, use a high-level language or a game engine
« Last Edit: December 14, 2012, 10:20:57 AM by Paul Eres » Logged

kiddRaddical
Level 0
***

ALT UNIVERSE SEGA SATURN DEV


View Profile WWW
« Reply #42 on: December 14, 2012, 04:27:08 PM »

@OP: I'll teach what I know, if you want. I don't have a lot of free time recently, but feel free to PM me Smiley

To me, the only way to learn code is through application; you have to start writing something, and as long as it's not C++ or something dangerous like that, the compiler will teach you what you need to learn. After that, just consult the docs (MSDN is super helpful for .NET languages), and the knowledge will flow.

I'm no expert, but I know my way around C#/HTML/CSS/PHP and I have a few tricks. Honestly, I'm a designer first, then an artist, THEN a programmer, so I know that "lolwut @programming" feel.



Logged

posting (too) regularly on Twitter: @EthanRedd
EthanRedd.com
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #43 on: December 14, 2012, 04:35:07 PM »

re: c/c++ vs gamemaker/etc...

I see it somewhat as the difference between learning to paint with a paint brush, or, say, stencils and a spray can. One takes longer to learn but is ultimately more flexible and can do what the other can. But it's not that one is better than the other, you can make things with either approach.
Logged

Crimsontide
Level 5
*****


View Profile
« Reply #44 on: December 14, 2012, 04:52:05 PM »

IMO whether u go with C, C++, C#, flash, or whatever, don't learn from a command prompt.  I had to use them for years, and they are horrible things.  IDE's are awesome for good reason.  They're not hard to learn/set up, they do a ton for you that you just don't want to have to worry about, and they are way easier to use in general.  This isn't the 80s, the command prompt is NOT more powerful than an IDE (in fact its often less), its slower, and you will not be a better programmer because you can write arcane make files, or worse, batch files.  As someone who's had to program in the pre-IDE era, be glad you don't have to.
Logged
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #45 on: December 14, 2012, 05:07:47 PM »

I would recommend Processing (http://processing.org/) if you're interested in learning how to program. It's not the best tool for game development, but it's probably the best out there for teaching basic programming skills.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
RalenHlaalo
Level 0
***



View Profile WWW
« Reply #46 on: December 14, 2012, 05:14:59 PM »

IMO whether u go with C, C++, C#, flash, or whatever, don't learn from a command prompt.  I had to use them for years, and they are horrible things.  IDE's are awesome for good reason.  They're not hard to learn/set up, they do a ton for you that you just don't want to have to worry about, and they are way easier to use in general.  This isn't the 80s, the command prompt is NOT more powerful than an IDE (in fact its often less), its slower, and you will not be a better programmer because you can write arcane make files, or worse, batch files.  As someone who's had to program in the pre-IDE era, be glad you don't have to.

I think it's better to start from the command line initially, because that way nothing is hidden from you, and so you can easily grasp what's going on. You learn what needs to be recompiled when a header file is changed, for example. You have to specify compiler/linker options manually rather than let the IDE choose defaults. These things help the beginner understand the process of compiling/linking much better than if they were to let the IDE handle everything. Once they've understood these fundamentals then they may find an IDE that suits their needs. That would be my recommendation.

I still work from the command line and do all my coding in gedit (Gnome's equivalent of Windows' Notepad). My setup is remarkably unsophisticated: gedit, g++, make, gdb, gprof, and git.
« Last Edit: December 15, 2012, 02:07:24 AM by RobJinman » Logged

Sergi
Level 1
*



View Profile WWW
« Reply #47 on: December 14, 2012, 05:27:24 PM »

I think it's better to start from the command line initially, because that way nothing is hidden from you, and so you can easily grasp what's going on. You learn what needs to be recompiled when a header file is changed, for example. You have to specify compiler/linker options manually rather than let the IDE choose defaults. These things help the beginner understand the process of compiling/linking much better than if they were to let the IDE handle everything. Once they've understood these fundamentals then they may find an IDE that suits their needs. That would be my recommendation.

I still work from the command line and do all my coding in gedit (Gnome's equivalent to Windows' Notepad). My setup is remarkably unsophisticated: gedit, g++, make, gdb, gprof, and git.

That's all good if you want to learn all there is to know about programming. If what you want is to get things done in videogames, you'll just spend time in stuff that's not needed. If you want to make games, make games, don't learn to program so you can make games 3 months from now when you have the basics down.
Logged

Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #48 on: December 14, 2012, 05:37:26 PM »

I don't think that someone who has never written a line of code is able to "just make games". They can certainly try, but nothing good will come of it. It's important to get some basics down first. That said, I don't advocate learning C++ in console for months before doing something you might actually want to do. This is why I think Processing is great: it lets you write simple code and immediately have stuff up on the screen without any pressure of Making A Game.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #49 on: December 14, 2012, 05:49:01 PM »

+1 for Processing, it's super simple, probably the simplest environment for writing code and making things happen on screen. (and OT I also helped write a generative sound library for it.)
Logged

nikki
Level 10
*****


View Profile
« Reply #50 on: December 15, 2012, 01:26:27 AM »

begin at commandline +1

As an aspiring young wizard you want to learn what happens instead of giving in to the automagically IDE.
Not to say you have to keep using it for yeaqrs though, just enough to don't be afraid of it and get it.




Logged
Evan Balster
Level 10
*****


I live in this head.


View Profile WWW
« Reply #51 on: December 15, 2012, 02:10:50 AM »

Paul hit the nail on the head.  If you want to learn programming purely, you can fiddle with low-level stuff like command-line C.  If you want to become a better game designer and make things, Unity/C# is where it's at.  I imagine the vast majority of people would prefer the latter -- getting interactive physics up in Unity takes 30 seconds.  In C it might be weeks for a learner.  But then, C has no borders on what it can do, and it's crazy fast; it's closer to metal than any other language that's been mentioned.  In either case you can transition to something like C++ or Java later.
Logged

Creativity births expression.  Curiosity births exploration.
Our work is as soil to these seeds; our art is what grows from them...


Wreath, SoundSelf, Infinite Blank, Cave Story+, <plaid/audio>
Sergi
Level 1
*



View Profile WWW
« Reply #52 on: December 15, 2012, 03:49:35 AM »

I don't think that someone who has never written a line of code is able to "just make games". They can certainly try, but nothing good will come of it.

Well of course. What I meant is that spending months and months of starting at low level and learning machine architecture and assembly and command line is going to be less useful than starting with a game engine / framework, learning the basics of the language, starting doing stuff as soon as possible, and honing their skills on the language as they go.
Logged

Keops
Level 6
*


Pixellin' and Gamedev'n


View Profile WWW
« Reply #53 on: December 15, 2012, 05:54:23 AM »

begin at commandline +1

As an aspiring young wizard you want to learn what happens instead of giving in to the automagically IDE.
Not to say you have to keep using it for yeaqrs though, just enough to don't be afraid of it and get it.



Wow this thread evolved into such an interesting discussion.
Logged

Hearthstead: Hand Point Right Website - Twitter Hand Point Left

OPEN FOR COMMISSIONS! Behance portfolio
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #54 on: December 15, 2012, 06:49:58 AM »

How much different it is to show something on a command line vs messing with physics? It's all the same from a programming perspective, messing with code to do an effect, it doesn't matter if it is simple text vs fancy rendering ... You still have to learn proper structure.
Logged

PompiPompi
Level 10
*****



View Profile WWW
« Reply #55 on: December 15, 2012, 08:42:39 AM »

I think Java is a good choice for a beginner, and you got Android devices anyway.

I would recommend working with eclipse+Java for Android.

Java is a lot easier to get the basics than C++, and if you develop on Android you will also enjoy it more since you get to see something you wrote run on a tablet\phone. I think that would be a lot more exciting.

I strongly advise against starting off with C++ for many reasons.

I also suggest using an IDE like eclipse(although eclipse in itself is not "the best" out there), since it lets you learn compiling\linking and general program builds gradually rather than to have to learn everything all at once without an IDE.
Same with having a debugger and a lot of other advantages.

I think developing for the iOS would be harder, since Objective C is not a modern language like Java. It's more like C++\C.

Unity won't teach you how to code as much as Java will.

So bottom line, Java+Eclipse+Android seems like the optimal choice for you. I would think.
Logged

Master of all trades.
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #56 on: December 16, 2012, 08:00:42 AM »

How much different it is to show something on a command line vs messing with physics?
The difference is that in one case you know the exact outcome, you understand it exactly on a logical level. In the other case it is just hacking, you form a picture but you still don't know exactly how it works.

C++ is one of the easiest and straight forward high-level languages to learn. As example you directly see how the pointer concept works since it is not wrapped around like in C#. C# clouds the logical happening, thus making it for a newcomer a more indirect process to understand what is logically happening, in that sense C# is a more difficult language to learn.

Which language is better for software engineering is a wholly different question. It happens after learning the language. That is what many people giving suggestions do not consider.
Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #57 on: December 16, 2012, 10:18:20 AM »

By that logic assembler is the "goto" language to learn programming, nothing is obfuscate. It's seriously simple and does exactly what you expect, you can't be closer to the metal logic.

My opinion as a noob, is that the first thing to learn is not the intricacy of the metal but the mindset. If someone is entirely new to programming, getting what is variable, branch, loop and expression are the basic building blocks. Only after concept like strong typing, objects, events make sense. And once those concept has sunk in you can start to bother about architectural question then optimization (ie looping back on "metal truth"). I did start with assembly, and I learnt recently that feature (which is the "objects" level) is not enough I have to move at architecture level.

But what do I know I'm a noob, I can only observe my own difficulty and how I grew from them.
Logged

kiddRaddical
Level 0
***

ALT UNIVERSE SEGA SATURN DEV


View Profile WWW
« Reply #58 on: December 16, 2012, 10:51:07 AM »

I think everybody learns differently, and starting language/application should reflect that.

For me, nothing clicked until I left the land of the theoretical and started actually building the games I wanted to make. The theory/core became more relevant *after* I developed a need for them.

What I would recommend for someone like myself just starting out is:

1) Figure out what you want out of programming, how deep you/want need to go
2) Grab at least 1 book on each of the following topics: book on (insert language),beginner Computer Science (general/"for dummies"), game programming (general), college algebra (don't worry if you understand it yet)
3) Grab a prebuilt engine/framework that uses your language (eg XNA with C#)
4) Try to make stuff. Every time you hit a wall, research techniques the pros use. Google EVERY compiler error. Use a barebones editor with NO AUTOCOMPLETE/formating.
5) Read a bit of each book every day, taking notes and actually working out the problems/trying the examples
6) NEVER COPY/PASTE CODE (at least until you're good)! Type it out every time, it forces you to read it intently.
 
Logged

posting (too) regularly on Twitter: @EthanRedd
EthanRedd.com
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #59 on: December 16, 2012, 03:22:16 PM »

By that logic assembler is the "goto" language to learn programming, nothing is obfuscate.
I am talking about the code-logic-level. There is no need to go to asm- or metal-level to know exactly what your logic is doing.
Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
Pages: 1 2 [3] 4 5
Print
Jump to:  

Theme orange-lt created by panic