What language did you learn first? (1 Viewer)

lgn

Member
Joined
Aug 4, 2013
Messages
34
Gender
Male
HSC
2015
Hey, was just wondering what programming language you guys learned first, and what was the pros and cons of learning that language first, or any ragrets of learning it first.

Thanks
 

brent012

Webmaster
Webmaster
Joined
Feb 26, 2008
Messages
5,284
Gender
Male
HSC
2011
Just learn what you have resources available for, when you learn other languages/more about programming you'll learn what the other language didn't do so well and any differences. The language with the best and most abundant beginner focused resources online would probably be Python.

The current trend in universities is to teach an OO language like Java and focus on objects early on ("objects first"), but I'm not entirely convinced it's the best approach.
 

KingOfActing

lukewarm mess
Joined
Oct 31, 2015
Messages
1,016
Location
Sydney
Gender
Male
HSC
2016
I started with batch which was really interesting (and actually quite useful for those of us who hate Python ;)), and then moved on to Java and fell in love.

I hate Python with a passion as it is usually taught as a programming language, when really it's a just a scripting language and should only be used when you need a lightweight script to do some very small task for you.

Learning batch first was really helpful in understanding control flow, but a con would be that it uses very different syntax from most 'modern' languages. Learning Java as my first OO language was probably the best decision I've ever made - going in depth let me learn bytecode and runtime code modification (hot swapping), multithreading, etc.

Java's biggest con is probably it's inability* to allow users to directly modify memory storage/object addresses, though at the same time it's also one of its major advantages since you don't ever have to remember to 'destroy' an object. Java also was very limited as a functional oriented language rather than an object oriented language, however with Java 8 and the introduction of lambda expressions it's not that big of a deal anymore.

*It's not actually impossible to access memory addresses directly, this is done through the Unsafe singleton in the sun.misc.Unsafe class, but not recommended for a beginner!
 

lgn

Member
Joined
Aug 4, 2013
Messages
34
Gender
Male
HSC
2015
btw, any thoughts on start with C as a first language, im aware it'll be hard but i'll commit!!
 

KingOfActing

lukewarm mess
Joined
Oct 31, 2015
Messages
1,016
Location
Sydney
Gender
Male
HSC
2016
btw, any thoughts on start with C as a first language, im aware it'll be hard but i'll commit!!
I've never done any C, but from what I've heard C++ is just a direct 'upgrade' from C, in the sense that you can fall back to C-style programming whenever you want.
 

brent012

Webmaster
Webmaster
Joined
Feb 26, 2008
Messages
5,284
Gender
Male
HSC
2011
I hate Python with a passion as it is usually taught as a programming language, when really it's a just a scripting language and should only be used when you need a lightweight script to do some very small task for you.
Python is definitely not "just a scripting language". Look at Django for example, quite full featured and widely used web framework built in Python.

btw, any thoughts on start with C as a first language, im aware it'll be hard but i'll commit!!
There's nothing really wrong about doing it, but I wouldn't recommend it. In fairly simple C programs, there's some stuff here and there that you either wont understand for a while and just have to accept OR will have troubles with unnecessarily - i'm not a fan of that, makes coding seem really "magical" in the bad way.

So i'd say the problem isn't that it's hard, just that it might be frustrating and you cant make exciting things as early as you would be in another language. That's why I think it's best to start with something more beginner friendly to play around with and learn most of the basics before moving on to another language.
 

sy37

Active Member
Joined
Jun 22, 2014
Messages
323
Gender
Male
HSC
2015
Just learn what you have resources available for, when you learn other languages/more about programming you'll learn what the other language didn't do so well and any differences. The language with the best and most abundant beginner focused resources online would probably be Python.

The current trend in universities is to teach an OO language like Java and focus on objects early on ("objects first"), but I'm not entirely convinced it's the best approach.
Thank you, +1'd

OP please read this very carefully. I wish someone told me this when I tried to teach myself programming in the 5th grade. I started with C++ and quite frankly, was quite confronted by the bunch of things that i just had to accept. Although I became somewhat competent at it and then enjoyed it, I would be hell of a lot better at programming in any language if I started with something like Python. Though I am compelled to say that learning C++ made learning any other language quite easy.

Programming and knowing the syntax is only ONE part of the story. It is more important to be able to think logically and in an algorithmic fashion. When I began learning Python, since I personally found it much easier to 'break down' so to speak because of it being a higher level, I was able to focus strongly on logically breaking down problems and this is probably what makes someone a good programmer.

I started:

C++ --> VB ---> C++ (revisited) --> Python ---> Java
 
  • Like
Reactions: lgn

GoldyOrNugget

Señor Member
Joined
Jul 14, 2012
Messages
583
Gender
Male
HSC
2012
I'm a professional C++, Java, and Python developer.

Python is probably the friendliest beginner's language. It's the one I started with and I can't imagine starting with anything else. The biggest problem with Python as a first language is that Python is too easy -- it hides what's happening under the hood. But that's why you go on to learn C as a second language ;)

C++ is a direct upgrade from C in the sense that a nailgun is a direct upgrade from a hammer. They seem to accomplish the same thing, but if you try to hammer something with a nailgun you're gonna have a bad time. Programming in C++ requires entirely different idioms and patterns to programming in C. A C programmer would not be able to write production C++ or vice versa. C is a minimal, effective, and beautiful language. C++ is a bloated behemoth. Don't try to learn C++ as a first language. C as a first language is possible, but you have to be patient because for a long time you won't understand half of what's going on.

Python is not just a scripting language. It's a general-purpose language that's used for more and more things as time goes by and it gets faster and more effective. Python has massive adoption in scientific and mathematical computing, web dev, finance, machine learning and data analysis, desktop apps, game development, and so on.

Java as a language is smaller than Python and much smaller than C++, but larger than C. It's harder as a beginner's language than Python but substantially easier than C or C++. I don't think there's a good reason to start in Java rather than Python because unlike C or C++, Java doesn't have any interesting concepts that Python's missing. Java is a less expressive, more verbose, more boring version of Python, and it's not much faster than Python either.
 

ismeta

Member
Joined
Feb 19, 2012
Messages
258
Gender
Female
HSC
2012
Python is probably the friendliest beginner's language...The biggest problem with Python as a first language is that Python is too easy -- it hides what's happening under the hood. But that's why you go on to learn C as a second language ;)
...
Don't try to learn C++ as a first language. C as a first language is possible, but you have to be patient because for a long time you won't understand half of what's going on.
Seconding this! I started with C and I would've had a much nicer time if I'd started off with Python. I don't regret learning C first, but I do recommend to people that they start with Python. There're also a lot of open source libraries for Python that let you do really cool things (websites! games!) with relatively minimal startup time, another reason I recommend starting with it.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Top