# Best coding language to know in 2015?



## Minmeo (Apr 2, 2015)

If you did not know how to code but wanted to start to learn this year what would be the best language to start learning and why? I want to make web apps and maybe one day get a job coding if I like it and can do it.


----------



## rds100 (Apr 2, 2015)

Pascal, because it teaches you how to do properly structured code.

Once you learn how to program using your head you can learn another language that is used today.


----------



## That IT guy (Apr 2, 2015)

I voted for PHP. Even though it gets a lot of hate it is still widely used on a lot of sites and a go to language for developing sites.


----------



## Amitz (Apr 2, 2015)

Isnt' that very much depending on the goal that you would like to achieve?


----------



## notFound (Apr 2, 2015)

rds100 said:


> Pascal, because it teaches you how to do properly structured code.
> 
> Once you learn how to program using your head you can learn another language that is used today.


This is actually really solid advice, when I learnt Pascal first in my A level Comp Sci class I was sort of annoyed that we were using such an ancient language but it has all the fundementals there and will help you understand what's actually going on.


----------



## NickM (Apr 2, 2015)

I don't really see much value in "knowing" a particular language.  The best programmers, in my experience, are the ones who can quickly pick up new languages (by looking at existing code, using the language documentation, etc).  There's something to be said for overall progamming knowledge such as understanding object-oriented concepts, basic control structures, etc.


----------



## Hxxx (Apr 2, 2015)

In real business environments here is what you will need:

1- SQL  mostly stored procedures , reports, etc.

2- C# / ASP

3- PHP / HTML5 / ANGULAR / IONIC

4- C++ / PYTHON


----------



## KwiceroLTD (Apr 2, 2015)

HTML

Honestly, it depends on what you want to create.


----------



## tonyg (Apr 2, 2015)

I agree with the posts above, it all depends on what platform/service you are trying to develop.

And what no love for C? If you are developing for the Unix/Linux platform knowing C is a must.


----------



## joepie91 (Apr 2, 2015)

You're missing Node.js in the list.

But yes, it depends on what you're trying to do. For web-based and generally network-based stuff, I'd recommend Node.js. For other situations, other options may be better.

Just, whatever you do, don't use/learn an unmanaged language (C, C++, ...) unless you really have no other options - it's practically guaranteed to result in memory-related vulnerabilities, and the world doesn't need more of those.


----------



## raindog308 (Apr 2, 2015)

The poll question is "*web* coding languages".

I suspect a very small amount of web programming is done in C++ or bash.

And where is *Javascript*?!?  Needs to be on the list for anything web-related.

php is most widely used, and Javascript to go with it.  You should know SQL and noSQL-style languages too.  HTML/XML and CSS from a non-code perspective are of course vital as well.

python is still somewhat exotic in the web space.  Perl and Ruby have vanished.  OK, I'm greatly generalizing but that's my big-picture perception.

Java is dominant at the high end - tons and tons and tons of enterprise stuff done in Java.

Honestly, php, perl, ruby, and python are all the same language, just with different tradeoffs.  If you master one, you can master them all...I started with perl (version 3!) and got very hardcore into it, and later found both python and php very easy to master.

The only way to become a great coder is to write a lot of code, so I would say think of some cool apps and write them, even if you're reinventing the wheel.  As you grow, contribute to open source projects.  Learn the theory as well as the how-to and take the time to do things right.


----------



## joepie91 (Apr 2, 2015)

raindog308 said:


> The poll question is "*web* coding languages".


