Jump to content

Python, C++, or C#?

I'm in high school and I want to learn a programming language. My school has a Java course but I won't be able to take that until senior year. I want to know which programming language I should learn first. Should I learn Python, C++, or C#? I have pretty much no prior programming experience at all.

CPU: AMD FX-6300 4GHz @ 1.3 volts | CPU Cooler: Cooler Master Hyper 212 EVO | RAM: 8GB DDR3

Motherboard: Gigabyte 970A-DS3P | GPU: EVGA GTX 960 SSC | SSD: 250GB Samsung 850 EVO

HDD: 1TB WD Caviar Green | Case: Fractal Design Core 2500 | OS: Windows 10 Home

Link to comment
Share on other sites

Link to post
Share on other sites

I'm in high school and I want to learn a programming language. My school has a Java course but I won't be able to take that until senior year. I want to know which programming language I should learn first. Should I learn Python, C++, or C#? I have pretty much no prior programming experience at all.

If you're just starting off then Python

"Rawr XD"

Link to comment
Share on other sites

Link to post
Share on other sites

If you're going to take the Java class, just start with Java. No reason to worry about learning multiple languages early on.

 

That said, of the 3 languages you gave, Python because it's Python.

1474412270.2748842

Link to comment
Share on other sites

Link to post
Share on other sites

(Monty) Python!

Specs: CPU - Intel i7 8700K @ 5GHz | GPU - Gigabyte GTX 970 G1 Gaming | Motherboard - ASUS Strix Z370-G WIFI AC | RAM - XPG Gammix DDR4-3000MHz 32GB (2x16GB) | Main Drive - Samsung 850 Evo 500GB M.2 | Other Drives - 7TB/3 Drives | CPU Cooler - Corsair H100i Pro | Case - Fractal Design Define C Mini TG | Power Supply - EVGA G3 850W

Link to comment
Share on other sites

Link to post
Share on other sites

Python is easiest to start with but I recommend dabbling with JavaScript as well so that C-style syntax isn't a suprise. Making a switch from indentation-based blocks a-la Python to curly braces and semi-colons takes some mental re-adjustment. JavaScript is easy because you can just develop in your browser using the built-in debugger.

Link to comment
Share on other sites

Link to post
Share on other sites

Isn't C++ kinda like an extension of C#?

No, C++ was built on top of C. C# is Microsoft's version of Java.

1474412270.2748842

Link to comment
Share on other sites

Link to post
Share on other sites

I'm in high school and I want to learn a programming language. My school has a Java course but I won't be able to take that until senior year. I want to know which programming language I should learn first. Should I learn Python, C++, or C#? I have pretty much no prior programming experience at all.

If you learn C# you will be able to adapt to Java extremely easily.

Link to comment
Share on other sites

Link to post
Share on other sites

This feels like deja vu... anyway C++, I'll always recommend starting with that!

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

I'm in high school and I want to learn a programming language. My school has a Java course but I won't be able to take that until senior year. I want to know which programming language I should learn first. Should I learn Python, C++, or C#? I have pretty much no prior programming experience at all.

 

If you're going to take the Java course, learning it first might be an asset and a way to get better grades, but if you learn any of the languages you mentionned, you'll be able to adapt easily.

The tough part is to learn how to program, how to solve problem, not how to do basic/common stuff in different syntax. ;)

 

The key is to find something that you like doing with the language (ex: making mods for a game) and practice, practice, practice. I know a few people who started with Java because they wanted to make mods for Minecraft, it was a good way to learn and it taught them a lot.

 

With enough dedication and research, you'll be able to learn a lot with any of the mentionned languages.

Link to comment
Share on other sites

Link to post
Share on other sites

I would personally think that starting in C is a very good place.

 

Just learning basic constructs like structures, functions and pointers. But, if you want to stick to one of the three, then Python is a good place to start.

 

Goodluck.

Link to comment
Share on other sites

Link to post
Share on other sites

My recommendation is learn Java. It will prepare you for next year and will teach you a great language in the process. 

C# is essentially Java locked to Windows, it has it's benefits (better generics, closer integration with Windows) but also has it's downsides (it's enums aren't really enums for example). I'd learn Java, runs on any platform pretty much, better open source community and 3rd party libraries and is not declining as fast as C#. Python is ok, but I wouldn't recommend it for newbies, not strict enough; teaches bad practice and C++ is in my opinion too much to handle, unless you're willing to really try (I started with C).

Link to comment
Share on other sites

Link to post
Share on other sites

Personally, I would say python if you have no previous experience. Take a look at codecademy: http://www.codecademy.com/en/tracks/python

It is a very good platform for learning.

I would personally say to avoid Java if you have no previous experience. The language isn't consistent and documentation is very poor, with examples just being boilerplate blocks that are hard to understand.

C# is also not that great, but it's better than java in my opinion. Microsoft does a good job with their msdn docs. I prefer c# to java. If you're concerned about it being windows-only, take a look at the mono project.

