30 year old housewife that decided to learn programming
Posted by Slight_Total4874@reddit | learnprogramming | View on Reddit | 81 comments
Without going into a whole personal story, basically I never went to university after high school and never worked. I’m currently working through the Intro to Programming MOOC by Helsinki University.
All I want to know is, those that are experienced, if you were in my position / had to do it all over again, how would you approach it? What would you do differently considering the tech environment today?
No_Molasses_9249@reddit
Step one. Create a functional learning development environment. Register a domain name arrange dns hosting. Install Linux Nginx Postgres vscode and the language of your choice. Download a html css javascript template. I use Phantom from html5up.
I would choose Go for a first language. If its Big Data ML or AI your interested in I'd take a look a Julia. Other options are Rust JAVA C C++ Pascal.
Keep JavaScript in the Browser.
Avoid single threaded interpreted languages like PHP Python Ruby
Step two. Write the code that starts a http server. Here modern languages stand out. All have very good http libraries
Step three. Use official language documentation and tutorials add each programing challenge to the project you started above.
Everthing from Hello World to your todo list and beyond. Your Fibonacci challenge becomes something like www.cockatiels.au/rust?fn=fibonaci&arg1=57 your login form becomes part of a functional authentication system. Your todo list a functional appointment scheduler. Your shopping cart connects to a payments system. Your chat becomes an AI Assistant.
You might be thinking what about html css and JavaScript? Ive never actually studied them.
Since your working in a browser and your not outputting to a terminal you will have to learn to use html css javascript but simply pick up what you need to when you need to. Dont fret over JavaScript.
I call learning this way holistic learning. Traditionally people learn sequentially languages like GO make learning holistically possible.
I started with GO now Im transitioning to Rust in 12 weeks Ive gone from taking a look to having a functional web framework up and running.
The sum total of my Rust knowledge is here www.cockatiels.au/rust
Substantial_Ice_311@reddit
What? Are you a troll?
I have programmed for 22 years and I have never felt the need for this. Or most of the stuff you talk about.
No_Molasses_9249@reddit
For 22yrs you have ignored web dev then? Writing to the terminal being stuck in tutorial hell learning abstract concepts you will never put to use. Ive been there done that.
What Im suggesting does work. Learning by doing is a strategy many people recommend Im not alone in saying this.
Registering a domain name and arranging dns hosting enables people to self host you're no longer writing to the terminal or messing around on local host using self signed certificates. Your no longer relying on someone else to host your site and you're not paying expensive vps or hosting fees.
You dont need expensive hardware or anything special a standard adsl connection will suffice.
I dont know who you are or what your programming experience is. Please help me understand your hostility.
Im here to help people and I offer sound advice. Its up to who ever to take it or leave it.
Substantial_Ice_311@reddit
🤣
What does hosting a web server have to do with learning programming? Almost nothing.
Designer-Flounder948@reddit
You’re on the right track already. If I had to restart, I would focus on one path like web development, learn the basics, and then build small projects instead of jumping between courses. Consistency matters more than speed.
CodeToManagement@reddit
First be very careful with AI. Use it to explain not to do.
Then I’d basically do what you’re doing, run a course and build stuff. When you have built something go free form and try change stuff and see what happens.
Also don’t just learn a programming language. The theory such as DS&A, design patterns, solid principles, etc are all very useful. You don’t have to commit it to memory but just knowing like this type of design patterns or algorithm exists will help you as you can look it up when you have a problem to solve.
MurderMelon@reddit
this is "data structures and algorithms" for any other new people who might be here.
To be perfectly honest, this is probably one of the most important things you can learn. Whether you can write proper python syntax off the top of your head doesn't really matter; what matters is that you can plan out the steps required to solve a problem.
Substantial_Ice_311@reddit
I would respectfully disagree. I think the most important thing is system design---how to make a big system without turning it into a complex mess. But of course, data structures and algorithms are important too. But once you know the most important parts, you are pretty much set. And it's also easy to search for solutions to algorithmic problems you don't know how to solve. It's not as easy to design your system, or to search for solutions to design problems.
inspectorG4dget@reddit
It's never too late to start learning programming. My mother (HR rep) started learning later in her life as well, just for the heck of it.
I learned python and in 2007 it's been paying my rent for a while now, so you're definitely on a right track (there's no one right track).
I'm not going to repeat what everyone else has said (I agree with everything I've read and I've read most of the comments). Rather, I'll highlight and build on one specific comment:
This is actually how I got started. I had assignments in class, but something that helped me grow my newfound muscles was working on personal projects. While I was still in school, I had to write chemistry lab reports with citations. These citations (they had to be in a specific format) would take me an hour or two to write up (especially since this was before I knew about CitationMachine, etc). So I wrote my own citation formatter in python. This is something that you can build after two weeks of learning python (you really only need string manipulation,
input(...), branching/conditionals with if-then-else, and functions if you're feeling fancy).Since you say you're a housewife, I'd recommend looking for opportunities to build small optimization tasks/tools to help around the house. If you have kids, I might recommend trying to coordinate their schedules as a starter project.
For sure, you'll be able to create only very small tools at first, but these will be your gateway to building bigger and more complex projects
Other recommendations I agree with:
Slight_Total4874@reddit (OP)
Thank you so much for this comment! I love that your mom decided to try something 'just for the heck of it'. That's actually the plan, I have a goal in mind, so as soon as I can, I'm going to attempt working at it. Your comment about building something as simple as coordinating schedules is such a good idea, just to dip my toes in the water. I don't have kids, but my husband is self employed, so I can start with something like this, also as I've just about finished a section on conditionals and loops. Thank you again!
Flat_Dust1754@reddit
As a beginner time spent writing code should be more than 5-7 times the time spent in learning / reading / watching videos.
noblebravewarrior@reddit
I feel the industry is going through major shift and even those of us in the industry question our future
NortrenDev@reddit
i had a similar transition, im a former firefighter who got curious about programming after getting to know some devs. started learning on my own, read everything i could find, tried to apply it. still remember my first command when i managed to change the terminal font color to green, felt like i had conquered something huge, obvously it was just the beginning
First thing i would recommend, find a platform where you actually write code step by step, from basic "hello world" to arrays, objects, all the way up. you can read all the books you want, theory alone doesnt work. your brain really starts rewiring only when you type it yourself. i know its hard these days but try to use AI as little as possible in the begining. its a great tool, but early on you need to process things through your own head. if youre really stuck, many LLM chats have a "tutor mode" that guides you without giving the answer directly, thats a better middle ground
and this one is important, you will have many moments when you think youre stupid, this isnt for you, youll never get it. when that happens, just rest. dont try to drink the whole ocean at once. go for a walk. i remember being stuck on Java lists for days, went for a walk not even thinking about it, and the understanding just came to me on the street. neural connections work in weird ways
Theres a saying that fits learning really well - "even crawling gets you there"
roosterfareye@reddit
That's me, waking from a deep sleep at 4:00am with a brilliant solution...then falling asleep and forgetting exactly what it was by 7:00am
Cenobyte_Nom-nom-nom@reddit
Not op. I'm curious though, any LLMs you (or anyone else) would recommend for tutoring?
NortrenDev@reddit
honestly i cant really answer this, when i started LLMs werent really a thing like now, so im not ready to recommend tools for learning from scratch
Gnoob91@reddit
I would not do it. Don’t waste your time.
PayMindless1841@reddit
Today the problem is not even learning the main problem is landing job you better have good connection in tech right now to even land interviews. But Good luck and keep on learning and moving forward.
Human_Plate2501@reddit
I would quit and find something else
bronzecrab@reddit
OK, if I will start today again knowing nothing about programming, then first, I would take some mooc or book about how computers work in general: CPU, ram, wires, ets, binary number system, hex binary system, what transistors are, why CPU is made from transistors. With this knowledge I would go to basic algorithm s and data structures, basic searches like binary search, basic sorting like bubble sort. Then study what big O is. Then, I will take some popular programming language and try to test and implement by memory bubble sort and binary search, try different input sizes, measure times of executions. Then, maybe I will try to write some simple game or chat not, or personal blog. Learn what testing is, write some unit tests. Learn about sql and non sql bds. Try to use orm, connect my blog to some db. Learn what Linux is, what is hosting, by some vps, try to deploy my blog to that vps. Learn what tcp stack is, differences between different protocols, etc.
Bright_Secretary_511@reddit
I second this!
I got a weird start into coding but it just clicked. 6 years later I’m way more advanced but realizing I’m lacking some of the more basic hardware knowledge. I bought some raspberry pi 4s for a build project Its a relatively inexpensive option to start with, in case I hate it. Going to take some of your other recs too!
Demoindustry@reddit
Please stop this even u are 30 years old still yong just do what can help u earn money. When u spend your money or time to learn programming will die 💀
green_meklar@reddit
The biggest thing I'd change is to practice programming with other people more. There are important kinds of flexibility, robustness, open-mindedness, etc that you learn from programming in a team and don't really learn from programming solo. (And no, AI is not an adequate substitute for teammates, yet. It's too accommodating and too generic.)
Crypt0Nihilist@reddit
Advice here was for me learning Python. My first mistake was for various reasons I tried learning Python, R and C++ all at the same time. Not a good idea. There are so many things you need to learn at the same time as your first language that you need to keep things as simple as possible. Stick with one language.
What really helped me and I'd do again is to choose a passion project. There was something I wanted to do and I knew that conceptually it wasn't super-difficult, but was something I couldn't do initially that I had to aim for. That got me through the frustration of learning. It also contextualised everything for me since I was constantly thinking about how the syntax and concepts I was learning would fit in to my over-arching project.
I'd learn about virtual environments ASAP so I didn't create a mess of the system configuration.
I'd use VS Code as an IDE. It's heavy enough to be helpful, but not so heavy that it's another whole thing to learn.
I would avoid using AI until after I'd finished the basic course, perhaps longer. It will help you do more advanced things more quickly, but at the cost of you learning. There is huge value to you solving your own problems by finding a similar problem on Stack and you adapting the solution to what you're doing. It means you engage with what the other code was doing, you understand what's going on and how to adapt it to your issue. AI will give you the answer and you'll miss out on the steps which do the most to increase your understanding.
When you do use GenAI, avoid getting it to generate code for you. If you do get it to write code, don't give it your current code and ask it to write the next part. Instead describe the problem and so you still need to adapt it to what you're doing.
augustcero@reddit
steer clear off AI especially as a beginner. it makes your life easier, yes, but that also limits your ability to troubleshoot and think of solutions
juhsis@reddit
If I was starting over today I'd focus on building things as early as possible instead of trying to learn everything first. Finish the MOOC basics then immediately start a small project, even something dumb like a todo app or a personal recipe site. The learning that happens when you're stuck on your own project is completely different from following a course.
For getting hired, I'd go web development. HTML, CSS, JavaScript, then React or Next.js. The job market is tough right now but junior frontend roles still have the most openings compared to other specializations. Build 2 or 3 projects you can show, put them on GitHub, deploy them somewhere free like Vercel.
Side note, my wife made a similar switch. She was an accountant, did a 4 month bootcamp called Code Clan in Edinburgh, and landed an Android developer role. She's been at the same company almost 4 years now. At my work we've had a few apprentices join the engineering org coming from completely unrelated backgrounds too. One was working in warehouses, another was in sales after bouncing between a few jobs. They're all doing fine. The background matters way less than people think.
The one thing I'd do differently is not spend months in tutorial hell. It feels productive but it's not. The uncomfortable part where you stare at a blank editor and don't know what to do next is where the actual learning happens.
rayjaymor85@reddit
I actually didn't seriously start learning how to code until I was 29. I'm 40 now and work as a technical lead for a relatively large SaaS company.
There are two websites I would ENORMOUSLY recommend.
The Odin Project
and
freecodecamp
Use these to get a basic idea, but also don't let yourself get stuck in "tutorial hell".
The best way to learn (and it took me ages to stop just repeating tutorials) is to think of something you want to build, and build it by googling how to solve the problems that come up.
Absolutely go ahead and use AI --- but don't ask it to write the code for you, ask it to explain why something isn't working.
AI can be helpful, but it can also be confidently wrong.
But definitely make sure you can cover the basics of coding on your own first.
Once it comes time to look for a job: up and running projects that you can explain how they work are worth far more in my opinion that certs or degrees if I'm being honest.
Leeoku@reddit
echoing this guy. do the mooc and odin project at the same time.
kat-tricks@reddit
i would say Python was what helped me as someone who picked up programming again at 30 after not doing it for a decade. It was a good transition, because it's very "plain english" for a programming language. It's also very fast to try things out with the interpreter, which is usually my desktop calculator now. Try using it for things like changing the portion size on a recipe, organising a budget, making a nice to-do list app that suits you, or other everyday things. I get so much joy when my friends come to me with little tasks i can automate for them now 🥰
Aleksxzz@reddit
You'll need minimum 5 years of learning with constant practices to start as a junior.
Riajnor@reddit
Bro wut?
Raf-the-derp@reddit
Hes not wrong per se? No one is going to give out jobs just because some made a simple project
If you spent 4 years in undergrad learning and practice programming outside of school that is expected
Riajnor@reddit
We have no idea of her skillset, her aptitude, hell even where she lives can make a difference. People get jobs after attending those 6 month bootcamps. Site, some people struggle and the five year mark may be realistic for them. I just don’t agree with the blanket nature of this statement.
Humble_Warthog9711@reddit
Realistically it's probably more like 1-2 years simply because 99.9% of self taught devs will have given up or for the small minority, broken in by then.
And a self taught dev is never going to try to match the knowledge of a grad before they enter
It's certainly not because they CAN be legitimately entry level ready sooner
FlapperGasfire@reddit
FTFY
rustyseapants@reddit
What does this mean *30 year old housewife?*
Do you have to work?
Do you have any kids?
How much support do you have from your husband?
What did you do before marriage?
Why are not working now?
Do you own a hom e with your husband?
What are your career options?
Dependent_Acadia1772@reddit
Honestly you’re already on a really good track with the Helsinki MOOC, that’s a solid start.
If I had to do it again, I wouldn’t try to learn everything. I’d just pick one lane and stick with it. Either Python or JavaScript and just go all in for a while.
Big thing is don’t stay stuck just watching lessons. Start building stuff early, even if it’s super basic and kinda messy. That’s where things actually start to click.
Like small projects, nothing crazy. Little apps, simple websites, anything that forces you to figure things out.
Also don’t wait until you feel “ready” to apply for jobs. Nobody feels ready. Just start applying once you’ve built a few things.
And honestly, you’re not behind. People switch into tech way later than 30 and do fine. What matters is just sticking with it.
If you stay consistent for a few months, you’ll be surprised how far you get.
BigHammerSmallSnail@reddit
Maybe try to scratch your own itch and write an app for some of your real world problems? Doesn’t matter if it’s a recipe app or a todo list or something. Just spec out what you want to build and then go for it.
ZelphirKalt@reddit
Some comments already mention principles by their names. Like for example "SOLID" or "KISS" or stuff like that. I would like to note, that any kind of "principle" in software development needs to be taken with a grain of salt. Especially, when it comes to OOP ("Object-oriented Programming") stuff. Be skeptical, of anything that is taught like a religion (like OOP is usually), not outright rejecting things, but always considering, that there may be situations, where it doesn't fit. There might be many.
Always keep an eye open for long term effects that your decisions about how you write your code are having. Those might not be obvious at all in the beginning, but over time you might be able to recognize things and avoid mistakes before things go awry.
AttentionIll5861@reddit
Just think of something to build and then build it, no matter how hard it is. Thats how I've done - very hard but you learn very quick
Dill_Thickle@reddit
I would just say that even if job prospects in software engineering aren't the best, programming a skill is used dozens of industries. So developing the skill of programming can help you get into cybersecurity, automation, cloud/devops, and more.
TheGrolar@reddit
The most important thing is to figure out why you're learning to program. In other words, what specifically are you going to do with it? It's like learning a human language.
"I am learning Finnish because I will be doing a lot of business in Helsinki," even "I want to read the Kalevala in the original," NOT "I think it would be great to learn Finnish." In other words, the first two have a specific goal having to do with the Finnish language. For the "business in Helsinki" one, the person might say "I'm going to focus particularly on business terms." For programming, think about "I'd like to learn how to optimize fintech operations" or "I'd like to create better marketing auto-sequences."
You probably don't know about any of these. The thing to do is to find out. Learn about parts of a business that use software--sales, marketing, product, finance, and operations are usually the big ones. Go to meetups about an area that interests you and ask folks. This is also the best way to find something that turns into a job.
dreadlordhar@reddit
"I'll learn japanese to watch anime" wrecks on kanji
Typical_Hypocrite@reddit
Decide what you want to do with your programming so you’re not just learning generic topics but can actually focus on what’s needed for a job and actually learn why a generic topic is useful since you’re learning it because you’re using it to accomplish something specific
cankennykencan@reddit
Start building now! Document and store everything in GitHub
QuarryTen@reddit
even if the project is incomplete?
Soggy-Holiday-7400@reddit
30 with no CS background and doing the Helsinki MOOC is honestly a better start than half the people who stumbled into a CS degree without knowing why. just don't stop when it gets uncomfortable ,that's literally where the learning is.
madboi20@reddit
My current suggestion would be The Odin Project. It is a non-hand holding course that is mega comprehensive, community-made and community-driven, constantly updated and is a full-stack. Meaning it'll cover you on the pretty UI and the backend.
Do the MOOC course though, I did the Java one years ago and it was a solid start!
thrOEaway_@reddit
Pie-thon?
spinwizard69@reddit
First off it is never too late so that shouldn't concern you! Given that the market for programmers is extremely tough right now due to AI. The long term AI impact is unknown, but i see the job of programmer becoming more sophisticated. This means a degree will be required for substantive jobs, the remaining jobs can be likened to hamburg flipping.
So what does this point of view mean. Well number one if you want to get a job, that pays well, get at a minimal a 4 year degree. Second minor in something of interest. The minor to make you more attractive to an industry. For example a minor in electronics might make you more interesting as a potential new hire for automation engineering. In other words that little bit of extra education that says you are more than a dumb programmer.
There are other avenues but i see the formal education route as the only path for the long term. If that time investment isn't possible your next best bet is to follow a high quality CS program and write an endless amount of code. The problem here is the DiY route is much harder to get good reviews on your code quality and style. Half the challenge of programming in any language is to maintain clarity in your code. In industry this is often addressed in the dreaded code reviews.
28spawn@reddit
Why? For the “money” forget it, do if you’re really into it
Humble_Warthog9711@reddit
It's always for the perceived WLB/remote work opps/salary/etc when it comes to career switchers
Humble_Warthog9711@reddit
My advice - don't take anyone's advice/assessment of how the job market is or how hard it will be to get a job if they are senior right now, no matter how positive or encouraging they are. They have zero credibility to speak on it.
For honesty, ask current self learners who are trying to break into the field now.
CodeWithChris@reddit
I’d use AI to reinforce what I’m learning. Use it to create learning materials, supplemental learning and use it to challenge your understanding. Ask what ifs, ask it to produce some real world scenarios using your concept, and you can also ask it to produce documentation to walk you through the examples!
quietcodelife@reddit
backend dev here. the Helsinki MOOC is a solid choice, Python is a genuinely useful language that sticks around. the main thing Id add: dont wait until you feel ready to build something real. start building a tiny thing you actually need as soon as possible - something where the failure actually matters to you. tutorials are low-stakes and thats part of why they dont build the same mental muscle. the frustration of needing your code to actually work is what makes concepts stick. 30 is also completely fine - the people who struggle long-term are usually the ones who need external milestones as fuel, not the ones who are just curious about how stuff works.
HolyPommeDeTerre@reddit
I would do the same (started 26 years ago). So my advice:
In short: try, fail, understand, restart.
get basics about a language and stick with this one. The FAQ of this sub can help you find your starting language but it's not really an issue whatever you choose, you can't fail the choice here as most knowledge is transferrable between languages
do projects instead of tutorials. While learning, what is important is shaping your brain. Not success. Think of it as a muscle. The more your train it, the better it gets. The less you train it, the worse it gets. So you must keep in mind that you are the one thinking and doing the work. When following a tutorial it's generally not as engaging as when you're wondering why you HTTP API return 404.
Use LLM as a teacher, not as a doer. Prefer avoiding it if you're not sure how to handle it. If you want to use it, force it to help you learn, not give you the solutions, explaining, giving you resources... You need to think and do the work, referring to the previous point.
Failing is good. Fail shows that you have things to learn and it shows the direction of what you miss. Success shows that you got it. It doesn't make you better. Fail is the start for improvement. So fail a lot, you'll get the most of your time with it as long as you try to understand why you failed.
denysov_kos@reddit
I don't see any problems, just learn, don't ask machine to do the stuff instead of you.
MichaelJohniel@reddit
Don’t copy/paste code from AI. Type everything out yourself. There’s tons of books on programming/best practices. Also, checkout modern learning resources! Sites like boot.dev are a really engaging way to learn. Most importantly, build and finish small projects that use the technologies that dev job listings are asking for once you feel comfortable with the basics of programming.
Aflockofants@reddit
Harvard’s cs50 course is great and free.
PoMoAnachro@reddit
First thing to consider is - why are you learning? Is this as a hobby or are you intending on making it a career? As a hobby it can be a great pasttime! As a career....well, there'll always be jobs for programmers, but it is no longer an easy to enter field nor is work from home common anymore. It will be quite difficult (though not impossible) to land a job without some post-secondary education, ideally a 4 year B.Sc. in Comp Sci plus an internship or two. That's pretty much the baseline right now.
My second big piece of advice is: stay away from using AI to help you learn. Yes, theoretically there are responsible ways to use AI to improve learning but I find in practice it almost always vastly degrades student progress. In order to be employable - if that's the goal - you need to be better at programming than the AI is and it is very hard to get to that level if you impair your learning of the fundamentals by leaning heavily on the AI early on. After your first 2000-3000 hours of learning maybe you can start to look at the AI then, but I'd leave it alone for that initial fundamentals learning phase.
And the third is - really focus on fundamentals. Tech stacks come and go, but if you understand the fundamentals then new tech stacks are easy to pick up. Don't ever be satisfied with something being handwavey "magic" where you just type in magic words and they do something - continually be asking "Why?" and keep drilling down as deep as you can.
pexxu95@reddit
Programming is largely about problem solving, not memorising syntax, operators and example snips.
Think of it as learning to articulate your thoughts in a different way, which is difficult (especially starting out). Something I have told people in my personal life is, it’s a lot like maths; maths has logical operators (addition, subtraction, etc) and variables, and a lot of other things you will see in programming. In programming the operators are different, and there is more of them but to give a short example: If the file extension matches then copy the file to my new folder Can be thought of with logical operators as: If (condition) material implication (result) Using concepts like variables to create this: If [[$file == “*.jpg”]] then; cp $file $newfolder Fi
AI isn’t taking over anything at this stage, for this exact reason. It’s great at telling you syntax in every language, generating boilerplate and aggregating information. It’s still not good at mind reading poorly explained ideas. Just try a simple exercise of instructing AI to do a task with what seems like intuitive language to you, vs asking it to do the same task with more logical terms. e.g. script copy my jpgs to a new folder pls vs conditional statement thats copies $files to $newfolder by/with “.jpg” filter.
Even if you don’t go into the world as a developer or the next Steve Jobs, programming is a very useful skill that when combined with others could give you a lot of opportunities. (And knowing how to break your ideas down into more easily understood pieces is invaluable)
Learn concepts, not code. Smarter people have already done most of the hard work for us (google first order logic to see more of the concepts explained with words).
Best of luck
I_Am_Astraeus@reddit
With respect to the job market, I'm sure the other comments will hit uphill battle/may be worth going back to school for.
For the learning side and just the generally passion for software engineering I don't know if there is much I'd have done differently but there are definitely some good things I've onboarded throughout my journey.
First, assuming no time/financial constraint:
Follow what you find really interesting, don't fall into the trap of jumping languages constantly early on. But if you find a software topic interesting then go play with it. Your first goal is just consistency, and it's easy to be consistent when you're interested.
It's software ENGINEERING. You don't have to come up with a bright and new idea, it's like how mechanical engineers take apart a toaster to see how it works. Build a calculator app, I PROMISE you it's more complicated than it looks. You'd think ahh code can do math, calculators do math, easy. You should have this mentality as you learn, it's about taking things apart and stealing all the good patterns and ideas from that solution. It pays dividends the more you expose yourself to.
Don't let perfect be the enemy of good, YANGI, DRY, clean code, etc etc, there's a lot of dogma around what good code looks like. But you're not an enterprise, and you're not supporting millions of users. Just write stuff, like essay writing, get all your thoughts out on paper, reorganize (refactor) once you have a clearer picture. Code is cheap, refactoring tools make things easy.
Textbooks are the best. Seriously, never had much interest in them as a student. When I was self learning, honestly most of the questions I see on the internet are just how can I learn xyz, and in my head I'm like I think you're just trying to learn how to do this without having to read a textbook. They're great, they all have a zero to hero path to get you started in any language. And are packed with great information.
Don't watch videos, or heavily write notes. You don't want to be passive. Write code. Want notes on how to do something? Just make a folder for a textbook or topic, write code in different folders for different topics or chapters, come back to the code in the future if you need to reference it. GitHub is great for this, I reference stuff I've written years ago.
Don't sleep on learning debugging tools, don't lean heavily on AI or print statements. Learn how to add breaks, use the debugger to step through code. Learn to read stack traces (honestly it's usually either the first line or the last line that lets you know where you went wrong) you want to build a strong foundation for problem solving and understanding the what and the why of code.
This is from my engineering background but ALWAYS make sure you have clearly defined the problem statement. Make sure you are trying to solve the actual problem. As an individual it's a bit easier, as a professional I see so many individuals take a task and run with it without clarifying why are we doing this, who initiated this change, what is the root cause of whatever this bug is. It's a good foundation to thinking about problems.
Additionally, everything you will see may seem extremely complicated. And as a whole, it might be. But all complicated things are really just a ton of simple things wearing a trench coat. It's like when life comes at you and you feel overwhelmed and you just need to focus on the next thing. Coding is the same, just solve the next smallest problem possible, eventually all these small simple ideas chain together into something impressive.
Thanks for coming to my TED talk, have fun, it's an incredibly fun skill to learn and it's one of the few things where an individual can build an impressive amount alone.
HashDefTrueFalse@reddit
Just keep doing what you're doing, honestly. Everyone's path is slightly different. I'd do similar in your position. MOOC is great. Read lots of things about the kinds of programming that interest you (books are usually great investments!) and write lots of code. Start to put together little self-contained "projects" (programs) that you use as a vehicle to explore topics and ideas. You can use them later in a portfolio if you're interested in getting hired. It will be tough and getting hired will be a while off, but don't let that discourage you. I know a number of people who've come to programming from all different backgrounds and now work in the field.
Impossible-Brush2227@reddit
Honestly this is a fantastic start. I'm 35 and doing my undergrad after a similar one. I started out with similarly structured MOOCs to see if I could fit in self directed learning and if I'd enjoy it. I went on to a diploma from there in statistics and big data, something that was only a year long and really geared towards in demand business skills. Now I'm studying Computer Science alongside my job and doing very well, I'll graduate at the end of this year and I've received a couple of promotions based on work I could only have done using skills I picked up in education.
Don't mind the AI doomers that come out of the woodwork for all these questions. Education will never not be of value and with problem solving being such a core part of programming it is a highly transferable skillset. Stick with the MOOC, take time to pause and reflect on it when you're done and if you think you're ready to take on a bigger challenge in the same domain just do it - get the degree. Programming is only part of the equation and the other parts are things you can really excel in for having more life experience. Project management, people skills, curiosity and a drive to continue learning and growing are integral to the entire discipline.
Intelligent_Ebb_9332@reddit
I wouldn’t go into this unless I was committed to finishing a degree in computer science. The field is extremely saturated and I think newcomers don’t understand how bad it is because they’re not the ones applying to roles.
Even with a degree it’s honestly not worth the effort now unless you’re willing to basically give your life to this. I have a degree, 2YOE, certs and projects and I’ve been out of a SWE job for a year and a half despite 1200+ apps.
ScholarNo5983@reddit
Before the time of the internet, it was very difficult to learn programming.
Why was this the case?
None of the free tools that exist now were available. None of the free documentation that is available now even existed.
People from those early times had to spend money buying magazines, buying books, paying for tools, just to learn the basics of programming.
For anyone struggling to learn programming in this day and age, I suspect you might not be suited to programming, only because it has never been easier to learn how to program. Just use Google.
Learning to program in this day and age has never been easier. The people struggling always ask where do they start?
With the abundance of information showing exactly where someone should start this is equivalent to asking for the entrance to a maze that is lit by a massive neon sign that says, "start here".
Now, while finding the entrance to the maze should be easy (despite many seeming to struggle with that simple task). The real problem will start when you first enter that maze, as you will find yourself wandering down numerous dead-end paths as you desperately try to make sure your skills stay relevant, as the ground shifts beneath your feet.
Seasoned IT professionals will know exactly what that last statement is referring to.
patternrelay@reddit
Congrats on starting your journey! If I were in your position, I’d focus on building small projects early on to apply what I’m learning. I’d also look into open-source contributions and networking through online communities to get real-world experience and feedback. Keep it up!
Wingedchestnut@reddit
The most important thing is to understand high-level which 'role' you are interested in, this is important because majority of people will learn random things and are unclear where to go and how those role connect with eachother even when you likely will specialize or start with one role and eventually have some overlapping skills. (The chef prepares the food, the waiter serves it to the customer etc.)
You can use websites like roadmap.sh to see what's out there. I also strongly advice you to just go on youtube and write the role + roadmap if you want to start and understand what to learn
bootyhole_licker69@reddit
side projects + github from day one, join discords, small daily habit. job search later sucks
Terrible_Share_2366@reddit
Where do i find the discord for that
Bason-Jateman@reddit
Building a solid foundation is the way to go, don’t try to learn everything at once. Making small projects as you go sticks way better. And not giving up is probably the most important part.
cogSciAlt@reddit
Deprecated Housewives
Rich841@reddit
If I had to start over I would start with learning C
sk3z0@reddit
It is a rough market, AI is going to take over, so you should either go fast or go really really fucking deep and all in with a lot of sacrifice. As a female person you might catch up more opportunities in startups and publicly founded venture capitals because of gender quotas that still matters to the books of plenty of those environments, that are by the way very shallow and ephemeral context where to start a career. The thing is, do you love IT or you are doing it in the hopes for a better future and easy job? Because i promise you this is the first market that is gonna get trashed by the AI revolution.
For context, got into this 5 years ago as an older guy, and the situation is becoming harsher every day for those who aren’t really brilliant, smart, passioned. I luckily could self employ myself, but i am surrounded by people litterally slaving for low salary or strugglying to find a job, or struggling to mantain one even in military IT where dozens of people are getting laid off even if the market is booming.
GhostXW01F@reddit
Would I do it again? Absolutely, but it’s for the love of the profession, not necessarily money.
Regarding how to approach it, for me personally I thrive in a classroom setting. I don’t think I would’ve ever gone further without having a teacher to bounce ideas off of.
And regarding the environment, it really depends where you are. I am in a state where programmers aren’t as prominent as other states, and with that I was able to get a state government position and haven’t looked back since.
aleques-itj@reddit
Sounds fine as a starting point. Do exercises, be curious, play around. As you learn new things, feel free to go off the rails.
And don't be afraid to Google. You don't need to stress over memorizing every single microscopic piece of syntax - worry about understanding the underlying concepts first and foremost.
iRhuel@reddit
I'm guessing you're in Europe, so take my advice with a grain of salt as I can only speak to the circumstances in the US.
In the current market, landing a position is next to impossible without a degree (and still very difficult even with one), thanks to industry trends like AI adoption, combined with the global economic downturn, discouraging companies from hiring at all levels, but especially entry level positions.
If you want any chance at breaking into the industry, you must have a formal degree. If you're planning to write your own software (assuming you have some real world business problem you need to solve), then you'd probably be fine without one.
ImplodingCoding@reddit
Probably would approach it the same way. Find a learning path and stick to it, and build a lot of personal/side projects along the way.
kylesureline@reddit
The biggest insight I can offer is to try different things early. I learned the fundamentals with Standard C (C99?) and then moved on to try a Swift bootcamp. It was a disaster, but not because I couldn’t code; Xcode just didn’t make sense to me. Later I learned front end web development and it all clicked.
HellDrivers2@reddit
Generative AI. Ask it to solve a problem that you can conceive, eg. "Implement a shopping cart". Look at how it did it, ask why it did something. Come up with a way to add something to the cart, ask what it thinks about your idea. Ask it to write an implementation plan for you and follow it asking the LLM to grade you. It's like an interactive tutorial.
immediate_push5464@reddit
I would approach tech not from a raw “learning to program” perspective but would try to target softwares with a less steep learning curve. IT & Automation are a great place to start. Programming is hard, and not as intuitive as people will tell you it is. Especially if you’re not going the school route.