Canadian Information Processing Society (CIPS)
 
 

CIPS CONNECTIONS

INTERVIEWS by STEPHEN IBARAKI, I.S.P.

Internationally Regarded 20-year Development Expert in C++, Java, C#, .NET

This week, Stephen Ibaraki has an exclusive interview with Matt Weisfeld, noted author and writer, international conference speaker, authority in software development / project management / business development.

Matt is a member of the Information Technology Faculty at Cuyahoga Community College (Tri-C) in Cleveland, Ohio. Matt teaches programming languages such as C++, Java, and C# .NET as well as various Web development courses. Prior to joining Tri-C, Matt spent 20 years in the information technology industry gaining experience in software development, project management, business development, corporate training, and part-time teaching. Matt holds an MS in computer science and an MBA in project management. Besides the first edition of The Object-Oriented Thought Process, Matt has published two other computer books and more than a dozen articles in magazines and journals such as Dr. Dobb’s Journal, The C/C++ Users Journal, Software Development Magazine, Java Report, and the international journal Project Management. Matt has presented at conferences throughout the United States and Canada.

Discussion:

Q: Matt, with your long and successful history in development, we are very fortunate to have you with us. Thank you!

A: My pleasure. I am glad to be here.

Q: Describe how you got into computing starting from your first spark of interest leading to the present.

A: My freshman year at college I was planning on majoring in Economics. One of the required classes was a programming class (actually FORTRAN). After I took this class I was hooked and I never looked back. I have tried hard to keep up with the most current technology. My first job was with mainframes using Cobol and Assembler. Then I was fortunate enough to have the opportunity to join a software startup in Cleveland called ENDOT Inc. This was a joint venture with Case Western Reserve University and ENDOT was a C shop. Since then I have focused primarily on C-based languages. I believe ENDOT was an original member of the C++ standards committee, so I quickly moved to C++. In 1995 Java caught my attention and I eventually joined a Java startup, called preEmptive solutions, which produced a Java obfuscation/performance tool. At that point I was now really into objects since the Web was going in that direction. It has been really interesting to see how C# in particular, and .Net in general, has been designed for the Web.

Q: Please share two stories with the greatest impact on your life.

A: I really think the turning point in my career was when I landed the job at ENDOT Inc. At that time I was working on Mainframe systems (which I really enjoyed – I was really into JCL). I had a friend who put me in contact with Dr. Charles Rose, who was a past chairman of the Computer Engineering department at Case and one of the co-founders of ENDOT. They needed someone who could port their product, which was written in C (on various Unix platforms) to Mainframe MVS. Since I was interested in learning a new language, the opportunity was really great. I ended up porting ENDOT products to a variety of different platforms. This was really interesting because in the 1980s there were a lot of companies that were building custom computers – most of them with names that you probably have never heard of. I ended up going all over the country from New Haven, Ct., to Dallas, to Silicon Valley, to Minneapolis where we ported to Control Data’s Cyber. 

The other turning point was publishing my first article. About 1990 I was really into reading trade books and journals like the C/C++ Users Journal, Dr. Dobbs Journal and Computer Language (which then became Software Development.). I kept telling my wife Sharon that I could write an article about some work I was doing at Allen-Bradley (now Rockwell Automation, where I was then working). She basically told me to stop making noise and write the article. I then wrote my first article for the C/C++ Users Journal. The topic was about a search algorithm that I had developed with a colleague at A-B. I later wrote for Dr. Dobbs and Software Development as well. The whole process started again with the book. One day Sharon handed me an ad calling for authors with ideas to submit their proposals to QED, a publishing house in Boston (later a part of Wiley). I submitted the proposal and within a year my first book was published.

Q: Can you share a third story with a humorous or surprising twist?

A: My first book was published with the wrong title. I was surprised when I saw an ad with my name attributed to a book that I did not think I had written. I am still not sure how this happened. The title was a mouthful, Developing C Language Portable System Call Libraries. I think it was supposed to be something like this, Building Portable C Libraries.

Q: Share your most interesting conference experiences.

A: I spoke in Montreal (in English) while most of the presentations were in French. Attending a conference where French was the main language was really cool. I thoroughly enjoyed the conference and I love Montreal.

One of the neat things about speaking at conferences is that they lead to some interesting contacts and speaking requests. I spoke at the International Software Testing Conference in Orlando, Florida in September 2000. Through contacts at this large conference I was then able to speak at several smaller venues such as a local PMI meeting in Toledo. It is nice to meet with smaller groups.

Q: You have written for highly respected publications. Can you detail your experiences?

A: They have mostly been really good experiences. The most important experience was simply getting started. Many people I talk to are pretty intimidated by the thought of writing an article. I know how they feel because I was too. I know friends who have a great idea but don’t write because they are afraid to try. This is a mistake. Writing an article helps you focus. More importantly it shows others that you can organize your thoughts and that you have good written communication skills. I have found that once you get your foot in the door, and keep coming up with ideas, you get good writing opportunities. Once the first article is published more doors open up. That’s where persistence comes in. You just have to keep trying. Once you have one article published, editors will be more likely to look at the subsequent submissions. Once I had a few articles published, I was able to talk to a book publisher, then conference organizers, etc.

