Skip to main content
GameDev.net gamedev.net
🔒 Locked

new to programming

Started by ImranKhan Sep 3, 2011 at 7:21 AM 25 replies 4k views
Original Post
ImranKhan
ImranKhan
HI
I am a beginner with programming. i want to know, how to start leaning programming. i need guidance regarding the programming language, which programming language is best suitable for a beginner.
i also wants to know how a GUI application is built.
please help me.
thank u.
ImranKhan
ImranKhan
It was very helpful, but i do wants to know about the GUI app. how they are built??? how C++ can work for me in game development??

learn to read would be a good start. there are at least 10 threads on this forum with the same title.

and while you're at it.. read this too:

http://www.gamefroms...-developer.aspx
pulpfist
pulpfist
Python, C# and Java are all good languages to start with.


What do you mean by how a GUI application is built?

If you mean how to make a GUI application, then I suggest you download Visual C# 2010 express, and start a Windows Forms project.
It will allow you to create the GUI application visually by dragging components around. Each component, like a button, has a set of events that you can use to write code that should be executed for that event.

Then, googling for "C# tutorial" should give you a good start

ddn3
ddn3
Download Visual Studio Express C# edition, as suggested above. C++ isn't the best starter language IMO. Start by learning some theory on programming, understanding variables, scoping, functions, execution control, high level concepts like OOP etc.. Best way to learn is to do sample projects. Once your comfortable with the core concepts of programming, you can then move onto programming GUIs. GUI programming is very platform specific, mostly its learning interfaces to the various widgets, hooking them up and creating clean stateful transitions and logic and data bindings for them.

Good Luck!

-ddn
ClosedSource
ClosedSource
C++ might not be the easiest to learn, but its by far the best language I think. I just started using it and I enjoy it a lot, but yes c# is good to learn with.
Gamer Gamester
Gamer Gamester
C++ is not the best language, and it is a terrible choice to begin programming with.

I always recommend Python to beginners. C# is supposed to be good too (but I've always avoided it as I don't like being limited to one company's ecosystem). There are other good choices as well, but stay away from C++!

The best place to start is to pick a language and begin studying it. Find a few good books and take pleasure in understanding the language itself. Making games is very frustrating if you don't first cultivate a strong interest in programming itself.
ClosedSource
ClosedSource
Its all personal preference when it comes down to it, I like c++ so far, but I haven't gotten into much game development with it yet, python is good to learn with outside of game development, I've never used it for games beside a little bit with pygame.
Serapth
Serapth

Its all personal preference when it comes down to it, I like c++ so far, but I haven't gotten into much game development with it yet, python is good to learn with outside of game development, I've never used it for games beside a little bit with pygame.


No really, it doesn't. When it comes to learning some languages are vastly superior to others.

C++ is not in that group.

As the question is common enough, i've summarized my answer in this post. Oddly enough, I would not recommend Flash, although I think it is a valid beginners choice. I just find it simply too much of a dead end with few benefits over more general purpose languages. I understand the purpose, and see how it could be a good language for a beginner, I just think other more general purpose languages ( C#, Python, Ruby, Java, etc... ) would be a better starting point.
ImranKhan
ImranKhan
thank u guys... it is very useful information. I am interested in application development. C and C++ is in my course. i don't have any option but i am interested in application development.
please tell me about the most powerful and secure language for application development.
Telastyn
Telastyn

please tell me about the most powerful and secure language for application development.


Why? Someone who is new to programming would benefit most from having a language that's easy to learn, and forgiving of errors...

That said, languages do not tend to be more or less powerful in general. Some are better for certain problems. Languages tend not to be more or less secure (though c/c++ style strings/buffers are decidedly less secure). Security comes from good program design.

The most powerful and secure language is almost always the one you know the best.
Serapth
Serapth

The most powerful and secure language is almost always the one you know the best.


I agree completely with the powerful part of this equation.

For security though, I think I disagree... an idiot with some knowledge of C++ and no knowledge of say Java or C# would most likely still write more secure code in the languages they don't actually know. There is just so much more security built into these languages. You can write secure code in C++, but its exceptionally easy to write insecure code, especially newbies that don't really understand pointers.
Telastyn
Telastyn

[quote name='Telastyn' timestamp='1315322815' post='4858198']
The most powerful and secure language is almost always the one you know the best.


I agree completely with the powerful part of this equation.

For security though, I think I disagree... an idiot with some knowledge of C++ and no knowledge of say Java or C# would most likely still write more secure code in the languages they don't actually know. There is just so much more security built into these languages. You can write secure code in C++, but its exceptionally easy to write insecure code, especially newbies that don't really understand pointers.
[/quote]

*nod* I tend to come off a bit harsh against C++ and perhaps mis-spoke in tempering that. It is significantly more dangerous than... pretty much everything.

Once you're out of that realm though, I suspect that the language makes a negligible impact.
rip-off
rip-off
Programming is a practical skill. The best way to start is ... to start programming. Grab a good book and start reading, but more importantly - do the exercises!

The language you start with isn't very important. I started with Basic, which is widely (and rightly, in many ways) derided. However, it taught me the ropes and acted as a stepping stone to other languages. A good programmer will know half a dozen languages, so don't feel you're making a choice you cannot go back on. You're not getting married!

There is no "best" computer language. Beware of anyone who says different. In particular, the word "power" is thrown around a lot when discussing the advantages and disadvantages of various languages. This term is almost always meaningless. All languages are a set of trade-offs, and almost every language has a particular niche in which it excels.

That said, I'd recommend you start with C#, unless you are on a non-Microsoft platform, in which case I'd recommend Java.
_the_phantom_
_the_phantom_

The language you start with isn't very important.


Well, yes and no.

