

Ask HN: Looking for an overview of web application development - sonofwisconsin

I am interested in web development.<p>There seem to be a lot of languages involved. I am finding the abundance of options confusing. Searching the web mostly revealed strong opinions about the author&#x27;s platform of choice without convincing analysis.<p>Can anyone direct me to a book or site which describes the overall web framework and discusses the merits of competing options? I need something that breaks down how websites are served and what type of operations are performed on the client vs the server.<p>I tried to figure out how websites I liked were built. They tended to list various stacks. The variations convinced me that many roads lead to Rome, but left me without a map of the various paths.<p>Background: I have built desktop applications in java and common lisp. I find lisp more enjoyable, and would prefer to work in a lisp style. However, I recognize that a flexible approach may be required. I took a class in Ruby on Rails several years ago, but it was rather poorly taught. I have played around with html and css.<p>Endstate: I would like to be able to produce a site with capabilities similar to smartsheet.
======
lsiunsuex
I think you answered your own question. The reason most pieces on web
development are opinionated is because there is no 1 way to do something.
Everyone has they're favorite stack and everyone has limited knowledge; even
"great" programmers haven't written in every language / framework.

[https://wappalyzer.com/download](https://wappalyzer.com/download) \- one of
my favorite tools - will give you a little more insight into what smartsheet
uses - they're homepage at least, is a LAMP stack with Drupal.

Smartsheet would be a tall order for your first or 5th project. Get a cheap
server somewhere - start with PHP, Rails or Node and build stuff. Learn how to
communicate from the frontend to the backend - make mistakes, rinse repeat.

I haven't bought or read a book in years; once you get the basic concepts
down, searching google / stackoverflow for how to do something will come much
easier.

~~~
sonofwisconsin
wappalyzer is very cool thanks for the tip.

I realize I won't be building Smartsheet anytime soon, but I want to start
learning the tools with enough power to get me there.

I do plan to "Start with PHP, Rails or Node and build stuff," but first I
would like to have a broad understanding of the frontend to backend path you
describe. I know nothing of this process. I am looking for the basic concepts.
In some ways, I feel like I'm trying to take derivatives with a fuzzy
understanding of algebra. Following the book's example can get you from x^n to
n*x^(n-1), but not to understanding.

~~~
a3n
This is a problem I have with much of technical discussion, not just web. The
writer focuses on details of a solution, assuming knowledge of the big
picture. I'd often like the big picture, so I can have some context for the
details I choose or stumble upon.

It's like reading documentation for MS Word, with every menu item explained
but no clue as to how you'd put together a large, complex document. How to use
every little feature, but nothing on when and why to use the features.

Please keep that in mind, writers. :)

------
pjungwir
Here is an overview I wrote. This is based on a lot of conversations and
emails to non-technical startup people who wanted to learn a bit about the
tech. This same material was also given as a talk at Wharton's Venture
Initiation Program. Some beginning programs have told me they found it useful
also:

[http://illuminatedcomputing.com/posts/2014/03/basics-of-
web-...](http://illuminatedcomputing.com/posts/2014/03/basics-of-web-
architecture/)

Note there are a few "lies" for the sake of simplifying, and some comments are
a little dated, but hopefully it is helpful for you!

EDIT: Let me add, if you're wondering about what language & framework to
choose, my advice is it doesn't matter too much, so don't spend much time on
this decision. Go with your taste/enjoyment and dive in. You can't make a good
choice from reading other people's generalities, so don't try. My preference
is Rails, but tastes differ. (I will offer my own generalities though: Rails
is best at rapid development and adaptability, Python is best at stats/machine
learning, and I'd don't know what Java & C# are best at. For "best at
safety/correctness" maybe I'd choose Haskell. :-)

~~~
sonofwisconsin
Your article was quite helpful. It is surprising how hard an overview like
that is to find. Now I at least know how to direct my research.

Also, I'm definitely interested in incorporating machine learning, so I think
I will give Python a try.

