Jump to content

Which language to learn ?

CubiX
Go to solution Solved by daniellearmouth,

Try Python. Or C#. Or Haskell. Or Java. Or JavaScript. Or C++. Or Ruby. Or HTML...

 

There is no one right answer. Some will recommend C++, others will recommend Python, others will just go with something so unnecessarily obscure.

 

Pick a language that seems to interest you the most, and try programming something simple so you can get the gist of it.

Umm hello guys ^_^ i am kind of a noob here on the programing part and so i think i need some help

 

So i would like to have an answer on which language i should learn programming and why. Sooo i guess that each language has benefits that others dont and for that matter i would like to have someone break that down for me.

Which programing language has benefits over one other and for what applications ? 

 

Thanks in advance :D 

Link to comment
Share on other sites

Link to post
Share on other sites

java because not only is multiplatform but its object oriented which is easier to work with

Rigs I've Built

The Striker i5 4590 @ 3.7 ||  MSI GTX 980 Armor X2 || Corsair RMX 750 || Team Elite Plus 8 GB || Define S || MSI Z97S SLI Krait

The Office PC i3 4160 @ 3.6 || Intel 4600 || EVGA 500B || G.Skill 8 GB || Cooler Master N200 || ASRock H97M Pro4

The Friend PC G3258 @ 4.3 || Sapphire R9 280X Tri-X || EVGA 600B || 8 GB Dell Ram || Cooler Master N200 || ASRock H97M- iTX/ac

The Mom Gaming PC A10-7890K @ 4.4 || iGPU + ASUS R7 250 ||  8 GB Klevv DDR3-2800 Mhz

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Try Python. Or C#. Or Haskell. Or Java. Or JavaScript. Or C++. Or Ruby. Or HTML...

 

There is no one right answer. Some will recommend C++, others will recommend Python, others will just go with something so unnecessarily obscure.

 

Pick a language that seems to interest you the most, and try programming something simple so you can get the gist of it.

DAYTONA

PROCESSOR - AMD RYZEN 7 3700X
MOTHERBOARD - ASUS PRIME X370-PRO
RAM - 32GB (4x8GB) CORSAIR VENGEANCE LPX DDR4-2400
CPU COOLING - NOCTUA NH-D14
GRAPHICS CARD - EVGA NVIDIA GEFORCE GTX 980Ti SC+ ACX 2.0 w/ BACKPLATE
BOOT and PROGRAMS - CORSAIR MP600 1TB
GAMES and FILES - TOSHIBA 2TB
INTERNAL BACKUP - WESTERN DIGITAL GREEN 4TB
POWER SUPPLY - CORSAIR RM850i
CASE - CORSAIR OBSIDIAN 750D

Link to comment
Share on other sites

Link to post
Share on other sites

I think that it is better to learn imperative programming first, not object orientation.

So Java, in my opinion would be a good second language, if you want to get intouch with object orientation.

If you start with java, you might run into cases where you have to ignore a lot of thinks at first, or use them as blackboxes.

In C for example, the only blackbox that you need is printf, in the beginning.

Python from this point of view is a very good Language, because you can just "do" things, without having to understand classes and without having to care about a lot of other things..

Link to comment
Share on other sites

Link to post
Share on other sites

You need to have think about what it is that you like doing or imagine that you'd like doing really. For me, I am a generalist thus I learn and enjoy every language possible.

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

C++ is my main atm; I know a bit of C# and C though; all are pretty similar.

I'm pretty sure I'll be touching python this year at college.

But Java seems to be one of the more useful ones due to it being multi-platform. 

GIGABYTE Z97MX-G516GB DDR3 | I5 4690k @ 4.4ghz | 1TB SSHD, 500GB HDD, 128GB SSD | GTX 1070 8GB | Corsair Graphite 230 | EVGA 650W | Hyper 212 EVO

 

Cinebench R15: 636(all cores), 127FPS

 

Link to comment
Share on other sites

Link to post
Share on other sites

C++ is usually my go to language but take a look at what you need and evaluate each language based on your needs. A language is nothing more than a tool its up to the programmer to select the right one for the job.

CPU: Intel i7 - 5820k @ 4.5GHz, Cooler: Corsair H80i, Motherboard: MSI X99S Gaming 7, RAM: Corsair Vengeance LPX 32GB DDR4 2666MHz CL16,

GPU: ASUS GTX 980 Strix, Case: Corsair 900D, PSU: Corsair AX860i 860W, Keyboard: Logitech G19, Mouse: Corsair M95, Storage: Intel 730 Series 480GB SSD, WD 1.5TB Black

Display: BenQ XL2730Z 2560x1440 144Hz

Link to comment
Share on other sites

Link to post
Share on other sites

I'm really sorry to pick on you specifically but this has to come apart...

 

C++ is my main atm; I know a bit of C# and C though; all are pretty similar.

 

C++ and C are the similar ones whereas just about the only thing that they share with C# is the 'C' part of the name. Otherwise they are completely different animals. If we are talking about VC++ then it's only down to .NET features really.
 

I'm pretty sure I'll be touching python this year at college.

But Java seems to be one of the more useful ones due to it being multi-platform. 

 

All of the languages you have mentioned thus far are cross platform... not just Java. Moreover how a language is deemed useful or not is entirely dependant upon the context and domain that it is applied within.

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

Umm hello guys ^_^ i am kind of a noob here on the programing part and so i think i need some help

 

So i would like to have an answer on which language i should learn programming and why. Sooo i guess that each language has benefits that others dont and for that matter i would like to have someone break that down for me.

Which programing language has benefits over one other and for what applications ? 

 

Thanks in advance :D

Python is a fantastic language for beginners because it is very well documented and is very readable

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

its object oriented which is easier to work with

I've literally never heard anyone say that before...

 

 

C++ and C are the similar ones whereas just about the only thing that they share with C# is the 'C' part of the name. Otherwise they are completely different animals. If we are talking about VC++ then it's only down to .NET features really.

C# and C syntax are fairly similar.

Link to comment
Share on other sites

Link to post
Share on other sites

 

I've literally never heard anyone say that before...

well object oriented is easier to work with  if you know how and its relatively easy to optimize with third party libraries such as lwjgl.

Rigs I've Built

The Striker i5 4590 @ 3.7 ||  MSI GTX 980 Armor X2 || Corsair RMX 750 || Team Elite Plus 8 GB || Define S || MSI Z97S SLI Krait

The Office PC i3 4160 @ 3.6 || Intel 4600 || EVGA 500B || G.Skill 8 GB || Cooler Master N200 || ASRock H97M Pro4

The Friend PC G3258 @ 4.3 || Sapphire R9 280X Tri-X || EVGA 600B || 8 GB Dell Ram || Cooler Master N200 || ASRock H97M- iTX/ac

The Mom Gaming PC A10-7890K @ 4.4 || iGPU + ASUS R7 250 ||  8 GB Klevv DDR3-2800 Mhz

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

well object oriented is easier to work with  if you know how and its relatively easy to optimize with third party libraries such as lwjgl.

 

Actually that's an opinion. Quite a lot of people may find the procedural paradigm easier.

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

java because not only is multiplatform but its object oriented which is easier to work with

you clearly have been introduced to java in a college or just recently, the "multiplatformy" side of Java was just a myth back in the days when basically any major OS had its own implementation of Java.

 

Today Java is basically a language without a reliable and cross-platform network, I don't know what Java can possibly offer to a newcomer when there are languages like Rust, C++, C .

Link to comment
Share on other sites

Link to post
Share on other sites

well object oriented is easier to work with  if you know how and its relatively easy to optimize with third party libraries such as lwjgl.

I've heard a lot of people say OO makes it easier to organize code, but easier to work with is a whole other thing...

 

IMO Java and C#'s implementation are a bit confusing, compared to C++, apart from multiple inheritance.

Link to comment
Share on other sites

Link to post
Share on other sites

you clearly have been introduced to java in a college or just recently, the "multiplatformy" side of Java was just a myth back in the days when basically any major OS had its own implementation of Java.

 

Today Java is basically a language without a reliable and cross-platform network, I don't know what Java can possibly offer to a newcomer when there are languages like Rust, C++, C .

