29 January 2010

The Complete Software Developer

Very good article:
http://www.ericdaugherty.com/blog/2010/01/complete-software-developer.html

Education
While a Computer Science or Computer Engineering degree is not required to develop software, it can provide an understanding of the foundational elements on which everything else is built. Understanding both how a computer actually works, and the fundamentals of algorithms, data structures, and operating system design will provide a solid theoretical foundation for an entire career. I also believe it is important that the degree focuses on theory more than practice 

I find that a lot embedded software engineers lack knowledge of experience whatsoever with OO concepts. That's gonna hurt when devices become big enough so that C won't just cope with large projects.
I hope though we'll skip C++ altogether.


Consulting

I believe that every new college graduate's first job should be with a consulting company. Not just any consulting company, but one large enough and experienced enough that it provides real training on how to be a Consultant, in addition to how to develop software. Consulting is a skill, and it is one that will pay dividends through an entire career.


It's been true for me.


  • Build a product 
  • Work for a startup
  • Learn
  • Mentor
  • Build and mantain your Network
I couldn't agree more