I think the education we get in school is good and it should not be specialized in any area. There are people who specialized in some area but this happens in large companies where they can afford one person devoted a specific area. in most companies as, I found out, as an engineer you got to be able to respond everything. Of course we don't know everything so we need to change our method in such places from specialization in narrow areas to knowing a little about a lot of areas. The method I use is know at least a little about many areas. If something comes up in most cases you can talk to all kind of vendor who are specialized in the area and get the correct device or system. You don't have to be an expert in motor all you need is to describe what you want. You don't need to be an expert in temperature controller just ask companies who makes them. And so it goes. As for the specific problem of what pushes the boat then we can write all kind of differential equation or other equation but we can't solve any of this because we don't know the material properties, the friction, all kind of other resistive elements, and many other thing that we don't know. In most cases you got examples that can fit you situation so you can design and get an idea about the various elements. Then you buy the parts or make some, assembly them and test. I have done many calculation in the past be it in finite elements, finite difference, specializes method and others. One thing I know for sure is that there are many properties that I don't know. Also most of the calculations do not take into consideration many small variation in the design because it takes very long to code them. It would be easier to make the part then to calculate it. So to conclude I suggest learn about many thing and you do not have to an expert on each one of them. Build the assembly and test it. You can do some calculation but don't look for an accurate mathematical model of assembly. However if you need an accurate mathematical model then do it and based on the test results of the assembly tweak the model to behave like the tested assembly.