Picking a First Language to Learn to Program
-
One of the toughest things about getting started with programming is that you naturally have no idea where to start because you need to know how to program before you have the necessary knowledge to understand what tools and languages will make sense for you to learn! A Catch-22 of learning to program.
Probably the biggest question that new learners have is โWhat language do I start with?โ This determines a lot about how you will learn, what resources are available to you, how you think about programming and more. Different languages have different purposes, goals, common usages, styles, benefits, mind and market share, value, etc. And there are so many.
This topic comes up regularly and with rare exception the answer is always: Python.
Python is an ideal language for a new learner for a great many reasons.
- It is broadly regarded as an excellent learning language and because of this there are plentiful learning resources of all sorts targeted at new learners learning to program for the first time, not only learning Python as a new language.
- It is a platform independent language. When you choose Python you are not locked in to Windows, Mac, Linux or any other OS. You can write your programs on any platform and run them on any platform.
- Python is widely supported by PaaS hosts so having your own system on which to run things is not needed.
- Python is possibly the most broadly supported language for tools, including many great ones.
- Python is a general purpose language that is used in many of the most common scenarios, moreso than probably any other language, from simple scripts and system automation tasks to robust desktop apps, games, scientific computing, web development, etc.
- Python is an object oriented language with great flexibility for imperative and procedural styles making it perfect for early learning and more advanced concepts without changing languages.
- Python has a simple and expressive syntax that is not unnecessarily complicated.
- Python is designed to encourage good practices that are important for new learners.
- Python is heavily used in both software engineering as well as IT so it is very flexible as a career building language.
- Python is an interpreted scripting language with a REPL making it easy to pick up and get started immediately without needing to spending time learning a compiler and linker and other complicated boilerplate.
-
Any links to learn the language properly
-
Learning Python Resources
Online:
Code Academy on Python
Learn Python
Python: Getting Started
Google's Python CourseBooks:
Head First Python
Python for Kids
Python Crash Course
Learning Python -
How many people choose a language to start? I learnt Sinclair BASIC first because my parents bought a Sinclair computer. I then learnt Cobol because that is what I was taught at school. I then learnt dBase because that was what I was told to use in my first job. I then learnt Clipper because that was my second job. And so on. I've never really chosen what to learn.
Are things are different for kids today?
-
@Carnival-Boy said:
How many people choose a language to start?
Enough that I get asked about once a fortnight.
-
@Carnival-Boy said:
Are things are different for kids today?
Very different. Kids don't get taught to program anymore. I know of exactly zero in the US that get taught that. When I was a kid, everyone was taught to program. Now, no one is. My niece is even in the advanced STEM program at a huge high school with over 10K students, is near the top of her class, has expressed an interest in programming, has been on the robotics team for years and... maybe someday will get a cursory introduction to C#, maybe. So far, there is no hint of that coming.
-
I learned BASIC on DOS 1 because it was what we had access to. But by the time I was twelve or thirteen I was learning C because I chose it. That was in the 1980s. My very first language I had little choice, but that did not last long. I did learn Fortran because it was what we had to use at college, along with C which I already knew, but after BASIC and Fortran, all of my languages were by choice.
-
Today, people are computer users. When we were kids in the 80's the only way to use a computer for most things was to know at least a bit of basic programming.
-
Kids today don't learn about computers, they learn to use applications.
-
That's poor. My lad will be getting a free Raspberry-Pi like computer when he starts secondary school next year. Every kid in the country gets one when they're 11.
-
@Carnival-Boy said:
That's poor. My lad will be getting a free Raspberry-Pi like computer when he starts secondary school next year. Every kid in the country gets one when they're 11.
The US doesn't make anything cool like that to hand out
-
I personally hate Python because of whitespace indentation being the ONLY means of structuring logic.
Yes all good code is typically indented and such for readability even when it does not have to be. But making this the only way to have a loop or if statement work just kills me. -
@scottalanmiller said:
- Python is heavily used in both software engineering as well as IT so it is very flexible as a career building language.
#truth - This was a big deal for Google when I was going for a Windows Sys Admin position with them.
-
Every major coding interview I've done in the past decade has either requested or accepted Python for code.