News for hackers. Stuff that matters.
Re:Teach Yourself Computer Science by agumonkey on Saturday July 21, 2018 @12:01PM (#17582409)
Anyone else concur with yters experience ?
Re:Teach Yourself Computer Science by wjossey on Saturday July 21, 2018 @12:44PM (#17582597)
I don’t concur.

Received a comp-sci degree in 2008 from a small liberal arts college. I was one of five grads in my year, and most of the last two years were not spent learning “practical” tech, but rather theories, algorithms, etc. My liberal arts educating taught me how to write, how to discuss solutions, explore tough concepts, break problems down into smaller subtasks, and more.

Skills are important. But theory matters too. Just because one has value does not rule out the other.

Re:Teach Yourself Computer Science by yters on Saturday July 21, 2018 @09:21PM (#17584764)
I agree there is value to the theory. But, the valuable parts are fairly easy to explain, when not convoluted through academese, and many classes can probably be consolidated into one or two. Plus, most of the useful theory is encapsulated by someone else's well designed library. So, it is helpful to know, but the hard implementation part is unnecessary.

I am not so much arguing against CS theory, but CS education.

Re:Teach Yourself Computer Science by skylark on Saturday July 21, 2018 @12:16PM (#17582460)
It really depends on what kind of development you're doing.

The majority of software engineers are application developers making CRUD websites or mobile apps, so that perspective is the one to come up most often. I also happen to be one of those developers.

The challenges of application development are related to transforming data, handling asynchronous operations, managing state, and picking elegant abstractions that solve your problems. The intuition for these things is mostly picked up through hours of professional development, seeing good code, and shooting yourself in the foot a couple of times.

While there are some harder problems in app dev which do require deeper computer science understanding, they're extremely rare. I suspect this is different for people doing things like video game development, although I don't have any experience there so I can't speak to that.

Re:Teach Yourself Computer Science by hobls on Saturday July 21, 2018 @12:34PM (#17582547)
Even most of video game development is simply using features of the existing engine. Some basic 3D math is required, but nothing crazy. You do find some gnarly problems in engine development though. (And some of the sub-disciplines like the network and graphics programmers.)
Re:Teach Yourself Computer Science by agumonkey on Saturday July 21, 2018 @01:54PM (#17582934)
So CS should get a job at tooling companies because that's where deep things are done ?
Re:Teach Yourself Computer Science by hobls on Saturday July 21, 2018 @02:36PM (#17583169)
I don’t think it’s nearly that simple. Some teams are product teams, and they operate higher in the stack. Some teams are straight engineering teams, and they operate much lower in the stack. Lower does not always equal more technical though. A product team dealing with incredible scale can still require deep CS knowledge.

My experience is that teams that act as a platform (and I’m using this term very loosely) tend to have lower level problems to solve. Think of AWS teams vs. large companies. A large company might be dealing with high scale; something like 100k+ transactions per second. An AWS team can have many large companies as their customers, so their scale gets ridiculous; much higher than any single company. This can require more traditional CS knowledge.

Some individual engineers love shipping products though — they like writing a LOT of code and getting things out the door. Some engineers like very carefully working on MASSIVE systems, but they end up releasing way less code. Other engineers like working on very low level embedded systems or whatever.

There are a lot of problems to solve, and none of them are necessarily strictly harder than each other. Some people who can support systems at incredible scale simply cannot cope with the speed of back to back product launches, and vice versa. There are tons of types of talent.

Re:Teach Yourself Computer Science by agumonkey on Saturday July 21, 2018 @12:29PM (#17582517)
Thanks, that's what I was curious about
Re:Teach Yourself Computer Science by guhidalg on Saturday July 21, 2018 @12:10PM (#17582438)
I concur.

The way I think about it is that what you learn in class is valuable for understanding the abstractions that you will use in industry. If you’re working in C# or Java, most of the time you don’t care about the cost of memory allocation, method calls, reflection voodoo, file system access, etc... BUT, in those rare situations where the abstraction causes a performance or correctness issue, then all that academic knowledge becomes valuable. I find that the instances of these problems are very rare but when they occur you have an opportunity to deliver a lot of value.

For example, at my job we have a rather slow build. Looking at the logs, it’s because we spend a lot of time doing I/O. Someone had the idea to use symlinks instead of file copies. Badabing, badaboom, we got something like a 3x speed up from doing that.

Re:Teach Yourself Computer Science by newbie912 on Saturday July 21, 2018 @06:53PM (#17584299)
Surprisingly one of the areas I use my comp sci knowledge the most is in one of the most widely applied areas - relational databases. Every programmer spends lots of time reading and writing data, and understanding a lot of the low level operations, plus linear algebra, can really help with performance and assessing alternatives.
Re:Teach Yourself Computer Science by sixstringtheory on Saturday July 21, 2018 @12:45PM (#17582604)
Not exactly. I really enjoyed my undergrad and grad CS programs, but I agree I don’t get to use most of it in everyday work. I also haven’t exactly sought out places where I would yet.

I can’t speak for yters’ experience in school or work, not least since they didn’t name names.

Tech is a huge and diverse industry, but it seems to be treated homogenously when stuff like this comes up. Writing web apps in React is very different from game programming, mission-critical embedded, chip architecture, etc. I see much more demand for frontend devs than more specialized roles, and I think that should lead to lower enrollments in CS programs to match. Today it is way oversold (as I believe a lot of university is in America), but still necessary in some circumstances. For instance, someone teaching a bootcamp should probably have undergaduate level training in CS and/or teaching.

University and even bootcamps also serve as validating authorities that vouch for the abilities af the people they graduate. Maybe not perfect, but I don’t profess to know that licensure or some other method is better or worse. Programming jobs aren’t just about code, and uni/bootcamp isn’t just about learning code: you need discipline and self motivation, executive functioning, ability to research and navigate systems.

Is having a github repo with 1,000 stars now a necessary and/or sufficient condition to be talented?

Re:Teach Yourself Computer Science by enraged_camel on Saturday July 21, 2018 @05:34PM (#17583983)
I concur, with the caveat that whether you need to have a formal education in computer science depends on the types of problems you are trying to solve and the types of systems you're trying to build and maintain.