Does moving from being a novice to a not-so-novice programmer mean knowing everything there is to know about PROC TABULATE? Well, yes and no.
It would be hard to call someone who knew everything there was to know about SAS ODS or every possible regression procedure in Stata from regress to nlogit a newbie. However, how useful is that person when you need to perform calculations, format your data differently, merge files or write more efficient, readable code? In the long-term, whether going deep or going wide is better is a debatable topic. For a beginning programmer, though, my recommendation is to spread out and increase your knowledge across a range of topics from programming to presentation to new procedures.
So, you are just learning a programming language and are like all of the eager, young people I have worked with over the years, you are excited to branch out. Yay, you!
There are a lot of possible next steps. One is to start taking advantage of all of the resources for learning. With SAS you want to check out the mailing list SAS-L, sasCommunity.org, SAS publications, of course, and some of the many blogs by both SAS Institute employees and SAS users. For Linux, I like the Ubuntu forums. The SPSS India website has a lot of free tutorials on statistics (of course with SPSS) and it really surprised me how good it was because I hadn’t thought of SPSS as offering a lot of resources. It may be the effect of the IBM purchase, or maybe it was always that way. Raynald Levesque’s site has cool macros, scripts and syntax for SPSS. Yes, I realize it’s not a blazing insight to say that you can find some good stuff on the Internet, but I mentioned those because I think all of them are very friendly for the programmer who is just beginning and wants to move ahead (and I mean that in the knowledge sense not in the stepping over the bloodied bodies of your co-workers to get to the top sense).
A second direction is to become familiar with more than just your current limited area of expertise. If you are a SAS programmer, you could learn more SAS products, such as SAS Enterprise Guide, Enterprise Miner, and smaller features like the Power and Sample Size application. Or, maybe you want to learn to use Stata on Linux and start learning about the Linux operating system. SAS and SPSS both have interfaces with R. SPSS was pushing Python procedures at one time. I’m not sure if they’re still heading in that direction. It doesn’t matter whether they are or not, really, if it is something that interests YOU.
Whichever direction you take shows that you have become interested enough to search for new knowledge and that is always a great sign. I was asked today who I would recommend for a new position that just opened up and why. I said,
“There are several people I can think of who could learn what you need. What I would look for is someone who is genuinely, sincerely interested, and not just in a $10 an hour raise, but in statistics, because that person will learn on their own, grow and develop into the kind of person you want.”
I was at the Predictive Perspectives seminar today, met someone who was excited to be there, not because she was looking for a job but because she wanted to learn. I gave her my card and asked her to contact me. It may be a cliche but it’s still true. You can’t buy passion (well, maybe in Las Vegas, but it’s legal there).
The biggest step forward, though, I think is – PLAY! As you learn more about programming languages, statements, functions, procedures and products you’ll invariably like some more than others. For example, my brain tries to crawl out of my skull to escape being melted by boredom whenever I have to look at SQL code. You may love SQL (unlikely as that may be). The more time you spend working on different projects, the more you’ll learn and the more you’ll discover what really interests you. I don’t have a profound thought to help you decide which direction to go except this. Remember the movie, Pleasantville, where his mother said
“…I had the right house. I had the right car. I had the right life.”
And her son answered,
“There is no right house. There is no right car.”
Learning SAS (or any programming language) is very much like that. There is no right choice. There are a lot of choices. The more you learn, the greater the number of choices you get to make.
How cool is that?