Koopsta Knicca wrote:
Mod Edit: I've made this thread sticky to help new members choose their first programming language. The thread isn't locked, so feel free to add (constructive) suggestions and ideas.
I want to start learning how to program. The closest thing to programming I've done is HTML.
What's the first language I should learn? What're the things I need to know before I start learning?
I have read many of the posts attached to this thread. One of the things I have not seen mentioned and it NEEDS to be mentioned because you asked a specific question:
What's the first language I should learn?
The first language that you should learn is your native tongue. I am not being facitious here. Mastering the native tongue of the requirements writer, be it English, Spanish or Navajo is an absolute must. If you have difficulty with the languages involved you may make a critical mistake and not know it until release or later. This can get quite expensive quite quickly.
The second language that needs to be learned is the language of numbers. Mathematics and its connection to most types of programming becomes immediately obvious when you start working with the nuts and bolts of a language. All computer languages must provide the following abilities: Some way of defining or declaring variables. Some way to branch logic (If Then...Else and switch() case:) come to mind. Some way to assign values. Some way to iterate through a known list of objects. some way to move to a different address block. All of these operations involve mathematics. If you can not do simple algebraic functions like
f(x)=x^2+2y-5 you are not going to understand what the languages operators are doing behind the scenes.
The third language you need to learn is much more sublime than the first two. This is the language of Logic. Particularly That branch of logic known as switch or gate logic. This language is basically a set of deterministic phrases with the operators being AND OR XOR NAND NOT and NULL Knowing these elements and exactly what they mean will allow you to interpret a given programming languages avatar's for these low level logic gates and or their symbolisms. Exclamation(!) being a logical NOT in some languages and so forth.
Once these languages are mastered Then is it time to choose a programming language to learn with. At first keep it simple start with a Command Language or a Batch Language that has readily recognizable systems and key words that translate to known operations. REM for remark and Echo to print to a screen come to mind from DOS Batch programming days. Then with that under your belt start with a language that is going to be useful to you in some manner. Java/C# for the person who wants to write powerful nitpicking detail multifunctional applications. ASP.NET/Coldfusion for budding Web Developers. SQL-92 compliant languages for the budding DBA or DBD. C++/Ansi C for the hardcore gotta-save-a-byte-and-a-half-where-i-can-developer-so-i-can-embed-my- app-on-an-Atom-netbook programmer. JCL/IBM 390 for the Mainframer (VSM and IMS a must here). RPG/COBOL for the business reports person and FORTRAN for the Scientist who still uses a slid rule to compute velocities along a curved path.
But only delve in to the actual programming languages out there when you have satisfactorily mastered the first three languages