What would be a good programming language to learn if you're a beginner to programming?

  • Thread starter Deleted User
  • Start date
  • Views 10,552
  • Replies 106

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,840
Trophies
3
Location
Gaming Grotto
XP
29,927
Country
Poland
I don't think you read any of the other posts. ;)
If you disagree with that recommendation, you're out of touch. Just about any modern programming language is based on the C syntax to some extent and C++ concepts like classes or constructors are present in both compiled and interpreted languages. C is a fantastic starting point for any programmer, whether the end-game is supposed to be C++, Java, C# or just about anything else. There's a couple of exceptions, but the general rule is that almost everything is derrivative of C simply because C is amazing, it became so ubiquitous specifically because it does what it's supposed to do without being a pain in the ass.
 
  • Like
Reactions: Deleted User

JoostinOnline

Certified Crash Test Dummy
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
If you disagree with that recommendation, you're out of touch. Just about any modern programming language is based on the C syntax to some extent and C++ concepts like classes or constructors are present in both compiled and interpreted languages. C is a fantastic starting point for any programmer, whether the end-game is supposed to be C++, Java, C# or just about anything else. There's a couple of exceptions, but the general rule is that almost everything is derrivative of C simply because C is amazing, it became so ubiquitous specifically because it does what it's supposed to do without being a pain in the ass.
I don't think you read the part I quoted. He said "along with everyone else", but most people didn't suggest C/C++.

The end game should never be Java, but it's an easy language to start with, and even easier to test. Plus, Robocode. :D

I agree that C is awesome, it's an extremely powerful language. For most people, it's not recommended as a start up language.
 
  • Like
Reactions: Deleted User

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,840
Trophies
3
Location
Gaming Grotto
XP
29,927
Country
Poland
I don't think you read the part I quoted. He said "along with everyone else", but most people didn't suggest C/C++. The end game should never be Java, but it's an easy language to start with, and even easier to test. Plus, Robocode. :D I agree that C is awesome, it's an extremely powerful language. For most people, it's not recommended as a start up language.
I don't see why not, seeing that Java which you're recommending is heavily based on it plus it introduces concepts known from C++ and its own proprietary bullshit. I also don't see how it couldn't be someone's end-game - Java is pretty widespread and used on just about any modern device, its strong point is portability. I wouldn't recommend it to a beginner though because it's infuriating, C is much more... well, logical in the way it operates.
 
  • Like
Reactions: Deleted User

JoostinOnline

Certified Crash Test Dummy
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
I don't see why not, seeing that Java which you're recommending is heavily based on it plus it introduces concepts known from C++ and its own proprietary bullshit. I also don't see how it couldn't be someone's end-game - Java is pretty widespread and used on just about any modern device, its strong point is portability. I wouldn't recommend it to a beginner though because it's infuriating, C is much more... well, logical in the way it operates.
Most people would disagree with that. In fact, you're the first person I've ever heard say that C is easier than Java.

As many people have pointed out, it's hated by most of the community because it requires JRE and it's insecure.
 
  • Like
Reactions: Deleted User

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,840
Trophies
3
Location
Gaming Grotto
XP
29,927
Country
Poland
Most people would disagree with that. In fact, you're the first person I've ever heard say that C is easier than Java.

As many people have pointed out, it's hated by most of the community because it requires JRE and it's insecure.
Of course it's easier - clean C doesn't have classes or objects and by extension doesn't cause any problems with inheritance etc. - it's as barebones as it gets, one clean stream of code - that's a good starting point before implementing complex concepts. The only thing you might want to worry about is memory since it's not managed. Java is hated, but it's everywhere. Java is the fossil fuel of the programming world - it's cancerous, we all wish it to just go away, but it's everywhere so we stick with it for the sake of portability.
 
  • Like
Reactions: Deleted User

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,840
Trophies
3
Location
Gaming Grotto
XP
29,927
Country
Poland
Is it strange that I think that vb.net is an easy to learn language, ideal for beginners?
The problem with Visual Basic and Basic in general is what you do with it afterwards. Visual Basic is just one step above drag-and-drop and it doesn't translate well to any other "professional" language.
 
  • Like
Reactions: Deleted User

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,840
Trophies
3
Location
Gaming Grotto
XP
29,927
Country
Poland
You do realize that you can translate c# to vb.net and vice versa?
Of course you can. You can also translate Swahili to English and back, that doesn't make Swahili a Germanic language. The syntax in VB is completely different to C#, VB .Net will teach you how to use .Net, but it won't teach you C# - you're making a big logical jump there.
 
D

Deleted User

Guest
OP
So C# is based off of C, correct? if I learnt C before I learnt C# then does that mean I would be able to begin programming a game in Unity using C, and then continue in C#?
 

sarkwalvein

