top | item 10929899

Ask HN: Crash Course in Tech

9 points| cconcepts | 10 years ago | reply

I read HN everyday but can't understand half of what you people are talking about - I keep coming back for the thoughtful commentary and interesting philosophical stuff.

I now have two young kids yet can no longer just teach them to use a chainsaw to ensure they can survive in a world where algorithmic robots will be doing the chainsaw swinging etc.

What are your recommendations for resources/books for getting up to speed on the tech world without the intellectual snobbery of insider terminology?

Things like:

Basics of networking and the web (DNS etc)

How software stacks work

Why we have so many programming languages on so many levels

Neural Networks

Basic Computer Science

Any help is much obliged.

EDIT: Formatting

11 comments

order
[+] brudgers|10 years ago|reply
Insider terminology usually isn't intellectual snobbery. It's a form of efficient communication between people with similar technical backgrounds in a narrow domain. Once such people are outside their domain, they're in a similar situation to everyone else. As Scott Hanselman says, "We're all amateurs".

The computer scientist Alan Perlis summed up the problem:

  48. The best book on programming for the layman is
      "Alice in Wonderland"; but that's because it's 
      the best book on anything for the layman.
But for their incompleteness, the Perlis's Epigrams wouldn't a bad crash course. [1] Peter Norvig's take [2] is also insightful.

To be honest, I'm in the No Silver Bullet camp [3]. This stuff is hard. When I might forget that fact, I pick up Knuth's TAoCP and conclude that someone spending more than 50 years writing less than half a book is pretty good evidence that this stuff is hard...I don't even have to look at the 30 rated exercises.

I can't know it all. In the days before the internet when my younger self believed I was up on things, it was simply because I didn't have access to much information. Now I know that I don't know most things. Fortunately most things are only somewhat interesting and there's always something shinier. I've learned that learning a lot doesn't mean I know very much relative to the sum total of what people know or what there is to know.

Avoiding terminology is the route to being like the person who buys a iguana at PetCo and then argues with herpetologists online. Words are how we communicate.

Good luck.

[1]: http://www.cs.yale.edu/homes/perlis-alan/quotes.html

[2]: http://norvig.com/21-days.html

[3]: http://worrydream.com/refs/Brooks-NoSilverBullet.pdf

[+] cconcepts|10 years ago|reply
Being corrected by someone online who gives a complete and reasonable argument to support their assertion is what makes HN so good. Thank you kind stranger.
[+] tkjef|10 years ago|reply
Get html & css down fairly well.

Do some decent javascript classes (Codeschool has good ones as well as hundreds of other places).

Get into php or ruby on rails for some backend programming (php i think is better for beginners). This step should also introduce you to SQL.

Get into Linux & create a virtual machine with virtual box (or vagrant to step it up a notch).

Going through all this you should be messing around with projects & ideas. Hopefully, you're starting to gravitate to developer (in some language), or system administrator, or dba.

From there, continue to focus & refine your education based on what interests you, and what job opportunities are available or are coming your way.

[+] cconcepts|10 years ago|reply
If I understand the situation correctly, JavaScript could soon be commonplace as a back end language as well thanks to NodeJS? I may have completely misunderstood this...
[+] timothybone|10 years ago|reply
The Go Programming Language is a recent concise book that will give you a basic grounding in important CS stuff through the lens of a modern language. I'd say that will clarify loads of jargon.
[+] cconcepts|10 years ago|reply
I feel nervous that focussing on one language will only give me understanding within a narrow sphere. Is there a reason why Go is more broad reaching than others?

I'm not planning to be a coder but to at least have a fair understanding of modern tech as a whole.

I understand this is akin to saying "I wanna understand heapsa stuff" but at least getting advice from HNers will make this process more efficient.