Readit News logoReadit News
Posted by u/neLrivVK 10 years ago
Ask HN: How does a 1990s web developer get back on track?
During the late nineties I was making various interactive/dynamic websites using the then standard technologies: HTML, PHP, Perl, Mysql, and a tiny bit of CSS. This was the time when Javascript was really only used for form field validation and to spawn popups (Ajax was not yet around), when all layout was done using borderless table/tr/td HTML elements, when there were no mobile devices and all you had to care about was one or two screen resolutions and basically two browsers: Netscape and MSIE. Since then I have been pursuing my IT career in a different area. But sometimes I still find myself wanting to setup a website every now and then. But in the little free time I have available, I stumble upon all kinds of web technologies and frameworks: JQuery, Node.js, Ruby on rails, AngularJS, Backbone.JS, Django, Bootstrap, to name a few. Ofcourse all have their purpose, weaknesses and strengths. But after work and family, there isn't much time left for exploring and trying new things. Maybe other people have already made this journey and can share their experiences? What would be the best way for a nineties web developer to update his knowledge and skills?
brudgers · 10 years ago
My take is that a greater percentage of websites can be written in HTML and CSS than currently are: both in the sense of websites that could be entirely written in HTML and CSS and as portions of websites that can be written in HTML and CSS instead of with something else.

Many of current batch of tools were developed to meet the needs of engineering teams at scale: e.g. Angular @ Google and React @ Facebook. Their heritage is not "hobbyist programmer" friendly. They are great if the hobby is reading about technology. But many many of those opinions embedded in Django and Rails only become natural once a person is deeply familiar with the culture of their communities.

My advice, do the simplest thing that will work and make something. Pick tools that require a lower level of commitment to an overall architecture as the need arises. Stay out of silos and rabbit holes.

Good luck.

userbinator · 10 years ago
I can't agree more. The tons of frameworks and libraries coming out are suited to specific use cases, more web applications than simple sites, and using them unnecessariy will not gain any advantages. If you just want to "setup a website every now and then", your current skillset is more than sufficient. Don't fall into the trap of using new technology for the sake of using new technology.

You may notice that when late 90s/early 2000s sites get posted to HN, there are often a set of comments on how quick-to-load and readable they are.

davewasthere · 10 years ago
Completely this.

If I teleported here from the 90s, first thing I'd need to wrap my head around is how HTML and CSS have changed. I'd be learning a responsive framework (or even hand-rolling it, so you know how it works) like bootstrap. And doing a very basic website.

And if html5 & responsive css aren't enough to wrap your head around at once, I'd create a github account, and start with github pages. That'll let you use the static site generator Jekyll. The combination of all three will do pretty much all you need for 90% of the sites out there.

After that, then I'd look at a stack that lets you have some degree of interactivity and persistence in order to build web apps.... But for now, clean responsive websites would be the way forward.

robeastham · 10 years ago
Take a look at Susy for layout, bit more flexible than Bootstrap:

https://github.com/oddbird/susy

Also for static site generators take a look at:

https://middlemanapp.com/ (Ruby) http://gohugo.io/ (Go) https://github.com/getpelican/pelican (Python)