No in that it won't be the one and only language you use all the time.

Yes in that it's best to pick a 'beginner friendly' language when starting off... which of course C++ isn't.

(I suspect you know this ;) but I figured it was worth spelling out before others took it as a 'C++ is fine!' type statement).

But yes, the most important thing is doing...
DarkRadeon
DarkRadeon
Before you learn any programming language you choose, you should first learn how its memory management and memory model. A lot of books and courses omit the deal of memory, but that does not mean it is not important.

personal experience: in my first uni programming-course that used C/C++ (without OOP... it was just c++ with reference and a little streams), that idiot of a teacher (and the horrible book he chose ) NEVER told how was the memory-pattern of C/C++ (stack, heap, text editor, constant-area ecc) and I (and not only) had a lot of problem to pass the related exam (in fact no-one understand what the new keyword did! )
AdamShultz
AdamShultz

Before you learn any programming language you choose, you should first learn how its memory management and memory model. A lot of books and courses omit the deal of memory, but that does not mean it is not important.

personal experience: in my first uni programming-course that used C/C++ (without OOP... it was just c++ with reference and a little streams), that idiot of a teacher (and the horrible book he chose ) NEVER told how was the memory-pattern of C/C++ (stack, heap, text editor, constant-area ecc) and I (and not only) had a lot of problem to pass the related exam (in fact no-one understand what the new keyword did! )


I don't think someone who is just teaching themselves their first programming language really knows much of anything you're talking about. Any language that doesn't require you to manage memory, doesn't need an up-front explanation of memory management because it's done for you, and you don't need to know about it in order to understand functional and object oriented programming

That being said, my first language was Python, and I didn't know anything about memory management when I started.
DarkRadeon
DarkRadeon

[quote name='DarkRadeon' timestamp='1315333072' post='4858270']
Before you learn any programming language you choose, you should first learn how its memory management and memory model. A lot of books and courses omit the deal of memory, but that does not mean it is not important.

personal experience: in my first uni programming-course that used C/C++ (without OOP... it was just c++ with reference and a little streams), that idiot of a teacher (and the horrible book he chose ) NEVER told how was the memory-pattern of C/C++ (stack, heap, text editor, constant-area ecc) and I (and not only) had a lot of problem to pass the related exam (in fact no-one understand what the new keyword did! )


I don't think someone who is just teaching themselves their first programming language really knows much of anything you're talking about. Any language that doesn't require you to manage memory, doesn't need an up-front explanation of memory management because it's done for you, and you don't need to know about it in order to understand functional and object oriented programming

That being said, my first language was Python, and I didn't know anything about memory management when I started.
[/quote]
yes it's not always required but it could help, like java: you don't need to care about the pointers arithmetic, but if know what handles/references/identifiers are (or whatever you call them.. I personally like "handle"), you can better understand some behaviours of the programming language (like in java why primitives are copied by value and objects by reference, or why sometimes it could be a good idea to call by yourself the garbage collector..)
Serapth
Serapth

[quote name='Nice Try' timestamp='1315334954' post='4858283']
[quote name='DarkRadeon' timestamp='1315333072' post='4858270']
Before you learn any programming language you choose, you should first learn how its memory management and memory model. A lot of books and courses omit the deal of memory, but that does not mean it is not important.

personal experience: in my first uni programming-course that used C/C++ (without OOP... it was just c++ with reference and a little streams), that idiot of a teacher (and the horrible book he chose ) NEVER told how was the memory-pattern of C/C++ (stack, heap, text editor, constant-area ecc) and I (and not only) had a lot of problem to pass the related exam (in fact no-one understand what the new keyword did! )


I don't think someone who is just teaching themselves their first programming language really knows much of anything you're talking about. Any language that doesn't require you to manage memory, doesn't need an up-front explanation of memory management because it's done for you, and you don't need to know about it in order to understand functional and object oriented programming

That being said, my first language was Python, and I didn't know anything about memory management when I started.
[/quote]
yes it's not always required but it could help, like java: you don't need to care about the pointers arithmetic, but if know what handles/references/identifiers are (or whatever you call them.. I personally like "handle"), you can better understand some behaviours of the programming language (like in java why primitives are copied by value and objects by reference, or why sometimes it could be a good idea to call by yourself the garbage collector..)
[/quote]

Frankly, if you are starting out learning C++ with pointer arithmetic or even simple memory allocation, you are doing it wrong! Hell, I would almost make the argument that just about any C++ programmer that is doing pointer arithmetic on anything other than an exceptional basis, is doing it wrong ( or might as well be working in C, circa 1980 ).


These are exactly the things new developers shouldnt focus on, and yes, you can learn C++ without initially knowing a damned thing about memory management. In fact, it will probably work out in your favour.

Not only is C++ a pretty lousy first language, it's exactly the aspects of the language that make it lousy to beginners that new developers fixate upon. It seems like the people that buy into the whole C++ as a first language mantra also seem to worship at the alter of premature optimization.

You know what else, and this is probably one of the most horrifically common misconceptions about C++... manual memory allocation isn't hard, nor does it require a great amount of skill. What it is is tedious and full of easy to overlook errors, and on C++ those errors blow up in your face hard. There is nothing innately superior about a programmer that manages memory on their own, as opposed to a programmer that works within a garbage collected language. The lesson the person juggling hand grenades... er, managing memory allocation manually is learning, isn't a particularly difficult language feature to come to terms with. Frankly you could teach an experienced C# or Java programmer about pointers, references, heap vs stack and various other memory issues in less than an afternoon.

To this date I still don't fathom why memory management is one of the aspects attributed to C++ as being the most difficult. Hell, it's one of the language features that is most predictable! Now... the inheritance system, there is a lesson in byzantine logic.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.