How to become a Top SAS Programmer by Roger DeAngelis, SAS GURU
Roger has a Bachelors degree in Math from the University of Vermont and a Masters Degree in Statistics from Penn State University. Rogers primary interest over the last 50 years has been the psychology of problem solving both on the individual and community level. He often posts ‘SOAP BOX’ responses when he attempts to solve a users problem in hopes of uncovering deeper understandings of why users prefer both specific software or specific algorithms.
How to become a Top SAS Programmer By Roger DeAngelis.mp4
Can you propose 3 valuable tips or strategies that are necessary to become a top SAS Programmer?
I picked up and became a SAS Programmer basically by solving problems and getting very involved with the SAS community. I think that’s where I grew the fastest with solving problems and using SAS in my work. I worked in pharmaceutical, financial and academic and also big business and computers. I worked with a large computer manufacturer in their, what was called their pinnacle group which developed and design future mainframes. And that’s where I really learned about hardware and software and how they interact. And then that also helped me in SAS in writing efficient programs.
Let me talk about some things that people could focus on that would really improve their programming.
You know I think one of the things that could really help move people along is if they focus more on data steps instead of focusing on static reports. For instance I’m more interested in getting a dataset out of PROC REPORT or out of tabulate and then using it to put out a second report which is more flexible. You know I think people focus too much on just the report and not the data step and I think they often get a painted in to a corner where a manager will come to them and say I want on a cross column to have a different format than other cross cards which you really can’t do with PROC REPORT – where they want n parentheses per set up. They want some variation whereas if you use PROC REPORT to get the output you could then easily manipulate it with another PROC REPORT to get any kind of flexible report you’d like.
Also I really feel programmers should think about augmenting the foundation of SAS processing with R-Perl and Python. I’ve kind of developed some techniques which make it easy to interface SAS R-Perl and Python. Where you can even pass macro variables or use the clipboard to move data and text back and forth between R and SAS.
Also one thing that I think could really help programmers too is if they consider what I call the classic SAS on a power workstation. I think this is a platform that is underutilized. The classic display manager system has the ability of executing almost anything on the command line. These things called command macros which are not used as much as they should be I think .which can enable you to even operate on text in the editor; you can map functions to your mouse. I have a 5 button mouse and I had about 20 actions mapped to the mouse. You have function keys, you can have multiple monitors without workstation, you can extract and operate on a text in the editor which is very powerful.
As far as PROC I think SQL, especially SQL pass through to various databases even Excel, Oracle, Teradata is something people should be thinking of more often and using it. I think the explicit pass through is much more powerful and the implicit pass through. So CQL is one of my favorite PROCS. Another one of my favorite PROCS which is very under-utilized is something called CORRESP which is corresponding PROC CORRESP. Now PROC CORRESP is the only procedure that I know in SAS that can transpose and summarize multiple or multi-dimensional crosstabs. And what it gives you is the cross-tab which would require a short transposed and summarized 3 PROCS to do any other way. So I think people should be looking at that this PROC to produce a dataset that they can then easily put out a pretty report work. I really think there’s too much emphasis sometimes on pretty reports where you should be thinking about creating a dataset that’s close to the final product they want.
Another thing that’s very under-utilized I think is what I call normalization. People get into the Excel type, they think in terms of spreadsheets. When a structure that is long and skinny they can be easily pivoted or transposed. It is much more powerful especially with SQL than a fat data set, and designing these normalized data sets is key.
I also want to talk a little bit about I don’t know if I should name them but if you want to become a guru I really think you have to get involved in the community. There’s several lists out there. There’s the SAS forum, SAS-L stack, overflow SAS and also Stack Overflow on Python and even Perl. And it’s to your advantage to take advantage of these, to ask questions and see what questions other people are asking. This has really helped me. It’s like over the last almost 50 years I kept almost every SAS program I’ve written and I’ve shamelessly stolen many from the community sites and I do have the acknowledgements with them. But there some 20000 programs in one of my folders and I also have a file that has basically all my responses to various lists over the last, at least I would say 30 to 40 years. So it has like right now it has over 3000 tips in it. And some of them are quite long and quite extensive. But if you do keep an archive and you do keep track of what you’ve done I refer to these all the time. In fact I’d say 50% of the problems that people post on list have been solved and many of them I have the solution for them.
The only downside I think is that SAS, I can look at some of the old tips and they don’t apply anymore because SAS is actually supplied new functionality that takes care of those issues that the people had in the past. You know I think also that you can’t be afraid to express your opinion and this is one thing I believe in which those accouter to a lot of the lists. I know. Stack Overflow I cannot do a soapbox on Soapbox on Stack Overflow because it’s an opinion. I think opinions are important as long as you wrap it in some kind of…I wrap my opinions and Soapbox on and Soapbox off. And I think these are key for people to understand the psychology of software.
There’s so much misinformation out there about software and there’s so much gobbledygook that someone has to expressed a contrary opinion and sometimes I go too far the other way on purpose because the marketing is so bad in one direction that people need to be jargon to think about oh there is an easy way to do this. You know we just do it this way. It may not help the bottom line of SAS or others but it’s the way to go. So I tried it you know and I didn’t do that early on in my career but now that I have the experience I do feel justified in writing these little Soapbox vignettes or whatever you want to call it. But I think you need to be like I said curious, creative and don’t take – a lot of times I will try purposely not to take the common solution. I like to go that path not taken; you should think about other ways of solving a problem.