I wouldn't recommend C/C++ as a first language because it doesn't hold your hand enough. They're both very power languages, but can be confusing to beginners. If you find programming fun, l recommend learning them at some point (in addition to assembly), because they really help you understand what the computer is doing.

My recommendation is learn Java. It will prepare you for next year and will teach you a great language in the process. 

C# is essentially Java locked to Windows, it has it's benefits (better generics, closer integration with Windows) but also has it's downsides (it's enums aren't really enums for example). I'd learn Java, runs on any platform pretty much, better open source community and 3rd party libraries and is not declining as fast as C#. Python is ok, but I wouldn't recommend it for newbies, not strict enough; teaches bad practice and C++ is in my opinion too much to handle, unless you're willing to really try (I started with C).

What "bad practices" does Python teach?
Link to comment
Share on other sites

Link to post
Share on other sites

It depends on what you know already about programming. If you start now you could go with c/c++. It will be a huge lesson because as robodude666 said "it doesn't hold your hand enough" and u will get a deeper understanding/base on programming. From the 3 you gave, in my opinion,  python is the easiest to learn. So if u have time go witch c/c++, if u dont then python

Link to comment
Share on other sites

Link to post
Share on other sites

Good point Theo. That's also another good way to look at it.

 

If you just want to learn a programming language to get started, Python is a good first choice for that.

If you want to challenge yourself, and get a better understanding of how computers work; learn about pointers, and how memory is used, then C++ is a great choice.

 

It's just important to get started and try it out. You'll know if you like it.

Link to comment
Share on other sites

Link to post
Share on other sites

Personally, I would say python if you have no previous experience. Take a look at codecademy: http://www.codecademy.com/en/tracks/python

It is a very good platform for learning.

I would personally say to avoid Java if you have no previous experience. The language isn't consistent and documentation is very poor, with examples just being boilerplate blocks that are hard to understand.

C# is also not that great, but it's better than java in my opinion. Microsoft does a good job with their msdn docs. I prefer c# to java. If you're concerned about it being windows-only, take a look at the mono project.

I wouldn't recommend C/C++ as a first language because it doesn't hold your hand enough. They're both very power languages, but can be confusing to beginners. If you find programming fun, l recommend learning them at some point (in addition to assembly), because they really help you understand what the computer is doing.

What "bad practices" does Python teach?

It isn't very well structured compared to a more sophisticated language such as Java, C#, or if you're into web development; Dart. My first language was Python and allthough it helped me learn certain things easily I felt it done me more bad than good, going on to Java from Python was kind of hard; it was so strict and "explicit" in the way it worked, it toom me a while to get used to it. Now when I use Python I hate it, it is so loosely typed, not declaring variable types etc.

 

I'd just recommend someone go for a "harder" language rather than Python if they want to learn programming inside out, if it is for smaller projects every now and again then use whatever language suits it best. ^_^

Link to comment
Share on other sites

Link to post
Share on other sites

It isn't very well structured compared to a more sophisticated language such as Java, C#, or if you're into web development;

How is it not well structured? Are you referring to the standard library, or the syntax?

If you're into web development, then you're in luck because Python has a giant selection of Web Frameworks

 

it was so strict and "explicit" in the way it worked, it toom me a while to get used to it.

"It" being Python? If so, the Zen of Python define the guidelines for Python's design:

 

Explicit is better than implicit.

...

Simple is better than complex.

Complex is better than complicated.

It's always better to be explicit, and define something, than having to leave the reader of the code to figure out what's going on.

If there's a need for it, it's okay to have complex code; as long as it's easy to understand ( see this ).

 

Now when I use Python I hate it, it is so loosely typed, not declaring variable types etc.

That's one of the main benefits of Python's design. Having float this, and int that, or String this makes code harder to read. It's superfluous. The computer knows that 1 is a byte, and 3.14 is a float. We also know ourselves when we see it.

I learned Programming through C/C++. At first, I found Python to be very difficult to understand. But after some practive, I understood the beauty in its simple design. And now, after using it for the past seven years I cringe at other languages; especially Ruby.

Link to comment
Share on other sites

Link to post
Share on other sites

How is it not well structured? Are you referring to the standard library, or the syntax?

If you're into web development, then you're in luck because Python has a giant selection of Web Frameworks

 

"It" being Python? If so, the Zen of Python define the guidelines for Python's design:

 

It's always better to be explicit, and define something, than having to leave the reader of the code to figure out what's going on.

If there's a need for it, it's okay to have complex code; as long as it's easy to understand ( see this ).

 

That's one of the main benefits of Python's design. Having float this, and int that, or String this makes code harder to read. It's superfluous. The computer knows that 1 is a byte, and 3.14 is a float. We also know ourselves when we see it.

I learned Programming through C/C++. At first, I found Python to be very difficult to understand. But after some practive, I understood the beauty in its simple design. And now, after using it for the past seven years I cringe at other languages; especially Ruby.

 

