Join us on Discord!
You can help CodeWalrus stay online by donating here.

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
  • Calculators owned: TI84+ CE

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.
  • Calculators owned: I own all of them: PICKACHUP TI 84+ CSE TI 83+ SE TI something something ??? ??? ??? ??? ???
  • Consoles, mobile devices and vintage computers owned: PICKACHUP ??? ??? ??? ??? ???



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

Dream of 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.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

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

#4
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).
  • Calculators owned: HP 50g, Prime, 28S, 35S, Casio Prizm, dead Nspire CX CAS

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.
  • Calculators owned: TI-86 (now broken), TI SR-56, TI-Nspire CX CAS, TI-84+ SE, TI-84+ SE, TI-85, TI-73 Explorer VS, ViewScreen, TI-84+ CSE, TI-83+ SE

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.
  • Calculators owned: HP 50g, Prime, 28S, 35S, Casio Prizm, dead Nspire CX CAS

Dream of Omnimaga

#7
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.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Yuki

#8
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.
  • Calculators owned: TI-83+ (dead?), Casio Prizm (also dead???)
  • Consoles, mobile devices and vintage computers owned: A lot
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)

Dream of Omnimaga

  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

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.
  • Calculators owned: HP 50g, Prime, 28S, 35S, Casio Prizm, dead Nspire CX CAS

Dream of 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.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

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!
  • Calculators owned: TI84+ CE

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