Jump to content

what's a good programming language to learn?


ecoli

Recommended Posts

Every programming language is good in a specific context.

For example for doing Embedded programming, C is the dominant language because it offers a lot of flexibility and control over the machine along with speed and performance. C++ is not used too much for Embedded systems but it is still used for OSs development for example and scientific research (with C).

 

Java is oriented towards business where performance is a not a crucial factor in most cases but rather the fast dev cycle it offers.

 

For scripting languages like Python and Perl they are mostly used for light operations and quick scripting like for example manipulation text files and some calculations(it would be really useless to use C in this contexts) and they generally can be combined with C to get the best results (take for example LUA for scripting game addons while the whole game is done in C/C++).

 

Web development PHP is the dominant language for back-end along with Rails and Jee while for Front-end you will mostly use JS with HTML and CSS for styling (HTML is not a programming language but a Markup language as the name tells).

Link to comment
Share on other sites

  • 4 weeks later...
Hi all :)

I have a question concerning how to teach myself programming.

First of all, I study biotechnology, and of course, I have some modules which have a bit of programming. However, I am not satisfied with the way they are presented to us. So my question is: which programming language should know a person who will work either in biological or chemical field? At uni, we work mostly in Excel and tiny bit of Wolfram Mathematica Students edition. Also, if you could be so kind and tell me how and where should I teach myself it (eg. should I buy book, enroll in Coursera or something like that).

Thank you all and sorry in advance for grammatical mistakes. :)

Link to comment
Share on other sites

  • 2 months later...

I recently learnt Javascript for web development and feel it covers most of the basic requirements for all the other programming languages.

I learnt it for free at codecademy.com and it was a great learning experience.

 

 

Javascript is really hard to learn and rather poorly documented. I cannot say that I know all of it because I don't far from it in fact. I still can't make this http://hexgl.bkcore.com/play/

Link to comment
Share on other sites

 

Javascript is really hard to learn and rather poorly documented. I cannot say that I know all of it because I don't far from it in fact. I still can't make this http://hexgl.bkcore.com/play/

What Strange said. Javascript is really not that much harder to learn than any other language. Perhaps you are referring to poorly documented libraries?

Edited by Lightmeow
Link to comment
Share on other sites

It is an international standard (ECMA). As such, it is very well specified and documented.

 

 

Ecma is a standard for making a scripting language many scripting languages are using this standard such as actionscript, jscript, rhino, v8, Nashorn, Carakan, and indeed javascript.

It is not however a comprehensive javascript reference. It will not teach you how to use cookies or how to generate a pdf or how to save to excel etc. It also does not teach you basic javascript like keyboard key assignment to functions etc. It does however contain explanations of how basic mathematical functions are defined in javascript etc. This information would be useful if you were going to write javascript but useless to somebody trying to learn javascript.

 

This is an ecma script example

 

Math.round ( x )

Returns the Number value that is closest to x and is equal to a mathematical integer. If two integer Number values are equally close to x, then the result is the Number value that is closer to +∞. If x is already an integer, the result is x.

  • If x is NaN, the result is NaN.
  • If x is +0, the result is +0.
  • If x is −0, the result is −0.
  • If x is +∞, the result is +∞.
  • If x is −∞, the result is −∞.
  • If x is greater than 0 but less than 0.5, the result is +0.
  • If x is less than 0 but greater than or equal to -0.5, the result is −0.

NOTE 1 Math.round(3.5) returns 4, but Math.round(–3.5) returns –3.

 

 

Edited by fiveworlds
Link to comment
Share on other sites

 

Ecma is a standard for making a scripting language many scripting languages are using this standard such as actionscript, jscript, rhino, v8, Nashorn, Carakan, and indeed javascript.

It is not however a comprehensive javascript reference. It will not teach you how to use cookies or how to generate a pdf or how to save to excel etc. It also does not teach you basic javascript like keyboard key assignment to functions etc. It does however contain explanations of how basic mathematical functions are defined in javascript etc. This information would be useful if you were going to write javascript but useless to somebody trying to learn javascript.

 

So you are complaining about the documentation of run-time environment and/or libraries, rather than the language. I have had no problem finding documentation for these things.

 