Java doesn't expose low-level parts of programming, making it easier to pick up basic concepts in that regard. That's also part of the reason why most high school curriculums in the US switched from C to Java.

CPU: Intel i7 5820k || CPU Cooler: Noctua D14 || GPU: EVGA GTX 980 FTW (2-way SLI) || Motherboard: MSI X99 SLI Plus || RAM: 32GB G.Skill 2400Mhz || Storage: 3x 1TB HDD; 240GB SSD || PSU: EVGA SuperNova 850W G2 || Case: Phanteks Enthoo Pro || Displays: AOC 27" 1080p; LG 24" 1080p || Keyboard: Corsair K70 RGB || Mouse: Corsair Sabre Optical || Sound: AKG K240 Studio Headphones || OS: Multi-boot: Windows 7, Windows 8.1, Ubuntu 14.04

Link to comment
Share on other sites

Link to post
Share on other sites

Java doesn't expose low-level parts of programming, making it easier to pick up basic concepts in that regard. That's also part of the reason why most high school curriculums in the US switched from C to Java.

historically Java wasn't the proxy for all OSs like it promised to be . In recent times all the main player just gave up on developing a JVM, Apple doesn't offer a JVM anymore, so doesn't Microsoft since the XP era . Now Oracle is basically in the hands of Oracle and Oracle is doing all the work for all the main platforms .

 

You can't really say that "Java doesn't expose low-level parts of programming" because up until 5-6 years ago, Java didn't even had an implementation of reference, even today there is IBM, the openjdk team, Apache foundation and Oracle itself as the 4 main players, still there isn't that homogeneous environment that can really make Java work as a "universal" language, and probably never will .

So, considering that, you are forced to deal with the "low level" differences that are present in each single system/OS unless you are happy with your toy application made for an exam .

Regarding what you can learn or take from a dive into one random programming language: it really depends on how and what a given professor thinks, how he wants to approach teaching rather than what the programming language has to offer .

Link to comment
Share on other sites

Link to post
Share on other sites

The only real programming language is obviously Brainfuck. No doubt.

 

Nah but all jokes aside, it depends on what you want to do. Just do you research and know what you wanna do and you will eventually find it out.

Technology Entertainment Creativity

Technology Electricity Control

Technology Electronics Computers

Link to comment
Share on other sites

Link to post
Share on other sites

you clearly have been introduced to java in a college or just recently, the "multiplatformy" side of Java was just a myth back in the days when basically any major OS had its own implementation of Java.

 

Today Java is basically a language without a reliable and cross-platform network, I don't know what Java can possibly offer to a newcomer when there are languages like Rust, C++, C .

i personally have been doing java for 4 years

Rigs I've Built

The Striker i5 4590 @ 3.7 ||  MSI GTX 980 Armor X2 || Corsair RMX 750 || Team Elite Plus 8 GB || Define S || MSI Z97S SLI Krait

The Office PC i3 4160 @ 3.6 || Intel 4600 || EVGA 500B || G.Skill 8 GB || Cooler Master N200 || ASRock H97M Pro4

The Friend PC G3258 @ 4.3 || Sapphire R9 280X Tri-X || EVGA 600B || 8 GB Dell Ram || Cooler Master N200 || ASRock H97M- iTX/ac

The Mom Gaming PC A10-7890K @ 4.4 || iGPU + ASUS R7 250 ||  8 GB Klevv DDR3-2800 Mhz

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

historically Java wasn't the proxy for all OSs like it promised to be . In recent times all the main player just gave up on developing a JVM, Apple doesn't offer a JVM anymore, so doesn't Microsoft since the XP era . Now Oracle is basically in the hands of Oracle and Oracle is doing all the work for all the main platforms .

 

You can't really say that "Java doesn't expose low-level parts of programming" because up until 5-6 years ago, Java didn't even had an implementation of reference, even today there is IBM, the openjdk team, Apache foundation and Oracle itself as the 4 main players, still there isn't that homogeneous environment that can really make Java work as a "universal" language, and probably never will .

So, considering that, you are forced to deal with the "low level" differences that are present in each single system/OS unless you are happy with your toy application made for an exam .

