Whats the best way to learn how to code?

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
35,541
Trophies
2
Website
trastindustries.com
XP
25,458
Country
United Kingdom
You have answered your own question.

That being want to learn. To go a bit further as you are likely suffering crappy human brain and can't just upload it simply you have to actually really want to do it. A reliable way to do this is to have a project you want to make happen.

Your choice of platform may limit your means -- you can readily make some kind of 2d platformer in something as basic as flash, and maybe even a high level game maker, but the DS/DSi lacks a flash player and pretty much requires C programming. If you are going to specifically target the DSi then you are even more limited than you might be for the DS which has a handful of other options where the DSi is fairly new and underdeveloped.
 
Joined
Sep 17, 2009
Messages
2,438
Trophies
1
XP
3,347
Country
United States
Really the answer is to start small and work your way up. Start with stuff like Game Maker Studio or even RPG Maker, and experiment with their scripting languages. From there, you could move on to something more advanced like the LOVE game engine, which uses the Lua language. Kia is probably the easiest programming (or is it a scripting language? The differences are difficult to discern sometimes) language to learn, since it's almost just like regular writing and seems to be a little more lenient on code structure and things like that.

From there, you may want to look into C# and the XNA framework, or whatever its modern equivalent is, and work your way down to C++ and eventually C. You may have to also know a little bit of ARM assembly of you're actually planning on messing with DSi programming.

Basically, just start at the top and work your way down. It's a long journey, and you need time and patience. Unfortunately, I'm lacking both of those at this point in my life, so that's all the advice I'm able to give.
 

EthanAddict

An investment to nothingness
Member
Joined
Nov 12, 2016
Messages
489
Trophies
0
Website
google.com
XP
470
Country
Antarctica
Scratch, may seem difficult for the common human, but you can make it /s

Your question is kind of invalid, since in order to continue to making games, you need to have solid understanding on what programming language you are learning/using and the platform you are programming for

A great started can be Python, but it isn't really suited for games
If you want to program in more advanced languages, and which I don't recommend without prior knowledge of programming, u know, go to C

NEVER touch Java, since it is not for games, and tbh, just bad

(or is it a scripting language? The differences are difficult to discern sometimes)

Scripting is making scripts which run on top of a program, while programming is the process building/making the program itself afaik

--------------------- MERGED ---------------------------

Also https://gbatemp.net/threads/so-you-want-to-learn-to-program.371255/
 
  • Like
Reactions: Subtle Demise

Tom Bombadildo

Dick, With Balls
Editorial Team
Joined
Jul 11, 2009
Messages
14,408
Trophies
1
Age
28
Location
I forgot
Website
POCKET.LIKEITS
XP
18,058
Country
United States

Quantumcat

Dead and alive
Member
Joined
Nov 23, 2014
Messages
15,149
Trophies
0
Location
Canberra, Australia
Website
boot9strap.com
XP
11,069
Country
Australia
If you want to learn to do it properly you'll want to do a computer science degree at university. Learning on your own will only get you doing small hobby projects even after a long time, cause you won't understand about memory and computer architecture and stuff, or the standard software patterns and design principles. To learn on your own from scratch you need to be very bright and have the sort of mind that "just gets it" and also have masses of time to dedicate to it and be really determined, not just treat it as a side distraction. In this case you should order some textbooks and study diligently (for fastest best results). If you want to learn Java I can email you a collection of textbooks in PDF format, but Java won't help you develop for DS or anything (which needs C/C++ and which is a bit tougher in that you need to understand computer architecture once you get beyond the absolute basics). It can however let you develop Android apps and rich internet applications as well as desktop applications.

If you want them, send me a pm.

--------------------- MERGED ---------------------------

NEVER touch Java, since it is not for games
So when you're playing a game on an Android phone or tablet you just think you're playing a game, but you're not really?
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
35,541
Trophies
2
Website
trastindustries.com
XP
25,458
Country
United Kingdom
If you want to learn to do it properly you'll want to do a computer science degree at university. Learning on your own will only get you doing small hobby projects even after a long time, cause you won't understand about memory and computer architecture and stuff, or the standard software patterns and design principles. To learn on your own from scratch you need to be very bright and have the sort of mind that "just gets it" and also have masses of time to dedicate to it and be really determined, not just treat it as a side distraction. In this case you should order some textbooks and study diligently (for fastest best results). If you want to learn Java I can email you a collection of textbooks in PDF format, but Java won't help you develop for DS or anything (which needs C/C++ and which is a bit tougher in that you need to understand computer architecture once you get beyond the absolute basics). It can however let you develop Android apps and rich internet applications as well as desktop applications.

I agree university might be the easier way for some, and a more free form approach is not ideal but I have met plenty that have used the great many courses that universities put online to arrive at a point where they understand it just fine, maybe even better than some uni grads I meet.
There are even some courses which offer certificates if you are that way inclined.
 
  • Like
Reactions: Coto and Quantumcat

MionissNio

