Careers: Interviews
Internationally Regarded 20-year Development Expert in C++, Java, C#
.NET
This week, Stephen
Ibaraki, I.S.P., 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 ten
study 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! |