What code should I learn?

Discussion in 'General Off-Topic Chat' started by Teslas Fate, Aug 19, 2018.

  1. Teslas Fate
    OP

    Teslas Fate Linus Tech Tips Fanboy

    Member
    3
    Dec 29, 2017
    United States
    Pekin Illinois
    As you all know I'm 13 but, what you don't know is I take High school math which is an advanced math class for 8th graders. This means I know more in math than most my age because of this, I wanted to know which code would fit for my level of expertise.
     
  2. B_E_P_I_S_M_A_N

    B_E_P_I_S_M_A_N I'm better than you I think

    Member
    9
    Jun 7, 2016
    Antarctica
    Hell
    Introductory programming doesn't involve that much math, so you shouldn't be worried about that.

    As for a first language, I'd say whatever works for you. Python is a popular language that's often touted as a good entrypoint for green programmers. You might also want to check out languages like Ruby, Java, and C# as well.

    If you want to go with Python, check out Invent With Python, by Al Sweigart, it's the book I used when first starting out with Python. If not, TutorialsPoint is an excellent resource for quickly picking up any programming language.
     
  3. Teslas Fate
    OP

    Teslas Fate Linus Tech Tips Fanboy

    Member
    3
    Dec 29, 2017
    United States
    Pekin Illinois
    Cool, Thanks for the information
     
  4. FAST6191

    FAST6191 Techromancer

    pip Reporter
    22
    Nov 21, 2005
    United Kingdom
    There are some advanced maths concepts that might cause you to stumble in a very few select areas of programming (stuff like matrices can be troubling for some) but without those you can still do very useful things and I would encourage learning something if it is of interest to you. You might even learn those areas if they do come up. Once coding was all maths but today the maths is fairly basic (basic arithmetic, algebra and trigonometry will carry you most places), good skills in it tend to mean you think logically though which is far more valuable.

    I am not going to suggest you go for any given "level" from what you wrote there. I have had people your age take well to low level stuff, I have those that benefited far more from the easier to handle stuff and I have had mixtures of both. If your end goal is the sort of thing that needs high performance, low level coding (high end games, drivers, video encoding/filtering, things that need to be fast basically) then starting out there is not a bad plan. If you are more interested in converting file formats, making simple tools for specific problems you have. If you have an open source project you like then maybe go for whatever they are using.

    https://gbatemp.net/threads/so-you-want-to-learn-to-program.371255/ has a bit more discussion on things, feel free to ask other things here or elaborate on what your goals are here.
     
  5. JellyPerson

    JellyPerson https://discord.gg/BMVma8j

    Banned
    8
    Jul 26, 2017
    Korea, North
    Pyongyang
    I started with Lua. On Roblox.

    Problem is, I took Geometry in 8th grade, so ymmv with that.
     
  6. TheMrIron2

    TheMrIron2 GBAtemp Regular

    Member
    4
    Aug 5, 2017
    Ireland
    I recommend starting with Lua. It's fast and teaches you a lot of concepts and encourages clean code without being difficult. Python isn't bad either. Lua can be practised in two game settings: Roblox and Computercraft, the latter I used.

    Once you get a good grasp of one language, learning a new one will be much easier than you'd think since you already get the fundamentals and you're just translating "Okay, so if I would do this in Lua, how would I do it in X?" and simply learning syntax.

    Other recommendations are Java/C#: They are faster than Python and are very widely supported on multiple platforms, and learning either of those will make learning C/C++ easier - and they are really the big language for games, anything involving graphics rendering and especially games/programs on old platforms, ie. homebrew.

    Bottom line: if you want to go for an open source project or a program for modern PCs, then Python and Lua are a good bet. Python is flexible, simple and widely supported. Lua is similar, though a bit less popular and significantly faster. However, if you want to dive into the deep end, I recommend C or C++. C/C++ introduce computer science concepts like memory management, and they're difficult languages especially to start with, but if you can grasp them you will have exceptional and basically unparalleled performance (aside from assembly/machine code) and it's both good for performance-driven applications as well as for squeezing out the most from hardware without writing assembly, which takes much longer and is extremely difficult to interpret without a good understanding.
     
    JellyPerson likes this.
  7. JellyPerson

    JellyPerson https://discord.gg/BMVma8j

    Banned
    8
    Jul 26, 2017
    Korea, North
    Pyongyang
    Once I made an RPG for the TI-84 calculator in machine code. It was a fun little endeavor.
     
    Last edited by JellyPerson, Aug 19, 2018
    pandavova and TheMrIron2 like this.
  8. TheMrIron2

    TheMrIron2 GBAtemp Regular

    Member
    4
    Aug 5, 2017
    Ireland
    I've done some programming in C and C++, almost nothing in assembly except for a tiny bit of MIPS for PS2/PSP debugging. I find pushing old hardware like my PSP to be exceptionally rewarding and it makes you think outside the box to find solutions and make your code better and faster. Call me whatever you like, but I find there is simply more fun in getting every drop of performance you can out of aging hardware, and in the process perhaps proving that "aging" hardware can still hold its ground. People still program for the Atari 2600 and Commodore 64, which is incredible, and I'm not that dedicated - but you can still learn a lot from programming for older hardware. Start wherever you want in that regard: be it your childhood console or one of the older machines you have lying around, and see what it's capable of. You'll be surprised: I found out the PS2 was perfectly capable of 1080p 60FPS 3D rendering! I don't start many ground-up projects on those systems: I prefer to take some base code, learn from that, and then say "Okay, how can this be improved?". But in essence, it's a great experience. Once you know some fundamental computer science, I recommend checking out an old console or whatever if you have a sliver of interest. It's rewarding and educational.
     
  9. Teslas Fate
    OP

    Teslas Fate Linus Tech Tips Fanboy

    Member
    3
    Dec 29, 2017
    United States
    Pekin Illinois
    I'll go with python based on what everyone's said about it
     
  10. Lilith Valentine

    Lilith Valentine GBATemp's Wolf-husky™ Embrace yourself

    Member
    25
    Sep 13, 2009
    Antarctica
    Many moons away
    Buy you a Raspberry Pi 3B+ and start you some learning! That's really the whole point of the RPi is teaching you how to code and they provide you more than enough to get you started. Python is basically tethered to everything involved with the Pi community and Raspbian (the official Linux distro for the RPi)
     
    Last edited by Lilith Valentine, Aug 20, 2018
    linuxares likes this.
  11. linuxares

    linuxares I'm not a generous god!

    Moderator
    15
    Aug 5, 2007
    Sweden
    Python or if you wanna go oldschool Delphi.
     
  12. BORTZ

    BORTZ Switch Dawg

    Supervisor
    22
    GBAtemp Patron
    BORTZ is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Dec 2, 2007
    United States
    Pittsburgh
    Assembly. Learn how to code in machine code, make incredibly efficient games and apps. Profit out the wazoo because you don't have to pay royalties.
     
    pandavova, x65943 and linuxares like this.
  13. Jayenkai

    Jayenkai Makes Games

    Member
    6
    Dec 25, 2007
    United Kingdom
    Bolton, England
    Most modern languages are vaguely similar. It's not like the 80s when BASIC was one thing, Pascal was a very different thing, and C was a whole other kettle of fish.
    Nowadays, they all seem to have settled on what works and what doesn’t. The biggest differences tend to be what commands are and aren’t available, and the preferred ways to do loops and functions. But in general (or maybe it's that I’ve learned so much?) I typically find myself jumping from BlitzMax to MonkeyX to C++ to PHP to JavaScript and back, frequently.. they’re all similar enough that I can handle the differences, and simply continue to create.

    If I were to start from scratch, today, I’d probably choose to learn using HTML5 and JavaScript.
    Sure, those might not be the world's most ideal languages, but whatever you build, assuming you have somewhere to host it, you can happily show it off to oodles of people. Browsers are all over the place, including people's phones, and being able to say “look what I made” and have people actually see it, without needing to download and unzip and install and run the exe, can be a huge boost for your morale.

    It might be slightly more complicated having to juggle both html and JavaScript simultaneously, but it'll be good practice for more complex things in the future.
     
  14. Voxel

    Voxel Man, I'm beat!

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

    Our Patreon
    Jun 27, 2015
    United Kingdom
    I don't really talk about my programming endeavours as much as I used to, but I am exactly in the same boat! The knowledge gained from tinkering around with older consoles can be extremely precious. Especially as I've personally found it to be more in my comfort zone as opposed to some of the later-gen consoles believe it or not; let alone it's also showed me the ropes of advanced C and C++ techniques much quicker and efficiently. Original Xbox is a great example thanks to its easy use of DirectX and Visual Studio, and the vast amounts of documentation already available publicly.
    It sort of reminds me of when I used to play around designing different shaders for the 3DS not too long ago. The 3DS's GPU lacks pixel/fragment shader support, but with enough logic and use of multiple shader passes, you're still able to closely mimic some per-pixel shading effects which look equally as pleasant. It's just a really great feeling knowing that you're kind of "defying the laws" of the hardware that you're building an app or game on.

    As for the topic at hand, I would go for Python too, I guess? I'm a C/C++ person, born and bred, but when I used to be at school studying computer science, where 80% of the people weren't particularly code-savvy, everybody seemed to be getting to grips with it quite nicely as the weeks went on. (And even I learnt a thing or two from it as well)
     
    TheMrIron2 likes this.
  15. SuperKirbylover

    SuperKirbylover Newbie

    Newcomer
    1
    Aug 30, 2018
    United States
    planet earth
    hey same i learned lua first
    i moved on from lua, to c#, and i found it they're pretty similar.
    basically what everyone else said, start with java, c#, or python! most languages are usually easy to learn at first, not to mention a lot of them now are similar.
     
  16. CosmoCortney

    CosmoCortney Chemtrail Pilot

    Member
    10
    Apr 18, 2013
    Germany
    on the cool side of the pillow
    Before I touched any programming language I started with HTML and CSS to get into coding in general. After that I quickly mastered JavaScript and later jQuery.
    After a few months of web-based coding I achieved a good feel on writing code and got into C++ and x86/64 Assembly with great success.
    By now I'm familiar with about 10 programming languages.
    If you want to skip HTML and CSS I'd suggest to start with Python.
    But if you ask me, Python is to be taken with a grain of salt:
    • It does not use semicolons (;) to end a set of commands like almost all programming languages do
    • Code blocks are written within indents instead of curly braces
    • It has no classy for-loop. Python's for-loop is more like a foreach-loop
    I find these features very irritating.
    But whats good for beginners, you don't have to care about datatypes as much as with languages like C++, C# or Java
     
    Coto likes this.
Loading...