I’m a recent cs grad who is currently attending a coding Bootcamp that is hosted by a software consultant company and last week each of us had to do our personal projects to present today.
Most of my classmates were career changes while I’m the only cs person there as I wanted to know practical stuff like TDD and agile. I was amazed by how much they apply their domain knowledge to programming such as color changer, financial statistics, etc.
I feel like I lack a lot of domain knowledge as I am clueless about stats or maths(since my school didn’t have math as part of their cs ).i came to realize that working in the field isnt just about programming especially in an agile environment so I feel a bit discouraged from that.
Beyond knowing “computer science math” I don’t think you need to know math. Lets say your working and you have a project that requires complex math. Odds are your will have a domain expert available that can provide the domain knowledge. In this way they can break down the complexity of the domain problem down for you. Now the type of math you should know, or “computer science math”, is stuff like boolean logic, set theory, data-structures and algorithms. This is the type of math you will need day to day regardless of the domain-level problem your handling.
Even simple cases, like internal business applications, require some kind of “domain expert” that understands how the app will work in a business sense. You probably could understand the business case yourself, but instead the domain expert will act as a buffer between you and the ever changing requirements. This way you can focus on implementing the requirements, rather than the requirements themselves.
It isn’t your job to provide domain knowledge, its your job to be able to implement domain knowledge provided to you.
If your working alone on a project its easy to feel like “man I don’t know anything!” simply because you lack domain knowledge. I’d focus on what you do know or at least want to learn.
I did my senior project on NASA’s NEO (Near Earth Object) project using some public API’s. It sounds fancy, but really I focused more on the software development aspect. I focused on learning how to test, CI/CD environments, and deployments. The sort of stuff I 100% will end up using down the line and was interesting in learning at the time. I did learn some domain knowledge but unless I end up working at NASA it’s more or less useless to me now haha.
PS. Agile has nothing todo with “what people know” its more about how the software changes are handle.