{"id":707,"date":"2014-09-12T16:56:57","date_gmt":"2014-09-13T00:56:57","guid":{"rendered":"https:\/\/sheldon-hess.org\/coral\/?p=707"},"modified":"2014-09-12T16:56:57","modified_gmt":"2014-09-13T00:56:57","slug":"week-one-as-a-developer","status":"publish","type":"post","link":"https:\/\/www.sheldon-hess.org\/coral\/2014\/09\/week-one-as-a-developer\/","title":{"rendered":"Week one as a developer"},"content":{"rendered":"<p>Week one of the new job: I don\u00e2\u20ac\u2122t feel like a real developer yet.<\/p>\n<h3>Navel-gazing<\/h3>\n<p>I&#8217;ve learned a fair bit, of course. I&#8217;m more of a developer than I was a week (really, a week and two work days) ago. But I continue to get basic structures confused (how do I tell a list from a tuple, and are they even different*? does <em>x-thing<\/em> return an empty string or <em>None<\/em>?), and I still don&#8217;t have the fluency to pull out the right method for most tasks I want to do from memory, unless by &#8220;memory&#8221; you mean &#8220;Google.&#8221;<\/p>\n<p>I am fully aware that fluency comes with time and practice, and in my defense, a large part of this week was given over to [important!] meetings about architectural design, which, despite the coding I didn&#8217;t do while we discussed, I&#8217;m really pleased to have been part of. <\/p>\n<p>As far as that goes, I get the sense that I sometimes asked questions that cost the discussion some steam, but I tried only to ask things I needed to know, to be able to contribute to planning. I hope it wasn&#8217;t too frustrating for the folks who already knew what was up&#8230; but I was also kind of asking for two, because we have an intern who started within a couple of days of me, who is also on this project and who I think was more afraid of risking derailing things than I was. (Legit. Nobody wants to be <em>that<\/em> intern. But it made me more willing to risk being <em>that<\/em> new developer, since I knew nobody else would ask, if I didn&#8217;t, and odds were good that at least one other person in the room didn&#8217;t know the answer.) Plus, this thing we&#8217;re architecting is what I&#8217;m <em>doing<\/em> for the next month, along with the rest of the team, so I felt some responsibility to understand and contribute to planning it, as best I could. I hope that at least I made useful contributions. I know I am&mdash;and the rest of the team is&mdash;happy with the decisions we made and confident that they were well-reasoned and make sense. That&#8217;s really the important thing, more than what part I played in it and whether or not I annoyed anyone in the process.<\/p>\n<p>Who knew I&#8217;d already be worrying about the social side of all of this, so early on? (I should have foreseen it. It makes sense. Projects are all done with other people, and I really want to be a good coworker <em>and<\/em> a good programmer, both of which require social skills.)<\/p>\n<h3>A smattering of things I&#8217;ve learned<\/h3>\n<p>I had hoped to document all of the stuff I was learning each day, or at least each couple of days, through my first few weeks in this job. I knew I&#8217;d have a lot to share. But I&#8217;m so tired at the end of each day that I don&#8217;t really have a blog post in me. I hear one gets used to non-stop thinking for 8+ hours per day and functions better over time. :)<\/p>\n<p>I&#8217;ve learned a <em>whole lot<\/em> about <a href=\"http:\/\/www.arl.org\/focus-areas\/shared-access-research-ecosystem-share\">SHARE<\/a> (Shared Access Research Ecosystem), which we&#8217;re partnering on with the Association of Research Libraries, Association of American Universities, and Association of Public and Land-grant Universities (with funding from the Institute of Museum and Library Services and the Alfred P. Sloan Foundation). I guess it wasn&#8217;t a foregone conclusion that I&#8217;d be working on this project, but I also had very little doubt, what with all the focus on metadata and the chance to work with librarians. (Do I know anyone who&#8217;ll be at the October meeting? If so, let&#8217;s do coffee!) &#8230; I think SHARE will get its own post, soon. :) <\/p>\n<p>I learned a bit about pair programming, but I picked up a lot more about what <em>doesn&#8217;t<\/em> work than what does. (Valuable, still, I know.) It&#8217;s really challenging when the teammates have different styles, either for coding or for communication, and I&#8217;m still thinking through how to make that better. Either way, I enjoy pairing for an hour or two, and then I <em>really<\/em> want to use the keyboard and\/or think inside my own head, depending which part of the pair I&#8217;ve been. &#8230; I think maybe it could be done for a full day, less painfully, if the team swaps places at the keyboard every couple of hours, and, should I find myself in a situation where I&#8217;m pair programming for a full day again, that&#8217;s what I&#8217;m going to insist on. My introverted side tells me it will always be extra tiring to pair all day, but maybe <em>less<\/em> so if I get to play both parts.<\/p>\n<p>I learned about <a href=\"http:\/\/en.wikipedia.org\/wiki\/Lint_(software)\">linting<\/a>, which is a kind of automated error-checking of one&#8217;s code. One of my coworkers wrote a linter for one of the major SHARE components, and I&#8217;m just really impressed with him for it.<\/p>\n<p>Some Python packages that are really cool:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.joke2k.net\/faker\/\">Faker<\/a>, for generating all kinds of fake metadata, like email addresses, coordinates, and corporate-speak<\/li>\n<li><a href=\"https:\/\/github.com\/usablica\/liaar\">Liaar<\/a>, its close cousin, for making a fake RESTful API<\/li>\n<li><a href=\"http:\/\/lxml.de\/tutorial.html\">lxml<\/a> (specifically eTree) for making XML just a little less painful to deal with in Python (JSON is still easier, seriously, can XML just die now?)<\/li>\n<\/ul>\n<p>I learned that <a href=\"http:\/\/www.jetbrains.com\/pycharm\/\">PyCharm<\/a> (an Integrated Development Environment (IDE) for Python-and-things) is apparently super awesome, in that it gives you more debugging information than <a href=\"https:\/\/docs.python.org\/2\/library\/pdb.html\">PDB<\/a>, at least by default. Some people eschew GUIs, and often I&#8217;m one of them&#8230; but I think I&#8217;m going to make the switch. (I won&#8217;t ever fully give up <a href=\"http:\/\/www.sublimetext.com\/\">Sublime Text<\/a>, but PyCharm seems like a good thing to have in my toolbox. I did learn that there&#8217;s a linter for Sublime Text, though, too!)<\/p>\n<p>I also learned that there is such a thing as a &#8220;global .gitignore,&#8221; which is pretty cool. I have the details of that open in a tab in my browser (which is to say that all I really know is &#8220;that&#8217;s a thing, and I should look into it&#8221;). <\/p>\n<p>This isn&#8217;t programming-related, except that sometimes you need to make graphs&#8230; but I had never noticed Google Draw in my Drive before. It&#8217;s fairly simple to use and has a lot of options, for a web-based stripped-down version of Visio. ;) It&#8217;s a <em>little<\/em> tricky (in a hilarious way) to use collaboratively with multiple other people at the same time.<\/p>\n<p>This isn&#8217;t from work, but rather from <a href=\"http:\/\/www.harihareswara.net\/\" title=\"Sumana Harihareswara\">one of my very favorite Pythonistas and teachers<\/a>, but here&#8217;s <a href=\"http:\/\/www.slideshare.net\/AmyHanlon\/python-wats-uncovering\">a whole slew of useful Python tidbits<\/a>.<\/p>\n<p>And, finally, the fact that reminded me to write this post: shuffle(list) shuffles the list you pass into it in place; it does NOT return a shuffled list, like you might think. (<a href=\"http:\/\/www.pythonforbeginners.com\/random\/how-to-use-the-random-module-in-python\">Here&#8217;s an article<\/a> on Python&#8217;s random module.) How odd, right?<\/p>\n<p>That&#8217;s not everything I&#8217;ve learned this week, but it&#8217;s a good smattering, I guess. Anyway, it&#8217;s Friday, and I&#8217;m one beer into my evening; I think I&#8217;m going to read some fairly mindless fiction and then try to get some sleep. :) <\/p>\n<p>* I just looked it up, it&#8217;s cool.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had hoped to document all of the stuff I was learning each day, or at least each couple of days, through my first few weeks in this job. I knew I\u00e2\u20ac\u2122d have a lot to share. But I\u00e2\u20ac\u2122m so tired at the end of each day that I don\u00e2\u20ac\u2122t really have a blog post in me. I hear one gets used to non-stop thinking for 8+ hours per day and functions better over time. :)<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/www.sheldon-hess.org\/coral\/2014\/09\/week-one-as-a-developer\/\">Continue reading<span class=\"screen-reader-text\">Week one as a developer<\/span><\/a><\/div>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53,85,70],"tags":[],"class_list":["post-707","post","type-post","status-publish","format-standard","hentry","category-geekery","category-new-developer","category-programming","entry"],"_links":{"self":[{"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/posts\/707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/comments?post=707"}],"version-history":[{"count":0,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/posts\/707\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/media?parent=707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/categories?post=707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/tags?post=707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}