Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Of course it’s useful. My argument is that it’s no longer necessary for most programmers. Almost every language now comes with a native good enough hash table implementation.


It's necessary when you need to debug something, regardless of who wrote the implementation, now it's you're responsibility.


If they want to be allowed to write Engineer so-and-so, yes it is necessary.


That's laughable. Software "engineers" pretending that "software engineer" is a protected title in any way or form (including soft and metaphorical community based protection).

We'll get to call software engineers actual engineers when they can lose their (currently not existent) license over malpractice, not a second before that happens.

The tech industry cheapens the term "engineer". The discipline isn't nearly enough mature to be called that


It certainly is in many countries, where one isn't legally allowed to call themselves as such after a 6 weeks bootcamp.


Do you have any cites for that?

I’m not aware of any that even attempt to hold software engineers to any sort of Professional Engineer standard, or have a mechanism that one could actually comply if they did.

I do know of some areas where a PE is required for some software engineers, like some nuke or aerospace shops, but they’re very very few in number - and the PE isn’t about the software part of it.


In Germany you can only call yourself an engineer if you actually have a technical degree (details and exact implications vary by state). "Software Engineer" might or might not fall under that regulation, though it is probably the reason why most job ads in German will call for "Software developers" not "engineers".


Sure enough, thanks! Looked it up and it seems like Engineer is the protected title, which plausibly would apply (Ingenieur formally).


Portugal, Germany and Switzerland for example.


I wish more people saw through the corruption of terms like software engineer.


Almost as laughable as people who fawn over professional titles.


I mean, you can call a homeopath doctor (not sure if the expression is actually valid in english... it is on my native language) an actual doctor and it's gonna be approximately as ridiculous as calling a software engineer an actual engineer.

Tis a technical blog, being pedantic about expression meanings is all the rage around these parts :)


Well as long as we’re being “tehnical” you seem to have completely missed my point. Whether you are called a “tehnologist” or a “code monkey” or a “janitor” or an “engineer” is less important than the work you do. And being obsessed with pretentious titles is much more of a sickness of doctors, engineers and other professionals, and I would venture to guess less of a sickness of homeopaths, aroma therapists and other weirdoes.


I'm not sure what you're saying? That someone's not a real engineer unless they can implement a hash table? Firstly, I don't think any programmers are classified as engineers by law in some countries. Secondly, I don't think I've even once thought about implementing any high school/college data structures at work because all of them have libraries with much better implementations.


Any software engineering degree in countries with professional titles has algorithm and data structures as compulsory lecture, and exam.


What countries are these you keep referring to?


I don't know what he was referring to specifically but I this would be the first time that I hear of a country that actually has a protected title of _Software_ Engineer.

Plenty protect "Engineer" meaning "Software Engineer" is actually a title that you _can not_ hold.

As for the "mandatory courses on algorithms" and such if you go to university, definitely Germany. If you go to university and study computer science, the first few courses which you will have to pass before ever getting to choose your own courses are going to be about modelling, data structures and algorithms. You will learn the theory of hashing, you will learn how to model problems you will learn various sorting algorithms etc. in the lecture. Labs will make you implement various of these things on an actual computer. An exam will probably ask you to write one or two of these algorithms in pseudo code. Been there, done that. And of course comparing all manner of algorithms in Big-O notation etc. Also "reducing" one algorithm onto another (dunno if that's the proper term in English). But basically taking an algorithm that you know the run time of and showing that a different algorithm you have has the same characteristics and thus Big-O complexity. You will also learn about P/NP and will implement bin packing and such.

Unrelated to hash tables but hashing always reminds me of substring search algorithms that we learned about. The naive way is to just do a "text" search, advancing one character at a time and comparing the whole thing to your substring. I don't remember what the algorithm is called or who invented it but we learned about an optimization for substring search, which hashes with a particular hash function and when advancing a character in the string to search through, you reverse the part of the function for the first character and only add the result of the function for the next character. Thus you save having to deal with the characters that haven't changed at all.

Just like hash tables or linked lists, I've never needed to code any of these ever again and I just use them, but it was definitely worth learning about all this stuff.


Portugal, Germany and Switzerland for example.

The respective order validates that Software/Informatics Engineering degrees are actually engineering.

Additionally, for certain legal activities like signing contracts with liability, putting the Eng. so-and-so is only legally binding if the title was validated via the traditional admission exam.

Also you can be sued if lied about having a title, although since our prime minister got away with it, and legal system takes ages, probably no one would bother unless some big loss comes to be.

And if you so wish, can also get the ring.


Just like you had to learn how to code with absolute memory addressing because only a silly non-engineer would waste computer resources on a compiler, right?


That's why it's called a computer science degree, not a gluing-libraries-together degree.


Yes, programming in Assembly is usually also a possible assignment during a 5 year degree.


So if one is pretentious.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: