Where Do I Start to Learn?

24    06 Jun 2021 19:47 by u/QuantumLegion

Pretend I've never been on a computer before; I know nothing. I have to start from scratch. Clean slate. I do not have the time or the money right now to go to college, but I have a subscription to Skillshare and I want to learn programming. Where do I start? Any and all recommendations welcome! EDIT! **Some missed the "pretend" part---and obviously I know how to use a computer or I wouldn't be on here...using one. I've been using computers since the mid/late-90's and used to know more than I do now. I was simply making a point that I would like to start from the very very basics and move my way up to re-learn/refresh some of the things I used to know and catch up to current technology before moving into the harder bits.**

31 comments

15
https://roadmap.sh/roadmaps/frontend.png
-17
oh, vey! here my goy, learn some good ol' programming, so you can do all the work for us, and we'll have more time for banning users and guilds...
13
Damn, didn't think I'd find anybody more stupid than the losers on Reddit, but here we are.
2
All this! This is perfect and exactly what I was looking for! (And when I learn some good ol' programming, I'll be happy to do some work for Ruqqus, free of charge, so you can have more time to ban users and guilds ;-) )
5
It should be noted that this is pretty focused on web development, which is only one segment of software development. If you want to focus on that, that's great, but if you have other hopes, then let us know, and we can give you more specific things to study.
2
![](https://media.giphy.com/media/Vhk9HwPx3TO0w/100w.gif)
1
I like you kek, but the world doesn't need another web dev.
2
https://www.bbc.co.uk/news/technology-57101527
2
The world needs more rockstar web ninjas
4
this is actually really interesting because I've been learning web development and without following any instruction whatsoever or ever seeing this guide I've been following it. I spent the last month learning internet infrastructure, starting to learn HTML/CSS very soon. thx for the link for real
9
Start learning a command line environment. Get Ubuntu. Or even Dos.
8
start with scratch.mit.edu
2
This is pretty cool! I'm way to old to admit that but this looks like fun!
5
Learn about your computer and OS first, whatever form that takes. After that then delve into programming. You need to understand the fundamentals before jumping into the advanced
5
If you really want to start with the basics: https://www.nand2tetris.org/
5
I don't recommend getting into the trap of high level programming. And stay away from the Javascript crowd. They are (in general) the least knowledgeable and they reinvent the wheel because they are self-centered. **They earn half** the money and work in shitty web projects nobody else wants to touch. Instead build from below. Do it the slightly hard way. All the information is online. 1. Build a PC yourself from parts, start with the cheapest possible components (r/buildapc and pcpartpicker or one of those sites) (there are builds already) 2. Install Linux on it (Ubuntu for ease or Fedora for latest hardware support) 3. Install development packages If you don't have much money get an old used PC nobody wants and upgrade/fix the necessary parts. Or if you want to skip the hassle, maybe find instead a cheap Chromebook that is easy to install Linux. Could be a used one. Cheap hardware will be more demanding but it will be a teaching experience. Computers are amazing these days. The problem is bloated software and bad programming! Learn the concepts: 1. Boot loader 2. Kernel 3. User space 4. Device management 5. Memory management Then start programming: 6. Code and compile hello world in C, then do it with Python (90k/yr) 7. Make a Python module in Python 8. Make a Python module in C (from an existing skeleton) 9. Install SQLite and learn the basics of SQL; then use it from C and Python 10. Run a simple web server like apache, nginx or whatever and configure it to run your Python scripts, call SQLite, do stuff 11. Configure self-signed certificates and make your server and your browser use those 12. Do some kind of interaction with your phone, share mp3 files or whatever 13. Do some kind of parallel stuff (Python threading/multiprocessing or C pthreads) 14. Learn Go (120k/yr) or if you have balls Rust/C++ (160k/yr) Almost all the information you need is in Wikipedia, StackExchange/StackOverflow and project documentation pages. Learn to search for the best places for each concept. And there are a lot of Youtube videos if that's your thing or if you are feeling lazy in the beginning. But they take 10 minutes to explain something you can find in 1 minute because of advertisements and stupid Youtube algorithm rules. Also be careful because there are a lot of terrible videos with idiots. It's harder to find which ones are good if you are just starting. Very often the most knowledgeable channels are the least popular. If you are not full of shit and are going to do this, maybe start a blog or a guild where you document your journey. Let me know and I might give a hand. The sky is the limit.
2
This is an excellent answer! I do need a new computer right now so this is perfect timing :) . Thank you, I'm going to do this. Like I told the poster below, I need to start with bookends and work my way up to building a house and this is great answer to that. Then I can figure out what discipline is best suited to me.
0
+FullStack
1
His advice is pretty much the opposite of full-stack.
1
It just a catchy name I thought was interesting and would get attention. It has nothing to do with what advice people gave me
1
I don't follow your logic to just post a random guild somewhere as a response to a comment where people gave you advice. The term "full-stack" is a real thing, not just some catchy name. It's a web developer that does both backend and frontend development.
1
Yeah, which is what I'm going for. I don't want to just learn front or back end. I want to learn both. So yes, the name makes sense, since I'm going to be continuing my studies until I'm a fullstack developer. This is my personal blog of my journey into becoming a **fullstack** developer. Just because someone gave me advice (and I appreciated that advice and took it under advisement) doesn't mean I'm going to follow it to the exact letter. I'm not a robot; I can make my own decisions. I posted it in that guild because one of the posters specifically stated I should make a guild to blog/ journal my progress and if I needed help, he would help me. I posted it to both show him I took his advice to do exactly that, and I was giving him the opportunity to follow up on that offer. I then invited him to help me mod the guild. So unless you have a point, I don't think berating me based on you erroneous assumptions about what I'm doing are very helpful. You may go now.
3
I would go even more basic than what people are recommending if you're starting off from scratch because if you don't even understand the vocabulary you won't know half the shit people are talking about on programming forums which are often a great source of information. I recommend picking up some programming glossaries since we're talking about the very beginning. Break everything down and then you can work through it and learn properly, by the way, I looked up a glossary C++ Primer 5th Edition had one and it was fantastic for helping me understanding programming in basic english, online ones will probably work fairly well too though.
3
This is an ultra common question, and the answers always suck. You've essentially declared your desire to learn how to use a drill, or a hammer. To do what? Build a shed? Put metal rods into a tree? Why do you want to use those tools? Let's say for a second you don't actually want to learn programming. What you actually want, is to solve a problem. Make a house. Fix a chair. Stop spending hours putting outlet screws in by hand. What problem do you want to solve? If someone asked you what it took to be an engineer, you could give the general idea: Learn Math, Learn Design. Learn Materials. Those are the level of answer you'll get from your question. You need to be asking specifically, "What do I need to learn to be a civil engineer who designs city skyscrapers? That's where you'll get the answers fitted to you. Do you want to work on systems programming, desktop applications, servers, web sites, embedded devices, IOS, Android, Machine Learning(AI), Computer Vision, Computer Graphics, Games, Encryption, Automated Investing, or something else? You need a reason to learn the tools, or you'll never finish what you start. Pick a field of computing that interests you or tell me what you want to make, and I'll recommend a language and a tacit roadmap. Or follow some random advice and links people throw at you.
1
What you're saying is awesome and I don't deny it. It's good advice. But the question is: How do I know? If I want to learn woodworking, I start at the bottom in middle school shop, right, and I build a pair of book ends. But until I learn how to build bookends, then a table, and then a bird house...and work my way up, I don't know if I want to build a house or a high end table out of rare bloodwood and teak that looks like a work of art you'd sell in a gallery. I'm not sure yet. I haven't decided because I don't have enough information. First, I have to learn how to make book ends, and when I'm done with that, I'll have a better idea of my strengths. Do I enjoy building something bare and functional...or do I want to be a woodworking artist with flair? I'll let you know when I get the basics down and I have more information to make that decision.
1
But you have an idea. It sounds cool to make a high end table, or a house, right? Pick which sounds better, and then begin researching the steps to get there. Always have a goal, or you'll wander aimlessly. There's something you want out of this, for most people who "want to learn programming, hacking, reverse-engineering, X, Y, or Z Technical Skill," It's the piss poor reason of, "It sounds cool." They struggle with putting in the enormous amount of time and effort required to invest into the education, because "It's sounds interesting but I don't have a use for it." Like a craftsman who learns the trade and doesn't know if he wants to build tables. People don't take shop class for no reason, either they're forced to, they're exploring, or they want to pick up the skills to make something. If you're exploring, that's fine, but not really worth roadmap making. [Automate the boring stuff with python](https://automatetheboringstuff.com/) can give you a taste of what swinging a hammer feels like. Maybe you'll like it, maybe swinging a hammer will get boring after a while. Is there something you want? Do you have to do repetitive data input? Do you want to automatically water your garden? Is there some request you've made to a project, that hasn't been fulfilled? Is there software you use that doesn't quite scratch the itch you need scratched? Or software you can't find? Think on it.
1
In order of importance: 1. I want a better paying job I can potentially do from home without having to interact with people. And I want to make a shit ton of money. Not so I can buy a Porche but because I allowed myself to fuck off too long and now I wonder if I'll be able to retire. I'm a frugal saver, but life costs more everyday, and I need to save as much as possible over the next 30 or so years if I want to not starve to death. Or at least keep making money when I'm 70 and can't walk. 2. I want to understand the increasingly complex technical terms I hear tossed around online about privacy, hacking, and future technology. I don't like Not understanding things. If I have a question, I'm the geek that will spend half the day trying to find out why an author makes a throw-away reference about the unusual mating habits of frogs--and my brain demands I know more. People's ignorance, lack of curiosity and laziness in not researching irritates the hell out of me. And that's what I'm (hypocritically) doing with Tech. I'm skimming tech guilds and articles but I have no idea what 3/4ths of it means. I'm just skimming and allowing myself to feel frustrated and ignorant in my lack of knowledge, which pokes at my sense of Self. And you can't just Duckduck most tech. You ask one question and you get 5K other questions, and terms you don't know, which takes you to another 10K terms/references you can't understand. 3. I'm not a detail oriented person, but I'm extremely creative and a natural Problem Solver. I don't think I'd be happy inputting lines and lines of code/data without a visible end-game. It would get frustrating and boring pretty quick. But creating things would be like Writing---you're creating something from nothing, and to see that come alive on the screen would be amazing. Or having someone come to you and say, I have this issue, figure out the problem and fix it, would be fun to me. 4. Hobby: I'm a hopeful writer, and frankly, Scrivner sucks ass (IMPO) and the few other world building/ writing apps are like video games -- lots of flash but nothing of substance, or so complicated I'd need another year of college in web design to figure their shit out. Its a pain in the ass, and makes my writing more difficult. I don't like not knowing how to solve a problem I have. If that means learning from the ground up on how to make a new writers program that at least has a decent thesaurus and doesn't look like something from the early 90's, then I'll take the time to do that. If it's just a side hobby that's fine--like a guy who builds houses making bird houses for fun. What all those mean to my end game, I don't know yet, because I don't know enough to make that decision. That's why I'm asking and exploring and talking to people who are smarter than I am--like you, so I can figure that out.
2
I'm not smarter than you. Kick that thought out of your head right now. I've worked harder than you, and I've built my little mole hill up until it looks like I'm smarter than you. There's a difference. You can get there too. The Five Elements of Effective Thinking by Edward B Burger and Michael Starbird. Read it. Direction. Excellent. Now we are getting somewhere. You want to be a developer without a degree. Web Dev is the easiest to get into. That's its own can of worms. Rome wasn't built in a day. If you find something you don't understand, look it up. Mastery requires depth first. Introduction requires Width first. Good luck. Possibly Back End or algorithms. Desktop or Web app. Overall [The Odin Project](https://www.theodinproject.com/paths/foundations/courses/foundations) is what you want. It will throw you right into making and design. Start today. Build a steady routine. Set aside time each day, at the same time for the same amount of time. Don't ever stop thinking about why you want it. When you finish The Odin Project, firm up your foundation, for numbers 2 and 3, I'd recommend Harvard's [CS50x](https://cs50.harvard.edu/x/2021/) then [CS50 Web](https://cs50.harvard.edu/web/2020/). Time that you'd usually spend in this place, should now belong to The Odin Project. Best of luck.
2
If you've never been on a computer, you should learn how to use it before learning how to program. And HTML and CSS isn't programming.
2
Start out with getting familiar with using a computer on a basic level. Then you could probably introduce yourself to basic computer concepts from some book or another. (This is for the "never been on a computer before; I know nothing." bit.) You have a subscription to Skillshare, it would probably do you well to research the easiest to get into "beginner" programming languages and move on from there.
2
https://www.w3schools.com/ Free step by step lessons in the most common programming and scripting languages. I'd suggest starting at Python.