At first I thought I'd follow along the MIT OCW 6.0001 course, but it's like eight years old and on a far outdated version of Python and Anaconda. When I tried to install the software as per the syllabus's instructions, I found the download links were dead. I had to spend a few hours going through archives to get the required Anaconda 4.1.1 and Python 3.5 only for it to not even work upon installing. When I tried opening the Anaconda navigator, the logo would pop up, it would say initializing, and then it would just crash before it could launch. Referring back to the syllabus was of no help because the instructions there were literally as brief as "Install Anaconda and Python 3.5 via the installer".

I wasn't able to troubleshoot any of this because all the google results for this question were full of jargon I sure as shit won't be able to understand until I finish the course in the first place. I have no idea what an IDE is, what a pip is, what a spyder is, what a path variable is, or why one would want to use the command prompt.

I was actually able to successfully install the newest versions, but I can't use these for the course because I'm an absolute beginner who has no frame of reference for what differences are actually going to be important.

Now I'm in the process of looking elsewhere. Problem is, I can't find anything like the MIT OCW course. I really loved the videos of actual lectures and the fact that I didn't have to enroll or sign in to anything. There exist a lot of Python tutorials on the internet, but I was hoping to also get an introduction to computer science in general because I need to learn the fundamentals of the subject. I'd like to have a deeper understanding than one would get by just learning a computer language without any of the theory behind it.

Does anyone have any recommendations for a more recent curriculum? Ideally I'd love it to have lecture videos, but I'll be content with just problem sets and a good textbook if it's up to date and has a robust step by step guide for setting up.

  • KnilAdlez [none/use name]
    ·
    1 year ago

    For programming, I would strongly suggest starting with Java. It has a ton of resources and you can do object-oriented programming with it. (Python cannot do a lot of the things that you would be expected to do with Java or another OO language, namely a thing called polymorphism that is very important.) If you wanted to learn more theory, I could send you some textbook PDFs tomorrow.

    • mayo_cider [he/him]
      ·
      1 year ago

      This couldn't be further from the truth, Python is built around OOP and practically everything in Python is an object. Default functions like len() are built around polymorphism. Java isn't a bad choice either, but at least for me Python was way easier to get started with.

      • KnilAdlez [none/use name]
        ·
        edit-2
        1 year ago

        Literally try to give two functions the same name (with different signatures) in the same class.

        I didn't even know python had classes when I first started learning it because it's not in many tutorials because user-defined OOP principles are so badly implemented in Python. Moreover, since it's not a statically typed language it can be a real pain for a newbie to debug wrong variable types at runtime.

        And, philosophically, python is so far away from the bare metal that it teaches a lot of bad programming behavior imo. But no one likes when I suggest starting with C or C++, so I guess Java is good enough.