Live data from Hacker News

A computer science study plan to become a software engineer

github.com

61–70 of 220 posts

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

#61
post #29

"When a measure becomes a target, it ceases to be a good measure."[1] These coding challenges used to be a very good measure of ability, but now applicants are just memorizing the most common problems for each company. We're not at the point where these tests are useless but we will get there in the near future. The problem is that I haven't seen any good alternatives. [1] https://en.wikipedia.org/wiki/Goodhart%27s_l…

The same can be said for the SAT. Unfortunately there seems to be significant enough overlap between "good test taker" (or in this case "good interviewee") and "good worker".

Studying for the SAT won’t actually improve your score much on expectation, but taking it multiple times of course will increase your expected score (since they take the max).

SAT is basically an IQ test, which is of course a reasonably strong predictor of white collar job performance (ceterus paribus).

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

#62

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…

DISCLAIMER: I'm a dropout, never finished college.

I think that a lot of the math subjects that they focus on in colleges can be of questionable utility (Much as I wish this were the case, I don't think I've touched calculus at all since I've started working, outside of the occasional personal projects doing game physics or something), but I do think that having a decent understanding of set theory and discrete mathematics has made me a better engineer, if for no other reason than it made it easier for me to pick up TLA+, which is incredibly helpful when used correctly, at least when designing/building distributed systems.

That being said, I sadly feel like that basically any math is only useful earlier in your career. If you start working for one of the big FAANG-esque corporations, you end up doing substantially less compsci and spend a lot more of your time writing emails or sitting in meetings.

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

#63
post #29

Earlier quoted context omitted.

The same can be said for the SAT. Unfortunately there seems to be significant enough overlap between "good test taker" (or in this case "good interviewee") and "good worker".

Studying for the SAT won’t actually improve your score much on expectation, but taking it multiple times of course will increase your expected score (since they take the max). SAT is basically an IQ test, which is of course a reasonably strong predictor of white collar job performance (ceterus paribus).

I don't think its 'of course'. A study at the UofIowa showed only one correlation between tested psychological features and job performance (as measured by 1-year evaluation). It was 'conscientiousness'. That is, if you kept at a task until it was actually and fully done, your boss/coworkers valued your contribution.

That's it. Not about being smart or educated.

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

#64

"When a measure becomes a target, it ceases to be a good measure."[1] These coding challenges used to be a very good measure of ability, but now applicants are just memorizing the most common problems for each company. We're not at the point where these tests are useless but we will get there in the near future. The problem is that I haven't seen any good alternatives. [1] https://en.wikipedia.org/wiki/Goodhart%27s_l…

I agree that the predictive power of jeopardy-style interview questions has collapsed. However, I think it’s still quite predictive to ask more design-oriented and less algorithm-oriented questions, especially if there is some leeway for creative choice. It’s also relatively easy to detect people who have simply heard and memorized the question, since when you ask them for extemporaneous expansion on some aspect of the question, they usually fall apart.

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

#65
post #45

This is a good starter list for the more Computer Science skills but I see little in the way of practical skills. It's definitely nice to have these skills but let's be real, you aren't going to use them on a daily basis. I would add learning a few of the most popular languages and frameworks depending on your area of interest. Without those practical skills I'm pretty sure you will be passed up during interviews. Wh…

> It's definitely nice to have these skills but let's be real, you aren't going to use them on a daily basis.

I mean, practice for the job you want.

The majority of software jobs don't need this stuff -- writing frontend code, writing some backend services, mobile.... the type of work where you a) aren't building the platforms / tools everything is based on b) don't need the best performance, just need it to work OK.

But there are plenty of jobs that do need this stuff. Working on an OS, or database, or a product used by millions, or a large scale platform...

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

#66
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…

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

All this is true, but when I look at undergrad curricula for other engineering disciplines I don't see this stuff either. And the software engineering courses I did have in undergrad were terrible.

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

#67
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…

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

It sounds like you work in an industry that doesn't strictly require frequently delving into foundational theory in CS. I do believe it would be a mistake to conclude its useless, however, as there are many other industries that do need it, and people who are not in touch with the theory probably would not be competitive in those industries.

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

#68
post #49
post #41

Earlier quoted context omitted.

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

People can go on all day about this. The most major one for me is protocol engineering - there's a whole world out there on this. Others would be model based design and its formal verification. Also several problems in state synchronization in distributed systems. In many of these cases, the team I joined had a code base in place that "kind of" did the solution, but was not grounded in any conceptual model - despite…

What are resources you reference the most in this kind of work?

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

#70
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…

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

This is true for the most part. But having the CS knowledge allows you to create much more efficient solutions once at scale.

I've personally revamped core parts of a product at previous companies to be over 1,000x more efficient just by applying some CS principles. This translates to $100K/mo+ in savings for a company that is at scale.

Post reply on HN