If you want to really grok genetics and be able to understand and interpret news and discussion about the field, especially considering how important the field is in our day to day lives, both with the virus and with biotech/medicine in general.
You mean like this: https://ds9a.nl/amazing-dna
Having worked in both industries I prefer working with wet science people. For some reason they generally have a much healthier perspective on life. Their work is humbling because it is, and will forever be, full of unsolved mysteries, not simply because it is challenging. The other folks, whether they call themselves "scientists" or "engineers" or "developers" or "coders" or whatever, are working with something that as far as I can see has no inherent connection to the natural world, other than being a production of the human mind. Perhap that affects the perspective many of them have on life. For example, how common among them is this belief that all things, not simply computers, can be thoroughly understood and mastered. Note this is pure opinion, not fact, and I am generalising; there are exceptions to every generalisation.
I don’t know if it’s ignorance, naïveté, or hubris, but it’s amazing to me that these programmers think the world/universe/reality is a complex problem that could be easily understood eventually. When working with “wet” scientists I found that attitude was almost non existent. The complexity is just so high and there are so many unknowns that many of them are very comfortable saying “I don’t know” or “we may never know.”
One of my favorite examples to give is when I was still in undergrad, endocannabinoid research was getting hot in the Neuroscience field because it challenged the mental model that neurons communicate in a “linear” or “feed forward” fashion. Are neural networks going to implement that? Probably not, and it’s probably not worth it because at this point it introduces unneeded complexity. Try replicating the biochem of an entire cell for each cell in a NN and you _might_ be half way to achieving the complexity of the human brain.
I’m not saying this is impossible, all I’m saying that I find it remarkable how quickly programmers seem to think of themselves as “expert” on outside fields as if they’re the smartest people in the world. I will say, crusty old systems programmers tend to have more of the familiar characteristics of when I was in life sciences (Neuroscience and Genetics).
The point is that biology is ridiculously, ludicrously, compressed. Reading a basic biology book introduces you to all of these wonderful and seemingly complete abstractions: DNA blueprints, RNA messengers, information transfer into assembly units constructing little protein machines... at least that's how we wish it would look, and how we abstraction-craving mortals would like it to go.
But Melvolution is parsimonious - it sees a region of DNA and says "well sure that section encodes one gene, but if I bump the read head up by one and start halfway through I can magically read a whole other sequence for this entirely different task. Oh and that RNA you thought was for message transfer, well turns out that the right message can cause the thing to fold up and act sort of like a protein, so let's use that too. And sure this repeated section looks like uninitialized memory "junk" DNA, but it's too much work to take out, so let's arbitrarily read from addresses 12, 42, and 107, and stitch that information into a contiguous unit. Except that every once in a million times the read head can slip and start reading from location 14 instead of 12... and that possibility is __important__ because if you take it out the whole system crashes.
Every possible quirk of chemistry and physics is ruthlessly exploited again and again and again in a million simultaneous ways. Talk about leaky abstractions.
(Not to mention that we still can't reproduce the algorithm reality uses to compute this stuff. It takes a super computer hundreds of hours to simulate a reasonably okay protein fold (which happens in a cell in a fraction of a fraction of a second) - and even then we get it wrong most of the time. )
These are the biochemical pathways that we know within a cell which give a picture of cellular complexity. Zoom out to see the high-level block diagrams.
Genetic code only needs to work, therefore it’d be surprising if neatly grokable abstractions fall out of the system.
Here we are, a few mass extinction events and genetic bottlenecks later, trying to decrypt code with no history because it has a half life of a few hundred years.
Oh and the worst part? The computer architecture can only be programmed using a bootstrapped compiler - and we've lost billions of years of releases. That's why every program basically looks like a chicken before linking.
Yes, protein synthesis via RNA translation, as explained in high-school biology, does look like reading Assembly opcodes with 3-pairs-long window, with some opcodes being redundant (translating to the same protein). But then you learn (probably not in school) that they're not redundant at all; some organisms (like bacteria) actually translate RNA with different offsets of the read window, so the same RNA string will code for different proteins simultaneously. Sure, we did things like these back in the heyday of the industry, but that's just the tip of the iceberg.
Then you discover things like epigenetics, or that protein functions are determined by how they fold (something we can't simulate just yet), or that horizontal gene transfer (direct exchange of genetic material between cells, instead of through reproduction) is not only a thing, it's a very important (if not the primary) way by which bacteria evolve. You zoom into how electron transport chains work in chloroplasts (i.e. how cells power themselves by light), and you see a series of complexes that are tuned in dimensions to enable quantum tunneling of the electrons. And now think of how all of these is like a bag of sand - everything is there next to each other, bumping against each other all the time, and not only it works this way, a lot of things in the cells depend on that random walk to work.
In the end, I think our programming experience is useful for viewing some of the biology in terms of high-level systems and their interplay. On the mathy side, perhaps the fundamentals of information theory can inform some aspects of biological research. But beyond that, these things are just different. It's like you took a piece of code, run it through an optimizing compiler, and then through a magical demoscene compressor that makes the code self-modifying, re-encodes opcodes on top of each other by exploiting misaligned reads, makes the binary use PC register as arithmetic input everywhere, and ensure lock-free parallelism by abusing delays from cache misses as synchronization mechanism. And then you give that to someone else to reverse-engineer. That's like 1% as difficult as the stuff biologists have to deal with.
Code is written by humans for humans. The way models are trained has some similarities with the way evolution has created our biology.
Though I agree that the analogy doesn't really buy you much useful leverage when seeking useful understanding.
[0] https://en.wikipedia.org/wiki/The_Chemical_Basis_of_Morphoge...
But you'll probably benefit from taking an Edx course https://www.edx.org/course/introduction-to-biology-the-secre...
The pretty pictures don't hurt either!
I've got a PhD in biology, and have been into computers all my life. I write code as a biology researcher every day.
To me, there's a much more practical level to this than that of philosophical questions on how far analogies take you. Biologists and computer scientists learn, in their studies and through lots of experience, a different mindset about how things work.
As a computer scientist, finding a solution to a problem, or predicting how a system will behave, is ultimately just a question of having a deep knowledge of the system, plus being a little bit smart about using that knowledge.
As a biologist, having a deep knowledge of what you are dealing with plus being a little bit smart is just a starting point for formulating hypotheses that you will then still need to test. Every biologist knows in their gut that a plausible story is ultimately just that. It's not a proof of anything, just a starting point.
This runs really deep and can make communication between people who aren't aware of this difficult. I see this in comments here all the time, where someone has read up on a little biology, and then goes on to explain that, therefore, clearly this or that has to be true. Usually that makes me go: "Yeah, maybe. But what about all these other things you didn't consider? And what about all those things that literally no one in the world knows you would need to consider in this particular case?"
Anyhow, I think it's still productive to try to find simple physicsy explanations in biology. Sometimes it does work, and then you get things like PCR or gene editing... ;)
I would suggest that the distinction approaches to thinking you're seeing is rather between theorists and application driven people, regardless of domain. The same difference would apply between, say, an astrophysicist, and an engineer who develops a space telescope. People at the cutting edge of research appreciate that they're at the 'edge', and that their deep domain knowledge can only ever serve as a starting point for answers that may not even exist. Scientists working in applications aren't interested, nor need to worry about the ontological limitations of deep knowledge. If, for example, my concern is development of ML based high throughput cancer screening, I already know this is a doable problem (with varying levels of success), and just requires my deep knowledge + smarts. If instead I'm a researcher working on a unified theory for all cancers, I would (ideally) be self aware enough that this is something that might not even exist. I imagine the same dichotomy exists in CS between researchers (i.e., cryptography, AI, quantum computing) and developers.
Do you often see biologists without CS backgrounds making those kinds of mistakes about CS topics that people with CS backgrounds make about biology topics?
I also have a background in CS and biology, with some math and physics, too. I've also observed the tendency of people mainly trained in formal sciences (e.g., CS, math, logic) who's schooling involves a large amount of deriving things from first principles, to make this mistake (this is also true of more mathematically inclined physics majors and certain flavors of economics majors). They often think that what they know is enough to derive a novel insight from first principles, when the further you get from physics, the less true that becomes as the nonlinearity and sheer complexity of the world starts to interfere.
Different areas provide different ways of thinking with different strengths and weaknesses. They aren't mutually exclusive in the sense that learning one makes it harder to learn the other, but they require a non-trivial depth of study to pick up so most people tend to get mentally siloed unless they either study one of those other fields or somehow pick it up through a more non-traditional route (which absolutely happens, but is less reliable).
If you want an example of the type of things biologists tend to be weak at, I'd say quantitative thinking (at least relative to other sciences). Biologists tend to be the most math-phobic of the natural sciences, so most have a mental ugh field around most math. You'd be shocked how many grad students can't do some fairly basic stuff. Many undergraduate programs barely require calculus, though that's slowly changing, and you'll often get some exposure to some elementary probability and combinatorics in your introductory genetics class. And it's shocking how many people with whom I studied evolution and comparative physiology and anatomy didn't come away with some degree of probabilistic intuition.
Other fields I've studied to variously minor degrees that train particular mental habits or develop particular skills and perspectives that I've found valuable are psychology and the study of cognitive biases, cognitive science, computer programming and software engineering, chemistry and biochemistry, literature, economics (both the traditional kind and the more modern behavioral kind), probability, game theory, history, anthropology and a few others.
Fields I suspect train other mental habits/skills/etc. that I lack and haven't yet studied include poetry, martial arts, dance, jazz and/or improv, music theory and music in general, drawing, deeper dives into the topics I've already encountered, and probably a ton more that I'm can't remember.
Really the more wide ranging your curiosity is, the more well-rounded you become. And since most people don't bother leaving their silos (maybe a handful of others at most), you can after many years start to put together all sorts of insights that others find non-obvious (though they will still rarely be novel).
(I think nowadays people might call these "mental models", but learning about mental models directly through a description in a listicle has always seemed less useful than studying the fields themselves and indirectly building the mental model yourself.)
Of course, it's much faster when having experienced friends or acquaintances to help you navigate.
Unfortunately some of the animations require Flash or other plugins which are no longer common.