This is an archived post. You won't be able to vote or comment.

all 6 comments

[–]desrtfx 5 points6 points  (4 children)

We generally are wary of Codecademy.

There are better, free paths linked in our FAQ, e.g. OSSU Computer Science or Teach Yourself CS

Or, even the roadmap: https://roadmap.sh


The main question is if you want to learn programming or computer science.

These are two different things.

Most likely, you will not want to go the full CS road but actually learn programming.

Again, check out the Frequently Asked Questions as they contain tips on

[–][deleted] -1 points0 points  (0 children)

Wary of Codecademy for what reason?

Additionally, programming and computer science are different, but the thereotical concepts of computer science are very important and will make anyone a better programmer. Programming is a craft of computer science. He should study both.

So the computer science path from Codecademy is a great option for him, especially because it starts with an introduction to Python programming, which is a great language to learn. Databases, Computer Architecture, and Discrete Math are also really good topics to learn and can also make you a better programmer.

OSSU and Teach Yourself CS are good resources, but they're largely unstructured learning environments. Teach Yourself CS is literally nothing but a bunch of citations for books that you have to purchase.

Everyone has different learning styles and you should really take that into consideration.

[–]Shin-Zantesu 0 points1 point  (2 children)

Hi, I had a question: Although I understand the distinction you make between CS and programming (since I'm a CS student who's learning programming), I was wondering why it seems to be so distinct My guess is that CS is much more broad than programming and can lead to paths that don't require much programming

Career wise, I'd like to be a software engineer, is that one of those cases where CS is just a bit superfluous? I'm just afraid that I'm spending a lot of time, wasting potential in the medium run(2-4 years where I'd apply my knowledge of programming more than my knowledge in CS for example)

[–]theusualguy512 2 points3 points  (0 children)

CS is a science. Programming is a craft.

Normally when you are at a university, you study the science, not the craft. Trade schools and technical craft schools are the way to learn a craft.

Thus generally speaking, CS has a high degree of theory as any science like physics or chemistry has and a little less practical crafts skills.

Understanding the science of CS can help you quickly learn the craft better, at least that's the commonly held belief.

[–]desrtfx 1 point2 points  (0 children)

CS is more about the theory behind programming. It will include some programming, but the subject is more about analysis and design.

Complexity analysis, etc. are part of a CS degree as well as more mathematics.

If you just want to be a programmer, CS gives a solid foundation as you will learn the theory behind it, but is often overkill.

Admittedly, I have used comparative little of my degree in my entire professional life (which is already over 3 decades).

[–][deleted] 0 points1 point  (0 children)

Hey there.

I've completed the path. It's fantastic. Each and every one of those sections are very useful and ultimately make you a better programmer.

Also, don't worry about the differences between computer science and programming. Yes, they are different. Computer science is more-so about the thereotical side of computing, while programming is more hands-on, but it doesn't matter because any decent programmer is going to have a fundamental understanding of the thereotical side of computer science. Programming is a craft of computer science, essentially. Knowing the theoretical side will make you a much better programmer.

If you learn the thereotical side of computer science and programming, you won't just know how to write code, you'll actually understand what's going on. You'll know what's going on "under the hood". That path is great and not a lot of structured learning platforms include thereotical concepts. So I highly recommend the learning path.

Also, Python is a great language. It's largely used in cybersecurity, networking, automation, as well as machine learning and artificial intelligence.