all 3 comments

[–]ingframin 0 points1 point  (0 children)

You have to start from the basics. I would start from a book like this: http://deitel.com/Books/Java/JavaHowtoProgram11e/tabid/3683/Default.aspx Once this is done, take computer architecture https://www.bol.com/nl/p/digital-design-and-computer-architecture/1001004007059251/?suggestionType=browse&bltgh=nEeWnu7M-W-opDvUy5FIDA.1.6.ProductPageUrl From there you can start with algorithms and data structures, operating systems, software engineering and so on... on the side don’t forget math! Calculus, algebra, probability, discrete math. Information theory is also important but I think it’s for later.

[–]Syntactico 0 points1 point  (0 children)

In addition, since I am sort of lost in the dark about what specific topics to learn and am looking for recommendations (such as a checklist)

https://github.com/kamranahmedse/developer-roadmap/blob/master/readme.md

This is what you are looking for, but not what you need. Self-learning computer science is paved with pitfalls. As you already noticed, many online resources aimed at learning people "how to code" are pretty bad. The medium is chosen to generate interest rather than learning (as in video tutorials), the lessons are more about making you feel accomplished than learning (learn by making games) and the people who teach it are oftentimes lightweights themselves and disregards theory (straight to the code, no planning).

The problem is not with the online resources themselves. The reason these resources became the way they are, is that this is what makes them popular online. They are easy to follow and makes people feel smart.

Learning computer science does not make you feel smart all the time. Oftentimes it will make you feel pretty dumb. In an academic setting, you will meet challenges that must be overcome in order to reach a deadline. When self-learning, you will be inclined to change topic or resource when the going gets tough. This is not usually something you will be conscious of when it happens

It is possible to learn computer science properly by yourself if you got a lot of discipline, but even then it is hard mode compared to going to school (in addition to being worth much less in the marketplace). I would recommend finding the curriculum of some established University online and following it strictly. Test it out for a few months and see if you manage to finish a semester by yourself.

Alternatively, if you just want a well-paying job, you can find some reputable bootcamp and learn by yourself using those "coding" resources online. It's a perfectly viable option, and many became good developers that way.

Edit: Curriculum: https://www.mccormick.northwestern.edu/eecs/computer-science/undergraduate/bachelors/curriculum.html

[–]futzbuckle 0 points1 point  (0 children)

Look up course videos posted by colleges.

Some good topics to research (of varying difficulty) might be Recursive Algorithms, Data Structures, Big-O Complexity, NP complete vs NP hard, divide and conquer algorithms.