When you look at a lot of other languages, the way you write in Python, the way you structure your lirbraries, the way you organise your code it is not as strict as many other languages. Java's package system etc seems a lot more organised, maybe it was because when I was using Python I was just learning. As for me saying it was too explicit, not sure why I said that, even I don't know what I meant. As for staticlly typing the variable types, I personally prefer it; I find it much easier to read through code knowing what each variable is, in python I found myself making silly mistakes like not converting input from a String to an int etc. In java if you do this and try to do certain operations you'll have error thrown at you left, right and center  :D.

 

I do however still use Python every now and again if I need a script to run on a UNIX machine. I just prefer languages that are more strict and not as simplistic, I believe that although Python is simple at the beginning when you start a big project that all changes. All down to personal opinion I guess :D

Link to comment
Share on other sites

Link to post
Share on other sites

It isn't very well structured compared to a more sophisticated language such as Java, C#, or if you're into web development; Dart. My first language was Python and allthough it helped me learn certain things easily I felt it done me more bad than good, going on to Java from Python was kind of hard; it was so strict and "explicit" in the way it worked, it toom me a while to get used to it. Now when I use Python I hate it, it is so loosely typed, not declaring variable types etc.

 

I'd just recommend someone go for a "harder" language rather than Python if they want to learn programming inside out, if it is for smaller projects every now and again then use whatever language suits it best. ^_^

 

Isn't Dart just Java? It's a platform/framework not a language... As I understand it it is very similar to Google Web Tools... If not the same thing...

 

Also, I think what you're talking about is that Python is very loose and dynamically typed whereas Java and C# are strict and statically typed... That's really not a problem. Got little to do with structure. Python is fine for learning.

Link to comment
Share on other sites

Link to post
Share on other sites

Isn't Dart just Java?

It's technically its own language made by Google but it gets "compiled" into JavaScript.

1474412270.2748842

Link to comment
Share on other sites

Link to post
Share on other sites

Isn't Dart just Java? It's a platform/framework not a language... As I understand it it is very similar to Google Web Tools... If not the same thing...

 

Also, I think what you're talking about is that Python is very loose and dynamically typed whereas Java and C# are strict and statically typed... That's really not a problem. Got little to do with structure. Python is fine for learning.

As FizzleSticks just said, it is a new language but has a transpiler to be compiled to JavaScript. Much cleaner etc than JavScript. It also has it's own VM which is currently being implemented into Chrome, I have friends who have ties with Google and apparently it may be the next update it is released in. And yes that is what I was trying to put across. Python is fine for learning in most cases but I personally believe learning Java is best; all down to personal opinion I guess.

Link to comment
Share on other sites

Link to post
Share on other sites

I think it really doesn't matter, just flip a 3 sided coin or something!

The basics are roughly the same and you shouldn't expect to pick

the "perfect" language fromt he start, because that does not exist

Link to comment
Share on other sites

Link to post
Share on other sites

I dunno. We had Java as a main course. Than I said - to hell with that, I'm moving to Python2.7 _and_ C++.

 

New to coding overall - Python. But be aware, version 2 and 3 differ in dozen of ways.

Familiar - C++. Seriously, it can be hard in times, but... worth it. Plus, it can be compiled to llvm. That gives you opportunity to code desktop and mobile.

 

And that was only my opinion

Link to comment
Share on other sites

Link to post
Share on other sites

I'm in high school and I want to learn a programming language. My school has a Java course but I won't be able to take that until senior year. I want to know which programming language I should learn first. Should I learn Python, C++, or C#? I have pretty much no prior programming experience at all.

 

If you intend to take the Java course in your senior year, you might like to do C# now as it is most similar to Java (it is basically Microsoft's answer to the Java hype that started in the 90s). It will therefore give you sort of a head start on the Java course.

On the other hand, it might also benefit to learn a more different language first which will mean you have a broader understanding once you've finished the Java course... in which case I would suggest Python.

However, it is ultimately your decision and the best advice I can give is to go with the one you are most comfortable with. Find a tutorial for each language and just go through it. Once you've done that you should be able to make a decision about which one you like the most and which is the most comfortable language for you personally. That is always the best choice when starting out.

 

Edit: I only just realised I replied to this thread already... Oh well. That'll teach me for browsing at work and paying most of my attention to coding and only a little to the forum.

Link to comment
Share on other sites

Link to post
Share on other sites

I would suggest starting with Python, employability-wise its popularity is increasing with regards to business use. It's also extremely popular so you will get lots of support, it has great frameworks written for it, and unlike JS or PHP, its syntax and structure will teach you good programming habits, not bad ones.

 

Python is also very versatile, there is a JIT compiler written for it called PyPy and the Dropbox team are working on an implementation that generates LLVM byte code which can then be used to generate native code. After that happens I can't see the point in using any other OO language as a daily driver except possibly for library compatibility and broadening your horizons.

"You have got to be the biggest asshole on this forum..."

-GingerbreadPK

sudo rm -rf /

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×