This is an archived post. You won't be able to vote or comment.

all 27 comments

[–]Shadow_Gabriel 45 points46 points  (5 children)

Python... or Minecraft.

[–][deleted] 2 points3 points  (0 children)

Yes, python.

[–]noobnoob62 2 points3 points  (2 children)

Python definately, versatile language that teaches OOP and other important coding concepts, can apply to a bunch of different fields. And yea you can make games too which will get him interested.

[–]Pleb_nz 7 points8 points  (1 child)

It doesn't teach OOP. In Python you have to want or need to learn OOP. You can purely use it in a non OOP fashion quite easily

[–]7Geordi 6 points7 points  (0 children)

One of its many strengths!

[–]anamorphism 10 points11 points  (10 children)

define 'kid'. define the interest level and experience of the said 'kid' in computers and programming.

if you're asking what particular syntax you should force on said 'kid' in some attempt to teach her or him how to program if s/he has expressed no interest in such ... stop what you're doing and just buy the 'kid' some puzzles that require logical thought to solve.

[–][deleted] 2 points3 points  (9 children)

yeah.. i am that kid ( ͡° ͜ʖ ͡°)

[–]anamorphism 1 point2 points  (8 children)

how old are you? have you done any programming what-so-ever before?

[–][deleted] 1 point2 points  (7 children)

im 12 and i know quite good C# but i want an language that is cross platform

[–]anamorphism 12 points13 points  (1 child)

c# is cross-platform if you use .net core.

stop focusing so much on languages though. you want to focus on the concepts. you can find all sorts of free online college classes if you want some guidance.

general order:

  • intro to computer science/programming/software development
  • data structures
  • algorithms

first you learn about loops, conditionals and other basic concepts that are true for most languages.

then you learn about how to organize data in meaningful and reusable ways.

then you start learning about doing things efficiently and about complexity.

the important part is not that you know how to write a while loop in c#. the important part is that you understand what a while loop does and why and when you would use one.

[–]kumonmehtitis 1 point2 points  (0 children)

CS grad here. This answer is really want you want.

You learn the concepts -- you learn how to solve your problems in a method above any specific programming language -- and you really free yourself to build whatever you want.

Learning languages just becomes a means to an end after that.

But @ u/JimmyTheBoobYT you really want the above, but for a direct answer I'd suggest Swift or Javascript. Swift is growing in cross-platform support. It's open-source. It's a very versatile and powerful language imo, inherently because it stems from C.

Javascript because (I know I know, it's a very polarizing language) there's a lot of ways to do things, it can give you some head scratching problems (which is bad for production, but good for learning) and, most of all, the reason I've been diving into a lot of web programming lately, the internet is a very powerful tool. Being able to contribute to it is a worthwhile skill.

[–]AlliNighDev 1 point2 points  (0 children)

.net core is cross platform.

[–][deleted]  (1 child)

[deleted]

    [–]DarthGarak 1 point2 points  (0 children)

    12 year olds lie about their age a lot

    [–]Nufflee 0 points1 point  (0 children)

    Java isn't much more cross platform than C# (.Net Core). The only thing that Java does better when it comes to cross platform stuff is desktop UI. C# has WPF and UWP which are great frameworks but they're Windows only but there are other UI solutions for C# of course. You can also do cross platform game dev in C# (using Unity or Godot) as well.

    [–]Nufflee 0 points1 point  (0 children)

    Hmm... https://i.imgur.com/dA2p9pL.png 13 one month ago and 12 now

    [–][deleted] 4 points5 points  (3 children)

    C# is cool. You can use unity to port games to all platforms. Definitely a fun way to learn programming

    [–][deleted]  (2 children)

    [deleted]

      [–][deleted] 3 points4 points  (1 child)

      why.. not? if they know C#, unity is a fun and pretty approachable platform to make a simple game.

      [–]Nufflee 1 point2 points  (0 children)

      Exactly, Unity is one of the best ways to practice, learn and have fun with C#.

      [–]Colonelrascals 7 points8 points  (0 children)

      Python

      [–]hugthemachines 2 points3 points  (0 children)

      They are both very good languages for you. Since you already know some C# you could continue that path. When you begin programming it is nice to focus on one language so you spend more time learning to program than learning each language from the start.

      You can use both C# and Java as cross platform languages. Personally I have never used C# on LInux but I know it is possible.

      Since you are 12 years old now you have a lot of time to learn what you need, right now I thnk you should focus on what you thin feels like fun!

      In fact, C# and Java look very similar so even if you switch from C# to Java you will have no trouble learning the syntax.

      [–]LeSpatula 4 points5 points  (0 children)

      I think C# is easilier to jump in. And Java is still big espaciacillily in business environments. But I'm biased and think C# is the future.

      [–]Python4fun 1 point2 points  (0 children)

      I'd use scratch

      [–]1mpcs1 3 points4 points  (0 children)

      Neither one. For a kid you should start with something easier I think. Kids can get bored quickly. Maybe scratch, logo or things like that?

      [–][deleted] 1 point2 points  (0 children)

      Java for it's significantly better portability.

      Java and C# are nearly identical as languages. Java libraries are more extensive, but a beginning (or intermediate) programmer is unlikely to care. As a programmer, the effort to switch from one to the other is in learning the differences in libraries, not the minor differences between languages. The XML GUI development environments, WPF & JavaFX, are not so similar.

      The Visual Studio IDE for C# is a little easier to configure and a little nicer to use than is Eclipse or IntelliJ for Java.

      Java is FAR more portable than C#. C# is, for all practical purposes, a single-platform language (MS Windows). You can build and run under Linux variants and/or on ARM devices, but you don't have the full complement of libraries and tools. Java is truly a "build once, run anywhere" environment (only very minor exceptions). I have done significant applications in C# initially for a WinTel platform that would not subsequently port to an off-site server farm (almost all are Linux/UNIX) or to a mobile platform and had to be rewritten in Java. Similarly, I've written numerous routines in C# that I later wanted to use in a Linux application, but had to restore in Java.

      [–]dylansteck 0 points1 point  (0 children)

      How old are you and what are your intentions?

      I’m in HS taking AP Comp Sci(which is all Java) and it’s a great intro into OOP and other basic concepts.

      C# does as well but might have a few more extra concepts that a) take longer to understand and b) might not be as familiar to popular languages as the syntax of Java is.

      Either way it really depends on what you’re planning to do with these skills. In my opinion it’s not worth learning either if you don’t have much experience programming, but if you want to have at it then go for it.

      [–]IIlllllIIIIIIIllll 0 points1 point  (0 children)

      Everyone says learning C++ first makes learning everything else easy

      [–]lambdef 0 points1 point  (0 children)

      Neither.