Alternatively, join us on Discord.

Best programming language to learn?(For beginners)

Started by Araidia, February 05, 2016, 03:06:43 am

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Araidia

So, I have a computer programming/game development class next term and I want to know what the best programming language is to learn to "get my feet wet".
So far, I've tried learning a little bit of python at codecademy.com
So am I choosing the right language to learn first? If not, what should I learn first and are there any good resources to learn it?
Finally, I made sure, and the topic closest to this is this

Also Known as: Soul | Enguard

Unicorn

I'd try to Learn TI BASIC, but that's a personal preference :P

In terms of a computer based language, I started with ruby. (it's a bit like Python in terms of base commands) I found it quite easy to use, and the libraries were also easy to get working. Though it does have some problems with creating .exe and .app if you don't have those platforms, it gets a bit hard.



??? ??? ??? ??? ???

DJ Omnimaga

From experience on forums, a lot of people start with Python, VB.Net, Lua or Java. Java used to be a nice language for 2D games and simple applications, but Oracle has ruined it with full of overzealous security protections. I can't really help much, though, because the only language I really dabbled into was VB, but it seems like those four, especially python, are the ones people start with the most. Some people also found Ruby to be easy to start with.

Also for Lua programmers there is LOVE 2D that is available for making 2D games.

What do you want to program, by the way? And for which computer platform? Some languages might be better than others at specific things.

c4ooo

Well, TI basic is a very good choice in my opinion. I would not recommend starting with an object-heavy language like java or c#. Javascript is a good option though if you are very new to programming. Personaly, the java 2D was a bit chalanging for me to get into untill i wrapped my head around abstract oop concepts :P Also, i dont see how oracle has 'ruined' it, as @DJ Omnimaga said :P

tldr: Javascript

bb010g

February 05, 2016, 03:32:32 am #4 Last Edit: February 05, 2016, 03:40:21 am by bb010g
I fully recommend Haskell. Follow this. Haskell will give you one of the best grasps of programming you can get from a single language, allowing for rather easy transition to most languages (virtually all the "major" ones). You may find it odd at first, but just stick with it. You'll thank me later when you can pick up a language you've heard is weird in a day or two. :)

About the other options, TI Basic is a language, but it's heavily constrained. You'll have to learn a lot of new stuff to move anywhere else and may have to unlearn habits that are bad anywhere else. JavaScript's main advantage is that it works in the browser, but there's GHCJS, Fay, PureScript, and Elm on that front coming from Haskell. Its design can detract from its concepts and would be more quickly learned by learning Haskell and then, say, Io. OOP is really simple coming from Haskell's much richer and cleaner type system.

@DJ Omnimaga I don't get how Oracle "ruined" Java. If you're talking about Applets, then they were never that great. If you're talking about Java on the JVM standalone, it's better than it was before thanks to Java 8 making a bunch of things saner (using FP concepts, no less :D).

Ivoah

Quote from: bb010g on February 05, 2016, 03:32:32 am
I fully recommend Haskell. Follow this. Haskell will give you one of the best grasps of programming you can get from a single language, allowing for rather easy transition to most languages (virtually all the "major" ones). You may find it odd at first, but just stick with it. You'll thank me later when you can pick up a language you've heard is weird in a day or two. :)

https://xkcd.com/1312/

Anyways, I would recommend Python or maybe Visual Basic. Visual Basic is nice because it's super easy to make GUI programs, whereas Tkinter (Python's standard GUI kit) is pure evil.

bb010g

Quote from: Ivoah on February 05, 2016, 03:45:32 am
https://xkcd.com/1312/

Anyways, I would recommend Python or maybe Visual Basic. Visual Basic is nice because it's super easy to make GUI programs, whereas Tkinter (Python's standard GUI kit) is pure evil.


https://www.reddit.com/r/haskell/comments/uved7/waldo_the_haskell_powered_codebase_behind_xkcds/
Seriously, Haskell is one of the best languages you can learn as a beginner because your brain hasn't had many presuppositions put into it yet, and Haskell teaches you tons about other paradigms, not just functional. FP isn't always the best choice, and Haskell lets you be flexible (without making you hate yourself, like Java). :P

Anyhow, why learn Visual Basic over C#? If you're looking for a quick GUI library, go with Racket or something.

DJ Omnimaga

February 05, 2016, 04:48:41 am #7 Last Edit: February 05, 2016, 04:50:31 am by DJ Omnimaga
Quote from: bb010g on February 05, 2016, 03:32:32 am
I fully recommend Haskell. Follow this. Haskell will give you one of the best grasps of programming you can get from a single language, allowing for rather easy transition to most languages (virtually all the "major" ones). You may find it odd at first, but just stick with it. You'll thank me later when you can pick up a language you've heard is weird in a day or two. :)

