Live data from Hacker News

Web Programming Is Hard

shubharamani.com

81–90 of 165 posts

Re: Web Programming Is Hard

#81

Earlier quoted context omitted.

You know, at one point I thought that as well. I felt, that as someone who programs almost solely in 1) C# 2) Erlang -- "thanks I've got a stdlib for that". And then I actually thought about what it takes to reverse a linked list for a second. And immediately realized I will never, ever hire someone who can't regurgitate or reason how to reverse a linked list "from scratch" within a few minutes.

To play the devil's advocate, and I am speaking specifically within the context of web development, what is a practical example of a linked list?

One example,

Given a list of things, implement drag-and-drop way to reorder things.

Re: Web Programming Is Hard

#82
They're hard for different reasons. In my experience, games, scientific computing, trading, and 'real' web backend work (i.e. not 'move this shit into the database' but 'make the database scale to a million users') are hard because they challenge you to solve difficult problems. Web frontend and simple backend work are hard because of the pain in the ass of managing all the different languages and paradigms involved.

Re: Web Programming Is Hard

#83
Is there a need to learn it all though? I'm a designer at my place and here I do all the html/css work and a bit of jQuery fluff on top of that whenever it's quite basic. I do think that's how most places work.

Of course for a developer it's necessary to have some knowledge of html primarily, but no real need for deep knowledge. Not in my, somewhat limited, experience anyway.

Re: Web Programming Is Hard

#84
post #68
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…

I think the people I have the most respect for are the people who master cross-browser CSS going back to IE7. Is there another equivalent when it comes to a somewhat popular technology where quirky fixes are actually the main part of the work process?

Integrating various python modules/ruby gems that all monkey patch over each other?

ducks

On a more serious note, the closest equivalent I can think of is porting games to work on windows, linux and mac platforms. You would have to have a good understanding of the entire renderer, any main event loops and physics, as well as experience in writing very low level code on all those platforms.

Re: Web Programming Is Hard

#85
post #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?

Personally, I find it refreshing to read a blog post that isn't - either directly or indirectly - about how amazing the author is.

Programming blogging has a strong culture of focusing on the newest, shiniest, and cleverest; the only negative blog posts tend to be "why X is wrong". No one blogs about their difficulties, weaknesses, doubts, or the huge amount of effort it takes to get really good at something. I think that's unfortunate, because it paints an inaccurate image of programming.

Re: Web Programming Is Hard

#86
post #20

As someone who has only dabbled in web programming and done webdev-ish work at a company that doesn't "get" the web, I was in shock to see how much I didn't know that was really the bare minimum: http://stackoverflow.com/questions/72394/what-should-a-devel...

I've come across a few of those "bare minimum you need to know to do X" posts on SO and on one hand I think they can be great pointers to the best reference material in a given field.

On the other hand I worry that these kinds of lists promote an impractical approach to mastering a field that is at odds with being a "Hacker".

Think of it as being like Waterfall Subject Mastery versus Lean Subject Mastery. In Waterfall Subject Mastery you try to anticipate what you need to know up front, learn a bunch of stuff, then try to apply it to a problem. There are two problems with this model: First, you really don't know what you need to know. Second, you won't really understand it as well in the abstract.

With Lean Subject Mastery OTOH, you pick a problem and crank on it until you run into a wall. Then do some learning until you can overcome the wall. At first the walls will be many and frequent. But over time your baseline of competency is increased and you actually become productive in the new technology.

What's great about the lean approach is that when it comes time to learn about a specific topic, you have a much better context for understanding it, and thus the effort to learn it is greatly reduced. And because you have an active project, you can put your learning into practice more quickly and thus retention is increased.

The secret, though, to making LSM really work well is to commit to learning a bit more than just what you need to get over the wall. This is the difference between truly learning and being an eternal cargo culter. Don't just start banging against the OAuth library; try to understand how OAuth works. Just do it in the context of a real-world problem.

Don't get me wrong. I'm not against education and learning for learning's sake, I'm just more for efficiency and getting stuff done.

Re: Web Programming Is Hard

#87

Yes, it's hard. Unnecessarily hard, which is why I hate when I have to do it. The complexity of web development is not intrinsic to the problem, but an extrinsic reality imposed by widely differing implementations of a number of overengineered technologies.

Well, if you expand your definition of "the problem" to "how do we enable people all over the world to interact with this information on any computing platform over an untrustworthy connection running on low-end hardware", then I think the chaos and technology soup is a little more necessary to things being where they're at now. So no, it's not technically necessary, but politically/economically it is.

Re: Web Programming Is Hard

#88

Earlier quoted context omitted.

You know, at one point I thought that as well. I felt, that as someone who programs almost solely in 1) C# 2) Erlang -- "thanks I've got a stdlib for that". And then I actually thought about what it takes to reverse a linked list for a second. And immediately realized I will never, ever hire someone who can't regurgitate or reason how to reverse a linked list "from scratch" within a few minutes.

To play the devil's advocate, and I am speaking specifically within the context of web development, what is a practical example of a linked list?

[deleted]

Re: Web Programming Is Hard

#89
Front-end web work, at its basic level, is not hard in the traditional "let's go shopping!" sense, but what I find maddening is how unintuitive some of it is (CSS, I'm looking at you). Then you have to worry about how broken or incompatible browsers are. I think "pain in the ass" is a more apt term.

When you get deeper into the UX, things like A/B, optimizing load time, scaling the backend, etc, and that is where it becomes less tedious and the domain knowledge required is more respectable.

Re: Web Programming Is Hard

#90
Conversely, I think traditional programming seems really hard compared to RoR. I have to think about memory? I have to tell the computer what the variable type is? What are all these funny characters and symbols? I can actually crash the computer with this? What is this compiler thing and all these funny options?

I'm (slowly) trying to re-learn C/C++ after getting decent with Ruby and honestly it just hurts. Few things I do need speed or system access on this level. The verbosity is painful, and you need so much (ugly code) to do so little.

Post reply on HN