Category Archives: Learning

Developer Professionalism

There are numerous articles on the net about “developer professionalism” but I keep coming back to “Software Engineering Code of Ethics and Professional Practice“. You see, just about anyone can call themselves a developer, read a few books, accrue work experience at sub-par companies (those that do not demand professionalism) and end up as part of your organization.

As a professional in charge of hiring, it is your responsibility, to find developers who meet a certain level of professionalism. Junior developers are rarely held up to the same standards and I feel this does them a disservice. There are some things the junior dev will not be able to talk about but asking them questions like, “Give me an example of how you took responsibility for your code/work?” is a good way to get them talking about ethics and to find out just how professional they are. I have rarely come across any question that tried to ascertain your professionalism in interviews and that is both sad and scary.

If I find a problem with your code that would take you 10 min to fix and take me 30, don’t ever pass your faulty code to me to fix because you’re busy. Take responsibility [1.01, 6.08]. Fix it yourself.  And on the other side of the coin, if you find fault with my code, bring it to me to fix. Give me the chance to learn what I did wrong so that I don’t make the same mistake again.

So the next time you run into a problem, be it hiring a new dev, or an issue in code, ask yourself, “What would a professional dev do?”

Tagged , , ,

What Technologies Should Every Software Developer Look At

I was recently asked to provide a list of technologies that might help developers become more current and help them decide what is important for their careers. I wanted to put together a list that was comprehensive, but that is just not feasible or practical. So let me throw this list out to you and get your feedback. [Lets not start a holy war of c++ vs. java vs. .Net vs. <insert language here>!]

I would really appreciate your honest feedback on what YOU consider to be important that is on this list or that I may have missed. My hope is to find a list of 10 technologies that you consider to be absolutely necessary for Software Developers to know in the coming years. They don’t have to be the list below, please feel free to add to this. Thank you. 

  1. F#
  2. Windows Azure
  3. Jaxer / Node.js / Narwhal
  4. CoffeeScript
  5. TFS / Git / Mercurial
  6. Design Patterns
  7. SQL Deep Dive
  8. Windows Phone 7
  9. Windows 8 Development
  10. Ruby on Rails
  11. XAML
  12. XNA Framework
  13. Parallel Framework
  14. Visual Studio 2010 Tips & Tricks (poll devs for tips)
  15. WPF / MVVM & MVPVM (Movel View Presenter ViewModel)
  16. How to debug using WinDbg & SysInternals Tools
  17. DSLs (in Boo or Otherwise)
  18. Machine Learning
  19. Windows Workflow
  20. Hadoop
  21. I-Phone programming
  22. Kinect Programming
  23. Silverlight
  24. HTML 5 Canvas Programming
  25. Powershell administration (managing servers etc would become much easier)