Sunday, August 14, 2011

Back end or front end?

Where to start beginners in your organization? I'm talking about software people. College fresh. They know the basics, had some internships, worked on some open source projects, have their own projects, etc.

Now it's real life and you've hire this person. In the world of the web there is integration and front end usually. Integration is data, commands, logic, controllers, middleware, messaging, ETL, SQL, etc. Front end is UI, HTML, CSS, Javascript, the view, DOM, jQuery, Dojo, element positioning, AJAX, etc.

Which is best suited for a new hire, or recent graduate? I have no idea, but at my last job, fresh hires were front end people, and those with a few years experience we backend people. While I don't know which is best, I do know the blind statement that the front end realm is easier for beginners is completely wrong.

I went the other way, I started in the backend and recently and now spending my days in the browser. For me, this was a good fit. In college I wrote simple command line tools, and applications. I studied data structures and algorithms. I did some UI work for dumb web apps in my database class, but nothing with "style". I took and HCI course, but it wasn't about "design", it was interaction, psychology and humans. I knew Linux, the shell, scripting, etc. I knew Apache, MySQL, PHP, Python, C/C++ and Java.

I didn't learn about the browser, UI, styling, design. Why would the front end be a good start for a recent computer science graduate? For me, I have no idea.

Server side languages for the view are also not easy. PHP is prone to terrible code. I've seen some terrible JSP implementations with no respect to reuse of what already exists in the context. Functionality is thrown together with little guidance or best practices until you know better. Maybe there are better languages than PHP now, but I imagine they are still prone to inline HTML with simple functional concepts.

I guess in summary, bad fits make for bad results. Beginners don't "always" belong in the browser, or in server side languages for the browser. They belong where they "fit". If on their resume they have a lot of theoretical nonsense academic work with no portfolio on the web, they belong on the back end. If they have sweet start up sites and demo's, maybe the front end. Or, the person you are hiring does not want to do what they already know and want something new. It all depends. Don't force people into organizational stereotypes because it's what you're used to.

No comments:

Share on Twitter