Please help me design an online programming curriculum for myself
September 17, 2020 8:08 AM   Subscribe

The problem is I know almost nothing, not even what I don't know.

I took some programming classes in college, approximately a million years ago, and remember very little except how to think about things (very broadly speaking). But I keep having ideas for things I want to build, so I want to learn how. The things I'd like to be able to build include a website that is sort of IMDB-ish, a mobile app for coaching, and I'd like to be able to play with all the AI stuff that's come out, since for some reason I find all of that super shiny and fascinating.

Free Code Camp offers a 2000-hour curriculum that starts with html and CSS and ends with Python for machine learning. In the middle somewhere is Javascript and other stuff I don't really know about. Would this do the trick, starting out? What should I add? I feel like I can learn all this theory and stuff, but then there's the actual nuts and bolts of how to put it together using various tools and then make and publish(?) and maintain an actual thing, and I don't see that anywhere. Is there a better option out there? I'd be willing to pay for a better option, but I don't have the time or the cash right now for an intensive bootcamp type thing.

Thanks for any help you can give me!
posted by SmockTheSock to Education (10 answers total) 18 users marked this as a favorite
 
I've never used the system but that Free Code Camp curriculum looks pretty good to me. It's all opt in so I'd probably skip some of the modules as I don't think you really need to learn 5 separate Javascript front end libraries. I don't see a downside with starting there as it's free. If you find it hard to self motivate them you may need to look for a paid one with more direction, it depends on your learning style.
posted by JZig at 8:43 AM on September 17, 2020


I think your question holds a lot of information:
- this is a practical endeavor, not so much an intellectual one
- your desired outcome is 'usable things that work'

It's not really necessary, or even time/money optimal, to hobby-shop data-driven website and app. There are WordPress and similar builders for these.

That leaves the machine learning. You're right that python is the better non-university-level-research platform for this. You could focus on that initially.

I don't know a thing about bootcamps. To me, the developer curriculum breaks down into

- learn the language
- solve specific well known problems
- learn design
- learn distribution
- learn productivity tools
- solve novel problems
- understand specific concentrations (fast embedded stuff, websites, data analysis, web services)

After a basic sequential movement through these, then it stops being sequential, and everything inches along together.

Hopefully, some folks will be able to recommend existing curricula for you.
posted by j_curiouser at 8:51 AM on September 17, 2020 [1 favorite]


Having just now spent a few minutes playing with freeCodeCamp I agree with JZig. Start there, mainly for the sake of starting somewhere.
posted by flabdablet at 8:52 AM on September 17, 2020 [1 favorite]


yeah, I was too abstract. what flabdablet says ^^^
Begin somewhere.
posted by j_curiouser at 9:01 AM on September 17, 2020 [1 favorite]


Also, what any of us doesn't know is essentially infinite, so don't sweat that part. Once you know some things you'll know what you need to know next and that's really the only thing that matters in this business.
posted by flabdablet at 9:23 AM on September 17, 2020


I also took a couple of programming classes approximately a million years ago. Two differences between now and the turn of the millennium are that there are tons of frameworks for making specific things available, and that somebody has asked almost every small programming question you might think to ask on StackExchange. I worked through an online python tutorial until I got to dictionaries, and then got python working on my own computer. That gave me enough context that I could google how to do a specific thing in python and try doing that thing, which meant I could play around with making stuff. (I made a Discord bot that shows you random pictures of stingrays, for example.)

So absolutely, try a class, but also think about what specific thing you want to make first. You might be able to put together a prototype much faster than you expect.
posted by yarntheory at 9:42 AM on September 17, 2020


Maybe take a look at CS50 on Edx. It is a Harvard intro to Computer Science course that is pretty highly regarded. You can also follow along on just the lecture portions on their Youtube page. It sounds like some of this might be review for you but things accelerate pretty fast over the course and should get you back up to speed. After that I would suggest picking a project and a language and just starting on it. Best of luck.
posted by The Violet Cypher at 10:41 AM on September 17, 2020


As a companion resource, you might take a look at the Developer Roadmaps. And there are more in GitHub's Learn to Code collection.
posted by curoi at 10:48 AM on September 17, 2020


I've been programming (mainly for Banks) for 46 years and I still do programming at home because I enjoy it. I don't do golf or boats. As you say, ideas of things I'd like to develop "come to me". I essentially started in 1970 in high school, down the path j_curiouser itemized and it branches out from there. Learning this stuff is (as the saying goes) taking drinks from a fire hose. You don't try to drink it all because you'll forget before you need it. So as yarntheory said, keep having near and far term goals. I wrote a savings tracking system that my wife likes (that's an accomplishment). I also took the advice of a column about 10 years ago and started steering my interests toward Linux, which has helped both with my home hobbies and also now that Cloud infrastructure has come to my day job.

I'm just going to throw out one actual resource that you should look at, and either ignore or delve into depending on how it hits your psyche/interests: Scott Hanselman's YouTube channel. He's basically a nerd like me who takes the time to calmly explain new developments.

Also you can MeFiMail me if you want, though as you can tell my subject matter expertise is limited, only deep in some areas.
posted by forthright at 1:33 PM on September 17, 2020 [3 favorites]


I really loved Colt Steele's Bootcamps on Web Development and on Python 3. I found his style really down-to-earth and engaging. I knew a bit of Python before, but he starts with fundamentals and explains things pretty clearly.

If you're interested in generally getting better at programming, and especially if you're interested in Machine Learning, I'd start with Python - I found that JavaScript has a bunch more gotchas. But if you're more inclined toward web stuff, start with Javascript - the gotchas aren't TOO terrible.
posted by taltalim at 2:04 PM on September 18, 2020


« Older Oven with gliding racks   |   Android Weather App with *selective* notifications Newer »
This thread is closed to new comments.