Jump to content

What is the best programming language to learn for a total noob


Achilles

Recommended Posts

There isn’t really a “best” language. 

I would suggest Python. It is interpreted (rather than compiled) which means it is simple to use and is interactive. It embodies most of the important features of programming languages (except strong typing) and is very well documented. 

Link to comment
Share on other sites

I would have to say functional programming, because many of the places on Wall Street with data are using it.  And what can take a very large program in other languages can be made very small in a functional program.

Link to comment
Share on other sites

18 minutes ago, t686 said:

I would have to say functional programming, because many of the places on Wall Street with data are using it. 

Do you have a reference for that (I mean the Wall Street thing)? I don't mean to sound sceptical but, well ... I'm sceptical!

I think learning functional programming is a good idea, though.

I haven't done any functional programming for years, but I gather that Haskell or F# are good choices for this.

Link to comment
Share on other sites

1 minute ago, Achilles said:

What is functional programming?

It is where every operation is treated as a mathematical function rather than as a series of steps to be performed (the difference is hard to explain until you have done both!)

5 minutes ago, t686 said:

Looking at this website: https://www.janestreet.com they ask that you try to learn functional programming, but probably you're right that it's not used in most places.

Thanks!

Link to comment
Share on other sites

I agree* that Python is a good start. It's used in many different areas meaning that you kan apply your new skills in many interesting contexts. Google Python machine learning och python arduino for two rather different examples.

27 minutes ago, Strange said:

simple to use and is interactive

Good point that also applies to tools needed; many Python examples and tutorials can run in a web browser with minimal preparation. Personally I don't like to mess to much with the setup of compilers, libraries and tools to get started. 

 

*) A few years back I would probably have said Java

Link to comment
Share on other sites

I've dabbled around and found php by far the easiest to learn if you want to do something rather than pass a course.

It's a server side scripting language used e.g. in any website with .php in the title.

Unlike eg the similar C++ it usually still runs (with helpful warnings and bug reports) if you make small mistakes. My understanding of php is strictly 'need to know' but it seems to be a sort of hybrid of a compiled and interpreted language.

 

I ran a phpbb board for a club for a while. There were things it wouldn't do that I wanted so I installed xampp and phpbb on my computer. On my computer I set error reporting to full (big security issue on a server) and soon learned what I could and couldn't do with the open source code.

 

I was told by a club member there was a serious shortage of php programmers even at my (very low) level but wasn't interested in it professionally.

Link to comment
Share on other sites

I agree that HP is a useful language to learn for web applications. But it is a horrible language in almost every other respect: it has grown and had more and more features kludged onto it in really ugly ways. Rather like the similarly valuable, but equally bad, Perl and Visual Basic.

These, in my opinion, are terrible languages to learn programming. You should only be allowed to use them after you have learnt good programming practice by using a reasonably well designed language!

Edited by Strange
Link to comment
Share on other sites

4 hours ago, Achilles said:

I want to learn how to program and wondering where I should start as a beginner.

I suggest starting from C/C++. You can read this website:

http://www.cplusplus.com/

In ANSI C there is really just a couple built-in functions/statements (e.g. for(), while(), do{} while; return; etc. etc.)

Majority of functions(/procedures/methods) are in special libraries (stdio, stdlib, etc. etc.) They're described f.e. on this website:

http://www.cplusplus.com/reference/

 

C/C++ is also described on MSDN (shortcut from Microsoft Developer Network)

https://msdn.microsoft.com/en-us/library/hh875057.aspx

While programming in C/C++ you will often (everyday?) have to search for Windows specific functions. Google "[name of function] msdn" to find article about function.

 

Link to comment
Share on other sites

7 minutes ago, Sensei said:

I suggest starting from C/C++. You can read this website:

I'm not sure I would recommend any start with this. Apart from anything else, there is the hurdle of finding and installing the necessary tools. And it is not a great "beginners language", IMO. 

But it is the default programming language that pretty much everyone needs to have some familiarity with. (So I am still giving you a +1 for the suggestion!)

7 minutes ago, Sensei said:

Majority of functions(/procedures/methods) are in special libraries (stdio, stdlib, etc. etc.) They're described f.e. on this website:

http://www.cplusplus.com/reference/

An excellent resource, I agree.

Edited by Strange
Link to comment
Share on other sites

22 minutes ago, Strange said:

I'm not sure I would recommend any start with this. Apart from anything else, there is the hurdle of finding and installing the necessary tools. And it is not a great "beginners language", IMO. 

If somebody has to not learn bad habits (in e.g. PHP, Perl, Python, Visual Basic) since the beginning, C/C++ is way to go..

22 minutes ago, Strange said:

But it is the default programming language that pretty much everyone needs to have some familiarity with. (So I am still giving you a +1 for the suggestion!)

Thanks.

Many other languages relies on C/C++ statements style, and repeat and extend it (usage of braces {}, previously mentioned built-in functions/statements etc.). So somebody who will learn these basics, this knowledge will apply also later in Java, JavaScript, C#/C++ .NET Framework, and other languages.