When you need to go beyond static sites and take a look at the web frameworks - Ruby on Rails is the obvious one, but I reckon that Meteor (https://www.meteor.com/) could be a good bet now that it has matured. Might save you a lot of time when compared to RoR for certain tasks.

gelatocar · 10 years ago
Staying out of silos and rabbit holes would probably mean avoiding bootstrap, github and the like. Totally agree on building clean, responsive sites though.
voltagex_ · 10 years ago
Yeah. Bring back text/plain and the idea of progressive enhancement. I started trying to learn React.js and fell down the rabbit hole you mentioned.
zachrose · 10 years ago
I second this. Additionally, if the choices are still overhelming and you have an idea of what you really want to build, I would suggest trying something like writing cucumber features[1] and running them in a headless browser.

I'm sure many people will tell you about their negative experiences and how writing these kinds of "tests" are slow or misleading or a waste of time. But I would say that deciding what your software does--even in an abstract and gradual fashion--gives you tremendous freedom in knowing that all the other choices are just implementation details of a larger design. (As the parent says, a "lower level of commitment".)

[1] https://cucumber.io

blhack · 10 years ago
Here's a semi-controversial opinion: you probably don't need to learn much.

You don't need hipster.js to build a website. You can still build websites that can be used by millions of people using PHP, mysql, and HTML.

Lots and lots of people will tell you to learn hipster.js, and will imply that if you aren't using something written by 3 20 year olds in a coffee shop during a hackathon, that you can't get The Scale.

But the reality is that people have been getting The Scale with the tools that you already know since you learned them.

Here is a relevant blog post: http://thingist.com/t/item/21434/

habitue · 10 years ago
This isn't a very controversial opinion on HN. It's the standard "js developers are just crazy ADHD kids and all they do is chase the latest shiny framework every week". It gets featured prominently in every thread that mentions webdev.

It's also wrong. There is a spectrum from early adopter to head-buried-in-the-sand cobol developer, and most people would agree there are trade-offs to being on either end.

Suggesting to someone who has been out of the game for 15 years that basically nothing has changed is doing him a disservice and not answering the question. He's asking about what he's missing, it's better to let him in on it and let him decide for himself if it's really just the same old shit repackaged.

dev360 · 10 years ago
On that note, I'd throw in SPA's and REST. Thats a big conceptual difference in how apps are built nowadays and worth to get up to speed with.
ank_the_elder · 10 years ago
misja111 · 10 years ago
Wow, what about Html5, ES6 and Ajax? Sure you can ignore those new technologies and keep on building your website in PHP and HTML4. But nowadays most customers want more than a simple form based website.

In 2016, chances are that your website will also be used on tablets and smartphones. Those users want a fast interactive user experience. Which most likely means a single page application with a substantial amount of JS code running on the client side and an Ajax interface to the backend.

To become a good web programmer you need to get some proficiency in Javascript and HTML5. And you need to get an idea about how to deal with the asynchronicity of Ajax calls in an elegant way in your code. That doesn't mean you have to start using Angular or React, but it is a good idea anyway to look at some modern frameworks to get a feeling for which concepts work well and which don't.

igravious · 10 years ago
So, it turns out that going by the responses to @neLrivVK's question that this opinion of yours is in not in any way controversial. In fact I think it would be a great topic to have a poll about but first we'd need to agree on what to put in the poll :) Straw poll suggests that at least 50% say, "stay the course but tweak knowledge".

Of the tech that the OP listed two things are _not_ hipster.js front end libraries or frameworks, and I wish I had mentioned them in my other response below.

1) Bootstrap: This is a huge productivity boost for CSS. You get a responsive layouts, a standard way to do grid layouts and it papers over browser differences and compensates for older browsers. OP says they don't use much CSS, that really doesn't cut the mustard in 2016. And, hey, Bootstrap is made by those guys at Twitter† (not 3 20-year-olds in a coffee shop as you so amusingly put it!) so they probably know a thing or two about UI layout and design. I'd be interested to know what % of websites now use Bootstrap or something inspired by it. Bootstrap was released as open-source in August 2011, it'll be 5-years-old tech this year.

2) jQuery: This is a huge productivity boost for JS. Of course you can use that hipster tool Vanilla JS (http://vanilla-js.com/) but jQuery is so concise, the syntax and semantics are well thought out, again papers over browser differences. You can chain operations together. The way it does selectors is brilliant. John Resig basically had some sort of divine inspiration. That fact that he was 14(?) at the time of writing it... well... that's how one learns to be humble in life. Sure raw JS is going to blow jQuery out of the water perf-wise but going by what OP says, dev time is what we're optimizing for here, jQuery will be plenty fast. It's used* on what, ~ 70%..90% of websites? I'm surprised a version of it isn't built into browsers yet. jQuery is 2006 tech, it's a decade old this year. (Also released as open-source in August, hmm).

† and Angular is Google tech, React is Facebook tech, Rails is 37signals tech but all have have huge open-source communities.

* http://trends.builtwith.com/javascript

cpayne · 10 years ago
THIS is spot on!

The only thing I'd add is to choose one of those technologies (jQuery / Node / Angular / Whatever!) and learn it (reasonably) well.

I can't tell you how many times I've used Pluralsight to bone up on a particular technology...

sreejithr · 10 years ago
Dude, you're missing the point. Angular ⊂ hipster.js.

Dead Comment

herbst · 10 years ago
Agreed. Learn Bootstrap and safe design time, and give a fuck about all that hypster technologie. A framework in your favorite language with a proper ORM would definitly help tho.
habitue · 10 years ago
Bootstrap was released a decade after this guy stopped doing webdev. This is the kind of stuff he needs to know about, and why the whining about "hipster" stuff isn't useful.

He is looking for the basics of modern development. The stuff you consider solid, reliable, time-tested, (non-hipster) tech came out years and years after he stopped doing web development.

Deleted Comment

hiram112 · 10 years ago
>Here is a relevant blog post: http://thingist.com/t/item/21434/

Compared to the typical opinion pieces these days, what a breath of fresh air!

dwd · 10 years ago
Agreed - unless you have to work with youngsters who insist on "shiny new things" you can still use the same languages you are familiar with to just get stuff done.
santaclaus · 10 years ago
> unless you have to work with youngsters who insist on "shiny new things"

I know quite a few oldsters with shiny new thing syndrome.

SignMeTheHELLUp · 10 years ago
Wow, there is a lot of awful advice in this thread.

HTML, Javascript and CSS are still extremely important and they have come a long way since 1990. Forget everything you knew about them and research their state in 2016. You have a lot to learn, but you'll find all three more powerful and expressive today than they were in 1990.

There is currently a big shift in the way clients want their websites to work. In the past (and present) clients were happy with simple HTML pages that were generated on the server and sent down to the client for every action the user performs. Now and in the future, we're shifting towards "Single page apps" which are Javascript centric applications that store page templates client-side and talk to the back end through APIs. Page transitions are emulated with Javascript routing libraries. This means the frontends are more complex but can provide a richer, more interactive experience. To see the cutting edge of this technique search for React + Redux.

Backend development is still important. People generally converge under a simple set of rules for backend development called Model-View-Controller. This is a design pattern that dictates how requests are delegated into your business layer. Investigate MVC as well as Domain Driven Design to get yourself up to speed.

Understand that there is an enormous amount of garbage out there right now. Some things to be extremely wary of are NoSQL databases (they have very limited use cases but are marketed as a silver bullet) and NodeJs (a backend server which executes Javascript but has more than a few shortcomings). Be extremely skeptical of any advice you receive over the internet. There are too many people dispensing advice with no actual credibility because of the ease of access to the Internet.

The best thing to do is to work with some talented developers and build your own network from them. A lot of developers on the leading edge use Twitter and often drop useful bits of advice to keep you on the right track.

joeyspn · 10 years ago
> There is an enormous amount of garbage out there right now. Some things to be extremely wary of are NoSQL databases and NodeJs.

> Wow, there is a lot of awful advice in this thread.

yesbabyyes · 10 years ago
Sure, but then again:

> Be extremely skeptical of any advice you receive over the internet.

:-D

adambratt · 10 years ago
I think this is probably the best suggestion in here.

And I'd just add that there's no need to jump into a new backend language if you used PHP years ago. Sure it's not as robust or structured but for a hobbyist it can do everything you need and there's still plenty of jobs for it if you want to graduate to an MVC framework.

golergka · 10 years ago
> NoSQL databases (they have very limited use cases but are marketed as a silver bullet)

NoSQL is very, very, very bad when your data is conceptually relational.

On the other hand, when you really have individual documents which can have different layout and don't have much interactions between them, NoSQL can be pretty awesome.

So, just understand what kind of system are you working with before choosing one approach over another.

anonx · 10 years ago
> in the future, we're shifting towards ... Javascript centric applications

Are we? I expect 2016-2017 to be a turning point in the history of client-side web-development due to WebAssembly. Is it just my wet fantasy?

mwpmaybe · 10 years ago
I hope so but it's going to be a while before we have a decent, feature-rich language (with accompanying frameworks) that compiles down to WASM and wide-enough browser coverage to make it a practical development target.
gaius · 10 years ago
But users hate them. Users want their browser's back button to work in a sensible way.
aminorex · 10 years ago
So true. But people who pay web designers like them.

Deleted Comment

pfarnsworth · 10 years ago
Asking here probably isn't the best thing, because most people here are at the forefront of the latest and greatest, so you will probably get a ton of suggestions and reasons why. Throw mine on top of the pile as well.

You need to first define what your goal is. Do you want to become a full-time front-end developer? Do you want to be a full-stack, etc. Different aspects will require a different subset.

First and foremost, you will need to figure out how to get more free-time so that you can master a whole slew of technologies that have come and gone in the last 20 years. This is a cold, hard fact. You have a lot of ground to make up for, and if you can't even start up a web site, it's going to be tough getting legitimacy as a modern front-end developer.

I would start off with the fundamentals, ie. HTML, CSS, and Javascript. Knowing how to build things from scratch, using AJAX, etc, from pure Javascript without frameworks will help you understand why some frameworks are better than others. Then you can migrate to JQuery and Bootstrap. Once you have mastered these, you can then go on to whatever current framework best suits you, but you'll be able to understand the current challenges best.

petke · 10 years ago
Thats interesting. Are most people on HN web developers? It makes sense I guess. Im an old C++ programmer and I get the vague feeling that I'm in a minority here. Has there been any polls on HN demographics? Who are you guys?
ionised · 10 years ago
I'm a desktop applications dev working for an engineering consultancy. I mostly develop and maintain our GIS and simulation applications.

We use a combination of C++ and Java with an Oracle PL/SQL back end.

We plan to deliver some of our applications through web applications/services over the next few years. I've touched on Javascript a bit but as of this moment, I have very very limited exposure to web development of any kind.

I've only been programming for just over three years though, so I'm still kind of in my junior stage.

joeyspn · 10 years ago
> But in the little free time I have available

> But after work and family, there isn't much time left

If you want to ship ASAP with little time investment, IMO nothing beats Meteor. Skills required: HTML, CSS, JS.

I've built projects with PHP, Rails, Django, Node, Angular, etc ... and Meteor is the framework I recommend to newcomers. Ok, you're not exactly a newcomer, but clearly you've been disconnected many years and you don't have enough free time to learn new tools/languages. You'll need a lot of abstractions (features, deployment, db interfacing, best practices, etc)...

Meteor will help you with this, a lot... And the most important thing: it's a lot of fun!

https://www.meteor.com/

0,02

sergiotapia · 10 years ago
Meteor takes the suck out of web development and feels so drastically different from everything else. Definitely worth it to take a look.

If you decide to use Meteor use: http://guide.meteor.com/

vskarine · 10 years ago
+1 for meteor highly recommend to start with https://www.discovermeteor.com/
sergiotapia · 10 years ago
No, discover Meteor is extremely outdated.
anonyfox · 10 years ago
I'll second this.

Meteor is in fact the fastest way to achieve a webapp nowadays. You can learn it in a weekend if you want to, and drafting highly dynamic interfaces is a breeze.

If you want to scale later, in terms of code complexity as well as runtime performance and so on, Meteor isn't that good, but having thousands of concurrent users is a luxury problem to have.

To get an idea out the door, Meteor.

(I'm a fullstack dev who has worked with dozens of languages and even more frameworks, and went through all the popular frontend tech's since jquery, so: been there, done stuff)

ofcapl_ · 10 years ago
Meteor is great for side-projects, finding a good job as a Meteor developer can be hard - maybe make some research first if there're any job offers in Your area if You are thinking about going full-time with Meteor.
rutigs · 10 years ago
It's pretty easy to break it down to the common parts but there definitely is quite a bit to learn.

NodeJS or Python or Ruby

These are your fairly standard backend choices. They all have minimalist and full featured frameworks for building applications including but not limited to Express, Koa, Ruby On Rails, Sinatra, Django, Flask. Go is also fairly easy to get going quickly in. There is not really a wrong choice here for a personal project.

In the case that you want a single page application that works with the backend you made with the previous choices:

Backbone or Angular or React+Redux(any flux implementation will do)

These are for consuming your backend and any of them will do. Learning Angular is its own thing despite it being javascript. React+Redux seems a little odd by embedding html in your javascript but once you get the hang of it it's pretty neat. Don't know much about Backbone but I've heard its fairly easy to use.

Bootstrap is pretty easy to learn and use to make your website responsive with minimal effort.

Heroku is by far the easiest platform for deployment and horizontal scaling however it can get pricey quickly. AWS has a similar solution with Elastic Beanstalk but I've got no experience to share with that. If you want all the control (but more work) you can go with Digital Ocean for a 5$ VPS. Unlike Heroku you will have do all admin work like installing necessary packages, databases, and configuring a web-server but you can control every little bit of your application without having to spend more than $5 a month.

matdrewin · 10 years ago
As a former Java/Spring developer from the mid-2000s trying to get back into the fold, I think Ruby on Rails is the best bet. It is not the latest and greatest and its a tad slow performance wise but what it lacks in speed it makes up in clarity. Especially on the documentation/tutorial front which makes for a quicker learning experience. I find the most interesting part of RoR is its "curated" (almost Microsoft like) environment where choices are mostly made for you instead of banging your head against the wall making choices about all the different libraries and tools you should use.
wsc981 · 10 years ago
From what I've seen recently, RoR work seems to have decent pay when doing it remotely, compared to PHP. Perhaps less competition on price from developing countries?

I intend to learn RoR in the nearby future as well, since I'd like to do more remote work and less "on location" work (which I currently do as iOS dev).

piratebroadcast · 10 years ago
+1 to this
josinalvo · 10 years ago
(can we post meta things?)

Given that I don't know the score of the answers, such "+1" answers are useful to me. Thanks!

sharemywin · 10 years ago
Instead of trying to do it all at once you might want to take it in chunks.

I would start on the front end and

I would start with looking into Bootstrap and jquery. And look at using PHP to deliver the webservice data to jquery. http://tutorialzine.com/2015/01/shoutbox-php-jquery/

------

I would also google some MVC PHP tutorals to get some idea of how MVC works since alot of modern frameworks are modeled after it.

----

next pick a javascript framework to make a SPA here's some tutorials(middle of the page) on using angularjs with php: http://www.angularcode.com/

-----------

now your ready to swap out php for another server technology. nodejs, RoR, whatever.

---------------------

jakejake · 10 years ago
+1 for just starting with bootstrap - which will introduce you to a little jQuery. That'll be a good foundation and will allow you to have some fun without being overwhelmed.

Once you have that in your pocket you'll be ready to try any of the new js frameworks that are being mentioned here.