3 ms·
I can provide some examples for him as a self-educated dev: * What is big O * What is value type vs pointer/reference * How does the internet work * Binary
by madeuptempacct 8y ago
I can provide some examples for him as a self-educated dev:
* What is big O
* What is value type vs pointer/reference
* How does the internet work
* Binary search trees, tries, graphs - u wut m8
(Thankfully, there's this: https://medium.com/basecs/archive/2017/01 https://medium.com/basecs/archive/2017/01)
* Basic cryptography, hashing, etc
* DNS, IPs, HTTP, etc
* TCP, UDP, etc (I still don't know these)
* Stack, heap, queue, malloc (Again, very little exposure to this without learning a low level language.)
* How modern computers work
* Logic gates, clocks, memory, (actual) binary math
* Wifi basics (actual physical data transmission)
* Linux
I can go on and on and on, but these are things you don't pick up at work unless you go out of your way to learn how they work.
Regarding the parent post - I have a very generous training budget. And guess where I will never spend it? At the best University in my state. I got a degree in something other than Comp Sci, and 95% of the classes were useless and way-too-drawn-out. So, you might not be as behind as you think.
A pretty-smart co-worker of mine with a Comp Sci degree said he didn't figure out the point of object oriented programming until he got his first Java job.
This is only related to other comments in this thread, but I do feel that formal education is oversold, and particularly to people who are from poor families with no guidance trying to have a shot at life.
- wonderwonder 8y agoI can second this. Self taught programmer and I am weak in all of the above areas. My math skills (only high school math) are also especially weak which has really bitten me in graphics based jobs (simulation) where I have had to calculate view rotations and similar in 3d. I am lucky enough to have made it to the 6 figure club but I probably could have been here a decade ago with the right education. Also imposter syndrome has been a major limiter at times.
- gregmac 8y agoI've interviewed people with degrees that don't know about many of these questions. In fact I make it a point that if someone puts something like "TCP/IP" or "networking" in the laundry-list of skills/knowledge they have, I ask them a basic question about it -- and a depressingly large amount of time people can't even explain the difference between TCP and UDP. I've also worked with people who can explain what big-O is and yet they'll write completely inefficient nested loops and N+1 SELECT queries, and then wonder why everything is slow in production even though it works great in dev. Comp Sci can teach you theory and concepts, but as they say: there's no substitute for experience.
- ryanmarsh 8y agoSelf taught programmer and I'm strong in all these areas. You can read three books and know all of this. It does not require a college education. In fact the TCP/IP stack and Linux I learned back in high school just by reading two books. It wasn't hard. The Data structures and algorithms I picked up a few years later when I was about college age. Again, you can read books about this stuff. It's not that hard. If anything, a self-study program with a list of books to read and skills to master would save many self taught / self motivated people quite a bit of time, but its absence is by no means a show stopper.
- madeuptempacct 8y agoWhat three books? (Especially interested in data transfer protocols - I got a little bit into it for game development, but never found anything resembling a good source). I learned a lot of these things from taking Harvard's CS50 online, reading the blog posts I linked (and doing problems), and I would imagine this book (https://bigmachine.io/products/the-imposters-handbook/ https://bigmachine.io/products/the-imposters-handbook/) would help out - a friend recommended it, but I never got around to it. https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319 https://www.amazon.com/Code-Language-Computer-Hardware-Softw... ^Covers logic gates and the basics of how a computer is built to an incredible degree, but it's VERY time intensive. Still, I really recommend it.
- ryanmarsh 8y agoThese days CS50 lectures are online. The TCP/IP and Linux books I can't recall. That was some 20+ years ago. I think the TCP/IP/Protocols book was from Sams and the Linux book(s) were from O'Reilly. Algorithms/Data was The Algorithm Design Manual by Skiena. Cracking the Coding Interview is great too. Crypto was just a bunch of reading online, I haven't found a good book on that I would recommend, same for data transfer protocols. I didn't just read three books, I'm saying, 20/20 hindsight I could have read about 3 books to garner most of the stuff I didn't learn by skipping college. Maybe some of us self taught developers should get together and curate a clear path for CS knowledge and ancillary helpful things.
- vxNsr 8y agoI started college (Comp E) and didn't finish and I, can vouch for the fact that the classes I didn't take would have taught me nearly everything on your list (aside from the last 2).
- hathawsh 8y agoFWIW, I learned all these things on my own, including object oriented programming. My blind spot was SQL, and thankfully I learned that in school. I preferred lower level coding and I had to be pushed to see that the performance overhead of SQL was not important compared with the productivity benefits.
- nostrademons 8y agoI have a CS degree, but I learned basically all of the above on my own. In some cases I also had a class later that taught it, but for most of the networking stuff it wasn't even taught in school. If you're self-taught and worried about your CS fundamentals, there's a really simple algorithm to get an education better than any CS student at roughly 1/100th of the price: 1. Look up some famous university like Stanford or MIT. 2. Download the course syllabus for the course you're interested in off their website. (Nowadays you can often get the full course, including all the lectures and handouts.) 3. Buy the textbook. When I was in school you could pull shenanigans like buying the European version of the textbook for 1/4 the price or (if you live in a college town) buying the textbook, reading it, and returning it before courses are finalized, but these loopholes have probably been mostly closed. There's now a thriving used-textbook market online that didn't exist when I went to school, though. 4. Read the textbook. Do some of the exercises. Implement the algorithms. Incidentally, this is largely what CS students do for homework. Most of them kinda gloss over it because it's required, though, while if you're doing this because you really love the material, you've got a big advantage.