Pretty much all of the code I write is outside of my domain of expertise; my training is as a biologist. I have a computational background only as a result of my own (lifelong) amateur interest. This is the case for most people in biology doing computational work, since there are not many good programs for integrating study of biology and computing (despite the fact that biology is now 100% dependent on computing and statistics to understand experimental results).
As a result I ended up taking on the task of creating software infrastructure to support biology work and fill in these holes. This means I'm creating applications from the ground up, handling every aspect of it - front end, back end, authorization, calculation, storage, deployment, etc. I have zero training in any of these things, which is sometimes harrowing. I make the best choices I can, but ultimately I think I'm pretty hampered by my limited understanding of the available methods. I.e., I can write CSS, but I don't know how to write a grid layout engine using flex. I have read some Bruce Schneier books, but I don't know how to design or audit login protocols. I at some point learned how to use a relational database but don't know all the fancy new map/reduce type datastores that are available that might be more appropriate to my work. Etc.
I suspect that if you look in any domain outside of computing, you'll find people like me who are writing code by making things work without much specific training.
As a result I ended up taking on the task of creating software infrastructure to support biology work and fill in these holes. This means I'm creating applications from the ground up, handling every aspect of it - front end, back end, authorization, calculation, storage, deployment, etc. I have zero training in any of these things, which is sometimes harrowing. I make the best choices I can, but ultimately I think I'm pretty hampered by my limited understanding of the available methods. I.e., I can write CSS, but I don't know how to write a grid layout engine using flex. I have read some Bruce Schneier books, but I don't know how to design or audit login protocols. I at some point learned how to use a relational database but don't know all the fancy new map/reduce type datastores that are available that might be more appropriate to my work. Etc.
I suspect that if you look in any domain outside of computing, you'll find people like me who are writing code by making things work without much specific training.