You either have no idea what your talking about or miss the point entirely; you also sound like one of those programmers who bash Java for any semi-valid reason they can find.

 

Have you ever used Java for anything legitimate? Have you ever taught/tutored students learning Java or even seen course curriculums? When you're learning the basics of programming with Java, you'll never encounter the multi-platform issues you try to claim are rampant; students aren't learning how to develop and package high-grade software, they're learning the extreme basics of programming. You don't need to care about the tiny multi-platform nuances to make a simple program print to the console, or to create a simple GUI that displays colored shapes.

 

The only issues I've ever encountered in my experience are extremely minor, i.e. small nuances in multi-threading or networking, but those issues were not nearly as bad as issues I've encountered with C++. Even my Java OpenGL apps work just fine running on Mac, Linux, and Windows without treating each OS differently in any way (other than loading the native libraries required, which is accomplished in less than 10 lines). It's no more complex or different from multi-platform issues you'd encounter in C++, although I encounter much less issues in Java than C++ when writing multi-platform code.

 

Simply put, you're beating an imaginary horse.

CPU: Intel i7 5820k || CPU Cooler: Noctua D14 || GPU: EVGA GTX 980 FTW (2-way SLI) || Motherboard: MSI X99 SLI Plus || RAM: 32GB G.Skill 2400Mhz || Storage: 3x 1TB HDD; 240GB SSD || PSU: EVGA SuperNova 850W G2 || Case: Phanteks Enthoo Pro || Displays: AOC 27" 1080p; LG 24" 1080p || Keyboard: Corsair K70 RGB || Mouse: Corsair Sabre Optical || Sound: AKG K240 Studio Headphones || OS: Multi-boot: Windows 7, Windows 8.1, Ubuntu 14.04

Link to comment
Share on other sites

Link to post
Share on other sites

Seriously though, you should learn INTERCAL. If you can learn programming from that, you should probably be on some kind of watch list.

Link to comment
Share on other sites

Link to post
Share on other sites

You either have no idea what your talking about or miss the point entirely; you also sound like one of those programmers who bash Java for any semi-valid reason they can find.

 

Have you ever used Java for anything legitimate? Have you ever taught/tutored students learning Java or even seen course curriculums? When you're learning the basics of programming with Java, you'll never encounter the multi-platform issues you try to claim are rampant; students aren't learning how to develop and package high-grade software, they're learning the extreme basics of programming. You don't need to care about the tiny multi-platform nuances to make a simple program print to the console, or to create a simple GUI that displays colored shapes.

 

The only issues I've ever encountered in my experience are extremely minor, i.e. small nuances in multi-threading or networking, but those issues were not nearly as bad as issues I've encountered with C++. Even my Java OpenGL apps work just fine running on Mac, Linux, and Windows without treating each OS differently in any way (other than loading the native libraries required, which is accomplished in less than 10 lines). It's no more complex or different from multi-platform issues you'd encounter in C++, although I encounter much less issues in Java than C++ when writing multi-platform code.

 

Simply put, you're beating an imaginary horse.

That's why people shouldn't learn Java as the first language, they will not even grasp what Java is about without knowing the difference between the implementation and the abstraction .

 

You are confusing the language with the concept of frameworks, libraries and standard libraries . You are also not even mentioning the versions of the languages that you are using, yet another symptom of what I was talking about .

 

If you are just coding something, hitting the compiler with your source code, and try to reach a state where you have something that resembles a running program, sure, go for it, but you will probably never see the differences between Java and any other language, or why C++ is being put in use even when, up until C++14 or so, the language wasn't even offering a way to access the filesystem in standard library. C++1z will probably integrate a filesystem library as a TS .

So, yes there are things that the standard C++ library doesn't even offer, even in 2015, but a language is not just a framework, nor people even care most of the time because they are going to re-implement a library or use in-house software .

 

As I said Java is not really multiplatform, Try to code a GUI that runs under the old JVM made by Apple and you will "enjoy" how Swift is really not multiplatform .

 

