Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Are there any good intermediate level programming courses?
23 points by SnowingXIV on Oct 9, 2017 | hide | past | favorite | 7 comments
I've been doing doing a wide variety of basic development work but I still feel like I don't know anything. I've tried to find courses or other material that is more than explaining what data types are or going through if statements/loops etc. There are tons of these courses out there which is great but they aren't what I'm looking for.

When attempting to find "intermediate" or "advanced" courses it's often way beyond what I know and I feel like I'm missing a bunch of knowledge. I wish I could jump in and learn things about ML as that seems interesting.

I've built a few applications and notably one larger one. (Most of these are never built without looking things up and copying and pasting problems I run into from Stack Overflow).

Routinely I spend a bunch of time doing things like code fights and hacker rank which is fun but also gives a false sense of satisfaction. "Neat, I can code these weird loops that check the index and solves whatever the problem is." It's akin to doing well on a math test because you know how to solve those kinds of problems because you've done the chapter review.

Currently I maintain and build pretty basic websites and focus on performance and semantics. I've had to write some simple js to interact with APIs for mail and forms to feed into systems. Nothing complex so this doesn't really grow me. Most of the time it's adding more html/css. It's updating the website and making sure it's up to snuff.

Other routes I've attempted to take is latching onto a framework to build something but most of those guides you spend the majority of the time setting up it's environment with a million dependencies and then hours later you have a to do app. Again, zero knowledge gained.

Is there a book out there or even a class on coursera (or other something similar) that skips all the basic syntax and gets right into solving problems or how to approach them but also holds your hand really close?

I can't recommend courses, because I don't have direct experience of any, but given what you say, my suggestion would be to take a bit of a pause from pragmatic problems, and dedicate some time to learn the foundations of computer science, in particular about algorithms and data structures. I'd recommend a couple of books: "The Algorithm Design Manual" by Steven Skiena if you want something not too theoretical, or "Introduction to Algorithms" by Cormen, Leiserson, Rivest, if you want a bit more breadth and theory:



As a second suggestion, I'd recommend to learn a language somewhat different from JavaScript-like (or C-like) languages, something that challenges your mind to think a little differently and understand and create higher order abstractions. There are many choices, but to avoid confusion and being my favourite, I'll point to one: read the "Structure and Interpretation of Computer Programs" by Abelson and Sussman. It teaches Scheme in a gentle and inspiring way but at the same time it teaches how to become a better programmer:


Or if you want made of dead trees:


I can't recommend it enough. If you read it, do the exercises, don't limit to read through them.

Maybe it's even better if you start with this, and THEN read the books on algorithms and data structures.

Enjoy your journey!

SICP has continually showed up on my radar and before this post it's what I was looking at getting into again but felt this the book might have been too "meaty" and maybe was out of vogue. I think I just need to delve into it and finish it. Awhile back I did the first couple chapters and it did seem to go quite well though it's not for the faint of heart and really requires hard focus and I'm okay with that! My hesitation was that I wasn't sure if it was a solid starting point. Looks like it might be!

It could have a bit of a "serious air", but don't let this intimidate you, it's not that academic. Also you don't need to read it all to grasp the most prominent benefits. Chapter 2 and 3 have a lot of juice (I remember in particular the part on generic operations and the symbolic algebra example in ch. 2 and the streams in ch. 3). If you decide to read it all, in the end you'll learn how to write an interpreter for the scheme language, and this will ingrain a very deep understanding on how an interpreter (and even a compiler to a degree) works. But as I said, write the code yourself while you read the book. It will be easier to follow and much more fun!

If I’m understanding where you are currently, I’d recommend Michael Hartl’s Rails Tutorial. It really bridged the gap between hello world type tutorials and how a modern framework functions.

Paradigms of Artificial Intelligence: case studies in Common Lisp by Peter Norvig is a great intermediate text on an interesting topic in a language that is worth becoming familiar with for its own sake. It clearly explains search and interpreters and pattern matching and DSL's and other useful programming concepts in clear terms.

Hey man, if you find any, I'd love for you to share it on www.learnsearch.xyz :), we're trying to build a cool community

Great Code Club seems nice, but it's a bit expensive

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact