RSS

Recent Comments

Powered by Disqus
Jun
9th
Tue
permalink

Word of advice for software engineers

When the Internet was first booming, all you had to do was spend some time learning HTML and you could get a job and earn some pretty good money. When things turned down, however, it rapidly becomes clear that there is a hierarchy of desirable skills, and the HTML programmers (like the laborers and sheet rockers) go first, while the highly-skilled code smiths and carpenters are retained. What I’m trying to say here is that you don’t want to go into this business unless you are ready to commit to lifelong learning. Sometimes it seems like programming is a well-paying, reliable job — but the only way you can make sure of this is if you are always making yourself more valuable.

Maxim Porges Channelling Bruce Eckel

The point I cannot stress more,

Software Engineers need to commit to Lifelong Learning

One day you are programming in C writing OS level functions like FAT32 then the next day you are writing a desktop application generating VXML to be served by Tomcat in Java and then the next day you’re freelancing developing custom CMS solutions for clients using Ruby on Rails and then the next day you’re at a big corporation building ecommerce sites in Microsoft’s ASP.Net. True story.

Long story short, be very prepared to forget everything you learned yesterday to learn some new language/API/Framework to build something new today. The fundamentals of programming are the same but everyday there are newer better/worse ways of doing the same things.

The best programmers are those that can determine what the best way is given the circmstances, and can teach themselves how to do it cause they sure don’t teach you this stuff in school.

Some parting points from Bruce:

  • Learning as a lifestyle. For example, you should know more than one language; nothing opens your eyes more to the strengths a limitations of a language than learning another one.
  • Know where and how to get new knowledge.
  • Study prior art.
  • We are tool users.
  • Learn to do the simplest thing.
  • Understand the business (Read magazines. Start with Fast Company, which has very short and interesting articles. Then you can see if you want to read others)
  • You are personally responsible for errors. “It works for me” is not an acceptable strategy. Find your own bugs.
  • Become a leader: someone who communicates and inspires.
  • Who are you serving?
  • There is no right answer … and always a better way. Show and discuss your code, without emotional attachment. You are not your code.
  • It’s an asymptotic journey towards perfection.
blog comments powered by Disqus