So you want to learn to program?

Discussion in 'Computer Programming, Emulation, and Game Modding' started by FAST6191, Sep 9, 2014.

  1. Gizametalman

    Gizametalman GBAtemp Advanced Fan

    Member
    825
    360
    Dec 18, 2015
    Mexico
    D.F. - Zona Cero.
    Howdy!
    Years ago, I was interested in Programming, and actually, I WAS learning to code with a software called: "DEV C++", which I remember, it "had" many programming languages in it, so you can choose any you want to code on.
    CAN I USE "DEV C++"?
    Or do I have to download and install EVERY Coding Software out there? (the ones that I'm interested in, that is)
    Like, I wan't to create free software, web pages, mobile games and videogames (GBA, NDS, 3DS, Android, IOS, etc.)
    So I'm guessing that I need:
    -C#
    -C++
    -Java
    -LUA
    -Phyton
    -Ruby

    I have "DEV C++", can I learn all those languages with that software?
     
  2. FAST6191
    OP

    FAST6191 Techromancer

    pip Reporter
    23,711
    9,581
    Nov 21, 2005
    United Kingdom
    Is installing more than one IDE or compiler such an imposition? With the exception of IOS stuff then they can all be done for free on Windows.

    Anyway programming is almost invariably a text based affair so you will want a text editor. Depending upon what you want to do beyond that you might be able to get away with just that, though more things helps a lot.

    Free software can be done in almost anything (there might be some paid only languages somewhere or compilers or something that disallow it but hey).

    GBA was mostly C and GBA assembly, DS did better for C++ as well but was mostly C and DS assembly.

    Web pages. The basic markup and layout is the responsibility of HTML and CSS but websites themselves are written in a variety of languages. The most popular is probably PHP but ASP.net (Microsoft's offering, and sort of familiar to anybody that has done things with C#) and Ruby on rails are also popular. To go on top of this you also have CGI (ways for websites to call normal PC programs) and databases (mysql being the most popular in the free and easy world but there are many many other choices), oh and I suppose .htaccess is a thing worth noting.

    Android is largely taken care of with Java.

    IOS is probably a combination of objective C (apple took C and added object oriented stuff to it, similar in some concepts to the C++ everybody else uses) and I guess I should mention Swift. For objective C you will want a reasonably current Apple computer or make hackintosh/VM with OSX in.

    Dev C++ mostly does C and C++ so yeah you will want extra stuff. I don't know if you want to spread yourself so thin though. By all means learn some web stuff at the same time as learning C or Java or something like that but that is a lot of stuff to learn at the same time as learning the fundamentals of programming, indeed even if you already know such things then it is still a fairly big ask.
     
  3. Vishnoo

    Vishnoo Failure is success if we learn from it.

    Member
    261
    32
    Jun 1, 2016
    India
    Get Visual Studio 2015 if you want to learn all programming language.
     
  4. Gizametalman

    Gizametalman GBAtemp Advanced Fan

    Member
    825
    360
    Dec 18, 2015
    Mexico
    D.F. - Zona Cero.
    Thanks for both replies.
    Visual Studio ain't working on my computer. I downloaded Visual Studio Community (or something along those lines) and it NEVER installed onto my computer.
    I've been learning Java for the past 2 days and so far I'm kinda getting the hang of how coding works, still have a lot to learn.
    I'm assuming that, once I learn ONE language (Java at least for me) then any other seemingly simple language shouldn't be as hard to learn from scratch...

    Installing every single required software to code is not the problem. I just like to keep things organized.

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

    When trying to install Visual Studio, it "deletes" something, and then a Error screen pops up.
     

    Attached Files:

  5. Vishnoo

    Vishnoo Failure is success if we learn from it.

    Member
    261
    32
    Jun 1, 2016
    India
  6. Minnow

    Minnow GBAtemp Fan

    Member
    462
    710
    Oct 5, 2015
    Canada
    Though it is not crucial to type fast, or even above 50wp, I highly recommend teaching yourself how to type properly if you have not already. I used to be around 60wpm by having miss-aligned fingers, am now 110 wpm on a good day. Not only that, but symbols and words in general are easier to type. Regardless of whether you're going to code a lot, if you're at a keyboard for over 1 hour a day, typing properly is a must.
     
  7. grossaffe

    grossaffe GBAtemp Addict

    Member
    2,766
    2,145
    May 5, 2013
    United States
    One of my former co-workers in software development was known to be a hunt-and-peck type.
     
  8. Minnow

    Minnow GBAtemp Fan

    Member
    462
    710
    Oct 5, 2015
    Canada
    Those people actually bother me. My computer science teacher types with 4 fingers whilst looking at his keyboard it and really irritates me.
    Though it's probably just a pet peeve of mine.
     
  9. flame1234

    flame1234 GBAtemp Advanced Fan

    Member
    727
    409
    May 17, 2009
    United States
    Hunt-and-peckers can actually type pretty fast, but can't do it without looking at the keyboard.

    When I program I have to look at the keyboard because you need _ | <> ? [] {} * - = % a lot and a lot of people, even though they can type "The quick brown fox jumped over the lazy dog." can't type those special chars without looking.
     
  10. Minnow

    Minnow GBAtemp Fan

    Member
    462
    710
    Oct 5, 2015
    Canada
    I can type all of those symbols without looking. The only time I look at my keyboard is for the function keys (F1, F12, etc.), those are a pain.
     
  11. supergamer368

    supergamer368 Am I doing this right?

    Member
    335
    262
    May 22, 2016
    United States
    A wastebasket reading my neighbor's mail
    I translated the binary, it says: *�����������������������
     
  12. CosmoCortney

    CosmoCortney The Hacker Furry

    Member
    1,579
    1,490
    Apr 18, 2013
    Germany
    on the cool side of the pillow
    Very nicely written. I'm a C++ coder and use the Qt IDE. It's easy to use once set up properly and there's plenty of tutorials out there :)

    But what about assembly programming? I know it might not be something reasonable for beginners but in my opinion worth mentioning.
    C++ and assembly make a great combination
     
    Coto likes this.
  13. FAST6191
    OP

    FAST6191 Techromancer

    pip Reporter
    23,711
    9,581
    Nov 21, 2005
    United Kingdom
    I like playing with assembly and value what I know of it greatly, however so very few things allow its use any more (usually in favour of intrinsics) and even if it did it tends to also get in the way of security models (kind of hard to do aslr with it, some then speculated all those inline functions being what held back security on pdf readers, flash and some aspects of java).

    To that end its main users are hackers, people working with legacy code and students learning a bit of it so they have a clue what their compilers are doing and hopefully then why it is a bad plan to call functions from within functions and why they really want to manage their arrays are doing. At the same time it is also quite scary and has been seen to turn people away and then consider programming beyond their ken where they might well have been able to handle python, and it is not as though python doesn't do useful computing in timeframes which make sense.
     
  14. StarGazerTom

    StarGazerTom GBAtemp Advanced Fan

    Member
    906
    625
    Feb 2, 2015
    Serious question here.

    My math skills are fairly poor, but ofcourse I know how to use a frigging calculator and how to work stuff out.

    I'm planning to go to college in a year to study Games Development, but over the next year's wait until I get into my course, I want to study and improve as much as I can ahead of time.

    What sort of maths skills would You (or others) suggest I learn over the next year? Call it a sylabus of math's categories I should be learning.
     
  15. Coto

    Coto GBAtemp Addict

    Member
    2,370
    417
    Jun 4, 2010
    Chile
    I think audio related stuff is a good training source, same as graphics related coding. Plain learning about how to gather brick pieces should be the start in any language (and not language specific). But treat it as a start.

    But I think deep learning (a word from machine learning field), only resembles (or at least they try lol) the scientific approach as how everything works.

    Audio related approach I thought you would find interesting:
    https://www.allaboutcircuits.com/projects/diy-synth-series-vco/

    For graphics you can pretty much read the Open GL standard to see how to deal with matrix related stuff.
     
    Last edited by Coto, Nov 9, 2017
  16. grossaffe

    grossaffe GBAtemp Addict

    Member
    2,766
    2,145
    May 5, 2013
    United States
    Discrete Math, Graph Theory, and Linear Algebra would all probably be relevant to programming/game development.
     
  17. FAST6191
    OP

    FAST6191 Techromancer

    pip Reporter
    23,711
    9,581
    Nov 21, 2005
    United Kingdom
    There is a reason Rockstar hires physicists.

    There is also a reason I don't think I have ever met a mathematician which knows their times tables. Mental arithmetic is a fine skill but unless you are working in a bar or counting cards it is a party trick, or maybe a sanity check (anybody can spot someone fat fingering a key and causing something to be some 10 times greater than it should be, someone accidentally using / when they meant * and the thing being accidentally divided by is 1.05 does warrant a bit more).

    I have taught game developers aspects of physics before, and there are plenty of examples of similar things throughout gaming.

    At the same time I can think of a dozen different fields which require some exotic maths which are easier if you understand the maths used to calculate them/describe them. Light, matrix maths, some of 3d movement and representation, ideas of rotational motion (swinging on a rope, said rope gets stuck on a point and you want momentum to be conserved), back to 3d stuff then simple scaling factors and manipulation of items (see 3d modelling or more likely engineering CAD), want proper water physics/fluid dynamics and it gets maths heavy very quickly. Other times you may run straight into a wall if you don't get a concept in maths (you get stories of people teaching others to program and they struggle with a concept, people wonder what goes and it turns out they are 12 and obviously have not met that in school yet). Many of those in my little list before are seen in games but at the same time these days we have hardware and prebaked software dedicated to it -- I am sure we have all played games which showcase a nice magic spell full of fancy particle effects but did nothing because the game dev did not think to balance it within their engine. I could unpack grossaffe's list of scary American (seriously, nobody elsewhere in the world uses subject headings like that) terms and show you how they might be useful -- most will allow you to predict how things will change once you throw real numbers at them, create nice models of operation (games where a wizard starts out squishy but eventually ends overpowered compared to their warrior friend are usually examples of exponential growth, or at least growth to a power vs linear growth, and if you understand graphs you will spot that and be able to correct for it in your game*), and otherwise understand things more easily.

    *while exponential growth and linear growth often start off with linear being bigger they cross at some point. You can make your level 100 wizard grow in power such that it crosses at that point. Alternatively you can add some other factor to the game to hobble the wizard such that it can still be fun for the others (in games this will usually be damage per second but that is rather limiting a way of thinking about it).

    With all that said it is not that maths heavy a field. You are not going to get anywhere without logic and understanding the concepts of flow within it but the maths... it is fairly basic addition and subtraction when all is said and done and you literally are having a computer do it.
    Maths tends to get used to introduce concepts -- I don't know if you are familiar with the idea of factorials (tending to be written something!, 5! = 5x4x3x2x1 = 120, 4! = 4x3x2x1=24, 3!=3x2x1=6....) which is probably the purest representation of the idea of recursion I can think of.

    Choice video at this point


    No great maths in there. Programming in almost its purest essence though.

    Still
    images.png
    You may recognise those as the equations of (linear) motion. If you can't manipulate those trivially to get a given concept ("first equation I am giving you v, v0 and t, now find a" sort of thing) or stick it in the quadratic formula (second equation I am giving you r, r0, a and v0, find me t) then sort that very quickly.

    If you want to grasp the foundations of game theory and game design (the workaround for the overpowered wizard being a start there) I'll not say no either. These guys do well here https://www.youtube.com/playlist?list=PL3eVql0CPrVhG2AeVE1l8hcNPSNmoeagK