{"id":5488,"date":"2017-09-18T01:02:07","date_gmt":"2017-09-18T06:02:07","guid":{"rendered":"http:\/\/www.thejuliagroup.com\/blog\/?p=5488"},"modified":"2017-09-18T01:03:41","modified_gmt":"2017-09-18T06:03:41","slug":"the-5-building-blocks-of-success","status":"publish","type":"post","link":"https:\/\/www.thejuliagroup.com\/blog\/the-5-building-blocks-of-success\/","title":{"rendered":"The 5 Building Blocks of Success"},"content":{"rendered":"<p><a href=\"http:\/\/www.thejuliagroup.com\/blog\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-17-at-8.52.30-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5489 alignright\" src=\"http:\/\/www.thejuliagroup.com\/blog\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-17-at-8.52.30-PM.png\" alt=\"blocks\" width=\"274\" height=\"441\" srcset=\"https:\/\/www.thejuliagroup.com\/blog\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-17-at-8.52.30-PM.png 274w, https:\/\/www.thejuliagroup.com\/blog\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-17-at-8.52.30-PM-186x300.png 186w\" sizes=\"auto, (max-width: 274px) 100vw, 274px\" \/><\/a>So you want to be a successful software developer \/ consultant ?<\/p>\n<p>If you are in any kind of quantitative field you have a VAST range of options, from working at some of the largest companies in the world in marketing research to performing efficacy studies for non-profits whose staff members can be counted on one hand.<\/p>\n<p>All of these broad number of opportunities require, at most, five building blocks:<\/p>\n<ol>\n<li>Programming concepts &#8211; You need to understand scope, do-loop, arrays, functions<\/li>\n<li>Data management &#8211; The thousand ways that users can enter data, and how to keep it from screwing up your results<\/li>\n<li>Working in a software development team &#8211; this is the part &#8220;self-taught&#8221; programmers are often not taught &#8211; documentation, testing and debugging<\/li>\n<li>Statistics &#8211; coming from the age when we inverted matrices by hand with a piece of pare and a pencil (not kidding) SAS, SPSS, R, Stastica, JMP and even Excel have made this a hundred times easier from when I started in the field<\/li>\n<li>Domain specific knowledge &#8211; by that, I mean if you are working in aerospace know something about what a transmitter and receiver are, know that a male and a female plug is a thing. If you are in biostatistics, understand survival analysis, relative risk.<\/li>\n<\/ol>\n<p>(<a href=\"http:\/\/www.thejuliagroup.com\/blog\/?p=5480\">Yes, I know I said four in the previous post<\/a> but then I thought about the importance of being able to work as part of a software development team and it&#8217;s my blog, so hush up.)<\/p>\n<p>Since I started (mostly) with SAS, I&#8217;m going to talk for the next few posts about how starting as a SAS programmer can be like a Dr. Seuss book &#8211; &#8220;Oh, the places you&#8217;ll go!&#8221; My main point, as I have said before (weren&#8217;t you listening?) is that it doesn&#8217;t matter what language you use in the beginning. Eventually, I will tell you why SAS is a great place to start &#8211; better than many others &#8211; but it is not eventually yet. Patience is a virtue.<\/p>\n<p>Let&#8217;s start with programming concepts. Now, I&#8217;d had a bit of BASIC, Fortran and COBOL before I got to SAS (yes, shut up, I&#8217;m old and in fact, yes I DID use a keypunch machine with punched cards like those women in Hidden Figures.\u00a0 When the movie came out, one of our interns, in all seriousness, asked me if I was in it. I&#8217;m not quite that old.)<\/p>\n<h2>The basic concepts I use almost every day:<\/h2>\n<p><strong>Arrays &#8211;<\/strong> <a href=\"http:\/\/www.thejuliagroup.com\/blog\/?p=3877\">I&#8217;ve written about those on this blog a dozen time.<\/a> One of the most frequent uses I make of SAS is to score tests, which requires creating an array of answers from a respondent and a second array of items scored correct or incorrect. <a href=\"http:\/\/www.7generationgames.com\/making_camp\/\">Our game, Making Camp, that teaches multiplication and division<\/a>, has a virtual trading post and a wigwam, both of which make extensive use of arrays. All of the items you can &#8220;buy&#8221; with the points you earned from solving math and history problems are in an array.<\/p>\n<p>SOME SAS ARRAYS<\/p>\n<p>Data scored ;<br \/>\nset mydata.data2013 ;<br \/>\narray ans{70} q1- q70 ;<br \/>\narray correct{70} c1 \u2013 c70 ;<br \/>\narray scored{70} sc1 \u2013 sc70 ;<\/p>\n<p>SOME\u00a0 JAVASCRIPT ARRAYS<\/p>\n<p>var things = [<br \/>\n&#8220;art\/tomahawk.png&#8221;, &#8220;art\/dog.jpg&#8221;, &#8220;art\/pottery.png&#8221;, &#8220;art\/deer_skin_sm.png&#8221;,<br \/>\n&#8220;art\/bass_side.png&#8221;, &#8220;art\/arrows_and_quiver.png&#8221;, &#8220;art\/turtle.jpg&#8221;, &#8220;&#8221;,<br \/>\n&#8220;art\/parfleche.png&#8221;, &#8220;art\/feather_sm_side.png&#8221;,<br \/>\n&#8220;art\/plate.png&#8221;<br \/>\n];<\/p>\n<p>var things_name = [<br \/>\n&#8220;TOMAHAWK&#8221;, &#8220;DOG&#8221;, &#8220;POTTERY&#8221;, &#8220;DEER SKIN&#8221;, &#8220;BASS&#8221;, &#8220;ARROWS AND QUIVER&#8221;, &#8220;TURTLE&#8221;, &#8220;&#8221;, &#8220;PARFLECHE&#8221;, &#8220;FEATHER&#8221;, &#8220;PLATE&#8221;<br \/>\n];<\/p>\n<p>Yes, they look a little different but the basic concept is the same.<\/p>\n<p>In the SAS example, I&#8217;m matching three arrays &#8211; the answer the students gave, the correct answer and the item scored correct or incorrect.<\/p>\n<p>In the JavaScript example, I am matching up two arrays, with the source for the image file and the alternate text for that element.<\/p>\n<p><a href=\"http:\/\/support.sas.com\/resources\/papers\/proceedings10\/158-2010.pdf\">In her paper presented in 2010 at SAS Global Forum, Jennifer Waller<\/a> says,<\/p>\n<blockquote>\n<div>A SAS ARRAY is a set of variables of the same type that you want to perform the same operation on. The set of<\/div>\n<div>variables is then referenced in the DATA step by the array name. The variables in the array are called the \u201celements\u201d<\/div>\n<div>of the array.<\/div>\n<\/blockquote>\n<div><\/div>\n<div>Every word of that applies in JavaScript except for &#8220;of the same type&#8221;. In JavaScript you can have mixed type arrays and if SAS would add that, it would make me very, very happy.<\/div>\n<div><\/div>\n<div>Arrays are a fundamental concept to any programming language, so mastering that concept is a step forward.<\/div>\n<div><\/div>\n<div>Truly understanding variables is another foundational idea &#8211; not just that they are not constants, but the concepts of type, format and scope &#8211; but that is a whole different post and The Invisible Developer is reminding me it&#8217;s almost 11 pm on Sunday night, so that will be my next digression.<\/div>\n<div><\/div>\n<p><a href=\"http:\/\/www.7generationgames.com\/making-camp\/\">Speaking of Making Camp, you can get it here for free. Play it and learn stuff because maturity is overrated.<\/a><\/p>\n<p><a href=\"http:\/\/www.thejuliagroup.com\/blog\/wp-content\/uploads\/2017\/09\/making_camp_icon_app_store.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5491\" src=\"http:\/\/www.thejuliagroup.com\/blog\/wp-content\/uploads\/2017\/09\/making_camp_icon_app_store-300x300.jpg\" alt=\"wigwam\" width=\"450\" height=\"450\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.7generationgames.com\/making-camp-bilingual\/\">If you want to learn even more stuff, you can get a bilingual version of Making Camp for your iPad for only $1.99 and brush up on your Spanish like you always said you were going to do but didn&#8217;t.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>So you want to be a successful software developer \/ consultant ? If you are in any kind of quantitative field you have a VAST range of options, from working at some of the largest companies in the world in marketing research to performing efficacy studies for non-profits whose staff members can be counted on&#8230;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,9,8],"tags":[],"class_list":["post-5488","post","type-post","status-publish","format-standard","hentry","category-dr-de-mars-general-life-ramblings","category-software","category-technology"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/posts\/5488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/comments?post=5488"}],"version-history":[{"count":4,"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/posts\/5488\/revisions"}],"predecessor-version":[{"id":5494,"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/posts\/5488\/revisions\/5494"}],"wp:attachment":[{"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/media?parent=5488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/categories?post=5488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thejuliagroup.com\/blog\/wp-json\/wp\/v2\/tags?post=5488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}