Start learning at 50
I’ve always wanted to learn programming. I’ve read a blog post saying that at this age it was to late . Then I read a post here in saying the opposite. I’ve found a site that was learn x in y minutes where it has a bunch of languages there. After reading them, the languages that caught my attention were Julia, Clojure and Go. Are any of these good for a beginner or should I start with something else? I know what are variables, can spot an if/else statement but that’s about it. What are some good resources for someone like me who likes to learn by doing things?
What are you looking to actually do with your programming skills? That will heavily influence which languages to recommend you learn. Do you want to make websites? build games? do AI stuff? Create enterprise-level software? something else?
This is always the question that trips me up.
I’m 5 years younger than OP. I work in a municipal transportation power system job (we maintain and control the grid for trains, trolleys, etc.). I’m sure I’m wasting all sorts of effort in my professional life. I have time. I got a lot out of learning Power Automate. However, if you ask me to pick one specific project, I get overwhelmed because I don’t know what’s reasonable.
I don’t know enough to know if my ideas are achievable, or if I’d just be bashing my head against the wall. I don’t know if they’re laughably simple tasks, multimillion-dollar propositions, or Goldilocks ideas that would be perfect to learn a coding language.
However, if you ask me to pick one specific project, I get overwhelmed because I don’t know what’s reasonable.
I don’t know enough to know if my ideas are achievable, or if I’d just be bashing my head against the wall. I don’t know if they’re laughably simple tasks, multimillion-dollar propositions, or Goldilocks ideas that would be perfect to learn a coding language.
List out some ideas you’re thinking of. While it may not be obvious to you, someone who is seasoned (me or someone else) might notice at least a general theme or idea to point you in the right direction for where you should go and what you should learn, regardless of if the projects are reasonable.
Note - Most projects take teams to realize, so if your ideas are too large, they might not generally be feasible alone.
Feel free to comment some ideas
I don’t know enough to know if my ideas are achievable, or if I’d just be bashing my head against the wall.
Achievable is subjective, and even if you progress a ways and learn something that makes you realize that that particular project can’t be achieved how you envisioned it, you still have the knowledge to either a) figure out new ways to achieve the same effect, or b) take to a new project.
Knowledge builds on knowledge builds on knowledge. If factor in not starting a project is not knowing enough to know if it’s achievable or not, you’ll never actually get the necessary knowledge to figure that out. You can’t know how to do something until you try to do it…fundamentally.
Julia, Clojure and Go
From these 3 I think Go is the most straightforward and similar to most industry standard languages.
I think this is good advice. Don’t over-think it!
I’m 48. Last year, during a period of unemployment, I decided that to kill time I wanted to create a 3D aircraft model for my flight simulator (X-Plane). I had dabbled in Blender in the past, but nothing too in depth. So I sat down and just did it.
Some of the features I wanted to implement required plugins that had to made with Lua (a programming language) so again…I just did it.
Age and learning have nothing to do with each other. Regardless of the topic. I feel like maybe the only valid reason that such ideas took hold is because the older we get, the less time we have to focus on learning new things, and so it can seem as though we can’t learn, when in reality we just don’t have the time to. That’s certainly what I found to be the case personally. It wasn’t until I had literally nothing else to do that I could focus on really learning 3D Modelling and basic programming.
The solution to that, that I found, was to be project based. I wouldn’t have made as much progress if I didn’t specifically have some thing I wanted to make, whether that’s an app, a 3D model, or whatever.
This is what I’ve found too. Tutorials help to learn tools and some basic techniques, but actual learning requires doing. That’s easy if you have something you want to do, but incredibly difficult if you don’t.
Its never too late to start learning something! I am sure you are well aware of your learning rate and how it changes as you get older but that doesn’t mean you cannot learn at all.
As a beginner, often Python is recommended as a simpler language to pick up and start learning.
Do you have a goal in mind with what you want to learn? Learning to write code in general is fine, but if you have an idea in mind that you want to program, different languages maybe a better starting point. For example if you want to build a web app browser based, id suggest learning front end tools like javascript. Whereas if its a desktop app you want to build, python would work well.
Or maybe you want to just learn programming as a concept without any specific goals in mind beyond how stuff works?
Python is suitable for beginner and is also easy to write code in different fields. I’m a developer, half of my time is writing code to get things done, and the other half is learning more development techniques, which I’ve been learning for over twenty years.
It is never too late to learn something like this. Especially now when there are so many resources that can help you to learn it. It is another story if you want to find a job as a programmer, because I think the majority of companies prefer to hire younger talents.
Python is an excellent choice for a beginner.
Good luck and keep going!
Lots of great advice here. NEVER too old to learn.
Check this out, if you’re interested. Excellent free course to help you learn how to learn:
Learning How to Learn: Powerful mental tools to help you master tough subjects
I’m a big proponent of life-long learning. Never let anyone tell you that you shouldn’t learn something. Do you know what types of things you would want to write a program to do? It’s easier if you have a goal in mind as it will provide a motivation as well as specific things to learn since “programming” is a rather large topic.
Clojure, Julia and go are very different languages. Of the three “go” is probably the most popular and would likely have a lot of resources available for learning. Python is also a very popular and “beginner friendly” language since it’s interpreted and you can run scripts without the need for compiling them. But they’re all fine languages so if you’re drawn to one go for it. There are many concepts that are simply “language agnostic” so if you learn one language it will be easier to switch to another language later. You’re not going to be locked in. That said Clojure will be the most different from the others you’ve listed. It’s a so-called “functional language” which has a different approach from non-functional languages. This is not a criticism, just an FYI. Though functional languages do tend to be “less popular” generally but with a core of people who simply love them. Your mileage may vary.
And there is an important point to make here - programming is about more than learning languages. There are many concepts that you’ll want to learn as well that are used when programming. “Object Oriented” programming, the aforementioned “functional programming”, various data structures (lists, maps, arrays, etc.). many algorithms for things like sorting, searching, etc. The list goes on. To start with you’ll want to learn simple data types (numbers, strings, probably dates) and data structures (lists, maps, arrays). Then move to more complex data structures (“structs”, classes, queues, etc.).
Once you’ve selected a language you’ll want to consider a development environment. What will you write code with, how will you run it, etc. Often some sort of IDE (Integrated Development Environment) is useful as it will provide many tools that assist in running your code. There are sometimes different IDEs for different languages, and some that support many languages. VSCode is a flexible option that is free, IntelliJ is another good option but is commercial (though with a “community edition” that is free). You can always ask here about tooling.
These days I would start out with an AI helping you. AI’s get a lot of crap for “sometimes generating bad or non-working code” but they can be extremely helpful as a learning aide and for explaining concepts, code, etc. They’re infinitely patient and provide near-instant response. I’ve been coding for, well, we’ll just say “some time” but even I’ve found AIs very helpful when learning a new language. You can directly ask it “what’s that ‘?:’ thing on line 4?” and get a good quick response vs. trying to google “?:” without knowing it’s called “the elvis operator”. Some AIs are better at coding than others and they’re getting better almost daily. If you’ve sat for an hour trying to figure out why something isn’t working chances an AI can often provide some guidance and keep you from getting too frustrated.
Edit: One thing I should add is that you will find many people with very strong opinions in the programming community. These opinions can be about which languages are good, what editors you should use, etc. Take any guidance that “X sucks” or “avoid Y” with a grain of salt. Best to ignore them completely and look for people who have more reasoned responses.
I graduated in CS alongside a guy in his fifties. He’s now retired, but he had easily 10-15 years as a software engineer, and was the lead of a group at a large company before he retired, so I assume it all went well for him.
If you want to learn something, do it. if you want to do it professionally, do it.
Find a computer problem that you want to solve and focus on technologies that will help you solve it. Traditionally python is considered an excellent learning language due to the wide library support and adherence to most common programming styles - is there any romanticized pet project you’ve got on your brain?
Julia, Clojure and Go. Are any of these good for a beginner or should I start with something else?
That totally depends on what you want to do.
Go should be easiest since it’s purposefully simplified in order to make learning it easier. There are some more difficult concepts, but the start should be easy enough. I know about go with tests, but it’s not really programming beginner friendly.
I’d avoid clojure as a beginner. It’s more for people who know java, but don’t want to write java. Common lisp and schemes are good for learning programming, but they’re not a popular group of languages and that can be a problem.
I think the idea you stop learning/can no longer learn past a certain age is rather stupid.
I think its a misconstrued fact, but the brain is always learning, I think the actual fact is its easiest to learn as a younger child, but I’d argue that is just due to not having knowledge already and not having any habits etc.
If you want to learn programming go for it! There’s lots of very good resources online.
A language like python is very flexible and syntax wise is made to read close to natural language/English :)
I wonder how much of this idea that you can be “too old to learn” came from the advent of schooling and childhood education. Like, in a time before everyone went to school up until a certain age, did people still have this mindset?
Sorry I didn’t read the post - Julia is quite similar to python also re difficulty
Honestly you’ll find more beginner resources for Python than anything else and it’s worth learning because it’s used everywhere. Lua is also extremely beginner friendly (even if it has some bad habits like 1 indexed arrays.)
If you’ve got a math background LISP is a good place to start as well, particularly the old MIT/UCB Structure and Interpretation of Computer Programs (SICP) book, that was the start of a formal CS education before python took off.
Clojure is a Lisp and a damn fine one,
I’m around the same age as you, and I taught myself front end development. Don’t let anyone say you can’t learn. If you want to make websites, I suggest HTML => CSS => JavaScript => React.js. I recommend learning on Scrimba.com. They have a screen cast system where an actual instructor tells you what to do in plain English with the corresponding code on screen. If you want to see how a change would affect the code, you can pause the cast and run the code yourself.
And if you want to learn back end, a back end programmer suggested learning PHP. Still in high demand in the job market.
Should be Scrimba.com
Changed it. Thanks.
Pascal was designed for beginners, so I’d start there. Get a handle on the basics before you move onto something which is using object-oriented programming, as that’s a whole thing to understand in itself. One step at a time (I’m a teacher, and we always only teach students one concept at a time). And once you’ve got the basics then C# in a Nutshell series of books (one for each version of C# as new features come out) is very good with explaining the next level stuff and not rehashing the basics (there may be similar books available for other languages, but that’s outside my area of expertise).
For the people saying Python is beginner friendly, no, it isn’t. I had to teach it to high school students (I had no choice in the language). Having to have exact indenting, whilst also not caring at all about how you use your variables, not to mention is OOP, is all a bit much for some students, some of whom don’t even fully grasp how to use loops yet. One step at a time.
One nice thing about learning (and teaching) python is that it’s a multiparadigm language. Students don’t have to learn about indenting until you cover flow control. Classes and OOP can come way, way later.
I started with C++. Also multiparadigm, but the syntax and compiler errors were brutal, not to mention pointer arithmetic.
I’m not sure I can think of a language that would be better suited to learning. GDScript seemed kind of nice, and you get to make games.
don’t have to learn about indenting until you cover flow control
Which is one of the very first things they’re taught - “hello world”, variables (“Enter your name”, “hello {name}”), branches, and loops, in that order.
I’m not sure I can think of a language that would be better suited to learning
Pascal - it’s what it was designed for. Variables, branches, and loops, with strong types and optional indenting. Once people have a handle on that, THEN move onto OOP.
I am shocked there is someone besides me who still enjoys the wordy C.
Pascal was the first real language I learned (after basic)
Pascal was the first real language I learned (after basic)
Same. Taught myself some Basic in high school (first on a school computer, then we got a computer at home), learnt Pascal in 1st year Uni (programming basics - wrote a bunch of stuff for myself in Pascal for my computer) then C in 2nd year (OOP), and then Assembler in 3rd year. Later I taught myself (with the help of some books and courses… and intellisense! 😂) C#.
Oh, I nearly forgot! I had to learn Python too… because I had to teach it. Did try to argue for C#, which is allowed under the curriculum (and would be a more suitable language to teach), but then found it’s hard to get that agreed on because so many schools just run Python because it’s easier for them from an administrative point of view - I found I wasn’t alone in this predicament. Thanks school admins…