There's hope for a Xenosaga port.
Member
Joined
Jun 29, 2007
Messages
8,521
Trophies
2
Age
41
Location
Niedersachsen
XP
11,282
Country
Germany
If you want to do anything worthwhile in the future, learn C++ which is practically extended C.

And git, and svn, and some good scripting language, Python IMHO, and SQL, and some way of networked IPC like CORBA but I prefer ICE.
Also talking about grid why not learning MPI, and also some CUDA or OpenCL if your prefer the open way.
And of course you should learn about general threading, I would say to go the standard C++11 or boost way, but this can be slower on certain platforms (Windows).
And now that we are on it, perhaps you should learn about hi-end solvers and linear programming, what about the free COIN-OR Lemon? (also boost provides too)
But if you want to go professional about this you should probably try the classics CPLEX or the today's popular GUROBI.
And...
Wait, what did you want to program?

PS: What I try to make evident here is that there are MANY things you could learn, all very useful for specific tasks. And actually you could do things way faster, more productive, more error free WITHOUT C++. You can do many worthwhile things in the future and most of them probably will not be C++ related, but knowing C++ is always a plus of course (I still think it is not a good first language anyway).
PS2: I know I am awful at trying to get my point across.
 
  • Like
Reactions: Deleted User

JoostinOnline

Certified Crash Test Dummy
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
Of course it's easier - clean C doesn't have classes or objects and by extension doesn't cause any problems with inheritance etc. - it's as barebones as it gets, one clean stream of code - that's a good starting point before implementing complex concepts.
This statement makes me question how much experience you actually have with OOP. Did you actually learn it, or just try to look at some random code and figure it out?

Not having to directly mess with memory or work with pointers/references also makes things much simpler.

You're also acting like everyone is a natural at programming. It's a very rare thing to see clean code from a beginner.
 
  • Like
Reactions: Deleted User

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,840
Trophies
3
Location
Gaming Grotto
XP
29,927
Country
Poland
sarkwalvein I'm talking about the baseline syntax, you don't seem to get my point. Knowing basics of C/C++ gives you a head start in learning other languages in the future because they borrow the baseline structure, knowing VB is not the same in this regard. Being familiar with C/C++ syntax will make things like Java, JavaScript, C, Objective C, PHP or Pearl at least familiar, for a VB user they'll seem like Chinese.

This statement makes me question how much experience you actually have with OOP. Did you actually learn it, or just try to look at some random code and figure it out?

Not having to directly mess with memory or work with pointers/references also makes things much simpler.

You're also acting like everyone is a natural at programming. It's a very rare thing to see clean code from a beginner.
This is not a matter of experience but a matter of overhead which is smaller in C since it's a simple language. I get your point, what I'm saying is that objects can be introduced later in the learning process rather than right out of the gate. Then again, I'm a sucker for low-level and C is as low as you can get before ASM, so I might be jaded in regards to memory management, I'll give you that.
 
  • Like
Reactions: Deleted User

sarkwalvein

There's hope for a Xenosaga port.
Member
Joined
Jun 29, 2007
Messages
8,521
Trophies
2
Age
41
Location
Niedersachsen
XP
11,282
Country
Germany
sarkwalvein I'm talking about the baseline syntax, you don't seem to get my point. Knowing basics of C/C++ gives you a head start in learning other languages in the future because they borrow the baseline structure, knowing VB is not the same in this regard. Being familiar with C/C++ syntax will make things like Java, JavaScript, C, Objective C, PHP or Pearl at least familiar, for a VB user they'll seem like Chinese.
Yeah, but you need to have some good tutor looking over you if you learn C or C++, because it is prone to make you write like a hack, and those habits stick with you later and are a sickness difficult to get rid off.
You can write very obfuscate, unnecessarily complicated and difficult to read code in C/C++ that otherwise perfectly works. And this is BAD.
Also, having to deal with pointers/memory or very low level data types (C!) takes your attention out of the important things (high level concept of the program, reusable design patterns, software engineering in short).
That is the reason I think it is not a good start.
Regarding the structured way of coding in C (that you could also find on Java or C#), yes I think it is good, but I think also it is better to start with some language that is not so low level.
 
  • Like
Reactions: Arras

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,840
Trophies
3
Location
Gaming Grotto
XP
29,927
Country
Poland
sarkwalvein JoostinOnline I think I can see where we got off the wrong foot now, I understand your points, so let me explain. There is a difference between learning and actively using something - I think every programmer should learn basics of C, the syntax (how to create loops, conditional statements, structures, arrays etc.) but to use C in today's climate would be complete busy work. You misunderstand what I'm saying, I'm not calling for people to go back to the command line, that's insane. I'm talking about learning ubiquitous concepts of C and applying that knowledge in learning a modern language, not to actively use C - it's too impractical for that.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=K4U-CrK4Hug