Edited by Sensei
Link to comment
Share on other sites

29 minutes ago, Sensei said:

Many other languages relies on C/C++ statements style, and repeat and extend it (usage of braces {}, previously mentioned built-in functions/statements etc.). So somebody who will learn these basics, this knowledge will apply also later in Java, JavaScript, C#/C++ .NET Framework, and other languages.

All true and good points.

On the other hand, it has pointers :o (which are useful for low-level programming but a horrible trap for learners)

And the object model is just a mess and unnecessarily complicated.

Edited by Strange
Link to comment
Share on other sites

2 hours ago, Strange said:

I agree that HP is a useful language to learn for web applications. But it is a horrible language in almost every other respect: it has grown and had more and more features kludged onto it in really ugly ways. Rather like the similarly valuable, but equally bad, Perl and Visual Basic.

These, in my opinion, are terrible languages to learn programming. You should only be allowed to use them after you have learnt good programming practice by using a reasonably well designed language!

We have a clash of values here. As I never wanted to be a professional programmer or write safety critical applications I went the quick gratification route.

My idea of 'good programming practice' is to copy and paste from well written software and edit in my own variables, code, comments etc without understanding the source software more than I need to. phpbb has good software which lends itself well to this approach.

+1 to Strange for an excellent exposition.:)

I'd suggest to the OP starting with free software as you can waste a lot of money on commercial software you find too late you don't need.

 

37 minutes ago, Sensei said:

 

@Carrock

On W3Schools website there is PHP online "try it editor", which allows PHP programmers (HTML/JavaScript/CSS too) to check and verify their code, without having to install HTTP server (Apache), not PHP interpreter, from wherever they are.

https://www.w3schools.com/php/showphp.asp?filename=demo_intro

 

Xampp is basically an apache server with many safety features disabled so that it can be easily modified for developing e.g. a virtual server or website offline. It's not a PHP interpreter. Better but harder to use alternatives are available.... (I'm too lazy to try them.)

I'm a bit dubious about the W3Schools PHP online "try it editor."

Anything slightly unusual tends not to work on it. I went the xampp route after wasting hours trying to debug software that had nothing wrong with it. (W3Schools has probably improved since then.)

Xampp is very easy to install. There's even a windows version but it's easier to manage the security implications on Linux.

 

/edit It's also worth installing a database which can work with xampp. Database management is another valuable type of programming.

Edited by Carrock
Link to comment
Share on other sites

  • 3 weeks later...

I'm a very experienced programmer. I've reviewed the contemporary language landscape and I believe Python is by far the best starter language. It's easy to get going and learn to do simple things. It teaches all the right concepts easily. It's a very clean-looking language. It can be used for serious things as long as they don't need to run too fast, so it can grow with your skill level. There are tons and I mean tons of free tutorials and MOOCs and websites and communities to learn from. Also it has this really cool command line interface that lets you try things out one line at a time. It's the ideal starter language.

You should use Python 3, not Python 2. The community came out with a new version years ago and the adoption rate has been way slower than anyone imagined, so a lot of Python code out there is 2 and is incompatible with 3. That's on the Python developers, who got arrogant about how eager people would be to upgrade their major production systems to an incompatible version of the language, with no discernible benefit. Duh!! Bad stewardship.. But that's typical of the industry. Everyone truly thinks they're smarter and know better than everyone else, which leads to a lot of bad design.

Anyway. Python 3 for you.

Edited by wtf
Link to comment
Share on other sites

Python is a scripting language, is not a real programming language, and by preventing direct operating system calls, makes one less familiar with the operating system calls and real programming.  Functional programming is even less real, and is just a communications notation between different programs, such as a query language like SQL.

Do not start with a scripting language or functional language because they have no future since no one sells programs that use them.
They are only in-house tools for people who do not know how to really program.

The only language to start on is C.  That is because all operating systems, compilers, browsers, databases, network protocols, drivers, and embedded software is all written in C.
Then later you can move up to C++, which is what most games and big applications are written in.
C is the easiest language, because it has the smallest vocabulary of reserved words to memorize.  About 35 or so.

Link to comment
Share on other sites

5 minutes ago, Rigby5 said:

Python is a scripting language, is not a real programming language

Don’t be ridiculous. 

5 minutes ago, Rigby5 said:

Functional programming is even less real, and is just a communications notation between different programs,

You are dangerously ignorant about computer programming 

5 minutes ago, Rigby5 said:

The only language to start on is C. 

Of course it isn’t. There are lots of reasons not to use C. Poorly defined semantics. No data structures. Complex tool chains. Pointers. Etc

5 minutes ago, Rigby5 said:

That is because all operating systems, compilers, browsers, databases, network protocols, drivers, and embedded software is all written in C.

Nonsense. And even if it were true it is irrelevant to learning. 

Edited by Strange
Link to comment
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
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.