About the other options, TI Basic is a language, but it's heavily constrained. You'll have to learn a lot of new stuff to move anywhere else and may have to unlearn habits that are bad anywhere else. JavaScript's main advantage is that it works in the browser, but there's GHCJS, Fay, PureScript, and Elm on that front coming from Haskell. Its design can detract from its concepts and would be more quickly learned by learning Haskell and then, say, Io. OOP is really simple coming from Haskell's much richer and cleaner type system.

@DJ Omnimaga I don't get how Oracle "ruined" Java. If you're talking about Applets, then they were never that great. If you're talking about Java on the JVM standalone, it's better than it was before thanks to Java 8 making a bunch of things saner (using FP concepts, no less :D).
Yeah I'M talking about this:



Basically, how most applets no longer run in any browser (especially Chrome it seems), even with Java security set at the bare minimum. There was a topic about this on CW a few months ago. I was sure that those security things also applied to standalone programs, though.


As for language difficulty, bb010g brings up a good point about habits that we learn from our first languages: Generally, if you try learning ASM after only 2 months of experience with TI-BASIC, then you will have a much easier time than if you spent 2 years using TI-BASIC. It is even more true if you have asperger syndrome or another form of autism that makes it much harder to adapt to changes. The same is true when switching from TI-83+ BASIC to anything that supports functions and variable returning, but not as bad.


EDIT: Also if you spend too much time using TI-BASIC, you get the bad habit of not closing your quotes and parentheses anywhere else, including when writing text. :P The language is still fine if it does everything you need, though.

Juju

February 05, 2016, 04:56:14 am #8 Last Edit: February 05, 2016, 05:02:29 am by Juju
Well, it's true Java applets are encumbered by security shenanigans and are gonna die anyway (I heard it'll be removed from Java 9), but Java outside applets is still going to be fine.

Anyway, Lua is a good starter, as well as Javascript. Ruby and Python aren't bad either. C# is also pretty good if you wanna learn OOP.
Read Zarmina!
YUKI-CHAAAANNNN
In the beginning there was walrii. In the end there will be walrii. All hail our supreme leader :walrii: --Snektron



if you wanna throw money at me and/or CodeWalrus monthly it's here

Max Leiter

A lot of people will disagree with me, but I personally recommend JavaScript (ES6, the newest standard). It runs on any machine, requires very little workspace setup (no complicated IDE required, compiler, etc), and there's loads of support of it online (in my experience more then any other language, just look at ##javascript on freenode)

DJ Omnimaga


bb010g

Quote from: Max Leiter on February 05, 2016, 04:59:29 am
A lot of people will disagree with me, but I personally recommend JavaScript (ES6, the newest standard). It runs on any machine, requires very little workspace setup (no complicated IDE required, compiler, etc), and there's loads of support of it online (in my experience more then any other language, just look at ##javascript on freenode)

##javascript: 1202
#haskell: 1496
(While we're talking about IRC, #haskell-beginners (280 present) is an amazing place for help when you're learning Haskell.)

Quote from: DJ Omnimaga on February 05, 2016, 05:14:49 am
But what about cross-browser compatibility?

JavaScript is more cross browser than Java applets ever were.

DJ Omnimaga

Ok because I always seemed to run into JS code that had troubles running in at least one browser before. But agian that was a few years ago, back when Opera still used Presto engine and people still cared about getting their stuff working in IE6.

Araidia

Quote from: DJ Omnimaga on February 05, 2016, 03:15:53 am
From experience on forums, a lot of people start with Python, VB.Net, Lua or Java. Java used to be a nice language for 2D games and simple applications, but Oracle has ruined it with full of overzealous security protections. I can't really help much, though, because the only language I really dabbled into was VB, but it seems like those four, especially python, are the ones people start with the most. Some people also found Ruby to be easy to start with.

Also for Lua programmers there is LOVE 2D that is available for making 2D games.

What do you want to program, by the way? And for which computer platform? Some languages might be better than others at specific things.

I probably want to program 2D games at first(because it's easier) and I'm gonna [most likely] be programming for windows

Thanks for all of the suggestions so far!

Also Known as: Soul | Enguard

ben_g

Personally, if your main intention is to just get started with PC programming, I'd recommend Gamemaker Studio. I wouldn't recommend it for actually making your software (though apparently it has improved a lot since I actively used it), but it has an easy to use interface and lots of tutorials.
You can start simple by using the drag&drop functions so that you can easily get something working and experiment with how computers process stuff without having to write actual code.
It also has a built-in scripting language for when you're ready to start writing actual code, which is written in an included editor with syntax highlighting. Because everything is included in one package, it's also very easy to reference other objects and sprites. The object-oriented part is only very basic though, as each object is basically just a collection of variables (no functions), but that may actually be a good thing since it doesn't make things overly complicated.
The included programming language is basically a simplified javascript, so when you eventually want to start with a "real" programming language, it's not hard to move to javascript (though as soon as you're familiar with programming concepts, learning a different language usually isn't that hard).

Powered by EzPortal