Well-Known Member
Member
Joined
Jul 4, 2012
Messages
310
Trophies
0
XP
525
I recommend buying a Book called A level Computer Science buy Sylvia Langfield and start Reading from section 2 and onwards. This book covers a lot of basic theory involved in coding it also gives you example in four language, python Psuedo code and Vbasic and Pascal. Once you have a string base in theory you can learn any language in About 20 Days. It also covers a bit of Assembly and Prolog but you won't need them as of now.

Also Learning mathematics will really help as coding mostly is telling computer how to calculate.
Learn Trigonometry, Algebra, Calculus, Vectors and Logarithms.
 
  • Like
Reactions: Quantumcat

EthanAddict

An investment to nothingness
Member
Joined
Nov 12, 2016
Messages
489
Trophies
0
Website
google.com
XP
470
Country
Antarctica
So when you're playing a game on an Android phone or tablet you just think you're playing a game, but you're not really?

I mean it is not reccommended for games.
It is like running an OS in a VM and expect everything to be as fast as running one natively

I aknowledge that Android uses Java, but I don't game on Android :^)

And it seems that Firefox dropped support for Java

Also, it is worth mentioning that I hate Java
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,929
Trophies
1
XP
2,348
Country
Chile
and if everything fails you can reverse engineer to take shortcuts to learn how something was coded. But to reverse engineer you require basic knowledge of machines as whole
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
22,130
Trophies
3
Location
Space
XP
11,472
Country
Norway
I mean it is not reccommended for games.
It is like running an OS in a VM and expect everything to be as fast as running one natively

I aknowledge that Android uses Java, but I don't game on Android :^)

And it seems that Firefox dropped support for Java

Also, it is worth mentioning that I hate Java
Actually an OS ran in a VM can be as fast as running one natively.
But that's thanks to CPU virtualization features which essentially allows you to execute virtualized programs directly on the CPU while staying within the sandboxed environment.
Java doesn't have that benefit, and it also doesn't compile to machine code, but bytecode, which is always going to be slower.
JIT helps immensely though and you can create some fairly complex things (including games) in Java that don't appear to be noticeably held back by being written in Java.
I think Java is a good starting point because it's easy to learn and it's similar to C# in many ways which is one of the most popular programming languages today and a useful thing to know. Java itself is losing popularity though and might die off completely eventually, but is still useful knowledge for making mobile apps for as long as Android keeps it on life support.
Really for NDSi and PC because I don't know jacksquit on how to code and I really wanna make this game I thought of (Luigi mansion but 2D) so If anybody could help please do so also Playstation2Store
Don't start with DSi as it pretty much requires C/C++ knowledge and that is not the best language to start with.
For PC game development you have many choices but C# is a good one to start with as it's easy to learn IMO and can be used with both MonoGame and Unity and probably a whole host of wrappers for different game dev libraries.

Maybe don't start with games right away but make some simple programs as game development is a whole lot more complex than programming simple utilities.

Once you are familiar with programming and you understand the basic concepts of a higher level language like C# or Java or even Python you can then move on to C/C++ if you wish.

Game Maker is not a bad thing either, it greatly simplifies getting into game development even if you have no previous coding experience and games made with it can run on most platforms in use today including Android, iOS, Windows, Linux, probably Mac, Windows UWP (X-Boner, Windows Mobile, Windows Store apps), and PS4 although a lot of those require expensive licenses unless you pirate it, it won't do a whole lot to prepare you for lower level languages like C/C++ but if you learn GML scripting that will help you understand the basic concepts of programming and make it easier to learn proper programming languages.
I had played around with other languages before but didn't really understand them that well, and it was thanks to Game Maker that I really got into programming and eventually learned several other languages.
Game Maker games can even run in HTML5 these days so you can run the same game on all those platforms and even as browser based games, although more complex games may run slowly in HTML5.
 
Last edited by The Real Jdbye,

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
5,964
Trophies
2
Age
23
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
5,447
Country
Portugal
Scratch, may seem difficult for the common human, but you can make it /s

Your question is kind of invalid, since in order to continue to making games, you need to have solid understanding on what programming language you are learning/using and the platform you are programming for

A great started can be Python, but it isn't really suited for games
If you want to program in more advanced languages, and which I don't recommend without prior knowledge of programming, u know, go to C

NEVER touch Java, since it is not for games, and tbh, just bad



Scripting is making scripts which run on top of a program, while programming is the process building/making the program itself afaik

--------------------- MERGED ---------------------------

Also https://gbatemp.net/threads/so-you-want-to-learn-to-program.371255/

Are you joking? lmfao
 

pustal

Yeah! This is happenin'!
Member
Joined
Jul 19, 2011
Messages
1,150
Trophies
1
Location
Emerald Coast
Website
web.archive.org
XP
3,490
Country
Portugal
NEVER touch Java, since it is not for games, and tbh, just bad


