Ask HN: Online community for self-taught CS hobbyists?
33 points| Peach_blue | 3 years ago
I want to follow the advice from https://teachyourselfcs.com and start his curriculum with 'Structure and Interpretation of Computer Programs'. (It's a site that recommends various resources to teach yourself everything you need to know to become a true software engineer. Or set yourself up to become one, rather. )
However, I already found myself with some questions and I was wondering if there was a community (or whether somebody wants to create one with me) for people who are on the same path.
I have little prior experience but I'm very curious about CS, programming and cybersecurity. So I'd like it to be a group that is comfortable with slow learning and basic questions. Or even figuring out how to re-learn high-school math in order to progress to CS-level math.
If anybody is interested I will post my e-mail, but maybe there is something similiar already out there.
[+] [-] dswilkerson|3 years ago|reply
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.
[+] [-] brudgers|3 years ago|reply
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.
[+] [-] reachableceo|3 years ago|reply
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 ?
[+] [-] Peach_blue|3 years ago|reply
After some of the responses I realized that a group is probably not going to help much. Answers to questions can be had from various forums and I was probably looking for something like emotional support, or a 'tribe'. Like the Odin project. But if it's not already out there getting together with just a couple of people on discord won't lead to anything 99% of the time.
So I won't pursue a group anymore but I do thank everyone for their thoughts. And if others want to get together they still have the opportunity.
[+] [-] rrrodia|3 years ago|reply
[+] [-] kwatsonafter|3 years ago|reply
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.
[+] [-] greazy|3 years ago|reply
...what in the hell are you talking about.
[+] [-] Peach_blue|3 years ago|reply
I'm in my mid thirties and I worked with people most of my life. I'm looking to pour my ambition into something different now. I know the word 'hobbyists' is in the title, maybe that was a mistake. I intend to use the knowledge for a career down the line. I just don't want to be somebody who learns to code in 6 months and then is thrown into the arena. I want to really understand stuff and then see where the path leads me, because I have the luxury of taking my time.
[+] [-] Peach_blue|3 years ago|reply
I do in fact intend to use the CS knowledge for what I consider a good cause. Not just to get a job.
[+] [-] retrocryptid|3 years ago|reply
[+] [-] Peach_blue|3 years ago|reply
[+] [-] larmstrong|3 years ago|reply
[+] [-] __rito__|3 years ago|reply