3 ms·
There is basically an entire universe of computer science, computer engineering, software development and software engineering. All up and down from the microp
by sjg007 6y ago
There is basically an entire universe of computer science, computer engineering, software development and software engineering. All up and down from the microprocessor up to the cloud. You can go get lost in javascript as much as you can become lost in the world of cloud databases.
Reading an algorithms and data structure book would probably fit in your path planning model research. I am guessing graphs, trees and A* would be useful. Modern planning probably have some kind of probabilistic component/control system now too e.g. reasoning under uncertainty (graphical models). So that's the theory here is what I am getting at. And probably the most important part!
You probably have a development environment so work in that ecosystem. You can follow test driven development or whatever you want. I would avoid systems tools like docker etc.. unless you need them.
Software design is really breaking down and solving problems at some level of conceptual abstraction. So the canonical example would be a list or an array. It has a data structure, a set of operations. It's easy enough to build a class that models a list of integers, but now extend that to strings and then what about generic objects. I also should be able to have the same algorithms work on a list of any type. Software design is basically that approach but at different levels in the software stack.
For a robot you would want a function for turn left and move right and maybe a module that groups related locomotive functions together. Maybe have a data structure that models state and where in the world the robot is.
Now sometimes you have to come up with the concept of "list" in the first place but for 99% of tasks we just build out of basic data structures and systems and use those to build something bigger. Lists -> arrays -> graphs really are conceptual primitives.
Your algorithm choice will play a role too.
You might also enjoy the screencasts at: https://www.destroyallsoftware.com/ https://www.destroyallsoftware.com/