Live data from Hacker News

Ask HN: Fundamental texts for serious web engineers?

news.ycombinator.com

11–20 of 37 posts

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

#11
post #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…

Yes, also a basic understanding of how regex works under the hood is really helpful in cementing the concept (and also understanding things like why you can't properly parse HTML with them alone).

So I'm talking about stuff like NFAs (nondeterministic finite state automata) DFAs (deterministic finite state automata).These concepts are nowhere near as complicated as their names make them sound they are in fact generally quite intuitive, a reasonable grounding in basic set theory will help you here.

It will also give you a much better understanding of how programming languages are interpreted 'under the hood', in fact one of the first things any compiler/interpreter does to your code is essentially run it through a fancy regex engine.

This leads you on to making realizations not only about the performance implications of pattern matching in text, but they are also keys to solving a variety of problems in a simple way.

In reference to a specific text, I learned the concept from the early chapters of 'the dragon book' but I'm sure gentler introductions are available.

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

#12
post #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…

There's room for an introduction to regular expressions for non-programmers. Perhaps a "Learn regular expressions the hard way"?

(I just checked, there is an early LregexTHW. I'm going to be doing some reading.)

(http://regex.learncodethehardway.org/book/)

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

#13
http://regex.learncodethehardway.org/ thats a good one on regular expressions. He also has a good one about SQL - it's incomplete, but what is done is very sweet. I'm also trying to go the same path as you. I know a bunch of java and python but when I look at the source code of just about anything I don't understand what anything is doing, and it's very frustrating, so I'm trying to build a very simple framework in python from scratch - but I've no idea how to go about it. I got a million texts but no idea how to connect them.

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

#14
post #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 (Or…

The guy says he's worked in the industry for years; presumably he knows about REST and ping.

I read his plea in exactly the opposite way -- instead of learning more of (or about) these tools, he's after fundamentals.

In my opinion, the "fundamentals" are just decisions made by concrete people to address concrete concerns (at the time). Understanding them is understanding the motivations behind them. So it's as much a history lesson as it is technical.

Some of those people and decisions may be lost in time, like tears in the rain, but most have been documented. For a "networking" example, see this recent HN thread https://news.ycombinator.com/item?id=3407777 and the discussion there.

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

#16
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...

+1 to this. No matter what you end up doing in your career, having a good idea about what's going on the wire is never wasted.

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

#18
ok, looking at programming language pragmatics it seems like you want fairly serious (university level) theory. so i don't understand why people are talking about regexps - that should be covered in a subsection (regular grammars) of one chapter of that book.

anyway, for databases i would suggest date's "sql and relational theory" - it shows how sql is related to a more elegant, cleaner, underlying theoretical approach and will get you to think in more declarative terms.

for general programming, sicp is worth reading if you haven't read it already.

for algorithms, either (or both - they are very different) cormen et al (lots of tedious detail - you need to choose which bits to read) or the algorithm design manual http://www.algorist.com/

you don't ask about numerical work, but for anyone interested, gershenfeld's "nature of mathematical modelling" is concise, broad, and has some very deep insights (the few pages on wavelets are the best i have read anywhere).

for security, scheneier's applied crypto is a pretty good intro (again, skip some bits, and remember it's old). and anderson's "security engineering" is the other classic (which i should read...).

for ai (again, you didn't ask) both norvig's books are good (the more modern one is aimed at modern statistical approaches that work, but the older one has a lot of good basic programming and lisp).

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

#19
post #14
post #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 (Or…

The guy says he's worked in the industry for years; presumably he knows about REST and ping. I read his plea in exactly the opposite way -- instead of learning more of (or about) these tools, he's after fundamentals. In my opinion, the "fundamentals" are just decisions made by concrete people to address concrete concerns (at the time). Understanding them is understanding the motivations behind them. So it's as much a…

In the first sentence I think you are nitpicking. After all I pointed to those tools as an aid for understanding how things work "under the hood", which is what the OP is after as far as I understand. Even if you take "ping", (which I could have as well not included in the list, as the other tools are less obvious but still tremendously useful) almost everyone knows what it's for, but fewer people know various options it has and yet fewer people know how it really works, what protocol it uses etc. In a similar way, lots of people have used MySQL or PostgreSQL for years, but never read the manuals and have little understanding of all the various capabilities they have and the ins and outs of how they work. It's a blend of theory and practice.

I agree with the rest of what you said, and while I did not state it explicitly, I share the sentiment, in fact the Douglas Crockford videos I linked to give a quite detailed account of the development of the Web, including browsers, JavaScript, AJAX etc.

Post reply on HN