News for hackers. Stuff that matters.
Re:Computer science is not software engineering by whatever1 on Saturday December 26, 2020 @11:17AM (#25544299)
As a non-CS engineer who writes software for a living, I can definitely say that there are times that I wish I had formal training in algorithms, parallel data structures, compilers, operating systems and hardware. There are many times that I need to rewrite my code because of non-adequate design. Other times I reach corner cases that take me too long to debug, only to realize much later that there was a lower-level explanation for the unexpected behavior.
Re:Computer science is not software engineering by swat535 on Saturday December 26, 2020 @01:02PM (#25545113)
I graduated with a CS degree and a minor in Web Services and Applications. Let me tell you that whilst those topics are useful, they were pretty tailored and if I'm being 100% honest, I don't even recall the majority of them.

My day to day job is piping APIs together and making sure we deliver features on time.

On the rare occasion that I need to use a data structure or an algorithm to optimize for Time Space complexity, I'll either use a community built package or a language level feature. I'll never invent my own because whatever I come up with will be half baked anyway.

Knowing all the above is useful for passing interviews but not much use in your everyday life unless you are doing something other than SWE such as R&D or data science.

Just my 2c.

Re:Computer science is not software engineering by 908B64B197 on Saturday December 26, 2020 @01:28PM (#25545315)
> On the rare occasion that I need to use a data structure or an algorithm to optimize for Time Space complexity, I'll either use a community built package or a language level feature. I'll never invent my own because whatever I come up with will be half baked anyway.

In these cases you recognized you needed to use a specific algorithm or data structure and was aware of it's existence, name and properties. That's most of the work.

Contrast this with code where common data structures are re-implemented (I need a dictionary and all I know is an array, better iterate and compare the keys until I find the right thing). And that's only scratching the surface of bad code, believe me.

Re:Computer science is not software engineering by syamilmj on Saturday December 26, 2020 @02:31PM (#25545780)
Those who made “mistakes” like re-implementing basic data structure or algorithm will learn much more than what compsci degree can teach them.
Re:Computer science is not software engineering by 908B64B197 on Saturday December 26, 2020 @02:36PM (#25545829)
It's not a mistake to re-implement these. It's a mistake not to recognize that you need them in the first place.
Re:Computer science is not software engineering by imtringued on Saturday December 26, 2020 @06:36PM (#25547368)
Nobody wants this type of experimentation on a production code base though.
Re:Computer science is not software engineering by rgblambda on Saturday December 26, 2020 @01:20PM (#25545255)
>> if I'm being 100% honest, I don't even recall the majority of them.

100% this. A lot of these concepts go over your head if you haven't seen a practical application for them. By the time you've encountered such a use in industry, the knowledge is long forgotten.

Re:Computer science is not software engineering by aries1980 on Saturday December 26, 2020 @03:02PM (#25546011)
Yes, but the point of memorisation is you can much quicker re-learn the subject and you know there is a solution to a problem when you face it. If you have never learnt it, you don't know that there is a solution, or you start to optimise things in a way that is proven to be wrong. You might not able to recall them, but the knowledge is likely there in your subconscious.
Re:Computer science is not software engineering by mannykannot on Saturday December 26, 2020 @11:40AM (#25544470)
Congratulations! By not dismissing these temporary setbacks as being just the way things are, you have the right attitude to become even more successful at what you do.

There seems to be lots of information, of the sort you are interested in, available on the internet (I won't recommend anything specific as there is too much!) One can learn a lot simply by digging deeper into the specific issues that one has encountered, especially as you begin to see the links between them.

Re:Computer science is not software engineering by mistersquid on Saturday December 26, 2020 @12:54PM (#25545049)
> There seems to be lots of information, of the sort you are interested in, available on the internet (I won't recommend anything specific as there is too much!)

As a non-CS developer, I find this us not an easy problem to overcome: the wide availability of resources of varying quality.

I work more than full time (US exempt employee), and I have enough knowledge that intermediate depth and quality resources do not provide enough and, not having a solid grasp of fundamentals, MIT's SICP course is a bit beyond my current grasp,

I would love recommendations for a series of courses, a series of syllabuses, or even a part-time degree program where I could meaningfully progress while working full time.

I'm not afraid of advanced math, I'm ignorant but willing to learn about data structures. I'm highly educable but I'm time-poor.

What targeted resources would be a good investment of my limited time?

Re:Computer science is not software engineering by aries1980 on Saturday December 26, 2020 @02:55PM (#25545959)
> There are many times that I need to rewrite my code because of non-adequate design.

Formal education won't give you the knowledge to get it right every single time. Your design will be always non-adequate because the circumstances always change.

The knowledge body of a CS and engineering can be obtained without enrolling these days. Engineering is about problem solving within the resource constrains and to a specification. Getting the specification right and fitting in the resource constrains are the biggest challenges that only experience will prepare for, because these are domain-specific.

CS and engineering studies can give you a toolkit to solve some problems and helps to give you to develop a "gut instinct" to pick a solution.

Re:Computer science is not software engineering by Agingcoder on Saturday December 26, 2020 @04:35PM (#25546625)
This happened to me (math background, now write software), so I decided to fix it : I read most of the classic textbooks over the course of a few years, and tried to apply what I learned in them at my day job (provided that it was useful to my company obviously). Three things happened :

- I got a lot better at my job because my toolbox was a lot bigger

- I developed a much 'broader' view of the field, which became unified instead of a collection of subfields

- I realized that there was even more that I didn't know about, and that I should keep reading !

Re:Computer science is not software engineering by Alekhine on Saturday December 26, 2020 @11:45PM (#25548924)
What textbooks did you read, and what's still on your list?
Re:Computer science is not software engineering by AnHonestComment on Saturday December 26, 2020 @12:21PM (#25544790)
My “one weird trick” is take the time to understand type theory.

How are types implemented?

What are the native types on your computer?

How do types and whiteboard diagrams relate?

If you can answer those questions, you’ll start to get an intuitive sense of how to make a program out of types (eg, domain driven design) and of how the computer will interpret those types.