+ 11
What is the first programming language one should learn??
A couple of days ago, my nephew (11 years old) asked me where to begin programming. Instead of pouring out a seemingly endless list, I kept pondering. I belong to the generation who started out with BASIC family (Q-Basic, I'm 21, our school required it š ), and didn't learn Java or Python until much later. So, I just can't decide. What would you answer to his question? Please only mention one language that a novice should start with and please explain why! Thanks ;)
28 Answers
+ 19
Suggestion is to start with learning the side everyone will see in a normal browser and no logic involved.
Example being HTML which is a non-programming language, markup language.
Followed by a styling language CSS... Configuration of screen details background, foreground, font, borders, and so on...
JavaScript will get a bit more complexed but great for beginning canvas features... And also it begins some logic applications...
Hope this helps...
I too grew up in the time of Assembler, ASCII, Binary, Basic, Pascal, Fortran, Cobol, RPG, and so on and still do program in Cobol daily as well as RPG ~
+ 13
Doc I would argue that the languages you mentioned such as C and Java does not necessarily require a specific thought process. Both are general-purpose programming languages and consist of similar constructs at the base level - Conditional statements, variables, loops, etc. You are not going to teach your nephew to connect a microcontroller to a host machine with C/C++. Likewise, we won't start off by writing mobile apps with Java.
In fact, a kid can start from any general purpose programming language. It does not matter. We worry that they are too young to dive into something too pragmatic, but fail to realize that these young ones take in information way faster in a more efficient manner than we do. Such concerns of exposing them in their early age to this approach would "scare them off" or at least throw them off their feet is unnecessary.
+ 9
If this "programming" you talk of is about getting the computer to perform a task to actually solve problems through the use of algorithms, instead of simply getting the computer to respond to you, structuring webpages and styling them may not be of your best interest.
However, there is no denial towards its effectiveness at drawing in beginners. I just think that we should be starting off in a relevant direction. The FAQ link may not give you a length explanation of why you should start without those languages, but it made clear that whatever you learn should be relevant to your goal.
In the case of your nephew, web dev may suffice, since, he doesn't have a specific goal and simply wishes to be exposed to programming. The catch, however, is that HTML and CSS is not programming. If you do not worry about these terminologies,it should be fine, but how about tweaking BroFarOps' suggestion, and start with JS? At least you can demo algorithms or mathematical operations, which is the core concept of programming.
+ 6
Learn c
+ 5
I like BroFarOps š¦&šš° answer as they can easily see the results of their learning within minutes.
+ 5
Hatsy Rei I concur as we see young intelligent students of programming here everyday exploring the other languages ~ and even exploring outside SL and practicing here.
I see these youth as advanced as they may have started out with HTML CSS and JavaScript - then jumped / excelled into more advanced or wanted to explore the back-end languages...
+ 4
Hatsy Rei,
The question digs far deeper than I've sketched above.
Programming is a highly cognitive function involving "language", "logical/mathematical " centers and an overall comprehension of what's going on (gestalt), among many other things.
I guess, there should be an "ideal" age frame at which one should first be exposed to programming, like there are scientifically established ideal periods which maximize learning foreign languages or mathematics or chess.
I keep pondering whether there is a an actual language that results in best outcome once learned first.
+ 3
BroFarOps š¦&šš° nice list to begin with. Indeed, your approach sounds plausible as from outside digging inside, a biological corollary would be as if going from phenotype to genotype. š
+ 3
Honestly? the language that is a good start is the one which will be relevant to what you want to do.
For me, im planning to do strictly front end web development. I will need to know HTML, CSS, and JavaScript mainly. So learning Server Side Programming isnt as relevant to me. Its good to know, but its not going to be useful to me to learn that as a foundation.
That is where i would look and ask those questions. First find out what your nephew is interested in doing, and go from there.
+ 3
I do agree completely with Hatsy Rei. Being aged just 11, he should be able to capture the basics of programming through a practically programming language, i. e., a language which clarifies the importance of logic and structure through its usage. I was 11 when I began my journey of programming with BASIC and QBasic, but I belong to such a place where it was hardly given any importance and hence I don't remember anything of those languages. However, when I got exposed to a real programming environment at the age of 12-13, the main thing I focused upon was not how easy a language was just for the sake of learning a programming language and boast about it. I chose to learn C++ first, which was denied by many because they thought it was not a good option to start with as it was difficult (although I didn't find anything so complex in it) and suggested me to go with HTML. I had HTML in school and hence learnt it as well.... (CHECK BELOW FOR FURTHER...)
+ 3
... But gradually I began realising that the reason that I earnt (and still earn) an A++ for my projects (including the web ones) was not because I knew many languages but it was probably because I had good command over C++, which many of my friends even feared of trying once. My algorithms have been improved a lot by C++ and therefore the way I program now in any language (such as Javascript) credits to it.
So, GAIN COMMAND ON YOUR FAVOURITE PLATFORM AFTER YOU IMPROVE YOUR ALGORITHMS, PROBLEM-SOLVING AND STRUCTURING SKILLS. C++ can be a good language to start with.
+ 3
I would recommend C programming language. C makes one learn basics easily. Once you become pro at C, languages like C++ or Java would be cool to learn. Infact learning C at first, makes Python Programming and the recent language R much easier to learn, understand and code!
+ 2
Satnam Singh This doesn't sufficiently explain.
These languages are multi-paradigm languages and each come with a different philosophy. Each relying on specific thought-processes and are different pedagogically.
C isn't simply an alternative for Java (for example).
This list is far too pragmatical to be applicable. Kids don't generally learn programming to write webpages or earn bucks. They want to understand what a computer is and how it works, and they learn much from their interaction with computers.
+ 2
C
+ 2
1. HTML
+ 2
Than java
+ 2
Than css
+ 2
And python.
+ 2
Hatsy Rei
I may be biased; but having seen people starting out with Fortran or BASIC versus Java or C family,
I've found Basic works much better at defining a working foundation to base a future of programming on, one that'll make future corollaries between languages (and differences) easy to recognize and comprehend.
Given the same problem (like Fibonacci's series or Factorial) to elementary school students who learn Basic and University students who are struggling to understand C, I've found first group working better.
+ 2
Keep it simple