Live data from Hacker News

Ask HN: Fundamental texts for serious web engineers?

news.ycombinator.com

1–10 of 37 posts

Ask HN: Fundamental texts for serious web engineers?

#1
As someone who would like to be a one-man-army / technical co-founder in the world of web development, I've been recently trying to deepen my technical knowledge of the fundamentals. I realized my understanding of the basics was very simplistic and as far away from "hardcore" as imaginable. I spent years working in the industry, and made the giant early mistake of not asking "how does this actually work underneath?" for way too long, so now I'm embarking on the likely life-long journey to fix that.

I realize that it's impossible to gain truly deep knowledge into every aspect of web engineering, but I believe that given time one can still be proficient in most of its areas. More importantly, this knowledge should be abstracted from the "flavor of the month" technology, and it should enable one to quickly learn and adapt. Also I think this knowledge should be pragmatic, practical and highly relevant to the real world and business application.

For starters I began learning more about how programming languages work underneath, which so far Programming Language Pragmatics 3rd ed has been really good at explaining, at just the right level of detail.

I imagine that some of the other fundamental areas of understanding for a web developer would be:

- operating systems - networking - databases - security - distributed systems - UX

For these areas, and more if you can identify them, would you folks be able to recommend modern and pragmatic texts that would give one a solid level of depth? I realize that there would be plenty of overlap with a standard CS curriculum, the difference would be in a higher focus on practical application, rather than theory.

Re: Ask HN: Fundamental texts for serious web engineers?

#4
I'm probably atypical in that I came to the world of web engineering from the depths of low-level C++ systems development. But I can honestly say that once you've written a perf- and security- conscious file system driver, pretty much nothing in the web world will be confusing or surprising (except maybe design/UX).

Of course, this is terrible advice to take at face value and I won't suggest that you should go become a C++ master for great good.

But I stand by my theory that it really doesn't matter how you approach the learning. If you work on challenging problems in any area of computing, you'll realize that most of this stuff is just different people solving the same basic problems with different terminology.

Re: Ask HN: Fundamental texts for serious web engineers?

#5
I'm not sure what other people will recommend, but I don't personally feel that you need such a deep knowledge of fundamentals to be a good technical co-founder. More important is your ability to pick things up when you need to.

You don't need to be a decent DBA, a pen tester and a network admin to get your startup off the ground. You need to be able to wear all the hats, but by the time you actually need a master of each skill you'll have the revenue to employ them.

That said, these two paths may actually converge. If you're interested in learning and read a wide range of authors and topics, you'll probably be good at JIT learning stuff when you need to change hats.

Re: Ask HN: Fundamental texts for serious web engineers?

#6
post #2

Off the top of my head, an understanding of internet architecture is probably a fundamental thing to have. IP, TCP, HTTP, DNS, etc. http://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Pro...

Link to the 2nd Edition version of this book:

http://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesl...

(Didn't even realize it had been updated until I checked!)

Re: Ask HN: Fundamental texts for serious web engineers?

#7
post #2

Off the top of my head, an understanding of internet architecture is probably a fundamental thing to have. IP, TCP, HTTP, DNS, etc. http://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Pro...

Link to the 2nd Edition version of this book: http://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesl... (Didn't even realize it had been updated until I checked!)

BTW, if you decide you want the Kindle version, there's a $10 promo code. I'm not sure if you need to be signed up to Amazon Student for this, so YMMV:

http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000...

Re: Ask HN: Fundamental texts for serious web engineers?

#9
From my experience what people working as web developers most commonly lack theory-wise besides simply software engineering skills is in-depth knowledge of HTTP and it's guiding architectural principles (REST), so I would recommend:

http://www.w3.org/Protocols/rfc2616/rfc2616.txt (HTTP standard)

http://en.wikipedia.org/wiki/Representational_state_transfer

http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm (Original publication introducing REST)

Not knowing this stuff makes it hard to write applications that perform well and are search engine friendly, so contrary to what people may think, it's often very practical knowledge. Ultimately you should also strive to understand what happens from the moment you type in the URL to the moment the page is displayed on the screen, so some understanding of DNS, basic routing, etc. You should also know how to use all the classic tools: ping, traceroute, host, dig, netcat, ngrep, nmap and so on and so forth, it will make it easier to understand the theoretical things and will very often come handy in practice. It's also a step towards another important goal - knowing your infrastructure, so probably UNIX, your web server of choice, your database server etc. You can go a long way by just reading the manuals and the user guides for those things.

Another aspect is knowing the modern browser well. You should learn some JavaScript, learn to use FireBug or Chrome Developer Tools, learn about the DOM, the security issues that the browsers have to deal with etc. Douglas Crockfords videos are a good way to learn this:

http://www.youtube.com/playlist?list=PL7664379246A246CB

http://www.youtube.com/playlist?list=PL5586336C26BDB324&...

There is a nice book about web security from Michal Zalewski, a well-respected security researcher currently at Google:

http://lcamtuf.coredump.cx/tangled/

Re: Ask HN: Fundamental texts for serious web engineers?

#10
One of the most often neglected areas of study is regular expressions, they are looked at as a kind of black art by many developers, even senior developers. The reality is though regular expressions can save volumes of code when applied to certain pattern matching problems. I cannot stress enough how powerful they are. If you master regular expressions you will be ahead of 90% of developers in your ability to process text for patterns, which comes up as a common need in the web many times. The mastering series has a book on regular expressions and it has high ratings, but I will stop short of recommending it because I personally have not read it. Someone else may chime in on whether or not the ratings are valid for it.
Post reply on HN