Settings

Theme

Ask HN: I'm an experienced developer but I don't understand the internet

4 points by ikrima 15 years ago · 5 comments · 1 min read


I'm a seasoned developer (mainly VFX & desktop apps), but I'd like to learn how to make web apps and would like to learn by making a simple flickr clone. What advice/resources/technologies would you guys recommend for starting out?

Dunning-Kruger effect aside (http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect), I'm hoping it will be easy to ramp up since I'm not new to development. (Altho I hate database work so i'm sure this will get interesting really fast)

Here's what I gleaned from fellow programmers: Python, Google Apps, NoSQL: plus. MS ACS/Azure: expensive.

Thanks in advance

kls 15 years ago

Here's what I gleaned from fellow programmers: Python, Google Apps, NoSQL

This is a really subjective area of web development. There really is not and probably will not ever be an agreement on the best technology stack for the web.

For me personally, I do not use server side web frameworks. I write web apps and I use pure HTML / CSS / and JavaScript for the frontend and a REST lib to expose REST services for the back end. I use Java quite a bit to build my REST services because it is entrenched in the enterprise and that is an overwhelming percentage of my clientele.

I also do REST services in Python, Ruby, C# and am teaching myself node.js for that purpose as well. It depends on the client's tech stack as to what I use. I find that the way I develop is an advantage to what I do because I use common front-end technologies no matter what stack my client is using.

I don't have to keep up with the latest Struts, ASP.NET, Rails, Django or any other api intensive web framework. My UI is detached from the technical implementation of the back end and for me that is an advantage. There are a growing number of developers that build web apps this way, and yet there are others that believe that it is the spawn of Satan.

Anyway, I would say to just start, don't worry to much about what stack as it is more important to understand how the web is bolted together then as you gain knowledge you can make adjustments as necessary to perfect your web-fu. You cant go wrong with Python, Google Apps is great to know the only one I would caution on is the NoSQL.

Not that it does not have advantages and vice-verse disadvantage, but as a newcomer you want to make your transition as easy as possible and I think a relational database would help achieve that goal. There is more documentation and users of the stack you select that know how to work with relational databases, if you get stuck as you will from time to time, you will find it much easier to find info on how to work your way out of a DB issue rather than a NoSQL issue. Even if it is just do your first project with a Relational DB and then make the transition it will help to isolate your learning's to web specific nuances first.

Finally, learn JavaScript it is the only universal web language and it's use is growing. No matter which stack you chose, you will eventually have to write JavaScript.

  • ikrimaOP 15 years ago

    awesome; that's what i was looking for. And, I was also hoping to get advice on algorithmic or architecture knowledge on distributed web apps as opposed to specific details on languages.

    Ex: How facebook scales to 500+ million users or how flickr can serve so many photos that fast. Obviously for my flickr app clone, I don't need that level of performance but I'd at least like some pointers on how to go about it the right way.

    • kls 15 years ago

      Well Facebook uses PHP and HipHop which is an implementation that converts the PHP to C and compiles it as machine code as opposed to interpreted code. It is how they scale on PHP as for flicker they use PHP as well you may want to look at this document, it outlines the flicker architecture and what they did.

      http://www.google.com/url?sa=t&source=web&cd=2&s...

      PHP is with out a doubt the most popular web 1.0 server side language, and if you are looking to do this as a job, then it is well worth it. Personally, I would rather jab my eyes out than work with another line of PHP. It was originally designed by a group of people that had neither extensive language experience nor web experience. It is kludged together and you feel it ever step of the way. Over time, people that do know what they are doing have fixed some of it, but there is still some crap legacy in it. I swore off PHP and will not take a contract that mandates it.

      Now for the good part, it is fast to develop in, it has a lot of support, there is enough stuff built in it that you can find almost anything you need. Wordpress and Drupal are two of the most popular CMS systems and are written with PHP. You can build a site in 4hrs with either one and a template from one of the template sites. It's like crack of the web development world, cheap, dirty, powerful and it gives you want you want, but no ones admits to using it.

cylinder714 15 years ago

Take a look at Software Engineering for Internet Applications: http://philip.greenspun.com/seia/

From the preface: "We assume that [prospective students] know how to write a computer program and debug it. We do not assume knowledge of any particular programming languages, standards, or protocols. The most concise statement of the course goal is that `The student finishes knowing how to build amazon.com by him or herself.'"

wwortiz 15 years ago

Probably best way to do it is pick a programming language or framework and start building your app.

Rails has this: http://railstutorial.org/book (If you need a kick to choose.)

If you don't already know HTML and CSS you should probably learn that first, http://www.w3schools.com/ is a good starting point. (Not really a lot to learn but very valuable.)

And javascript will be useful but you could probably do without it for making a simple app.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection