Whats the best way to learn how to code?

Discussion in 'General Off-Topic Chat' started by DRAGONBALLVINTAGE, Nov 7, 2017.

  1. DRAGONBALLVINTAGE
    OP

    DRAGONBALLVINTAGE Ultra Instinct Omen

    Member
    297
    263
    Jun 27, 2017
    United States
    Sacred World of the Kai
    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
     
  2. FAST6191

    FAST6191 Techromancer

    pip Reporter
    24,166
    10,077
    Nov 21, 2005
    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.
     
    gnmmarechal and Subtle Demise like this.
  3. Subtle Demise

    Subtle Demise h

    Member
    1,486
    1,703
    Sep 17, 2009
    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.
     
  4. EthanAddict

    EthanAddict An investment to nothingness

    Member
    487
    2,186
    Nov 12, 2016
    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

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

    — Posts automatically merged - Please don't double post! —

    Also https://gbatemp.net/threads/so-you-want-to-learn-to-program.371255/
     
    Subtle Demise likes this.
  5. Tom Bombadildo

    Tom Bombadildo I'm Henery the Eighth, I am!

    pip Contributor
    GBAtemp Patron
    Tom Bombadildo is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    11,101
    11,352
    Jul 11, 2009
    United States
    I forgot
  6. Quantumcat

    Quantumcat Dead and alive

    Member
    12,424
    6,759
    Nov 23, 2014
    Australia
    Canberra, 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.

    — Posts automatically merged - Please don't double post! —

    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?
     
  7. FAST6191

    FAST6191 Techromancer

    pip Reporter
    24,166
    10,077
    Nov 21, 2005
    United Kingdom
    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.
     
    Coto and Quantumcat like this.
  8. MionissNio

    MionissNio GBAtemp Regular

    Member
    294
    124
    Jul 4, 2012
    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.
     
    Quantumcat likes this.
  9. EthanAddict

    EthanAddict An investment to nothingness

    Member
    487
    2,186
    Nov 12, 2016
    Antarctica
    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
     
  10. Coto

    Coto GBAtemp Addict

    Member
    2,395
    433
    Jun 4, 2010
    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
     
  11. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Member
    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    12,812
    5,688
    Mar 17, 2010
    Norway
    Alola
    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.
    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, Nov 8, 2017
    Quantumcat and DRAGONBALLVINTAGE like this.
  12. gnmmarechal

    gnmmarechal Seriel's Original Stalker

    Member
    GBAtemp Patron
    gnmmarechal is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    4,939
    3,154
    Jul 13, 2014
    Portugal
    https://gs2012.xyz
    Are you joking? lmfao
     
  13. pustal

    pustal Koalafied member.

    Member
    389
    178
    Jul 19, 2011
    Portugal
    The Matrix


    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.
     
    Essometer and gnmmarechal like this.
  14. gnmmarechal

    gnmmarechal Seriel's Original Stalker

    Member
    GBAtemp Patron
    gnmmarechal is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    4,939
    3,154
    Jul 13, 2014
    Portugal
    https://gs2012.xyz
    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
     
    pustal likes this.
  15. EthanAddict

    EthanAddict An investment to nothingness

    Member
    487
    2,186
    Nov 12, 2016
    Antarctica
    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
     
  16. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Member
    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    12,812
    5,688
    Mar 17, 2010
    Norway
    Alola
    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.
     
  17. EthanAddict

    EthanAddict An investment to nothingness

    Member
    487
    2,186
    Nov 12, 2016
    Antarctica
    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
     
  18. tivu100

    tivu100 GBAtemp Addict

    Member
    2,050
    441
    Jun 6, 2015
    United States
    So what is the better open console, for beginner to target?
     
  19. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Member
    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    12,812
    5,688
    Mar 17, 2010
    Norway
    Alola
    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, Nov 8, 2017
  20. Minox

    Minox I did it

    Supervisor
    6,165
    3,124
    Aug 27, 2007
    Sweden
    I heard coding works
     
    Last edited by Minox, Nov 8, 2017 - Reason: Brain malfunction