Java is as good or as bad as you want it to be and what you want to use it for. It is the main language used in the enterprise world for a reason, it's high level enough to execute complex ideas easily and not too high level to make it significativelly inefficient to be unusable. It also provides excelent scalability.

The unefficiency of Java comes mainly for requiring an overlay to run on most OSs (Java VM) and having a barrier that stops programmers from twicking with the system underlays. And it isn't usually used for games also because of lack of tools and engines developed for it.

But it isn't a bad language at all, if you understand what's underneath, you can develop efficient programs, else wasn't so popular and widely use.

I wouldn't recommend learning Java without having some introduction to C, but it's a great way to learn object oriented concepts.
 

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
5,964
Trophies
2
Age
23
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
5,447
Country
Portugal

Java is as good or as bad as you want it to be and what you want to use it for. It is the main language used in the enterprise world for a reason, it's high level enough to execute complex ideas easily and not too high level to make it significativelly inefficient to be unusable. It also provides excelent scalability.

The unefficiency of Java comes mainly for requiring an overlay to run on most OSs (Java VM) and having a barrier that stops programmers from twicking with the system underlays. And it isn't usually used for games also because of lack of tools and engines developed for it.

But it isn't a bad language at all, if you understand what's underneath, you can develop efficient programs, else wasn't so popular and widely use.

I wouldn't recommend learning Java without having some introduction to C, but it's a great way to learn object oriented concepts.
eh, these days the performance hit isn't what it used to be years ago. The bad performance of some games like Minecraft is more because of the way it was made and not because of the use of the JVM iirc
 
  • Like
Reactions: pustal

EthanAddict

An investment to nothingness
Member
Joined
Nov 12, 2016
Messages
489
Trophies
0
Website
google.com
XP
470
Country
Antarctica
Actually an OS ran in a VM can be as fast as running one natively.

That wasn't my experience with it, so I guess

Are you joking? lmfao

What do you mean?

I wouldn't recommend learning Java without having some introduction to C, but it's a great way to learn object oriented concepts.

OOP can be seen everywhere on Java

eh, these days the performance hit isn't what it used to be years ago. The bad performance of some games like Minecraft is more because of the way it was made and not because of the use of the JVM iirc

Then I guess that my Celeron holds me back quite a bit
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
22,130
Trophies
3
Location
Space
XP
11,472
Country
Norway
That wasn't my experience with it, so I guess



What do you mean?



OOP can be seen everywhere on Java



Then I guess that my Celeron holds me back quite a bit
You must have been using the wrong virtualization software or didn't have virtualization extensions enabled on your CPU. Or you didn't have the right settings or drivers installed.
The trick to getting as good as native speeds on a VM is to have a GPU dedicated to the VM and forwarding the GPU to it. Thanks to a certain virtualization extension (VT-d or VT-x on Intel, I forget which) present on modern CPUs the VM can access the GPU directly and get native speeds. There may be some very slight overhead with RAM access but not something you will generally notice.
 

EthanAddict

An investment to nothingness
Member
Joined
Nov 12, 2016
Messages
489
Trophies
0
Website
google.com
XP
470
Country
Antarctica
You must have been using the wrong virtualization software or didn't have virtualization extensions enabled on your CPU. Or you didn't have the right settings or drivers installed.
The trick to getting as good as native speeds on a VM is to have a GPU dedicated to the VM and forwarding the GPU to it. Thanks to a certain virtualization extension (VT-d or VT-x on Intel, I forget which) present on modern CPUs the VM can access the GPU directly and get native speeds. There may be some very slight overhead with RAM access but not something you will generally notice.

rip I had VT-x on, but considering it is a Celeron with Intel HD as main and for the VM, I must be kinda back
 

tivu100

Well-Known Member
Member
Joined
Jun 6, 2015
Messages
2,256
Trophies
0
Age
33
XP
1,078
Country
United States
You have answered your own question.

That being want to learn. To go a bit further as you are likely suffering crappy human brain and can't just upload it simply you have to actually really want to do it. A reliable way to do this is to have a project you want to make happen.

Your choice of platform may limit your means -- you can readily make some kind of 2d platformer in something as basic as flash, and maybe even a high level game maker, but the DS/DSi lacks a flash player and pretty much requires C programming. If you are going to specifically target the DSi then you are even more limited than you might be for the DS which has a handful of other options where the DSi is fairly new and underdeveloped.
So what is the better open console, for beginner to target?
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
22,130
Trophies
3
Location
Space
XP
11,472
Country
Norway
rip I had VT-x on, but considering it is a Celeron with Intel HD as main and for the VM, I must be kinda back
VT-d is the one that lets it access PCI-e (and maybe other parts like RAM and USB devices?) directly. VT-x is for general virtualization letting virtualized software run directly on the CPU.
VT-x is suffient for good speeds in CPU-bound tasks but you won't really get a near-native experience with an emulated GPU and network adapter etc.
 
Last edited by The Real Jdbye,
General chit-chat
Help Users
  • No one is chatting at the moment.
    Veho @ Veho: Worst speedrun ever.