|
Paula,
If one is heavily into SAS/AF or statistical analysis perhaps one can push
aside
SAS macro or at least prove useful without this skill. If one operates with
SAS
as a programming language for data manipulation, batch jobs, or reporting
then I don't
see how one can avoid SAS Macro. I would not want to consider anyone an
experienced
general Senior SAS Programmer without a sound understanding of SAS macro.
The "compile step then execute step" nature of SAS makes SAS macro both
astonishingly
powerful and necessary. If anything I would downgrade your candidate for
putting the
skill at 6 on a scale of 10. I would argue for 4 or lower.
Do not confuse SAS macro with macros is MS products. There is little
relationship.
In the MS case they offer a cheap way to get cheap results without sound
programming
skills. As such they offer the ability to make a product useful to someone
who
otherwise could not use it.
In SAS, macro provides the ability to provide flexible and complex programs
that
could probably not be otherwise produced in SAS. In other words the lack of
macro
skill hampers one's ability to produce good SAS programs. The lack of macro
in
the MS world can indicate a mature VB programmer. The lack of macro in SAS
should
indicate a student programmer.
There are good reasons for distrusting SAS macro. It is easy to write very
unreadable
and unmaintainable code. It is hard to debug and probably rarely adequately
tested.
It disconnects the written program from the help of the SAS compiler because
the
macro facility is a text processor and can have no SAS knowledge. The
closest
analogy in VB is the construction of a string of SQL code. The VB compiler
is helpless
to be able to judge the validity of the string as valid SQL code. To deny
the use
macro in SAS, to me, is equivalent in VB to denying the use of SQL code in
VB.
The object oriented programming languages gain their power by other means,
but if one
is to work in SAS, then the SAS means of providing power is SAS macro. The
choice SAS
versus another language is reasonable. The choice SAS without macro is a
foolishly
crippled misunderstanding of where the language gets it power from. To be a
complete
SAS programmer one has to learn how to use macro, conquer its weaknesses and
difficulties,
not avoid macro altogether.
Now when should one delve into SAS Macro? I think it wrong to consider
macro techniques
before one has a sound understanding of how SAS works. To study macro too
soon will
stunt one's ability to write good code rather than enhance it. At first I
would limit
the use of macro to providing a parameterized unit of SAS code. So that at
first a macro
would be no more that SAS code with macro variable references. After this
has been
mastered, then I would start to add macro instructions.
Ian Whitlock <whitloi1@westat.com>
-----Original Message-----
From: paula [mailto:icj808@USWEST.NET]
Sent: Wednesday, September 13, 2000 9:27 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: SAS macro skills: master or not master ?
Today I had the great honor to be invited to sit in a technical interview of
a candidate for a senior SAS programmer position. The guy obviously was very
capable and experienced. He especially showed a lot of his knowledge about
Macro. I recall he said if a SAS user is not very good at using SAS Macro
languages, the user should not be called a sas programer. One of my SAS
staff, who happens to be not very fond of SAS Macro for some reason, asked
him on a 10-point scale, if one does not master SAS macro languages, what is
the max he can get. The guy said 6.
I heard similar opinons/comments about Macro before, as related to MS Excel
and VBA programing. I recently embarked onto Macro variables and understand
they are good text substitutes. I would like to hear some feedbacks on Macro
before I get deep into it. TIA. Paula D
|