This days things are not that different, on Android "Java" means Apache Harmony, on a GNU Linux desktop generally "Java" means openjdk, on an IBM server generally means "the JVM machine from IBM", on a Windows desktop or on a kindle it's probably equivalent to what Oracle is offering . So, as you can see, you probably want to consider the fact that Java is not multiplatform nor there is just 1 implementation of Java .

 

Generally speaking, in programming, "My program works" it's a phrase that means exactly 0, zero, nothing .

 

Speaking of imaginary horses, Java is also abusing words and their meaning, try to explain what volatile means in Java, and after that, try to get into how that is implemented, and how all the other languages call that thing corresponding to "volatile" in Java.

 

Even considering all the limitations and the quirks of the language, modern C++14 is way more portable and easier to read than Java, with also a more consistent implementation across platforms, for example clang is available on linux, windows and Mac plus other platforms .

 

If you want to teach something about the future of the programming just get into functional programming, do not justify a choice saying something that is impossibly true and it's just "my program runs, therefore this is a good language" .

Link to comment
Share on other sites

Link to post
Share on other sites

I didn't real all the comments unfortunately

 

but here is the thing about the new guys who want to learn programming. they want to learn a programming language that helps 

 

them not only writing a simple they want to make a webpage for example or a game or to apply an idea that they have.

 

and if you think that you're one of these guys then go with python it'll do everything you want to do above.

 

on the other hand if you want to work with big companies like google, yahoo or Facebook they also will ask you if you know anything about python

 

and this is important.

 

....

 

for me i love python and adore C . and both of them are important to me.

 

one the most important things about the programming languages can do, is referencing and arranging your data, imagine that you have a ton of data

 

you can manage those data with python.

Link to comment
Share on other sites

Link to post
Share on other sites

It honestly depends a bit on what you want to do with programming/coding skills.  That said, I'll throw my two cents in about Python (take heed: it's the only language I know, and I'm not much beyond "advanced amateur" skill level), which would be my recommendation for a place (not necessarily THE place) to start.

 

Pros:

Free, huge community, lots of help available, enormous number of libraries to add various functionality, very easy to write and read most code, can be easily used for a huge range of uses (the Pandas library adds in a bunch of R-like statistics functionlity; scipy/numpy/matplotlib together conspire to offer an extremely good, free alternative to Matlab; the list goes on and on), and generally has a very clear and clean feel to it.  If you're using it mostly to do things like data management and simulations, I've found that after a while the coding itself isn't much of an obstacle--even when you're still a relative amateur--and you get to spend a lot more time thinking about how to approach the problems and how to set up code to do that, compared to the nitty-gritty of actually writing the code itself.

 

Cons:

It basically doesn't run on any mobile platforms (phones/tablets) that I know of, except maybe some of Microsoft's tablets.  Run time is often slower than in compiled languages like C/Java, but this isn't much of an issue until you start doing either long programs or heavy computation (and even then, there are some very good compilers out there, like PyPy, that can speed your code up a lot).  The enormous number of libraries and functions means that, especially as you're learning, you might overlook something that would make your life a lot easier (though, googling questions will often help you avoid this).  Being a very high-level language, you don't get a huge amount of experience with a lot of lower-level computer science-y stuff, at least not at first.

 

All that said: I love Python.  I give it a hearty recommendation for a first programming language, because it was the first (and currently only, so take all this with a grain of salt) programming language I picked up, and it was pretty smooth and quick.  But depending on what you want/need to use programming for, it might be wise to switch to something else like C (or one of the C derivatives like C++/C#/etc) once you get the hang of Python.

Link to comment
Share on other sites

Link to post
Share on other sites

C# is the way to go! :D

// Gigabyte 990FXA-UD3 // AMD FX-8320 CPU @ 4.3 Ghz (7-21.5 Multiplier) 200.90mhz FSB CPU-Z Validated // Kraken X40 AIO - 2x140mm Push-Pull // 4GB Corsair Vengeance LP - 8GB Avexir Core Series Red 1760Mhz // Sapphire R9 Fury Nitro 1130mhz/4GB 1025mhz (Effective) GPU-Z Validation // Corsair SP2500 2.1 & Microlab Solo 9C Speakers // Corsair K90 Silver - Cherry MX Red & Blue LEDs // EVGA SuperNova 850w G2

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

×