Hacker News new | ask | show | jobs
by davidbrear 4627 days ago
Just enough to be dangerous...
1 comments

What are you saying? We should stop training and hiring new programmers?
I think in his condescending way he is implying that 5 months is just enough time to teach someone enough programming to be dangerous.

The hard part is I think he might have a point, there is a lot more to been a professional software engineer than I think can reasonably be taught in 5 months (even if you spend that 5 months learning 20 hours a day 7 days a week).

Of course this is all entirely my own opinion, I've seen evidence neither one way or the other to back it up but if I where hiring a software engineer (lets say a web developer because that's mostly what I do these days so the most likely hire I'd make in the near time).

This is at least what I'd expect of someone calling themselves a software engineer :-

At least two programming languages (I don't really care what they are a good programmer can be competent in any of the major web languages fairly quickly).

A solid grasp of HTML, CSS and Javascript (I don't care if you have to google some of this stuff but you should understand the DOM, the CSS selector model and enough Javascript to write a jQuery plugin)

A solid of grasp of relational databases including the following (primary keys, normalization, key constraints, indexes - I'd also expect but not require they'd understand some of the internals and how a query planner works) and a solid grasp of SQL.

A solid understanding of DBAL's, ORM's.

Solid grasp of common design patters (active record, repositories/entity, unit of work)

Solid grasp of MVC and the pro's and cons

Good understanding of either Windows or Linux.

Good understanding of source control.

Good understanding of why comments are important.

Good understanding of unit testing/integration testing.

To use an analogy (I deal with lots of business people, analogies help) You could teach someone to lay bricks to a good standard in 5 months, You could not teach them to be a safe civil engineer.

Your list seems very targeted towards website development and not so much towards a lot of other parts of software engineering. I doubt many software engineers who focus on embedded systems would know much JS or those who focus on trading software, etc.
I specifically say in my post "lets say a web developer".

That is where my area is, I've no idea what I'd want for an embedded developer but I suspect the list is no less complex.

You'd need to know a lot more about data structures, memory management, hardware in general, and probably be at least passingly familiar with the concepts of verified software and the mathematics underpinning computer science to work on embedded systems.
Let's see

- Two programming languages: JavaScript and a Server Side languages (rails) in 5 months is not impossible.

- HTML/CSS/JS: A couple weeks.

- Databases: A couple days.

- Linux: Learn the commands on the go on these 5 months.

- Git: A night for the basic add/commit/push/pull. Maybe a couple more nights for branching.

- Unit Testing: A couple days at most.

To use an analogy (I deal with lots of business people, analogies help) You could teach someone to lay bricks to a good standard in 5 months, You could not teach them to be a safe civil engineer.

Not really. The average student takes 36 months. A more enthusiastic and invested one can perform better than the average in 5-6 months (in my opinion). Don't forget that the guy has industry experience even if it's not related to the field in question.

The "guy" is a girl.

A couple of days to learn SQL, triggers, views, tables, database theory...oh dear god.

Unit testing a couple of days.

I'm sorry I'll give people the benefit of the doubt usually but haha I don't want to live on this planet anymore.

I agree excluding the HTML, CSS and Javascript bit. Lots of great engineers out there that don't ever deal in this bit of software.