Live data from Hacker News

Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff

news.ycombinator.com

61–70 of 167 posts

Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff

#61

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.

The universities don't have it backwards, you do. Computer Science fundamentally isn't Software Engineering. If you have a degree in computer science and a job in (some particular subfield of) software engineering, it makes quite a lot of sense that the degree and the day to day aren't perfectly aligned. At any rate, not directly and frequently using all the theoretical underpinnings of networking/databases/etc hardly means learning them was useless.

Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff

#62
post #51

Normal, 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…

But you don't know what you are studying is important or not until you are confronted with a real world problem

Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff

#63

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.

Isn't it the employer's demand that everyone holding a position even somewhat related to software development have a CS degree the real mismatch?

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

#64
post #51

Normal, 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…

Yup, I can't tell you what 6th normal form is anymore, but I can tell you if a database looks poorly designed or not. lol

Re: Ask HN: Working as a software engineer for 5 years, I've forgotten all CS stuff

#65
post #52

Earlier 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 would interview kids nowadays who want $100k but have no idea what Agile is.

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

#66
post #41

I 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…

Except on modern architectures your intuition about what is actually faster is likely wrong if it’s based on just Big O operation counts.

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

#67
I tend to be a somewhat slow learner but once I've learned something, I seem to remember it forever (I only lose a little bit of detail).

I 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

#68
Don't panic! That's how education works. I don't use every tool in my shop every day, but when I need them, I know I can dust off the manual and figure them back out.

College 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

#69
post #34

Earlier 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?

It depends on the college/university. I went to Stony Brook University (SUNY) in NY and we had an excellent CS program where we not only learned theory but did plenty of real world programming challenges including learning how to use version control (we used cvs circa 2002-2004) etc. We even had one specific class called Software Engineering where we designed a software from scratch and it was great learning. We did decent amount of HTML/CSS/JS as well. At the time, our server side language of choice was Java and Swing for GUI etc. We had assignments where we had to literally just design and not code (I kinda thought it was strange) but made us think more abstract.

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

#70
post #33

In 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…

I was surprised to see database normalization in OP's list. Working at a modest-size company, database normalization was something I dealt with all the time. It was up to the devs to do table design, if you didn't normalize you'd end up with a mess.
Post reply on HN