Iím a serial hobbyist. One hobby I particularly liked was bee keeping. The basic beehive that you see virtually everywhere throughout the world was created by a Minister in Ohio. The design works so well it has little changed over the years. There are removable sections that contain the combs that the bees build out and fill with honey. The key to getting the bees to build the combs exactly how you want them to, hence making the work of maintaining the hive and extracting the honey far easier, is to provide a template embedded with the hexagonal pattern that the bees product. This ensures that the bees will make combs in the manner you want them to.
When you are looking for your first engineering job you need to make sure that the people you are going to be working with provide you with a suitable template for building your engineering talents and discipline. This pattern is critical in ensuring you wonít develop bad habits that will difficult to overcome.
Too many new graduates are focused on starting salary, or specifics of projects. Your real focus should be on who and the how. Who will you be working with? How do they do their work? When looking at the who, consider the backgrounds of the people you will be working with, what companies did they work for? What is their track record for delivering solutions? When considering the how, inquire as to what software methodology the company uses and why. If you hear the world agile, you need to ascertain if they are using it as a noun (meaning they are following the Agile Methodology), or if they are using it as a verb, often meaning there is no process but we work until we get the job done. Run away from these companies! As tempting as it might be to work at a company that just gets down to the code and doesnít let things like project plans and documentation paralyze their creativity, you are selling out your future ability to work in cooperative and coordinated environments by picking up a lot of bad habits that will be very hard to overcome later.
Today, the most exciting software projects to work on typically require multi-discipline teams that need to be coordinated towards a harmonious goal. This should not be confused with bureaucracy; design and planning are not bad words and will actually help you create better code and better products.