Across this vast Fediverse, I have encountered a trend of people answering questions with esoteric programming language speaking in tongues that I don't understand, including under my own posts. I am a Boomer when it comes to coding and I am only 27. I don't even know where I would start to learn it because programming is so diverse. I want to feel like I know what's going on but I don't. Coding is the future and the future is now and I am lagging severely behind. I guess I'm asking where a bumbling novice like me can learn more about where to start when it comes to programming.
It depends on what you want to build. If you're not sure, start with Python. It's likely easiest to pick up and get running. There's a book called "Automate the Boring Stuff." I think there's an online version. (Edit: link - https://automatetheboringstuff.com/)
If you don't want to set up Python (or any language, really) on your computer, there's a tool called a REPL that you can find online. So you can just search "Python online REPL," and you'll get a functional online environment to code. Now, you won't be able to do stuff interacting with your local computer this way, like reading files, but it's good for learning the basics of the language.
In terms of software for writing code in on your local computer, Visual Studio Code (NOT to be confused with Visual Studio) is a free, lightweight code editor. It supports every language via plugins.
If you do go the Python route, make sure to learn about virtual environments before you do 'pip' or 'conda' anything. Also, unless you're doing data science things, stick to pip. (Maybe some personal bias there, but I hate anaconda.) If you're starting from nothing, it'll be awhile until you get there anyway, so don't worry too much about it.
Most importantly, find a community that welcomes new learners. Learning to code is absolutely fucking brutal, so having supportive people available makes a world of difference. Bonus points if you can find an offline meetup in your local area.
No one has mentioned it from what I can see but I highly recommend the courses provided by https://www.mooc.fi/en/. It's the university of Helsinki and it's completely free. They offer both Java and Python courses. I believe they have an introduction to programming course that is done in Python.
Try "the Odin project", which has an amazingly active community.
But before you try too much, once you've learned to set up any programming tools, just use them to have fun. Find a way in which you can use programming in relation to your hobbies.
With JavaScript you can manipulate any webpage you see or create your own interactive webapp. Even if it's just a few ugly buttons and text fields, you could make an app that calculates good builds for a videogame you like, for example.
If you want to interact with a windows operating system you can't go wrong with C# using visual studio. This will literally allow you to manipulate files, folders or automate anything you want from the operating system.
Try to find something that is fun and just enjoy yourself with small apps before you try to go too fast.
Hey, OP, I think it's cool that you'd like to learn to code. I made my living as a coder for many years and it's a good career path. But I would not say it's an essential life skill and the vast majority of people of all ages get by fine without coding skills.
With that out of the way, I'm going to defend the honor of Boomers here. Boomers (and the Silent Gen before them) built the technology industry as we know it today. For example, here's a list of popular programming languages and their inventors:
Java: James Gosling (1955) - Boomer
C: Dennis Ritchie (1941) - Almost a Boomer
C++: Bjarne Stroustrup (1950) - Boomer
C#: Anders Hejlsberg (1960) - Boomer
Python: Guido van Rossum (1956) - Boomer
PHP: Rasmus Lerdorf (1968) - X Gen
Perl: Larry Wall (1954) - Boomer
JavaScript: Brendan Eich (1961) - Boomer
Ruby: Yukihiro Matsumoto (1965) - Cusp of Boomer/X Gen
SQL: Raymond Boyce (1946) and Donald Chamberlin (1944) - Boomers
Go: Robert Griesemer (1964), Rob Pike (1956) and Ken Thompson (1943) - 2 Boomers and an almost-Boomer
Good news for you, I'm 33 years old and I canxt code yet. I just finisged a book about shell scripting (in Linux) so I can understands the scripts I see in github and made some simple ones to automate some of my needs. Now I want to up it up a bit with python and I'm starting a new book with Havard cx50 course.
You are never too old to learn. My regret is that i did not start sooner, like when I was your age.
Software engineering nowadays is really complex. There is no way you're going to know what's going on, nobody is.
It's just the more experience you have, the easier it is to figure out what's going on. If you want to learn coding, just start coding.
I will start from something no one mentioned - start with Linux. Windows has its own very "special" ways of compiling stuff, while Linux is very simple. If you start on Windows, you'll probably use IDE which will set up everything for you (cause setting up thing in Windows is messed up), and it will still be a black magic for you how the code transforms into binary.
Many people recommend python, but I would start with C (not C++, C++ sucks). It will give you the understanding of basic concepts like memory management.
Then start using something like javascript, which will get you wide range of libraries, which you can use to build anything.
Then at the end learn how infrastructure works, how are services communicating with each other, how to put your server to the public, learn Docker, set up reverse proxy, run stuff in cloud.
Has anyone mentioned the free Harvard CS50 course? Start there and learn the very basics of computer science and programming. By the time you finish you'll have a solid idea of where to go next.
My biggest problem is figuring out what I want to do with any coding skills. I have none, by the way, and I don't even know where to start.
Some of the usual responses when I state this:
"Automate your work" - I work in Salesforce. Have you seen Salesforce? I'm not a multi faceted systems administrator constantly updating DNS records or working in Active Directory.
"Write a cool app" - What cool app? What is "cool"?
"Open dev tools and look around" - Why? Specifically, why?
Also, learning programming is BORING. Most of the courses I've tried are so so stale and they aaallll end up explaining concepts in the same way.
"This is a fleeble and it holds the sping, the sping tells the plus plus that it must do what the herbug says".
What are your hobbies? Most people struggle to learn programming until they find a project that they are interested in.
You mentioned an interest in music.
Perhaps you could try Sonic Pi, which is a live coding environment where you can create music from code.
It comes with a built-in tutorial, and a bunch of pre-written example code-music.
It's built with the ruby language.
I've been coding for 40 years, it's both my job and my hobby, and I still feel old and out of touch when reading or taking part in coding conversations outside of my sphere :)
This is not meant to be discouraging - even the smallest amount of coding you could learn will be immensely rewarding - more to say that coding is vast arena with a breadth of complexity that can often feel overwhelming. So don't be put off when you teach yourself some JavaScript and then still feel adrift in a conversation about C#.
I don't have any specifics to recommend, but I would say that you should start small. Don't aim to write the next Flappy Bird as your first project, or the next Mastodon. Just concentrate on making a web page say "Hello world!" or changing the colour of some text. Back in the 80s, most kids got their first taste of programming by having a computer shop C64 print "Dave is rad!" on an infinite loop! :)
Don't learn C/C++/Rust. They're great languages but you'll get stuck learning things most experienced programmers don't understand and you'll get discouraged.
Python/C# are both great options!
If you want to do mobile development, you might try Kotlin (for Android) or Swift (for iOS).
The trick is just to learn one language, to learn general programming concepts, then learning another in the future will be a lot easier.
You can learn a lot from following online tutorials, YouTube, etc., and you can find communities for each language too.
Also you don't need to learn to program, there's a lot of other good skills you could learn. (I keep trying to learn to draw or 3d model, and I just can't do it lol).
I’d actually start by playing around with the automation and customization functionality you already have. Learn to set email sorting filters, get some cool browser extensions and configure them, maybe even start by customizing your windows preferences or making some red stone stuff in Minecraft.
Computers are just tools. Programs are just stuff you tell a computer to do over and over again. All the fancy programming languages give you really good control over how you talk to a computer but I’d start with the computer equivalent of “Me Tarzan, you Jane.”
Honestly , why do you want to code? Simple question not offensive or sarcastic. I code because I'm in the security industry and a big geek. You are never to old to code , if you have the discipline to sit down and read and then practice over and over again then you will be fine to learn. its fun to code and learn new things. It also keeps your brain in better shape. I can help you find resources to get you started if you want. Everyone and I mean everyone starts in the beginning.
I think the modern paradigm of frameworks and libraries really makes things confusing, because you can learn every single bit of vanilla JS and then Angular is still like a different language, just like all the rest. I started teaching myself in 2005 so I did have the advantage of a bit of the old world of programming, but I also wasn't allowed to own a computer and I spent years and years on graphing calculators and notepads learning the basic principles of what is now second nature to me. There's lots of great options people have already mentioned, C# or Python both are pretty good, but pick one and stick to it. A few months of daily work on it will get you far enough to get a grasp, and a few years of it will get you started on a career. But just get started with it and keep at it, I promise you will get it!
Hit F12 in your browser and start hacking in the console - search for Javascript tutorials to get started. Everything else needs some kind of setup and the js ecosystem is by far the largest.
Before deciding your profesional path, first figure out if it's really for you. The software industry is huge and offers very many different jobs. Good coders still are nerds though that love logic puzzles and tinkering and require quite a bit of frustration tolerance. It's not for everyone.
So I recommend Python if you just want general coding, dual booting Ubuntu or some other beginner friendly linux if that’s more interesting to you, or starting with html if website design sounds more fun.
Alternatively you could try R, it’s weird but I like it.
Think of something simple you want to make, pick a language, and start reading/watching tutorials and doing smaller coding exercises until you feel like you can start making it. This is the easiest period in human history to learn new languages, easily and for free.
I will tell you there is no need to be worried about coding. You don't have to be worried about not knowing how to code. The coding part of coding is the simplest and the easiest part, the much much more important part is the thinking part, basically what you want to achieve and how you should go about it.
A lot of so called professional "coders" don't know what it is that they are doing. A few days ago i looked at my sister's very impressive code. That was truly a hard day, the ways in which I controlled myself by not beating the shit out of her for being a piece of garbage who is incapable of thinking. She would not understand even when explained in simple words why her code was incredibly shit and what to do to fix it, finally she didn't fix it and left ruining more than just my day, she sent me into a trance worrying about the future of mankind as a whole, which I have still not been able to come out of.
Also as far as coding is concerned I would suggest you get started with python. It is easy and simple. Learn the basics in python, for majority of the things you will have achieved your desire.
I suggest that you use the book automate the boring stuff as a starting point, it will not only help you with your desire for coding, but may also come out to help you in your day-to-day things as well. You can easily find the pdf for free.
As a fellow bumbling novice, I hard a hard time figuring out where to start until one of my colleagues recommended C++. That is the way! I feel like C# helped train my brain to "think" in code.... if that makes sense. The patterns and mechanisms involved in C# carry over to so many other languages. There's my two cents for ya. Best of luck in your coding adventures!