Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Conceptual Introduction to Web Development (milanlandaverde.com)
49 points by mdaverde on Oct 20, 2013 | hide | past | favorite | 19 comments


This is really important, and the kind of thing that was glaringly missing when people replied to my newbie questions.

There is a whole "big-picture" aspect that is glossed over by experts, especially experts that were guided throughout in internships and first-jobs.

I would say that the obstacle for an average joe to get his ideas up in the web on some capacity is not HTML/CSS/JS/Backbone programming knowledge, but deployment. People who say Heroku is braindead simple are not seeing the bigger picture (although it is great).


1. "The Web is fundamentally a distributed hypermedia application."

2. We build architecture substrates for the space of URLs (URL-Space): URL-Driven Development. (This is ultimate a Language Problem-set/Conept.)

3. I try to practice Hypermedia-based View Methodology, and the notion of "Creative Encounter with Digital Artefacts" (recommendation engines that use "imaginary rules") is becoming a viable system of thought.

I believe these points were not made. What are the alternative ideas? This OP only discusses the stuff underneath, not the conceptual overhead or the conceptual scheme of Web development.

We want to build Web applications that evolve, and which can last throughout generations. None of this was even remotely addressed.


Looking back on my years of PHP pain, I feel it would be a commendable thing to end this article with just a small sentence on the importance of choosing the right tool for the job. 10 years ago I would have read this and gone off to learn PHP and MySQL.


PHP got a lot better. In fact I would say it's the best web platform today, if you pick the right stack (eg: nginx + Symfony2/Silex + PostgreSQL). You just had bad timing.


I don't know if that's neccesarily the wrong way to get started, PHP and MySQL.

It's how most of _us_ got started, right? (Okay, I got started in Perl, and only dabbled in PHP).


You started in Perl? That's hardcore.

The PHP/MySQL was ok back then, but there's so many great alternatives with great exposure today. Aside from ease of deployment, I don't see what benefits there are now.


My girlfriend is just starting learning web development. She now has a very basic understanding of HTML and CSS.

Then she went to Rails Girls London to learn a bit about the backend. Unfortunately (and I know as I was a mentor at one of this events) RoR is completely unsuitable for a beginner. It took me one hour to explain what a console is, and she still doesn't really know what to do with it. She had all this questions like "what is a controller", "umm how do I open this page now again?", "umm how do I do X", "how do I do Y".

Now contrast this with PHP. I setup a simple server, install PHP, get it started and then just tell her "create a new file called 'index.php' save it in this location, then open your browser and enter localhost/index.php". That's it. She doesn't need to know about generating controllers and rakes and db migrations and what not. Open text editor, put html in there, put some PHP in there. That's it.

Seriously, PHP is perfect for a beginner. She can learn about MVC later. Right now all she wants to do is to create something and have it work. She really doesn't need to know about adding model validators and what not.

And from what I know about Python it's the same deal as with Ruby. You just can't create a file and start writing a web page without pulling in a bunch of boilerplate.

So bottom line is: yeah PHP is way relevant today.


Even though I'm the one who suggested that maybe PHP was a good place to start...

I think it's probably a mistake to try to learn web programming without learning _programming_ first. Hello world. Loops and conditionals, math, etc.

Because while many of us learned web programming with PHP, many of us also learned programming before we learned web programming.

And you _can_ just create a ruby or python file and start running it, not for a web app neccesarily, but for learning programming. (In this sense, they are better for this than Java, because there's no compilation or boilerplate, you really can just create a file and run it)


When I got started, a perl script in /cgi-bin was not an unusual way to go. :)

And that's exactly the thing about when I started. I already knew Perl. Then I learned HTML and how cgi-bin worked. There wasn't even CSS back then. The I learned SQL, and then CSS. Then eventually Javascript. Then Rails, and JQuery. Somewhere in there I learned more about the parts of the Internet and TCP/IP that matter, like DNS. Then fancy things like the Rails asset pipeline (it is useful, and it is very confusing), and increasingly deep knowledge of the DOM, Javascript, ruby, Rails, etc.

In the end, I learned a lot, but I learned it over several years. And I already started with basic programming knowledge.

I honestly don't even know how to tell someone to get started today -- it's a LOT of things to learn, you just can't learn them all at once (none of us did).

So maybe PHP is the place to start. I don't know, I'm not sure, but maybe. I wouldn't want anyone thinking it's a good way to do anything beyond learning and maybe deploying _very_ simple sites, but I don't know a better way to learn -- it's how most of us did.

What are the alternatives with great exposure you think would be better for someone to start with? I am curious for real!


Why are you using jQuery without including it? Isn't that going to confuse the beginners?


Here's a similar conceptual overview of "how the web works" in terms of client-server operations but done in a more interactive diagram style: http://nilclass.com/

It's a work in progress which helped me get a lot better at d3.js but I truly believe in this style of teaching as foundational knowledge. I think one of the best things veterans can give to newbies is _awareness_ and _perspective_.


Nitpick: The JS heartbeat can be done in CSS3, otherwise this is great!


Can someone who downvoted arcarda explain their reasoning? I agree that the animation should be in CSS(3), or at least not JS(leaving it out animation entirely might be best).

There are plenty of examples you could show in JS that would better show that it is where logic and behavior is stored. How about setting a textbox or showing an alert?


Nitpick: it can also be done in JavaScript.


Both your comment and its parent are right. It could[0] even be done in HTML with <blink>

It should be done in CSS.

0. Not even sure if blink still exists, or if you can set it to animate, but my point stands that best practices are important.


According to Mozilla Developer Docs <blink> is non-standard and deprecated. RIP blink tag. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bl...


It should be done in CSS.

Not if you want to show a simple JS example.


My point is that there are many examples to show. Why pick one using bad practice?


This is a good idea, but a conceptual introduction to web development that dismisses UI/UX as "basically, what makes sites look good" is not one I could ever recommend to anyone.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: