Live data from Hacker News

A computer science study plan to become a software engineer

github.com

31–40 of 220 posts

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

#31
post #18

> ...This is meant for new software engineers... Do these big companies really need so many developers that only know how to use this long list of 'fundamentals'? I've interviewed a lot of people of all ranges, ages and skews. No matter what, when it comes down to sitting down with them and asking them to write out a simple program without any technicalities, 9/10 of them fail due to clearly not spending enough time…

I think the whiteboard advice is for being comfortable in interviews.

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

#33
post #21
post #14

Earlier quoted context omitted.

https://www.freecodecamp.org/news/why-i-studied-full-time-fo...

That doesn't really answer the question (also I see that the title is fixed)

Sorry, the idea is that this guy made a repo for how he wanted to study to get hired at google, and now it seems that a lot of people are contributing. I removed the google part from the title as i see now that it might have been misleading.

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

#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 when otherwise successful people tell you all that calculus they learned in high school is useless, it's not useless, they just found success in a career that didn't need it.

I resort to my textbooks and academic nonsense all the time. There are often two ways to solve a problem, the first is just code-until-it-works, the second often involves modeling it in some kind of formal structure, and defining the operations over that structure and their properties. Usually, in doing this, the resulting implementation is far less code and far more resilient. But those who are not comfortable with the foundational theory stuff just don't see it and don't even think to approach the problem in that way.

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

#36

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 came here to make a similar point. Electrical engineers study a certain amount of physics as part of their major, but their main focus and area of expertise is engineering, and you never hear them claim otherwise. If the main focus of a training is not to become a computer scientist, but to become someone who can engineer good software for real world applications, then don't call it a science degree.

This list is, "a software engineering study plan to become a software engineer".

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

#37

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…

> Google and other big tech companies use these criteria to filter people out at the hiring stage, but the vast majority of work has nothing to do with any of this stuff.

Yes, because at Google & Co. you actually NEED this stuff. I am not sure there is a day going by where being strong in math and computer science isn't immensely helpful for my job.

The problem is: All other companies immitate Google, not only through interviews, but also by copying their "scalability" which is completely crazy. For instance relational databases are perfectly fine for like 99% of companies. Single servers would probably work well for another 90% of companies. Monoliths instead of micro services would work well for 90% of companies... It's crazy.

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

#38
post #24
post #9

Earlier quoted context omitted.

> and in 30 years, I've hardly used any of it. Isn't that similar to people saying "I've never used trig in 30 years"? Isn't the point to train your brain to think in a certain way, more so than actually needing sines and cosines? For computer science specifically, the goal is to teach you to think in terms of loops, conditionals, recursion and so on. It's to train the muscle more so than memorize specific algorithms…

I'm still new to the industry, but my CS education (yours may differ) was quite theory-heavy. Perhaps the knowledge of data structures and algorithms can be useful for people who need to design whole architectures and systems, but I think the folks who are fixing bugs, tweaking the UI, or adding small features would benefit more from Code Complete than an Algorithms book.

Note that you may find your career limited to fixing (simple!) bugs, tweaking UIs, and adding small features.

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

#39

From scanning through the course outline, the big omission is learning about distributed systems, and industry leading implementations of common tools. At big tech companies, you typically have to work at a much larger scale. A solution that works, won’t necessarily work at 10x, 100x, 1000x the scale. You often need to use technologies architected differently than a monolithic Web App. I would recommend learning more…

There's a different "knowledge" problem that must be tackled here.

Someone can form a cognitive bias from only being exposed to a few ways to solve a problem. Maybe it's because they haven’t seen it to larger scale, or that they only worked with monoliths, and thus are limited to only that problem scope.

Throwing more MySQL databases at a problem won’t fix all problems, but for a lot of people, this is all they know. How do discover those unknown unknowns, to learn the applications of tools you haven't yet been made aware of?

Post reply on HN