4 ms·
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 i
by Swizec 5y ago
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.
- yakubin 5y agoIt's necessary when you need to debug something, regardless of who wrote the implementation, now it's you're responsibility.
- pjmlp 5y agoIf they want to be allowed to write Engineer so-and-so, yes it is necessary.
- Swizec 5y agoJust 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?
- formerly_proven 5y agoThat's why it's called a computer science degree, not a gluing-libraries-together degree.
- pjmlp 5y agoYes, programming in Assembly is usually also a possible assignment during a 5 year degree.
- xmprt 5y agoI'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.
- pjmlp 5y agoAny software engineering degree in countries with professional titles has algorithm and data structures as compulsory lecture, and exam.
- dboat 5y agoWhat countries are these you keep referring to?
- tharkun__ 5y agoI 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.
- dudeman13 5y agoThat'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
- pjmlp 5y agoIt certainly is in many countries, where one isn't legally allowed to call themselves as such after a 6 weeks bootcamp.
- lazide 5y agoDo 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.
- formerly_proven 5y agoIn 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".
- lazide 5y agoSure enough, thanks! Looked it up and it seems like Engineer is the protected title, which plausibly would apply (Ingenieur formally).
- pjmlp 5y ago
- avgcorrection 5y agoSo if one is pretentious.