Right, that's only listed in the poll question, which I didn't look at because it seemed to repeat the post title (which doesn't say 'web'). I presume the same applies for others.

EDIT: Oh, and please, whatever you do, don't use MongoDB. It's terrible.


----------



## GIANT_CRAB (Apr 2, 2015)

Isn't LOLCat the best language since its inception?


----------



## devonblzx (Apr 2, 2015)

GIANT_CRAB said:


> Isn't LOLCat the best language since its inception?


Looks amazing.  The only problem is VISIBLE just doesn't seem LOL enough.


----------



## Kalam (Apr 2, 2015)

Javascript, especially considering you could do a full web stack using MEAN.

MongoDB, Express, AngularJS, Node.js


----------



## vampireJ (Apr 3, 2015)

joepie91 said:


> EDIT: Oh, and please, whatever you do, don't use MongoDB. It's terrible.


Why is that? MongoDB is very cool. It might be a little memory intensive for me but everything else is great.


----------



## vampireJ (Apr 3, 2015)

php is very easy to learn that is why you can find a lot of freelance coders but the pay may not usually be high

golang seems very promising and the performance is above the roof


----------



## joepie91 (Apr 3, 2015)

vampireJ said:


> Why is that? MongoDB is very cool. It might be a little memory intensive for me but everything else is great.


There's nothing it's particularly good at, and several things it's outright bad at - data integrity being an important one. MongoDB has an _extremely_ poor track record in data integrity - to the point where until fairly recently, it would quietly throw away any data it couldn't store, which would be anything above some 3GB on a 32-bits system. Emphasis on 'silently' - it wouldn't even give you an error, just pretend that the write succeeded.

Other problems include it being non-relational (almost all data is actually relational), not having schemas (basically all data has schemas), hard to maintain, and performance not being very good.

Here's an article on the reasons why a company moved from MongoDB to PostgreSQL, here's an article discussing data integrity issues during replication, here's an article about performance, and here is how you can store schemaless JSON in PostgreSQL if you absolutely need to (although you should use JSONB rather than JSON).

TL;DR MongoDB is primarily hype, it doesn't have any actual redeeming features. It offers 'fake' simplicity by not offering you a schema or meaningful relational constructs - things you will basically always need anyway, and will just end up reimplementing poorly. There is absolutely no evidence that MongoDB 'outperforms' anything in a real-world setting besides CouchDB.


----------



## gxbfxvar (Apr 3, 2015)

I also vote for Javascript for the web stuff. Although, once you have learned the basics, you want to change to something more interesting like Dart, CoffeeScript, or ClojureScript.

On the other hand, once my kids learn to read and write, I most likely will teach them Ada and Python. Ada is very similar to Pascal and can be used for embedded stuff like toy robots ("Here, if you write 'Arm_Rotate_Speed := 100;' the robot arm will swing very fast.") and Python is easy language for other stuff.

(Ok, they probably want to be ice-hockey players or policemen, but it never hurts to know the basics of programming...)


----------



## vld (Apr 3, 2015)

Go, and soon, Rust.


----------



## Minmeo (Apr 4, 2015)

Which language do you think would be best for a beginner to learn?


----------



## Minmeo (Apr 4, 2015)

I mean learn first.


----------



## wlanboy (Apr 4, 2015)

It is a combination of more than one language:


HTML5 / JS frontends
C# (Rest API) backends
MSSQL/DocumentDB/Redis Cache
AngularJS is able to create great single page apps. If you build a restfull interface for your backend you can build frontends without knowing anything about the backend. Loose coupling is the keyword to keep the dependencies as low as possible.

.Net changed alot - CLR, CIL. Common Language Runtime and Common Intermediate Language just to name two.


----------



## joepie91 (Apr 4, 2015)

As an aside, I'd explicitly recommend _against_ learning PHP. It's a terrible language, the ecosystem is rife with low-quality code and poor advice, and while it seems easy to write and deploy PHP, it's actually really hard to write and deploy PHP _correctly_.


----------



## drmike (Apr 4, 2015)

Python remains the steady go to for many projects.

As always, learning C seems to be gateway to good things.  Those traditionally educated tend to have been forced into C programming as part of their studies.


----------



## raindog308 (Apr 4, 2015)

You should learn MIX assembler so when you read The Art of Computer Programming you can do the examples.

After you've read all volumes of TAOCP, you'll be ready for anything.


----------



## vampireJ (Apr 5, 2015)

joepie91 said:


> There's nothing it's particularly good at, and several things it's outright bad at - data integrity being an important one. MongoDB has an _extremely_ poor track record in data integrity - to the point where until fairly recently, it would quietly throw away any data it couldn't store, which would be anything above some 3GB on a 32-bits system. Emphasis on 'silently' - it wouldn't even give you an error, just pretend that the write succeeded.


It seems to be a known problem since at least 5 years back.

http://blog.mongodb.org/post/137788967/32-bit-limitations

Obviously the 32 bit OS has a file size limitation as well which mongodb is not able to workaround with.



> Other problems include it being non-relational (almost all data is actually relational), not having schemas (basically all data has schemas), hard to maintain, and performance not being very good.


It is afterall a NoSQL solution (and quite a pioneer as far as I know) and not RDBMS. Since I was used to MySQL- MongoDB is a new way to do things for me. But I quite enjoy it very soon after.

You can read about the advantages of MongoDB or NoSQL to RDBMS but for me-

1. Non integer IDs makes for basically unlimited records / documents. If you have heard about twitter before moving to a string ID. Integer ids would soon all be used up and the headache of working around it is a big problem.

2. JSON (actually BSON) support throughout.

3. Aggregation is very powerful and which relational queries can never do.

4. The supposedly no defined schema is a flexibility- and it offers actually an advantage and makes everything easy.

Only thing I have to say is not so good is that it eats up a lot of ram so not really LEB friendly. But the performance tradeof is really great.


----------



## Servers4You (Apr 5, 2015)

If you are looking at making sites and web development I'd recommend PHP, mainly because it is the most widely used for web apps, however a lot of PHP can be structured around other stuff such as CURL.

A proper web developer would also learn C++ and Phyton. If you are looking to build web apps, I'd also recommend you learn HTML5 and CSS and if you want to store data then I'd also recommend SQL.

The only thing that hurts my head is trying to learn JavaScript, I just can't wrap my head around it.


----------



## joepie91 (Apr 5, 2015)

Okay, fuck IPB - it has now eaten my reply twice, doesn't save drafts, and even breaks my form data saving extension. I'm writing this in an external editor and copying it in - that means you won't have fancy IPB quotes, but e-mail style quotes instead.

 

--

 

> @vampireJ: It seems to be a known problem since at least 5 years back.

> http://blog.mongodb....bit-limitations

> Obviously the 32 bit OS has a file size limitation as well which mongodb is not able to workaround with.

 

The 32-bit limitation is a dumb architectural limitation that's a result of their (questionable) architectural decisions, but it's not even the real problem I was trying to point out. The real problem is that it _quietly throws away data_. That is inexcusable for something pretending to be a database.

 

> It is afterall a NoSQL solution (and quite a pioneer as far as I know) and not RDBMS.

 

"NoSQL", "schemaless" and "non-relational" are three entirely different concepts. They can exist in the same system, but none of them implies or requires any of the others.

 

And no, MongoDB is not a "pioneer" - systems like BerkeleyDB and CouchDB have been around for much longer.

 

> 1. Non integer IDs makes for basically unlimited records / documents. If you have heard about twitter before moving to a string ID. Integer ids would soon all be used up and the headache of working around it is a big problem.

 

This is in no way related or exclusive to MongoDB or NoSQL. Every major database allows for strings as primary keys, so you can use UUIDs (exactly like MongoDB does) - PostgreSQL even has a special UUID column type for it.

 

> 2. JSON (actually BSON) support throughout.

 

As does PostgreSQL.

 

> 3. Aggregation is very powerful and which relational queries can never do.

 

Sorry, what? The majority of MongoDB's aggregration functionality is modeled directly after the various constructs that exist in SQL databases. I'd like to see something you can do in MongoDB, that you can't do in PostgreSQL.

 

> 4. The supposedly no defined schema is a flexibility- and it offers actually an advantage and makes everything easy.

 

No, it doesn't, did you even read the article I linked? *There is practically always a schema, whether you want it or not.* You just end up implicitly defining it in your applications, meaning you can no longer meaningfully migrate your schema, and if you have more than one isolated component accessing the database, _you now need to implement your schema in multiple places_.

 

And again, PostgreSQL offers JSON support. If you believe that "not having a schema" is actually a thing that is possible, then feel free to use that.

 

> But the performance tradeof is really great.

 

And I'd like to see a benchmark on that. I have been asking people to provide me with proof of this "great performance" claim for _years_ now, and nobody has ever been able to show that MongoDB performs better than anything that isn't CouchDB. Indeed, the articles I linked - which, again, you evidently didn't read - show the exact opposite.

 

As far as I have seen, MongoDB is slow. It isn't fast. Stop claiming it is, unless you can actually back it up with hard numbers.

 

--

 

> @Servers4You: If you are looking at making sites and web development I'd recommend PHP, mainly because it is the most widely used for web apps,

 

That is not a good reason. If you want to _build_ sites, it's completely irrelevant what language is used the most for _other people's sites_.

 

> however a lot of PHP can be structured around other stuff such as CURL.

 

cURL bindings exist for practically every language, though you usually don't need them, as those languages have better libraries available. This is in no way exclusive to PHP.

 

> A proper web developer would also learn C++ and Phyton.

 

What? C++ is almost _entirely_ irrelevant to web development. And being a "proper web developer" in no way requires Python, either. It's one language of many.

 

> The only thing that hurts my head is trying to learn JavaScript, I just can't wrap my head around it.

 

This is a good place to start.


----------



## Minmeo (Apr 6, 2015)

What are good books you can recommend that discusses programming but not limited to just one language? Like something that is a introduction or basic look into it?


----------



## qrwteyrutiyoup (Apr 6, 2015)

Minmeo said:


> What are good books you can recommend that discusses programming but not limited to just one language? Like something that is a introduction or basic look into it?


@raindog308 mentioned above: The Art of Computer Programming. Quoting him, "After you've read all volumes of TAOCP, you'll be ready for anything."

Other good reads would be books on algorithm design, such as Introduction to Algorithms (or the more lightweight Algorithms Unlocked, both by Cormen), Algorithms, by Sedgewick, or The Algorithm Design Manual, by Skiena, for instance.

Books on data structures also make interesting reads, in general, and those you can sometimes find versions for specific languages (such as Data Structures and Algorithm Analysis in C++, by Mark Allen Weiss). You might find easier to follow/more interesting to read one of these with "real code" instead of pseudocode. Apart from that, you can find some real nice resources on sites such as Coursera and the like.


----------



## raindog308 (Apr 7, 2015)

A fun talk by Bob Martin on the history of programming languages in which he mentions good books to read:






In fairness, the books he mentions are "how to really get programming and be awesome" books, not "how to write an iOS app in 30 days".  For example, "Structure and Interpretation of Computer Programs" which is a beautiful book and very mind-expanding but not something that you will pick up tomorrow when you need the syntax for a python dictionary.


----------



## redswitches (May 3, 2015)

PHP is the most simplest language to learn , so is Python. Both are really great languages to start web app development.


----------



## vgpltd (Nov 7, 2020)

75% of Businesses that try to transition without a specific plan will FAIL in the execution. Success begins with the end goal in mind! Here’s your chance to learn how to develop your strategic transition business planning . Our experts Team will help get ready you and your business for your What's Next Plan. We will give experiences, choices, and ability to help understanding your full worth potential while accomplishing your objectives and dreams for What's Next.


----------

