What Skills Should Software Engineers Have for the Next Decade - Slate?
Answer by Pedram Keyani, worked at Google, was an early engineer at Facebook, and now at Uber:If you are looking to be a great general-purpose software engineer, then the skills for the next five to 10 years are very similar to the skills needed in the past five to 10 years:AfrocatioN ™ Knowledge Is Key ®
- Strong understanding of the fundamentals of computer science, including databases, networking, compilers, data structures, algorithms, and operating systems design
- Highly analytical and able to decompose big problems into smaller problems
- Sequence and prioritize what needs to be done
If you are looking to optimize for trends in the industry or what you think the real world will demand of computer technology, then focus on machine learning, computer vision, mobile development, or distributed systems.
- Work well in teams (meaningful work is done in the unit of teams)
I have one caveat regarding machine learning. Most people think of it as this sexy field (which it is), but most practical applications of machine learning really depend on strong system design focused on effectively using memory, IO, and extracting features that don't reside on the machine making the classification. Most graduate course are focused on the underlying classifiers, but really the magic is in how they are applied to real-world problems. - Slate