You should invert the question: since EVERYONE forgets all of this CS stuff then perhaps teaching this CS stuff to us programmers is a complete waste of our time in the 1st place? So it's not YOU who is "wrong": it's the universities who have it backwards and are disconnected from the real world work that programmers do.
Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
61–70 of 167 posts
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#62Normal, yes. The nice thing about forgotten knowledge is that it's much easier to jog the memory and get it back than to learn it from nothing. You likely still use a lot of the fundamental concepts without realizing it. I am someone who came from a non-traditional, self-taught path ~25 years ago. I did get some formal schooling in electronics, which you'd think was useless, but I can think of a few times solid digit…
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#63You should invert the question: since EVERYONE forgets all of this CS stuff then perhaps teaching this CS stuff to us programmers is a complete waste of our time in the 1st place? So it's not YOU who is "wrong": it's the universities who have it backwards and are disconnected from the real world work that programmers do.
I think this is starting to change, for instance, front-end developers being hired from a boot camp or similar program (although this seems nearly the opposite extreme).
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#64Normal, yes. The nice thing about forgotten knowledge is that it's much easier to jog the memory and get it back than to learn it from nothing. You likely still use a lot of the fundamental concepts without realizing it. I am someone who came from a non-traditional, self-taught path ~25 years ago. I did get some formal schooling in electronics, which you'd think was useless, but I can think of a few times solid digit…
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#65Earlier quoted context omitted.
Because in most universities it's a Computer Science degree, not a Software Engineering degree. I suppose in those universities that offer SE degree, they have more courses focusing on programming and managing software projects.
I had a class titled "Software Engineering" that prepared me very well for software dev life cycle, maintenance etc... It was a semester long project where the professor was the "business" person and everyone had shared roles (someone was QA for a sprint)...and we get lectures on code quality, testing, best practices. To my surprise it doesn't exist in every college. Even though I went to a state school, not all stat…
I've worked for companies and managers who don't know what Agile is. Not knowing one specific thing, even if it's an important thing, isn't worth writing off a candidate. If you can't teach someone the basics of agile in an afternoon, you're doing agile wrong.
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#66I had an interview the other day and they asked a question on Big O notation to which I didn't really know the answer so guessed it. In 10 years of web dev, backend engineering work I've never needed to use it.
You have, you just don’t call it that. You probably know that accessing an array list is faster than a linked list, and a binary tree search is faster than an array list search. What you may not remember is the specific big O notation for those, but that’s not the important thing anyways. The important thing is being able to reason over relative complexities of various operations. When I interview people, I ask the q…
Memory locality, prefetching and branch prediction are all likely more important to actual performance than Big O complexity and those things can change from architecture to architecture.
When I was learning big o notation numa architectures where just becoming commercially viable. You’d get dramatically different performance results in one lab to the other based on which machines were in it.
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#67I remember most of the stuff from university 10 years ago including the brand and model of the microcontroller I programmed (ATMEL ATMEGA8-16PU) and the names of the I/O registers on that chip, the name of the program I used to program it with (AVR Studio). I also remember most stuff I learned in Discrete Mathematics, pretty much every ADT (Abstract Data Type) I learned about in my Algorithms and Data Structures class and I remember pretty much everything I learned in Machine Learning (decision trees with minimax algorithm, alpha-beta pruning, heuristic functions, Artificial Neural Networks, step functions, sigmoid functions, backpropagation algorithm)... Time and space complexity...
Except for time and space complexity and ADTs, I haven't really used the other stuff.
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#68College was just your first stepping stone of hopefully a very long and interesting journey. It might have been special to you, but there's no need to take it along.
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#69Earlier quoted context omitted.
I don't think it's a waste. Some people going into web development, some into compiler design, some into database optimisation, some into IT management, some into AI, some into 3d game development etc etc. CS is a broad subject. It's pretty much like studying general science in college.
Then why do we not study debugging, naming, maintenance, reading code etc... specifically?
So yea, it depends where you did your CS degree from. Personally, I think it taught me a lot and got us ready for the real world at least as an entry level. Back then, there were no frameworks.
Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff
#70In some specializations of programming, you're going to need a lot of those things. For instance, working with game engines, scientific simulations, image or signal processing, finance, or simply making the base software and libraries that other people use, can involve a lot of CS. In larger corporations, the programming is often much higher level, and consists more of stringing together libraries and frameworks and…