Amused

Off to CodeCademy

I can't say that I know it, or that I have used it. If I had to, I would say that I poked around CodeCademy to see what all the fuss was about. And that is what I have been hearing, fuss. And that doesn't always translate to quality. While, it seems decent for teaching beginners but In all honesty I prefer just reading up on the documentation and following written tutorials if I am trying to understand a new technology or language.

Yet, CodeCademy was making some waves and I do tend to checkout the source of those waves. What I kept hearing, where people say that it was pretty good and easy to use. What I saw though was that you have to really make it a point to understand what's going on.

I watched somebody use the Python course, and they were pleased at their pace and with everything that they "learned". When I talked to them later they were about halfway through the course, yet they hadn't grasped everything leading up to that point. This only became obvious when they tried moving on to the next exercise and they were completely lost.

The basic foundation was simply not there.

From my exposure I would say that CodeCademy is really only good to give people a taste of programming.

It will be hard to build anything past a simple static website after completing most of it. In the end I feel like it is a great way to get my feet wet in new technologies and may ignite a few peoples interest in programming.

As far as I can tell, the exercises are short and simple, yet that is rarely how programming works.

Amused

If (Web Developer == Software Engineer)

What's In A Title?

Seriously, is there really that much of a difference between these two titles anymore? I mean it's pretty much up to somebody in HR, and how they decide isn't very in tune with what is what in the tech world. I assume that is the same for the other office chairs they fill, but that isn't my part of the office. Still it can get annoying, especially when they reclassify titles, usually with a huge salary difference.

And trust me, they do!

If you have been interviewed by them you will have noticed that they rarely know anything, yet they use the terms interchangeable and try and speak as if they have more knowledge about the subjects than you do. If they really did, they would be debugging the application, not sitting their hiring you to do it.

I will be fair. This is not true for all companies. In some companies, Web Developer and Software Engineer are two different positions.

In companies like that, WD will be focusing on front-end technology, SE will focus on back-end and system level programs.

In other companies, they are exactly the same thing and they will expect you to be a Jack of All Trades (and if it is a startup, master of them all as well). Some of the the companies I have worked with didn't even use one or the other.

I've been called an analyst, programmer, programmer analyst, engineer, developer all in the same job (partially by the same person). What did it mean in the end? That I was expected to fix things and add new features to a staggering behemoth that was in dire need of refactoring.

Did it happen?

Not all of it, but you can always pull a few levers and still look golden. But that is beside the point.

There's also another view which I should mention. The idea of a Software Engineer is sometimes more flexible. They think that you are in a hire position, meaning that you should be able to do web development as well. That is to say that you can build a billion dollar mobile app, write a complex desktop application and then jump in and write some low level C code. Whereas they see a Web Developer as somebody that is only expected to handle web/http applications.

You know; the holy trinity of HTML/Javascrit/CSS.

Still there is nothing keeping them in that category.

Anyone can call themselves a "software engineer" here in the US and you will encounter many software companies that call their employees software engineers because it is more in style right now than other titles. (It makes the company look bigger and more important.) The term "engineer" is not "protected" in that sense.

That is not true for other countries.

In some countries you can call yourself a Software Engineer only if you have the degree (e.g. Germany) and if they have the degree they will take offense when you use the term "without earning it." At least the import did at my last job. It was fun teasing him about it.

The truth is though, that today's Web Developer are able to do more and more. The web is also getting to be more like a real application so the difference is becoming blurred.

Many modern websites are more than just that — they are full web applications.

One that I had a lot to do with lately is Magento. nd to call that anything less than a complex eCommerce platform would be doing it a disservice.

It requires an understanding of an array of programming design patterns and paradigms in order to be able to use it. Yet due to the nature of the beast you would be called a Web Developer if names actually had meaning. So you could say that my appropriate title was Web Developer since it is after all a web application.

Which leads us to the question of the day; What's with the ->

Software Engineer/Software Developer/Software Programmer

These days the titles are used completely interchangeably and the terms are interchangeable, regardless of their historical meanings. Which I felt like I knew at one time. But then I realized that I didn't know anything.

And yet I am going to share my informal rule with you.

But in all seriousness, if you are concerned about what happens at the machine level or regard garbage collectors as a nice to have, you're probably a programmer.

That isn't true about a developer, there is a good chance that they are not going to even care about these aspects. What they are going to be concerned about is finding and leveraging tools to deliver rapid prototypes as well as new features to production. This will typically be in a business setting with end users who are not overly technical.

Then we have the engineer who focuses on building the tools that your developers focus on being extremely adept at using.

The engineer will focus more on delivering robust, quality solutions and providing guarantees of backwards compatibility, for users who are technically savvy.

Today well all see things less strict, though those differences are there they don't have different meanings, to recruiters/HR which are about as technical as a shaved monkey and think there should be a difference.

Oh well, throw them a banana for trying.