10 reasons to learn SAS code even when you have Enterprise Guide


New York City Mayor, Michael Bloomberg made a new-year's resolution to learn code.

Apple’s Steve Jobs said, “I think everybody in this country should learn how to program a computer because it teaches you how to think.”

President Barrack Obama said, "Don't just buy a new video game, make one. Don't just download an app, help design it. Don't just play on your phone, program it."

It’s worthwhile to note that these smart leaders and visionaries believe programming is the way to go. Specifically coding in SAS is one of the few disciplines taught today that virtually guarantees students a job upon completion.  Don’t take our word for it – read my blog on how to land a job as a SAS professional.

A student recently asked me why they should learn SAS code if they have SAS Enterprise Guide software. I reached out to our worldwide SAS instructor group for their top reasons. Collectively we came up with so many reasons to learn to code that it was worth a post.

Here are 10 reasons why you might want to learn to code in SAS. You will find this list useful even if you have SAS Enterprise Guide installed on your machine since Enterprise Guide (EG) has its own program editor window.

  1. Debug errors in the log and tune SAS code for optimal performance.
  2. Extending point and click functionality - You will have the knowledge on exactly when to insert statements in SAS Enterprise Guide generated code. If you wanted to explode your pie chart, you will need to know that there is an EXPLODE= option and where to insert it.
  3. Complex data manipulation that point and click doesn’t have – building HASH objects, building our own functions and calls (PROC FCMP), array manipulations, and working with hierarchical raw data, etc. Also, by really understanding the code and the inherent SAS logic, programmers can be infinitely more creative than by simply restricting themselves to “what EG can do.”
  4. Dynamic coding - in other words, once you get past SAS101, you might need to use the SAS macro language.  EG uses static named tables and static output.  For instance, you want the name of the ODS output to be dynamically named or you might need to loop a process using macro looping.
  5. Data Step manipulation - While EG is a great tool, it can be extended further to use many features and functionality of the SAS Data Step. That, I think, is one of the major motivations of learning SAS programming beyond the facilities of EG.
  6. Cutting-edge SAS language developments for which tasks have yet to be created (DS2, etc.)
  7. Advanced techniques which need you to go beyond point and click...do loops, arrays, macro programs.
  8. Data and Proc Steps - EG is a proc code generator, it doesn't do data step...unless you are importing from a raw data file. To fully use SAS you need both data and proc steps.
  9. Certification: None of the SAS Certifications (Base, Advanced or Statistical Business Analyst) ask EG questions about SAS software, they ask PROGRAMMING questions about SAS software.
  10. Base SAS install without EG - Not all companies implement EG access to SAS.

Finally we are not suggesting you choose between EG and coding. With the new features of EG, in fact, you can have both -- you can use EG to do your standard tasks, freeing up your time to perform more mentally challenging tasks. And then when you need to customize EG with specific code, you can use the coding interface built right within EG.

Ultimately beyond these ten reasons, computer programming teaches you valuable business skills. The ability to break down large problems into bite sized chunks, the ability to efficiently use resources, and a new way to look at the world to come up with creative and refreshing ways to solve its problems.

Still not convinced? Watch President Obama making the case for code.


About Author

Charu Shankar

Technical Training Specialist

Charu Shankar has been a Technical Training Specialist with SAS since 2007. She started as a programmer, and has taught computer languages, business and English Language skills. At SAS, Charu teaches the SAS language, SQL, SAS Enterprise guide and Business Intelligence. She interviews clients to recommend the right SAS training to help them meet their needs. She is helping build a center for special needs kids in this project. http://www.handicareintl.org/pankaja/pankaja.swf

Related Posts


  1. michel jubinville on

    I coded my programs in SAS EG, not using the SAS EG facilities other than running the programs. Some did use these facilities. I found it difficult to do researches in these EG coded facilities compared to regular programs that I stored in some regular Windows library. Doing a mass research is easier than lookin these EG icons one-by-one.

  2. Pooja Pradhan on

    Hi Charu,

    I have a Masters in Biochemistry & Molecular Biology. I am looking to start my career in SAS.

    Hence, would earning a SAS certification help me to land an entry level job?


    • Hi Pooja, thanks for your enquiry. SAS certification definitely will add the quality stamp to your SAS skills. It proves that you have the discipline to work towards world standards of SAS quality. Ultimately landing an entry level job is entirely in the hands of the candidate. Our role as SAS instructors is to provide the best training. Candidates then take that training to apply to their job search. Hope this helps. Feel free to join this linkedin group for connecting with other job seekers & more resources. https://www.linkedin.com/groups/SAS-Canada-Training-Career-Development-5095978/about

  3. Thanks Divyesh, . for the reminder about jobs on SAS data integration studio.. yet another reason to learn SAS code. appreciate your writing in.. charu

  4. I can probably add one more reason to your list. SAS Data Integration Studio jobs are typically deployed as Base SAS programs on a Linux server. These programs are called by a job scheduler i.e. Flow Manager or Autosys. In the event of a problem in a Production system, it is often very helpful to glance these Base SAS programs and debug the problem.

Back to Top