I would recommend using something like JQuery (or one of the equivalent libraries) that (a) make these things much simpler than trying to write them from scratch and (b) are very well documented and supported.

Link to comment
Share on other sites

So you are complaining about the documentation of run-time environment and/or libraries, rather than the language. I have had no problem finding documentation for these things.

 

I would recommend using something like JQuery (or one of the equivalent libraries) that (a) make these things much simpler than trying to write them from scratch and (b) are very well documented and supported.

 

 

No I am merely stating the fact that there is no full reference documentation for javascript itself. This includes various lesser known javascript functions such as liveconnect

https://en.wikipedia.org/wiki/NPAPI#LiveConnect

Edited by fiveworlds
Link to comment
Share on other sites

  • 5 weeks later...
  • 4 months later...

Eventually, I want to be able to do some computationally-heavy modeling work, which obviously requires programming knowledge.

 

Is there a specific language that would be good for this type of interest. Where can a newb start learning about building the tools to develop skills to develop stochastic-type models?

 

Thanks!

 

 

I'd go with Python. And if you ever want to do a webpage learn Java and Java Script. Python is easy, it's a high-end object-oriented language and its syntax is closer to real written language and vernacular than any other program.

 

The easist programming language to learn would be Microsoft Visual Basic. It's almost all like a GUI OS, with point and click. But it's limited in what it can do, and the snobbier of us coders don't even consider it a real language! LOL.

 

The answer to your question would really depend on why you want to learn to code, and what you hope to accomplish with your new found coding skills.

 

A great place (the best?) online to learn ANY language, for free, is the Code Academy. (www.codeacademy.com).

 

Hope this helps.

Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...
  • 1 month later...

I suggest line numbered BASIC to begin at the very beginning - because the environment is simple and you can just think about the programming logic.

 

Plus you will really appreciate a good OO language once you have struggled to write applications in line numbering with thousands of lines of code! Haha - I doubt anyone ever does that any more though ...

 

If you want to be creative rather than ultra efficient - then Csharp is where its at. C++ is not worth all that pain for a microscopic increase in efficiency.

Link to comment
Share on other sites

I think Basic is a terrible first language. Possibly the worst. You will learn really bad habits.

 

GOTO is essential instruction in machine code/assembly..

JMP (JuMP to absolute address) and BRA (Branch Relative Address given as offset).

 

GOSUB is nothing different from JSR (Jump to Sub-Routine absolute address) or BSR (Branch to Sub-Routine relative address given as offset).

Edited by Sensei
Link to comment
Share on other sites

 

GOTO is essential instruction in machine code/assembly..

JMP (JuMP to absolute address) and BRA (Branch Relative Address given as offset).

 

GOSUB is nothing different from JSR (Jump to Sub-Routine absolute address) or BSR (Branch to Sub-Routine relative address given as offset).

 

 

True but irrelevant.

Link to comment
Share on other sites

  • 2 months later...

Learn Python. It provides a much more powerful model for describing most types of problems than C does. C requires you restate your problem in terms the CPU can understand, and "what the CPU can do" is typically an overcomplicated and error-prone model for describing most problems.

 

If you feel Python is too slow, there are still lots of alternatives to C while still affording you high level, declarative descriptions of problems. OCaml is a fast, compiled mixed-paradigm language which is used for all sorts of performance critical modeling.

 

I would recommend learning C after learning a higher level language. I think too many people start out with a language like C and end up with a "C shaped brain" that tries to model every program directly around the Von Neumann architecture. Learning a higher level language (particularly a functional one) will essentially require you relearn everything you know. I started out with a very heavy C background and it took me many years to move on. Nowadays I never write "for" loops (although they have their place in Python) and can't believe I wasted so much time writing them over and over again in C. There are better ways!

 

C is usually only good for limited embedded systems because as you say - you can't write your problem in people language but in CPU language. Now that comes naturally to me but not to most people.

 

But you also have to remember that any program that is going to be on-line has a REAL problem with upper level languages. These languages all depend on using groups of preprogrammed lower level languages that are then combined. So you can never write a program that is truly secure since the interconnecting code and the generalizing codes leave gaping holes in the security that are almost impossible to guard.

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.