• by dswilkerson on 7/4/2022, 1:54:42 AM

    I was a TA for the introductory programming class at Berkeley, CS61a, where we used Structure and Interpretation of Computer Programs to teach Scheme, a statically-scoped dialect of LISP. Frankly, I do not recommend it. Scheme is just another programming language, it is not "the one universal programming language to rule them all and in the darkness bind them".

    I spent years in mathematics and CS theory and I am a published theoretician. I took two graduate classes from Karp himself and even solved one of Karp's open theory problems because I thought it was a bonus homework problem in an undergraduate class. I am also a programming languages researcher and a serious C++ dev and am now teaching myself digital circuit design. I wrote an integer user-mode RISC-V 64 chip that worked the first time I got it expressed in verilog. That is, I know what I am doing in both theory and practice.

    It sounds like you want to know the "heavy, deep, and real" computer science. Never forget this: the only theory worth learning is that which comes from real problems. The theoreticians will tell you otherwise, but do not listen to it. Always think about reality first, theory second. Therefore: first just learn how to code like you know how to breathe. Learn one editor and one language/ecosystem really well. I use GNU emacs and I write most everything in C++.

    The first language I recommend is RISC-V assembly language. Then learn C and configure gcc to emit the intermediate assembly interleaved with comments showing the C code that it came from. Practice writing C, predicting the assembly that will come out, and then seeing what actually comes out. Practice stepping through your programs using the debugger. Practice profiling them using gprof. Write lots of little programs that do something mundane and useful, write tests and documentation for them, and release them as open source. See if you can implement one program that someone else finds useful. One way to get started with an established open source project is offer to write tests for them. The best way to learn fancy algorithms is to implement them.

  • by brudgers on 7/3/2022, 6:15:35 PM

    This was part of the original idea for MOOC’s.

    But then budgets were reduced and they mostly became online correspondence courses without active cohorts.

    My advice is to take an online course with an academic structure so there are explicit minimum expectations for participation and pace of progress.

    It solves the matchmaking problem directly.

    Indirectly it might offer you useful accountability…I mean here you’re solving a problem that feels like learning CS but isn’t.

    Good luck.

  • by reachableceo on 7/3/2022, 10:14:02 PM

    I presume you’ve tried /r/compsci or /r/programming ? Or other forums ? You’ve found them lacking in some way?

    Many folks are collaborating online in large communities of any number of topics , especially computer related .

    Have you looked into your local geographic area for meetups ? Or post to the sub Reddit for your local geo asking people to meet up to study ?

  • by rrrodia on 7/4/2022, 4:08:13 PM

    I'm interested! Have been looking at this myself, but wasn't sure what form such a community / activity should have. This can of course be overcome by going one level up, and make the form one of the initial discussion topics.

  • by kwatsonafter on 7/3/2022, 5:29:32 PM

    Here's some advice: if you're really interested in learning, "Computer Science" than I'd actually steer away from online communities and the like-- you're going to run into a lot of people that you might assume know things that give you ideas that you'll eventually have to self-correct. There are relatively few academically competent, "computer people" in the world after the dissolution of science and technology programs in the post-war economic period. Watch Alan Kay talks. Read Computer Lib by Ted Nelson.

    There's a theory that through the 80's and 90's that, "many of the elves left Middle Earth" (ie. the first competent generation of PC-literate computer people have left the industry) Bill Atkinson went and became a photographer after developing HyperCard. There are other examples. Learn, "Humanism" first. Computer literacy will follow if it is your destiny.

  • by retrocryptid on 7/3/2022, 3:58:21 PM

    I'm also re-reading sicp. Maybe a usenet group called rec.sicp?

  • by larmstrong on 7/3/2022, 7:17:17 PM

    What exactly do you have in mind in terms of a community? Are you looking to develop a platform or use existing platforms?

  • by __rito__ on 7/4/2022, 8:39:46 AM

    I am also interested in doing this. Why don't we start a Discord or Slack and organize from there?