Live data from Hacker News

Web Programming Is Hard

shubharamani.com

1–10 of 165 posts

Re: Web Programming Is Hard

#2
I periodically think "Man, I really shouldn't be getting paid for this. Any idiot could stick these two APIs together."

In my more sensible moments, I remember that that idiot only needed to know HTML, CSS, the DOM model, Javascript, jQuery, HTTP (mostly headers and status codes), Ruby, Rails, basic MVC design, Oauth, SQL, SQL performance, five-ish APIs to support the two that needed integration, how to configure and maintain a server, system architecture, a bit of security, etc.

[There's also object oriented programming, class inheritance, polymorphism, algorithms, time complexity, discrete math, data structures, imperative programming, and a few other things I forgot the first time around. Lest we forget, we might take these for granted because we've been programming since we were $ARBITRARILY_YOUNG, but to most people these are just black magic. My girlfriend, a smart cookie, asked to see "how I made the phone ring" and, after I showed her the code that did that, told me it had never even occurred to her that every program she's ever seen was once a collection of special words placed in a particular order.]

After that, it was pretty much done, except for the marketing.

On the plus side: you can learn one or a few of these things at a time, and get more comfortable with how deep the rabbit hole goes as you go along. I coded my website in static HTML written in Notepad with no JS or CSS, crikey, only four years ago. (And my brain still recoils at how much better I'd have to get to do e.g. web scale work.)

Re: Web Programming Is Hard

#3
One common mistake when one tries to tackle the web is to do it all at once. What you need:

- get familiar with HTML and css. That is, learn the basics, their purpose and how they interact.

- get familiar with some basic JavaScript and how you use it on the browser.

- learn one of the prominent web languages for the server-side. Python, Ruby, PHP, etc. I used to recommend PHP as a first language because compared to other languages, it was ubiquitous amongst hosting providers. Nowadays, I recommend against, especially if you already have some programming experience. Python and Ruby also have a decent offering and they have the added benefit of a community that generally promotes better programming practices than PHP.

Having an overview of the entire development process, you should now be able to pick one area where you'd like to expand. Being a programmer I suspect you might pick either server-side or browser scripting (JavaScript). Stick to one at first and learn it well. When I started the web I rarely did any front-end at all. I concentrated on the server-side and was aided by some CSS and JavaScript coders. Likewise, I often worked with JS programmers who didn't want to know anything beyond the realm of what they were doing. It's a symbiotic relationship. - It may be tempting to do everything vanilla at first, but quickly switch to using a framework, they're often packed with lots of best practices. They're like training wheels, you can always take them off later when you feel confident.

As you get comfortable with one field you can expand on others. After years playing in the server, I'm only now expanding my client side skills. Also, beyond technologies, other areas of interest that can expand your overall understanding and web expertise, are interface architecture, usability and various other optimizations. As you go, you'll stumble upon many.

Re: Web Programming Is Hard

#4
It seems like there's always been a little bit of a rivalry between compiled language developers, web developers, and network administrators. Having done all three at high levels, I can say that in my experience web development (top to bottom) requires the most diversity of knowledge, which also makes it the most enjoyable to me. At any rate, I'm going to show this to my game developer buddies next time they give me crap about "working with toy languages"!

Re: Web Programming Is Hard

#5
There are frameworks full of very high-level abstractions that can make it a lot easier up front. BUT, that only delays it being hard down the road when the abstraction you got for free has to be replaced. Often that time comes very quickly.

Re: Web Programming Is Hard

#6
post #2

I periodically think "Man, I really shouldn't be getting paid for this. Any idiot could stick these two APIs together." In my more sensible moments, I remember that that idiot only needed to know HTML, CSS, the DOM model, Javascript, jQuery, HTTP (mostly headers and status codes), Ruby, Rails, basic MVC design, Oauth, SQL, SQL performance, five-ish APIs to support the two that needed integration, how to configure and…

It's like maintaining a skyscraper built out of Tinker Toys.

What I wonder is: Does the following sentence run through the head of every expert in every field?

Man, I really shouldn't be getting paid for this. Any idiot could [do X].

It certainly felt true of most of my day-to-day work in graduate semiconductor electronics. It felt true of a lot of biology research. My conclusion is that there are a mere handful of days in your career when you will have to do something so hard that you will feel smart about it. But most of your career as an expert will be spent doing stuff that you know so well that it's kind of routine, even if it is totally esoteric stuff that only you know how to do.

Feynman said it well when he teased the mathematicians: "Mathematicians can only prove trivial theorems, because any theorem, once proved, is immediately seen to be trivial."

Re: Web Programming Is Hard

#7

One common mistake when one tries to tackle the web is to do it all at once. What you need: - get familiar with HTML and css. That is, learn the basics, their purpose and how they interact. - get familiar with some basic JavaScript and how you use it on the browser. - learn one of the prominent web languages for the server-side. Python, Ruby, PHP, etc. I used to recommend PHP as a first language because compared to o…

I would add one thing: get to know HTTP. Even a basic understanding will prevent you from making costly mistakes.

Re: Web Programming Is Hard

#8
First, she thought implementing a linked list during an interview was hard. Then, she says that web programming is hard. And I'm not saying it's "easy", but talk about blogging yourself into a professional grave?

Re: Web Programming Is Hard

#9
As a web developer I appreciate the concession from an embedded systems programmer that I am in fact not simply a monkey, but the quoted section probably goes a bit too far.

For instance, terrible UIs on the web are just as common as terrible UIs in GUI applications. And making a cross-platform GUI application that looks good on all platforms requires familiarity with tools specific to each platform, which is much more involved than learning browser quirks.

The hardest thing about the web is probably how fast it moves, but that's also what makes it exciting.

Re: Web Programming Is Hard

#10
post #2

I periodically think "Man, I really shouldn't be getting paid for this. Any idiot could stick these two APIs together." In my more sensible moments, I remember that that idiot only needed to know HTML, CSS, the DOM model, Javascript, jQuery, HTTP (mostly headers and status codes), Ruby, Rails, basic MVC design, Oauth, SQL, SQL performance, five-ish APIs to support the two that needed integration, how to configure and…

It's like maintaining a skyscraper built out of Tinker Toys. What I wonder is: Does the following sentence run through the head of every expert in every field? Man, I really shouldn't be getting paid for this. Any idiot could [do X]. It certainly felt true of most of my day-to-day work in graduate semiconductor electronics. It felt true of a lot of biology research. My conclusion is that there are a mere handful of d…

"It's like maintaining a skyscraper built out of Tinker Toys."

OMG. That is such a perfect analogy. I've had that same though, but not in those words. I'm probably going to steal that.

Post reply on HN