{"id":585,"date":"2013-12-27T08:00:54","date_gmt":"2013-12-27T17:00:54","guid":{"rendered":"https:\/\/sheldon-hess.org\/coral\/?p=585"},"modified":"2013-12-27T11:17:55","modified_gmt":"2013-12-27T20:17:55","slug":"impostor","status":"publish","type":"post","link":"https:\/\/www.sheldon-hess.org\/coral\/2013\/12\/impostor\/","title":{"rendered":"Impostor syndrome"},"content":{"rendered":"<p>I&#8217;m going to say something I probably shouldn&#8217;t (for, indeed, what other purpose do blogs have?), but I hope that doing so will help other people, if they&#8217;re having similar issues. <\/p>\n<p><a href=\"https:\/\/www.ripplescrafts.com\/dropone\/?p=950\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/ducks2-300x179.jpg\" alt=\"ducks2\" width=\"300\" height=\"179\" class=\"alignleft size-medium wp-image-588\" srcset=\"https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/ducks2-300x179.jpg 300w, https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/ducks2-250x150.jpg 250w, https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/ducks2.jpg 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>My admission: I&#8217;ve been feeling like an utter fraud and a complete failure at a significant portion of my job. (Spoiler: It&#8217;s better now!) I&#8217;ve been beating myself up for literally <em>years<\/em>, because I didn&#8217;t think I had an acceptable level of technical competence&mdash;specifically, coding prowess. And while there are legitimate disagreements about coding in the library profession, I think we can agree: most web librarians need a certain amount of fluency with code. <\/p>\n<p>For my part, I looked at these things that other techy librarians (never mind full-time web developers) were creating, and thought, &#8220;I couldn&#8217;t do that.&#8221; Some of my hesitation was legitimate: my job has grown and shifted to the point where I have trouble finding big enough blocks of time alone to do serious development, and that&#8217;s an issue. As I&#8217;ve pointed out in other posts, I split my time between being a web developer, a designer, a content manager, a marketer, a manager (in the policy-making sense, not the supervisory one), a trainer, a systems integrator, first-level technical support, and a friendly face at the reference desk, plus random committee work and service activities. I&#8217;m investing <em>buckets<\/em> of time into organizational change, and that takes a toll on my coding time. Also, although I&#8217;ve never self-identified as a great coder, as the job&#8217;s grown and time has passed, I&#8217;ve gotten rusty and lost some skills; honestly, I have to look up even HTML and CSS syntax pretty regularly. <em>Legitimate issues<\/em>.<\/p>\n<p>But it&#8217;s worse than just a little hesitation, or some envy of my techier colleagues: I had actually allowed a little under-training and a little rust in my skills to turn into this huge wall of intimidation around code, to the point where even refactoring my site&#8217;s CSS (which, after 10+ years and at least three people adding on to it, is desperately needed) seemed too daunting to start. (And it&#8217;s still going to be a crappy job, don&#8217;t get me wrong, but I was literally <em>scared<\/em> to start. And, I mean, this is <em>CSS<\/em>, not, you know, rocket science.) <em>Everything<\/em> coding-related seemed too daunting to start, and I kept feeling miserable about it, not just at work, but in my <a href=\"http:\/\/anchorageprogramming.org\">spare time<\/a>, too. <\/p>\n<p>It didn&#8217;t help that my weekend forays into programming never amounted to much&mdash;mostly because other priorities kept, uh, taking priority. <\/p>\n<p>And even when I took that Coursera course, I wrote off my implementation of Pong in Python as any kind of achievement, because it used a proprietary library instead of Tkinter, and because they gave us too many hints for me to feel awesome about my neat little piece of software. <\/p>\n<p>Y&#8217;all, <em>I wrote Pong in three hours<\/em>, and I felt <em>bad<\/em> about it.<\/p>\n<h3>Feeling vs. reality<\/h3>\n<p><a href=\"http:\/\/www.creativeshift.uk.com\/more-on-the-impostor-syndrome\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/imposter1.jpeg\" alt=\"imposter1\" width=\"260\" height=\"194\" class=\"alignright size-full wp-image-587\" srcset=\"https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/imposter1.jpeg 260w, https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/imposter1-201x150.jpeg 201w\" sizes=\"auto, (max-width: 260px) 100vw, 260px\" \/><\/a>I&#8217;ve actually done programming in this job. Early on, I added significant hacks to the open source application LibStats (in PHP); I&#8217;ve also added less-significant hacks to several WordPress themes (PHP&#8230;ish), to the front end of some Springshare products (JavaScript and CSS), and to various other little things along the way. That all required a certain level of competence, but I didn&#8217;t look at it that way: I &#8220;didn&#8217;t really know what I was doing&#8221;: after all, I &#8220;hadn&#8217;t built anything from scratch,&#8221; so &#8220;it didn&#8217;t count.&#8221; <\/p>\n<p>It&#8217;s worth adding that, back in my engineering days, I wrote seriously complex code in MATLAB to parse large data sets. I did useful things to <em>arrays of multi-dimensional arrays<\/em> (I&#8217;m also a little dyslexic, so, just imagine that for a second), and the engineering field <em>learned stuff<\/em> from the code&#8217;s output&mdash;or, well, my writeup of it, anyway. <\/p>\n<p>And in library school (in my one and only Information Science class, oh if only I could talk to past-me&#8230;), I wrote a simpler version of LibStats\/Ref Analytics in HTML\/CSS, JavaScript, and MySQL. It wasn&#8217;t fancy, and the design was probably eye-bleedingly bad, but it <em>worked<\/em>. (It didn&#8217;t do fancy reporting, I don&#8217;t think. I honestly don&#8217;t remember.)<\/p>\n<p>I mean, I&#8217;m clearly not dumb, nor am I incompetent; but I <em>felt<\/em> dumb and incompetent. And that feeling created reality, in a way. It made me so <em>afraid to start<\/em> that I&#8230; well, I <em>never started<\/em> any optional coding projects for work; I put them off and did other things, instead. <strong>I was afraid to try.<\/strong>  <\/p>\n<h3>So how did I get there?<\/h3>\n<p><a href=\"http:\/\/depressioncomix.wordpress.com\/2012\/02\/16\/depression-comix-10\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/wpid-depression10.jpg\" alt=\"wpid-depression10\" width=\"200\" height=\"617\" class=\"alignleft size-full wp-image-586\" srcset=\"https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/wpid-depression10.jpg 200w, https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/wpid-depression10-97x300.jpg 97w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a>Part of my problem with my perception of myself is that my knowledge of PHP&mdash;the primary language our stuff is in&mdash;has always been surface-level. I don&#8217;t fully understand how various PHP developers make the decisions to split their code between the multitude of files they generate. It looks random to me. Also, I&#8217;ve never really internalized PHP&#8217;s syntax, so I&#8217;ve always had to look up anything I&#8217;ve wanted to do, in the not-great documentation. Of course, whenever I <em>finally found<\/em> the thing that created the behavior I wanted to change, and I found the right syntax, then, yes, I was able to bend it to my will. But, honestly, I spent most of my time working in PHP feeling disoriented and searching around in frustration for <em>the function that was called by the function that that other function called<\/em>. I guess I found that disheartening.<\/p>\n<p>And, as I alluded to before, I saw some really great things coming from other places. This is a great time to be a developer, because there are so many answers (many of them <em>correct<\/em>, even!) and so many resources and so much borrowable code available a search engine away! But it&#8217;s also a terrible time to be a developer, if you aren&#8217;t naturally self-confident: you can see how wide the gap is between your skill set and another&#8217;s. And, as others have noted before, the coding\/development\/software engineering field is so very broad and so very deep, that you are always faced with huge swaths of knowledge that you lack. Nobody knows everything, but the sheer number of things you don&#8217;t know can be crushing.<\/p>\n<p>(I&#8217;d like to go into gender-related self-perception in STEM and stereotype threat and nerdy strutting, because they&#8217;re all factors, but this is already long. If that read like a string of nonsense, hit me up in the comments, and I&#8217;ll write that post. It&#8217;ll be shorter than this one.) <\/p>\n<p>So I guess I internalized the message &#8220;I am slow and inefficient at coding&#8221; and also the message &#8220;Everyone else knows more than I do.&#8221; I did this despite others&#8217; warnings, despite friends&#8217; and colleagues&#8217; encouragement, despite knowing <em>I&#8217;m an engineer, damn it, and a good one at that; analysis and problem-solving are <strong>my domain<\/strong><\/em>! I committed the classic blunder (besides  &#8220;never get involved in a land war in Asia&#8221;): I focused more on what I didn&#8217;t know (or didn&#8217;t know <em>anymore<\/em>) than what I <em>did<\/em> know. I competed with other people, instead of competing with past-me. And, probably worst of all, I didn&#8217;t <em>try<\/em>, even though, really, there was no risk.<\/p>\n<p><em>That<\/em> was pretty dumb. <\/p>\n<h3>Why the about-face?<\/h3>\n<p>This whole post has been in past-tense. I even added a spoiler at the beginning, so you&#8217;d know where we were going: I&#8217;ve realized I&#8217;m an OK programmer! I think like a programmer, and despite my woes with specific languages, specific syntaxes, and specific documentation, I never really lost that. (Side note: I&#8217;ve seen articles suggesting that &#8220;thinking like a programmer&#8221; can&#8217;t be taught. That&#8217;s nonsense.) <\/p>\n<p>I did have one major revelation, though: I was forgetting possibly the most important lesson I&#8217;d been taught&mdash;by word, though not by deed&mdash;in my computer science education: don&#8217;t try to sit down and write the whole program linearly. Break your problem up into smaller pieces, and solve each of them separately. (Even if you&#8217;re not a coder, this is a good lesson. If nothing else, when you solve one piece, you get that boost from the success, and it makes the next piece psychologically easier.) Everything in school was either broken down <em>for<\/em> me, or was simple enough that I didn&#8217;t have to follow that advice. And, go figure, coding in the real world isn&#8217;t like that at all. <\/p>\n<p>So that helped a lot.<\/p>\n<p>And do you know what else helped? I could be glib and just say &#8220;practice,&#8221; but that&#8217;s not exactly it. I mean, yes, practice is inescapable, both in [re]developing skills, and in building confidence. <\/p>\n<p>But I think it helped <em>a lot<\/em> that I learned two modern programming languages and <em>did stuff with them<\/em>. I&#8217;ve been flirting with Python for most of the year, and I recently took a short online course about jQuery. And, you know? jQuery was just easy enough and just powerful enough that I remembered what I liked about programming, without letting the fear get in and ruin my chances of success. We didn&#8217;t really learn much about parsing data\/dealing with APIs, which was my primary goal, but we learned <em>enough<\/em>, and I accomplished <em>enough<\/em> that I suddenly feel empowered to learn what I need to take on those next projects. (Also? It doesn&#8217;t hurt that the jQuery documentation is usable. Vanilla JavaScript documentation, not so much, but I avoid that when I can. :)) <\/p>\n<p>And the steam from that success got me to tackle a design\/development problem at work that jQuery was, delightfully, perfectly suited to help with. <\/p>\n<p>And the steam from <em>that<\/em> success (series of successes, actually, and there are a few more left to go) got me to tackle a project in Python that&#8217;s been languishing on my to-do list for ages: I wrote a little command-line application to take in a text file, find all the URLs in it, and let you know which ones work and which don&#8217;t. Size-wise, it was a great &#8220;first real project&#8221; in Python. It was probably the wrong choice <em>for me<\/em>, because, though I knew going into it that there are no great link checkers (because it is a Hard Problem(TM)), I have trouble NOT being annoyed that it&#8217;s imperfect. (I&#8217;m librarian enough that I fight perfectionism, yes.)<\/p>\n<p>Still, it achieves what I need it to: it tells me which links in this document need updating. (Yes, I spent an estimated 10 hours writing a piece of software to check 40 or so links, because I didn&#8217;t want to read the document they were in. For any concerned Alaskan taxpayers, I want to add: I did it all between the time I got out of work on Christmas Eve and today; none of it was on your dime. :)) It probably has errors and inefficiencies, and perhaps seasoned Python coders would look at it and cringe. But I still feel good about it. I knew nothing about the modules I was using; at one point, I had 12 tabs open, checking various things to try to get this to work; and, even though it was a lot of work to get it there, it <em>does<\/em> work. So <em>there<\/em>. :) <\/p>\n<p><a href=\"http:\/\/www.quickmeme.com\/Puffin\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/swagger.jpg\" alt=\"swagger\" width=\"300\" height=\"207\" class=\"alignright size-full wp-image-589\" srcset=\"https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/swagger.jpg 300w, https:\/\/www.sheldon-hess.org\/coral\/wp-content\/uploads\/2013\/12\/swagger-217x150.jpg 217w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>I guess that&#8217;s my other revelation-slash-thing-people-already-told-me: Have a project you want to do. My first jQuery project was stupid and fun, and my second jQuery project and my Python project were both serious(ish), but helped me accomplish goals. I want to do <a href=\"https:\/\/openhatch.org\/wiki\/Boston_Python_workshop\/Saturday\/ColorWall\">ColorWall<\/a> in jQuery, to see if it can be done, then maybe I&#8217;ll finally do it in Python. And I have a Twitter bot I want to write. And then there&#8217;s work stuff to do. And I feel like I&#8217;m up to it all, for the first time in &#8230; ever.<\/p>\n<p>Finally, finally, I have developed a little bit of <a href=\"https:\/\/sheldon-hess.org\/coral\/2013\/07\/getting-my-swagger-back\/\" title=\"Getting My Swagger Back\">swagger<\/a>. I&#8217;ve got the confidence to move forward, and I&#8217;m rapidly regaining lost fluency. (Two pieces of the problem, right there.) Now, if I can just build more time into my schedule for coding, both at work and at home, I&#8217;ll get good again&mdash;and then better than I was before! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m going to say something I probably shouldn&#8217;t (for, indeed, what other purpose do blogs have?), but I hope that doing so will help other people, if they&#8217;re having similar issues. My admission: I&#8217;ve been feeling like an utter fraud and a complete failure at a significant portion of my&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/www.sheldon-hess.org\/coral\/2013\/12\/impostor\/\">Continue reading<span class=\"screen-reader-text\">Impostor syndrome<\/span><\/a><\/div>\n","protected":false},"author":3,"featured_media":588,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,71,68,53,69,28,32,70,38],"tags":[],"class_list":["post-585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-libtechgender","category-apw","category-fails","category-geekery","category-gender","category-librarianship","category-on-a-personal-note","category-programming","category-technology","entry"],"_links":{"self":[{"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/posts\/585","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=585"}],"version-history":[{"count":0,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/posts\/585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/media\/588"}],"wp:attachment":[{"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/media?parent=585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/categories?post=585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sheldon-hess.org\/coral\/wp-json\/wp\/v2\/tags?post=585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}