Earlier quoted context omitted.
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.
A computer science study plan to become a software engineer
71–80 of 220 posts
Re: A computer science study plan to become a software engineer
#72This 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…
> 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…
Re: A computer science study plan to become a software engineer
#73Spoiler alert: https://medium.com/@googleyasheck/i-didnt-get-hired-here-s-w... > Last week I received a rejection email from the recruiter, and at first, I thought it was a mistake, and laughed it off. I checked in with my referral and he inquired into it and lobbied on my behalf, but in the end, it didn’t change the situation.... The thing that bothers me is that I didn’t even get a phone screen. I didn’t even talk…
Re: A computer science study plan to become a software engineer
#74Earlier quoted context omitted.
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
#75Earlier quoted context omitted.
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.
There are interesting compiler roles but the vast majority who learn how to build a compiler never use it day to day work. Would you recommend spending more time building compilers to better compete for those few roles or would you recommend a different approach?
Re: A computer science study plan to become a software engineer
#76Earlier quoted context omitted.
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.
Re: A computer science study plan to become a software engineer
#77Earlier quoted context omitted.
Can you give some examples of where computer science academic theory helped in software engineering?
Dictionaries for O(1) lookups, b-tree indexes for fast SQL queries, interval trees in genomics analysis software.
Re: A computer science study plan to become a software engineer
#78From 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.…
Physicians have to keep up their board certifications/licenses by undergoing yearly(?) retraining, in order to continue practicing medicine.
It’s not that hard to find what other software engineers are doing, to start, Read hacker news! Talk to more experienced engineers, read blogs, as an intellectual exercise, surf through AWS services and think about how you could use each.
Re: A computer science study plan to become a software engineer
#79Earlier 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 think the issue is the filter is based on the specific algorithms and not that problem solving ability. There seems to be more emphasis on "the candidate knew to use bubble sort" or something stupid like that instead of "I observed this candidate reason through the problem and I don't really care that they didn't know a canned algorithm".
You often need strange problems to really get to see people's problem solving, which is why they're often not things you see in real life, but again, the goal isn't to see if people know how to do the strange thing, it's to see how they approach a novel problem from scratch. Aka problem solving skills.
Re: A computer science study plan to become a software engineer
#80Earlier 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?
Sometimes it's trivial, replacing a for-each loop with something that's log(n) or O(1). Sometimes a little more complicated, like refactoring some code and realizing the original implementer was trying to do BFS but.. wrote something else. And the rarer cases are having to really dive in and trace some odd contention issues. All of these touch on what I learned in college at some level. Sometimes knowing something exists is helpful for looking up later and can save lots of time.
I do wonder if it's less about "requiring" the education and more about someone seeking out the kind of work that uses the education. I know many people in my company are the opposite of me, and definitely do not care to go much deeper than implementing things until they work.