Live data from Hacker News

A computer science study plan to become a software engineer

github.com

101–110 of 220 posts

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

#101
post #41

Earlier quoted context omitted.

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

I tend to use it quite regularly. I've had to diagnose many performance issues with our large code base. Understanding compilers, data structures, networking, OS internals, etc, have all been quite helpful. Even if it's simply finding a starting point for tackling the problem. 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…

I wish the whole industry would at least get to that latter level. I see a fair amount of “jiggle it until it’s no longer obviously broken”.

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

#103

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 work doesn't depend on operating systems, databases, network communications and data structures? I can go on.

Lets just pretend that this is working to filter good candidates.. even then good software have a lot to do with team work. Its better to have people who are experts in things that the product need to be good at, but also less expert in a certain field but that will do other parts of the product, than you have to manage the group work properly..

My point being, you need people with a myriad of skill sets, and some of them don't even have to do with expert knowledge needed in some areas.

Also you might have an expert in storage for instance that do poorly in certain tests giving he never needed to work with those kind of algorithms.

So in the end the company ends with the same type, the same kind of person, and how can you make a great team that needs people with different skills doing distinct stuff, if you optimized your hiring to filter for one particular type?

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

#104
> I studied about 8-12 hours a day, for several months.

He lists 8 months of study and that before starting the curriculum he was "self-taught" meaning he at least knew how to code and do a little more than "hello world".

If we add his "self-taught" time it gets us pretty close to an actual CS degree. He's missing language classes, some electives, math and stats but he's mostly there in terms of content. He's missing labs, projects, problem sets of course.

When viewed like that it doesn't sound as clickbaity as the tittle implies, that you don't need a degree to go in the field. He's just a really really motivated self learner. And almost got a CS degree's worth of material.

Kinda like Gates "dropping out" a few credits short of getting his diploma, not after failing intro to econ like a lot of "drop out entrepreneurs" out there.

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

#105

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…

These I expect a real software engineer to be able to learn pretty quickly.

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

#106

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've really only used dynamic programming once on a real problem, but I have to pick the right data structure all the time and at least think about the algorithm. I've seen people write code that's anywhere from n^2 to exponential, only to see it fail pretty hard when working on production data.

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

#107
post #41

Earlier quoted context omitted.

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

Tons: Cryptography, operating systems concepts including multi-threading, distributed systems, network communication, mobile and embedded systems which are basic backbones of all the things you use today. You know that's where majority of the tech companies are innovating on, right?

I have definitely worked on systems that tried to do parallelism without any real understanding of underlying primitives or theory. They were not ideal.

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

#108
post #75
post #67

Earlier quoted context omitted.

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.

From your prespective how common are those types of roles in all industries as a whole? 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?

I work in firmware, and 99.9% of the time the most exotic data structure we touch is a linked list

CS still comes in handy though, especially computer engineering to understand some of the workings of the hardware

Occasionally I'll use real CS knowledge when I'm building tools for work or working on games in my free time.

Full disclosure, I didn't actually study CS in school though.. I studied EE and then went and learned CS via Wikipedia when I needed it to find a better-paying coding job.

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

#109

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

> Electrical engineers study a certain amount of physics as part of their major, but their main focus and area of expertise is engineering

This is good. I took the E&M course for electrical engineers at my university, a very well-regarded engineering school. I ha no idea what I was doing. After every exam, I thought I'd have to drop the course. One of my scores was a solid B, another was the third highest. I got a B because I didn't know how to do the homework. Literally the only thing I could do was get the sign and units right in the multiple choice answer.

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

#110

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…

Engineering is about learning how to learn. It's a skill you should use every day.

If all someone knows is plumbing API and rote memorized glue code, don't expect much. If someone went through CS, expect to see a different caliber of work for the same task.

Believe me, it's night and day and a lot of orgs have no clue what real engineering talent looks like: they never had any to begin with!

Post reply on HN