Jack of All Trades: Business and Marketing

Business and marketing — those are funny subjects for an engineer to study, aren’t they? As I see it, though, it is my duty to try and gain some business sense. Understanding how the product I am developing fits into the broader marketplace allows me better develop the product. My prior employer thought so, since the graduate school curriculum that they endorsed had courses in Strategic Management and in Cost Accounting.

In the far future, I will probably start my own business. I am not sure whether I will pursue some kind of engineering company or branch out into a completely different field. I just know that, some day, I want a business all of my own. Until then, the business reading that I do is for my company and my own edification.

What do I study? Mostly, I read weblogs such as Seth Godin, Pamela Slim, and Michael Lopp. I also tend to devour books on various topics such as Made to Stick: Why Some Ideas Survive and Others Die and Made to Stick: Why Some Ideas Survive and Others Die (yes, I know me reading books different topics is a huge shock — I like to read, get over it).

If you know of any other really good business weblogs, please let me know in the comments. I am always looking for more information to consume.

Posted in Inside the Engineer | 1 Comment

Jack of All Trades: Algorithms

Yes, another Computer Science related Jack of All Trades post. I promise that this is the last C.S. related post for a while. Why do I like studying algorithms? Probably the same reason that I like studying Mathematics; both are very precisely defined and have interesting characteristics for study, but no matter how much you learn, there is always more to discover. Recently, I read an article in ACM Queue called You’re Doing it Wrong that discussed performance trade-offs between two algorithms and how, given the traditional understanding of computing systems, one algorithm clearly performed better. However, under real-world conditions with modern processors, secondary effects caused the other algorithm to perform better in this particular use-case. This article has gotten me thinking about how particular algorithms are chosen for a task and how much effort should be put in to choosing the appropriate algorithm.

In my studies, I am of course consulting the honorable Knuth and his venerable The Art of Computer Programming. It is slow going; if I ever finish it, I will probably be an aged man. However, I will know more about Algorithms that most people should. I am not sure that this study has any practical consideration outside of my field of interest other than training my mind to think logically. Maybe that is reason enough to study it.

Posted in Inside the Engineer | Leave a comment

Jack of All Trades: Programming Languages

Of all the subjects in Computer Science to grab my interest, it is the study of programming languages that holds a place closest to my heart. Honestly, I am not entirely sure why. It probably hearkens back to my AP Computer Science course in high school. The particular assignment is not really important, but the class was allowed to implement it in either C or Pascal (the two languages being taught at MSMS at the time). After everyone turned in their assignments, which took several pages of code to accomplish, the professor showed us his implementation is a weird little language called Lisp. His version of the program took around 3/4 of a page &mash; probably 1/4 of the length of any of out versions. Seeing the simplicity of the code made me want to understand what it was that was unique about Lisp and sent me off to the library to get whatever I could about the strange little language.

Fast forward 13 years. Now, I have done a bit of serious programming in C and C++ and dabbled in Lisp, Forth, Python, SmallTalk, and Haskell. Each of these languages has their own pros and cons, but learning about their differences and their implementations fascinate me. So, I have bought several books on language (and compiler) implementation and have allowed my math studies to be directed towards the theory of Programming Languages. I lurk a good bit on Lambda the Ultimate, a programming languages weblog. I have played around with some simple implementations of Lisp and Forth clones and want to ultimate build one of those two on a machine from the ground up &mash; that is, make the language implementation into the Operating System for the computer, like it was in the old days.

I am interested in making programming more accessible to everyone. I am not sure what form that will take, but I believe that it come out of the concept I mentioned in my AI post about Fuzzy Literate Programming, something that does not yet exists but I bank will occur in the future.

Posted in Inside the Engineer | 1 Comment