Tools for Developing a Technical Mindset was David Piech’s response to my request to share something he wished he knew earlier in his career. David came to IV Lab originally as a summer intern after graduating from Duke University; by fall he was a full-time engineer working on several diverse projects and initiatives. Recently, David headed off to graduate school after several inspiring years at IV Lab.
First Principles: Learn the first principles of at least one field (likely the one you are studying) and how more complex ideas and capabilities in the field are built from those first principles. A deep knowledge of first principles in one area will help your understanding of how they work in general and will help you understand how other fields build up complex ideas and capabilities from their first principles. This will take the mysticism out of other field's impressive capabilities and turn it into a respect for their first principles and methods of systematic inquiry, which in-turn makes you more confident to interface with other fields.
Mental Model: Develop a very good working mental model of core concepts in your field. The exact form of this will be different for each person based on preference: for me this is a vivid mind's eye visualization of geometry, motion and flows of fluid, current, heat, and other energies. Conceptually imagining problems while working through the math of the problem helps to develop this. Strong mental models enable you to quickly iterate through mental prototypes.
Models, Projections, Corrections: Build models of the system you are studying. This could be as simple as a few lines of arithmetic on scratch paper or as complex as Multi-physics finite element analysis or sophisticated Monte Carlo analyses. Make projections about system performance or other parameters from this model, then build, test, analyze results and compare to your projections. This seems cliché and somewhat meaningless in course lab reports when the 'correct' outcome to an experiment is known, but becomes invaluable when there is no known answer. It will give you a sense of where your model was right and wrong. Frequently, where the experiment deviates from your model is some of the most important phenomena, and where it is likely worthwhile to devote attention. This will also help to develop an intuition to guide you next time you build a model and make a projection. This technique is referred to frequently, but it cannot be understated in it's utility. Effective models enable you to quickly iterate through mathematical & conceptual prototypes.
Breadth: Build technical confidence by being exposed to a number of different areas and problems. This is NOT intended to make you deeply knowledgeable in those areas, but will make those areas less unknown, less frightening to work with, and will give you a better sense of how problems are worked and solutions built in general.
Notebook: Keep a notebook to write down and start developing your own style of ideas; they can be very small things – iterations on something else, or very blue-sky things. Try to form a continuity of your ideas, i.e. how they relate, play a game (if I was to pitch this to a VC, what would I pitch; what would I do next if they gave me $100k. For the ones that hold on to your attention, start to think about how you might reduce to practice your idea. If someone gave you $100k to flesh it out, what would you do next?)
Professional-level Engineering Design & Analysis Tools: Pick up engineering tools as early as possible. Figure out the software packages and fabrication techniques professionals in your field use to turn engineering principles into REAL products/systems of professional quality. This will NOT supplant learning formal theory, but will allow you to tinker, will start to develop an intuition for design, and will make you more confident in being able to actually implement your ideas. The nice thing with many engineering tools (mainly software packages) is that they're well designed and have a useful UI so that you don't need to have the fundamentals figured out to start playing around. While field specific, I have found the following to be useful: Matlab, Solidworks, COMSOL, EAGLE, etc. These tools help enable you to quickly make and iterate through software-enabled (virtual) design prototypes.
Tinker: Tinkering allows you to test a core concept, develop your mind's eye and intuition for an idea, and (importantly) communicate the idea to others. Be aware that while tinkering has immense value, sometimes a well-engineered system behaves fundamentally differently than one quickly put together. As long as this is acknowledged, both tinkering and thoroughly-engineered systems are valuable. Tinkering allows you to quickly iterate through simple physical prototypes.
Iterate: Iteration is a great way to give you intuition, minimize consequence of failure, and help make sure you don't miss something big.
Contributor’s Note: I have found these techniques to be useful in developing a technical mindset. I provide neither guarantee that they will be of similar aid to you, nor assuredly that they are even correct in their advice. They are biased towards the fields and projects I have been involved with, and are not intended to be exhaustive. I fully acknowledge that I am far from having a full grasp of these techniques and having a mature technical mindset. Take them for what they are.