The software skills engineers need

The software skills engineers need

I was recently asked a great question by an engineering grad student: "What software skills do I need and how can I learn them?" 

As an mechanical/aerospace engineer, I never took a CS class in college (huge mistake) so I have had to learn on the fly, but I tell every engineer of all stripes that on top of engineering and specific domain knowledge, software engineering is going to become more and more critical in the future. Additionally, much of the software engineering that I use on a daily basis is not necessarily about data structures or compiler syntax, but the process of developing professional grade software. The world of software development has evolved so much and integrated so many different processes together to reduce errors and streamline production - many of these processes have been co-opted back into design and manufacture of physical systems. I believe that the more of these techniques you can learn and get in the habit of using, the more your professional options will open up.

Here are some of the things that I wish I had learned, and would be thrilled to have candidates know coming in the door:

  • Basic software architecture - how to sit down and write a well organized, object oriented program from scratch. I "learned" how to do this watching Stanford's CS106 lectures online but I'm sure there are a lot of options to gain these skills and many of the interviewees we see today know this a lot better than I do.
  • Test driven development (TDD) - understanding how to separate out the difference between designing code and writing code, and using test-first principles to think about what you are writing and why before you dive in and start writing. This video from lynda.com gives a good overview, but it isn't enough to dig into the details. Uncle Bob does a much more in depth version that provides three laws of TDD that are succinct and elegant. If everyone followed them I think we would live in a very different world.
  • Agile development - what it is (and isn't). It is important to understand why it came to exist, and I think this is a nice summary of the history and how the shift from waterfall methods to agile came about. The agile manifesto is something that I remember reading for the first time and thinking that it made perfect sense to always keep code working and that the process was such an important part of software development. I'm not advocating for using Atlassian tools (although we do and they are certainly pretty good), but this is a solid overview of the difference between scrum and kanban.

I'm sure that there are more things that would be great to know from a software perspective as an engineer, but these are the main ones that jump out at me. What else have you engineers out there found useful in your career from the software development world?






要查看或添加评论,请登录

Alex Egeler的更多文章

  • Three techniques to enable more empathy in your life

    Three techniques to enable more empathy in your life

    In the longest research study on the topic so far, one element emerged as key to not just happiness but also health:…

    10 条评论
  • Leaders aren't using a proven method for engaging employees. The reason why isn't what you think it is.

    Leaders aren't using a proven method for engaging employees. The reason why isn't what you think it is.

    Companies that can innovate while keeping their employees engaged will be the ones that thrive in tomorrow's business…

    8 条评论
  • When you aren't heard at work

    When you aren't heard at work

    "Should I say something..

    3 条评论
  • Show your bad days too

    Show your bad days too

    Authentic leadership means showing your bad days too. Many of my posts these days stem from my new understanding of…

    2 条评论
  • Managing without "should" to reduce anxiety

    Managing without "should" to reduce anxiety

    I've been working on understanding and managing anxiety for a long time, but right now I have a unique opportunity to…

    4 条评论
  • My Journey at Aerion

    My Journey at Aerion

    The bad news: today Aerion wraps up operations after unsuccessfully raising the needed capital to continue on the path…

    32 条评论
  • Support Main - at Work

    Support Main - at Work

    In life, I have found my best spot is always being there to make the people around me better. In League of Legends, I…

  • ASSESS Congress: learning from the leaders in simulation

    ASSESS Congress: learning from the leaders in simulation

    I recently attended the 2018 ASSESS Congress and found it to be an incredible experience for me at this stage of my…

    3 条评论
  • Emotional Intelligence in the Workplace: Finding the Proof

    Emotional Intelligence in the Workplace: Finding the Proof

    I am a firm believer in EQ/Emotional Intelligence as a critical skill both for life and work happiness and success. I…

    7 条评论
  • Empower your superstars

    Empower your superstars

    Aerion Supersonic is fortunate to have a team full of passionate, bright, superstar design and analysis engineers…

社区洞察

其他会员也浏览了