Live data from Hacker News

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

news.ycombinator.com

81–90 of 167 posts

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

#81
No, it is NOT normal if you truly mean you remember nothing from your studies. I really hope that is not the case and that you have only forgotten the intricate details (which is fine). The absolute fundamentals (some of which are listed below) should never be forgotten.

1) Computer Architecture vs. Organization, CPU/Execution Units/Caches/Memory, Clock, Pipelining, ILP, Multiprocessor, SoC.

2) OS responsibilities - Resource management(everything), Kernel vs App, Process vs. Thread, System Calls, Timers/Interrupts/Device Drivers.

3) RDBMS Normalization - "The Key, The Whole Key and Nothing else but the Key".

4) Serial vs Parallel vs. Distributed programming.

Hit the books again if the above don't ring a bell.

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

#82

No, it is NOT normal if you truly mean you remember nothing from your studies. I really hope that is not the case and that you have only forgotten the intricate details (which is fine). The absolute fundamentals (some of which are listed below) should never be forgotten. 1) Computer Architecture vs. Organization, CPU/Execution Units/Caches/Memory, Clock, Pipelining, ILP, Multiprocessor, SoC. 2) OS responsibilities -…

There’s no reason to be demeaning. OP is obviously anxious. Why not try to be a bit kind? Encourage people, don’t demean them.

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

#83
post #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.

I've never seen someone even mention the word normalization when working with databases, but the knowledge is useful to intuitively design more sensible tables. Perhaps many people don't realize they are doing it?

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

#84
Honestly OP, it’s pretty normal. You have gotten used to working at a different level of abstraction. If you’re really concerned, you could crack open some textbooks and jog your memory. But you likely haven’t forgotten, you’re just stuck into a different type of problem.

You’ll be okay and there’s no reason to panic! Panic will just make everything worse. Chill - you have got this and you will be okay.

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

#85
post #65
post #52

Earlier quoted context omitted.

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.

I wouldn't write them off, but certainly as you dig deeper you can see there's more than "one specific thing" and there's a disconnect between theoretical computer science vs practical programming. It would require more than an afternoon to be ready for the workplace and our company ended up having several weeks of bootcamps for all incoming college students...and still hear complaints that something is "too hard".

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

#86

Earlier quoted context omitted.

People go to universities to learn how to tackle real world programming problems. But then the universities teach them CS bullshit where 90% of it is unapplicable to the real world. Why would you go to such an university which is so disconnected from the real world?

I maybe in minority here but I regularly use CS, networking, OS internals statistics, discrete math (I could go own) knowledge I was taught in school and I work in infrastructure. Ofc if you let that knowledge falter and forget all this stuff you’re never gonna use it bc you won’t even know when it was useful

I have a CS degree, and the main thing I developed that stuck with me is the ability to pick up most any programming language and separate the syntax from the fundamental concepts such as objects, functions, loops and flow of control, lists, arrays, other data structures, etc.

Pretty much every class in my degree program used a different programming language. You had to develop the ability to learn a language and be productive with it in a semester (~4 months) or at most an academic year. Sometimes you'd be learning two new languages along with the course material.

The CS theory I use far less. I think if you are in a job that boils down to implementing CRUD functionality (even if dressed up a bit on the UX side) you don't really find yourself thinking about CS theory very often.

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

#87
post #82

No, it is NOT normal if you truly mean you remember nothing from your studies. I really hope that is not the case and that you have only forgotten the intricate details (which is fine). The absolute fundamentals (some of which are listed below) should never be forgotten. 1) Computer Architecture vs. Organization, CPU/Execution Units/Caches/Memory, Clock, Pipelining, ILP, Multiprocessor, SoC. 2) OS responsibilities -…

There’s no reason to be demeaning. OP is obviously anxious. Why not try to be a bit kind? Encourage people, don’t demean them.

Oh... That was not my intention.

I meant it to be "direct" since i felt the other responders were not being quite truthful and tiptoeing around in their answers. IME, That is never a good way to help somebody when it comes to STEM subjects.

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

#88
Forgetting fundamentals is not normal, at least that is what I thought.

Responses in this post is changing my perception. No wonder, recruiting is hard.

I have found a knowlge of OS, computer organizaton, digital logic, networking, compiler design are crucial. If you are into datascience or ML, math is absolutely essential. I don't know why so many people think forgetting fundamental is normal.

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

#89
post #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 hardl…

> 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.

The university that I went to (Riga Technical University) didn't quite have computer science and software engineering as two completely separate degrees. Instead, we had separate IT (basically sysadmin oriented stuff) and computer science degrees, the latter of which includes software engineering.

Currently the title of my Master's degree is: "Professional Master Degree in Computer Systems and Qualification of Programming Engineer"

Similarly, the title of my Bachelor's degree is: "Bachelor Degree Of Engineering Science in Computer Control and Computer Science"

I know that many believe that the theoretic aspects should be somewhat separate from the practical ones, but to me it felt like most people could probably benefit from a bit of both - so that the research you do isn't completely detached from ways it could be applied, and so that the day to day programming you do doesn't end up disregarding things like O(n) complexity or even the theory behind how software costs increase due to mistakes made in the earlier development stages.

Then again, we do have specialization in the form of "Academical" and "Professional" degrees, the latter of which involves more course work around practical development and working in a company, whereas I think the former involved more research (though of course anyone could submit articles for peer review in the "Applied Computer Systems" journal).

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

#90
post #88

Forgetting fundamentals is not normal, at least that is what I thought. Responses in this post is changing my perception. No wonder, recruiting is hard. I have found a knowlge of OS, computer organizaton, digital logic, networking, compiler design are crucial. If you are into datascience or ML, math is absolutely essential. I don't know why so many people think forgetting fundamental is normal.

Exactly (esp for ML/Graphics/Vision). However, I cannot say for other fields. That is why it is necessary to keep revising these fundamentals. I always plan to do it, but end up doing something else. >.If anyone has idea on ways to design a revision schedule, please help me. Thank you in advance!
Post reply on HN