Live data from Hacker News

A computer science study plan to become a software engineer

github.com

51–60 of 220 posts

Re: A computer science study plan to become a software engineer

#51

This isn't a bad list of topics about data structures, algorithms, and software fundamentals, but let's not pretend that computer science has anything to do with most software engineering roles. I studied computer science, and in 30 years, I've hardly used any of it. There were a few jobs where some of the statistics and math were helpful, but in my long career, I've seen very little overlap between computer science…

> I studied computer science, and in 30 years, I've hardly used any of it. There were a few jobs where some of the statistics and math were helpful, but in my long career, I've seen very little overlap between computer science and working as a software engineer.

I'm not challenging your experience, but I am replying to say that mine is the opposite. I certainly have used quite a bit of theory (over a little more than 30 years), not so much explicitly as to think about the problem I'm working on before starting to code, or in the process of discussion about some code with coworkers. Also has helped me look stuff up or learn new things.

Perhaps you've used it more than you think, but merely subconsciously?

Re: A computer science study plan to become a software engineer

#52
post #35

Earlier quoted context omitted.

Your comment reflects a common meme that can often be summarized as: "Real World" work doesn't involve the academic nonsense you learn in school. Many of the people who say this kind of stuff never really mastered the theory, and because they never mastered it they can't really use it, and because they can't really use it they find work that doesn't strictly require it, and then conclude it's useless... It's like whe…

Agreed, but also some great moments are when you finally use something you learned and think “Oh, that’s why they taught me that.” Even if it’s many years later and I did NOT master the concepts, I’m just aware of them. It’s happened enough to me that I no longer have the opinion that stuff I learned was “useless” even if I don’t use it. I might one day or someone else might encounter a problem that requires that kno…

I'll also say you won't just come across a problem that requires it, but rather you will apply that knowledge to a problem that never seemed to have needed it in the first place, and then you'll come up with a very powerful, compact, and resilient solution.

Re: A computer science study plan to become a software engineer

#53
I have been looking for work recently (frontend/full-stack) and have been pleasantly surprised, all my interviews so far have been fairly practical React, JS, CSS questions. I spent a month leetcoding and reading Cracking the Coding Interview also. 8 months of focused work on interviewing seems... insane haha.

That said I do feel smarter for having refreshed my knowledge on BST, linked-lists, etc. I don't know if there is a better way to interview, the algo/data-structure stuff will definitely reveal your ability to stay calm and problem solve though. A tricky tree or graph problem will also reveal how strong your mental context and ability to visualize code in your head is.

Re: A computer science study plan to become a software engineer

#54
post #35

This isn't a bad list of topics about data structures, algorithms, and software fundamentals, but let's not pretend that computer science has anything to do with most software engineering roles. I studied computer science, and in 30 years, I've hardly used any of it. There were a few jobs where some of the statistics and math were helpful, but in my long career, I've seen very little overlap between computer science…

Your comment reflects a common meme that can often be summarized as: "Real World" work doesn't involve the academic nonsense you learn in school. Many of the people who say this kind of stuff never really mastered the theory, and because they never mastered it they can't really use it, and because they can't really use it they find work that doesn't strictly require it, and then conclude it's useless... It's like whe…

CompSci theory hasn't helped me with the complexity of the industry i work in. It hasn't helped me when i've misunderstood something in our domain. It hasn't helped me release / distribute a product easier or faster or cheaper. It hasn't helped me navigate team dynamics or how to work effectively with others. It hasn't helped me write better technical texts.

So for some very specific cases, in my career (and i suspect for many business application developers) set theory has been the most useful thing i learned in CompSci. How much of a real world day do i spend using that knowledge? 0.0something% on average.

In fairness, It has sometimes helped me get a product finished sooner but this is tenuous at best because i can point to far greater influences from learning how to use specific tools that have helped me get to "done" sooner.

The difference between real world developer and CompSci isn't necessarily in more effective use of CompSci.

Re: A computer science study plan to become a software engineer

#55

This isn't a bad list of topics about data structures, algorithms, and software fundamentals, but let's not pretend that computer science has anything to do with most software engineering roles. I studied computer science, and in 30 years, I've hardly used any of it. There were a few jobs where some of the statistics and math were helpful, but in my long career, I've seen very little overlap between computer science…

i do really resent when people provide constructive-criticism laced just with criticism and nothing constructive.

Re: A computer science study plan to become a software engineer

#56
post #41
post #35

Earlier quoted context omitted.

Your comment reflects a common meme that can often be summarized as: "Real World" work doesn't involve the academic nonsense you learn in school. Many of the people who say this kind of stuff never really mastered the theory, and because they never mastered it they can't really use it, and because they can't really use it they find work that doesn't strictly require it, and then conclude it's useless... It's like whe…

Can you give some examples of where computer science academic theory helped in software engineering?

I use category theory quite frequently when doing functional programming. Unfortunately it is not taught in CS programs AFAIK. I rarely implement any tree kind of algorithms other than a simple tree visitor.

An understanding of time/space complexity (Big O Notation) is also relevant to evaluating approaches. A senior level developer will use this to make high level choices.

I also use compiler theory when writing parsers and simple DSL languages.

Honestly, never really had to deal much with red-black trees or linked list algorithms.

Re: A computer science study plan to become a software engineer

#57
The most important thing on your path to becoming a software engineer is building stuff, improving it, releasing it, and thinking how you can do it better. Having been through the lifecycle of a piece of software from design to maintenance will also provide a wealth of experience.

I understand that it's popular to let people solve toy problems during interviews, and think that's ok for people coming out of university. However for more senior roles I would rather hand out a coding assignment. You can judge the experience of a developer much better by the way she/he chooses algorithms, considers corner cases, supportability etc.

Re: A computer science study plan to become a software engineer

#58

This isn't a bad list of topics about data structures, algorithms, and software fundamentals, but let's not pretend that computer science has anything to do with most software engineering roles. I studied computer science, and in 30 years, I've hardly used any of it. There were a few jobs where some of the statistics and math were helpful, but in my long career, I've seen very little overlap between computer science…

I think it honestly depends on what you do. I use data structures all the time; I just don't have to implement them.

Re: A computer science study plan to become a software engineer

#59
post #47
post #41

Earlier quoted context omitted.

Can you give some examples of where computer science academic theory helped in software engineering?

Boolean algebra, relational algebra, sets and graphs, reductions, runtime analysis, gossip and epidemic protocols, satisfiably, verification, turing machines, push down automata, etc.

it's a small thing, but I find it pretty useful to be comfortable with the basic boolean identities. makes it much easier to rearrange if conditions for readability without stressing that you might be changing behavior.

Re: A computer science study plan to become a software engineer

#60

Earlier quoted context omitted.

Your work doesn't depend on operating systems, databases, network communications and data structures? I can go on.

Not as much as it depends on human communications, organization, self-management, etc. Most technical challenges in my experience end up being reduced to word problems. All of the stuff you mentioned is probably 10% of it. You can be bad at the 10% if you're great at the 90%.

Formalizing word problems and effectively transforming it to a program is inherently a complexity theory exercise.
Post reply on HN