Q: Give us your top three tips in C++, Java, and C#.

A: C++:

  1. If you are programming in C++, and not C, stick to an Object-Oriented model.
  2. Be aware that C++ is an object-based language and does not enforce the Object-Oriented model. This is something that a lot of people don’t understand.
  3. Program with portability issues in mind. Test your programs on multiple platforms if necessary.

Java:

  1. I think that Java is a great first language to learn. Start by using the command-line compiler. Many people don’t know how to use something like a DOS shell or UNIX shell.
  2. Make sure that you learn Java’s server side. Many courses teach how to write Java clients. But Java is very strong on the server side.
  3. Use a Java Performance tool to make smaller, more secure and higher performance Java packages.

C#:

  1. Compare C# and Java to see how they implement their respective models – where they are similar and where they are different. It is quite interesting.
  2. In the same vein, it is interesting to see how C# incorporated Java, C++ and VB into its design.
  3. Visual C# .Net has a really nice GUI builder – start using this right away.

Q: Where do you see yourself in five years?

A: Hopefully right where I am now. I would like to get tenure and finish my career at Tri-C. Of course I need to keep up with the new technologies and teaching techniques so I can continue to grow professionally. I plan on doing this by reading as much as possible and doing some writing and consulting (primarily during the summer).

Q: What are your thoughts on the Open Source movement?

A: I am an advocate of the Open Source movement; however, there is a fine line between open systems and the need for proprietary solutions. The question is how much of the technological innovation is driven by profit. I would imagine that most companies believe that they maximize profit by having proprietary technology. The real goal would be to develop more models where companies can make a profit by adopting and building upon open systems. Another issue is responsive to the market. In some ways a proprietary solution can move more quickly. As with most things, there needs to be a blend of open and proprietary systems.

Q: Who are the big winners and losers?

A: The winners are developers savvy enough to take advantage of an open model. I suppose that the losers would be those companies that have proprietary solutions that compete with an open model.

Q: What makes your book, The Object-Oriented Thought Process, particularly compelling? Who is the target audience and why would our audience want to read it?

A: My target audience is programmers and project managers who need to understand object-oriented concepts in terms of design and implementation. Most people want to jump right into the code and worry about the fundamentals later. I have always thought that learning the fundamentals first is the best thing to do. The most compelling issue here is that most of the positive reviews come from programmers who say that they have been trying to learn O-O for many years by simply coding. It wasn’t until they took a step back and learned the fundamentals that they finally “got it”. You need to do the up-front work to make the paradigm shift. To help the readers with this I use conceptual examples as well as coding examples in the book – like using power plants and electricity to explain the concept of interfaces versus implementation.

Q: What additional tips can you share from your book?

A: The primary thing is to start thinking at a level higher than programming. I believe that many of the best IT jobs will be high-level analysis, design and project management opportunities. Don’t get too hung up in the code. While there are code examples in the book, the book is really code-independent – regardless of whether you are using VB .Net, C# or Java.

Q: Share your top tenstudy tips for learning programming?

A:

  1. Focus on the business solution and not the technology.
  2. Pick a language that suits the business solution – not the other way around.
  3. Don’t get tied to a single language.
  4. Learn both the server and client side.
  5. Programming now is much more than traditional programming logic.
  6. Programming logic now includes programming, scripting, mark-up, etc.
  7. Get comfortable with documentation.
  8. Create an electronic programming notebook – like an engineering notebook.
  9. Organizing and finding your information is more important than being a good technical programmer.
  10. Always back-up your work!!! This is where students, and some professionals, really get burned.

Q: What are the ten most compelling issues facing technology professionals today and in the future? How can they be resolved?

A:

  1. The changing economy. Resolution of this problem is obviously a political and economic issue.
  2. Outsourcing offshore. Without an even international playing field, we somehow need to find a way to be competitive. We have to be realistic and admit what is going on.
  3. Education. I see first hand that less young people are taking IT tracks for degrees. We need to do a better job of marketing the profession.
  4. Changing IT fundamentals. We need to market the newer IT technologies that are more interesting to younger students – like entertainment, security, wireless, etc.
  5. Marketability. The newer IT technologies are not simply more interesting. In many ways they have better market potential.
  6. Get the word out. IT is still a very viable career. This point seems to be lost since the “IT bubble” burst.
  7. Corporate IT. Corporate IT seems to be getting less desirable. I would even say that it is getting nasty. I wonder why making the right business decisions can’t include treating people with respect?
  8. Entrepreneurs. Perhaps the way to go is with smaller companies.
  9. Business solutions. IT needs to move more to solving business problems rather than working on technology.
  10. Have some fun. IT was always fun. We need to figure out how to keep it that way.

Q: What future books can we expect from you?

A: Honestly, at this point I have no idea - perhaps a textbook. If I do another book, I think that I would like to do a joint effort – perhaps with a colleague at Tri-C.

Q: What kind of computer setup do you have?

A: Actually, nothing special. I have a desktop for development and writing and a laptop for conferences, training, etc. Both machines are pretty standard, off the shelf. I used to build my own computers but I don’t play with the hardware much anymore.

Q: Matt, thank you again for your time, and consideration in doing this interview.

A: No problem. I really enjoyed it. Thank you very much for asking me!