How to become a programmer, or the art of Googling well

*Note: Please read all italicized technical words as if they were in a foreign language.

The fall semester of my senior year, I was having some serious self-confidence issues. I had slowly come to realize that I did not, in fact, want to become a researcher. Statistics pained me, and the seemingly endless and fruitless nature of research bored me. I was someone who was driven by results – tangible products with deadlines that, upon completion, had a binary state: success, or failure. Going into my senior year, this revelation was followed by another. All of my skills thus far had been cultivated for research. If I wasn’t going into research, I had… nothing.

At a liberal arts college, being a computer science major does not mean you are a “hacker”. It can mean something as simple as, you were shopping around different departments, saw a command line for the first time in an intro level CS class, and decided you liked it enough to stick with it. It can mean you’ll pick up a programming language or two, and maybe by the time you get your major, you’ll have written your own shell, built your own interpreter, even designed a database system from ground up. But a liberal arts CS major prepares you for a career in computer science research, which is completely different from, say, software engineering. It’s like comparing a physical therapist with an athlete. Sure, a therapist knows which muscles get strained, and how to better take care of your body. But you can’t ask them to substitute for a player in a professional game. As a computer science major in my school, sure, I’d studied the structure and interpretation of computer languages. But I’d never even heard of the words front-end developer or full-stack. What was Heroku? Never heard of Xcode. Wasn’t git just the thing you used to make sure your partner had access to the code you’d written? Frameworks? Didn’t you just need HTML and Javascript? What the hell was an API?!

Job after job description required IOS or Android programming experience, or a portfolio of websites I’d designed. I had none of these, and to be frank, I didn’t even know where to start. I hadn’t grown up in a tech-savvy family – my dad still can’t text. I doubt my brothers have ever torrented something. My mom still waits for me to come home during breaks to transfer new music to her MP3 player (which I bought her). I could pick at a couple tutorials, but how could I ever bridge the gap between me and them? The ones who went to technical high school, or whose parents were both software developers? The ones who had their own servers running, or whatever? Who had hacked into their middle school computer system in 7th grade? How could I ever compete with the technically privileged?

I settled for jobs that weren’t even computer science related. Knowledge of bash recommended, but not required. Even worse, I gave up. My experience with python scripting will give me an edge over other IT Help Desk candidates, I firmly told myself. I have experience helping old people with their computers. I should at least be able to land a job. That’s something.

<– SPOILER: I have an offer from Google. –>

Mid-September my senior year, that all began to change. I somehow became a friend of one of them, and it was all I needed to learn.

I initially put this friend on a kind of pedestal. The first time I met him, he was in the middle of writing a script to scrape Craigslist of all its free furniture listings (which is illegal, btw). At the time, I didn’t even know what scraping was. Then came the hackathon. I’d always wanted to go, but I’d never had the kind of friends who’d attend, and I couldn’t go on my own. I knew nothing. Who would want to bring someone as useless as me? But I shyly asked this friend if I could tag along – just to watch, mind — understand that I will be completely useless to you – and he laughed, said he understood, and we went.

He was the very picture of the competent hacker I held in my head, that I nursed a secret crush for. But most extraordinary, he threw something together using tools that he’d never used before. Yes, he did spend more time on Google than he did coding, but through sheer force of googling and a prior, general picture knowledge of how these things worked, he’d roped together a pretty sophisticated and working app. He knew where Twilio belonged in the grand hierarchy of things, knew exactly where to apply it, and so, even without knowledge prior, was able to figure things out.

And I despaired. How do you get so good that you can build something out of nothing?

The rest of the semester passed glumly, and without incident. Come winter, I began to panic again. Driven by the need to become employable, I tried my hand at a couple Code Academy website tutorials. Hm. Not bad. I made an attempt at my first website – pretty terrible, just one, static page full of boxes and awful colors, but it was something. Something I realized. Just like my code-god compatriot, when I didn’t understand something, all I needed to do… was google it.

“How to center a div in CSS.” “How to make tiled background image in HTML.” “How to link to a pdf.” Sometimes it took hours for me to figure the simplest things out, but I’d come to understand that the answer was out there, somewhere. So I kept at it. Soon I was confident enough to try my hand at a small project – scraping our school’s Grades at a Glance website to create an automatic GPA calculator (our school didn’t have one of those). Eureka, it worked! And that wasn’t so bad, was it? Just like that, the first crack began to form on the illusion I’d cast on them as being a superior kind.

<– Some Small Advice: if you’re just beginning to program, I’d suggest starting with JavaScript/HTML/CSS because there is a plethora of help out there. You will most likely find someone has done exactly what you want to do. And do a couple tutorials! Even if they seem ineffective, at the very least they help you learn the terminology you’ll need to be able to Google effectively. –>

Boosted by this small success, I gathered a group of like-minded classmates – friends who also did not have software engineering experience – to attend a second hackathon. Here, I had a second revelation. I knew more than my friends. Suddenly, I was an expert. I could speak the language. I knew what had to be done, and where things needed to go. After just two weeks of going through random tutorials, people were already beginning to see me as more competent than them. Sure, I was nowhere near the competency of my coder-god friend, but I slowly began to realize that the gap between me and him might be as artificial as the gap between my friends and me.

That’s all it takes. Really.

I took on a summer internship with a custom software engineering company. I was surer in my programming abilities than I was before, but I needed to be completely certain I had what it took to make a career out of it. There, I picked up IOS programming, Ruby on Rails, and Angular; I can make bluetooth devices do all kinds of gymnastics on a mobile phone. I’ve exchanged blows with git, shared intimate conversations with Cordova, chatted with Heroku, and I’ve even dipped a foot in the Android programming world. But most importantly, I know that experience, though important, is not everything. The gap is not insurmountable because I have what it takes to learn.

To be honest, I probably could have passed the Google interviews without any of this software knowledge. A solid background in CS is what they look for, and my school gave me that. But I never would have dreamed of applying to Google. I obviously didn’t have what it takes.

It took meeting a god and dethroning him for me to realize that I was wrong.

The barriers to becoming a software engineer are real. People born in technical families, or who were introduced to programming at an early age have this easy confidence that lets them tackle new things, to keep learning — and, in our eyes, they just keep getting further and further ahead. Last year, I saw this gap and gave up. But all we really need is the opportunity to see that it’s not hopeless. It’s not about what we already know, it’s about how we learn. It’s about the tenacity of sitting in front of a computer and googling until you find the right answer. It’s about staring at every line of code until you understand what’s going on, or googling until you do. It’s about googling how-to, examples, errors, until it all begins to make sense.

Everything else will follow.


88 thoughts on “How to become a programmer, or the art of Googling well

  1. Hey man.
    Thanks for that, a really good read and something that helps keep the fire burning to get to know more, be better and perhaps one day through knowledge and Googleing. Getting to the level of some of my friends whom I see as Gods as well.
    Can I reblog this post on my own blog and link to this post as source/original content? I want to hear from you before I do anything, but it´s a really good post.

    Kind Regards


    Liked by 1 person

    • Absolutely! I was initially hesitant to give this post exposure because it was pretty personal, but I hadn’t realized how many people felt the same way. I’m glad it helped. Best of l̶u̶c̶k̶ determination and all-around badass-ery. 🙂

      Liked by 1 person

  2. Well… You can do ‘simple’ tasks by googling it, but you cannot create something new. There is a lot of jobs to reinvent the wheel. What I’m working on is designing and developing software, I have to write code which will be compatible with all cases, I have to map fields from different systems. I cannot imagine someone can replace me on my position without specific creating skills and CS background. But I can imagine he/she can write some online bookstore. I also google things, but I doubt someone without CS background can implement e.g. limited resources sharing with proper locking or dig through 2 different approaches to something to give unified access to it by 3rd system. It’s good if you already know some principles, rest is taking first step to create something and try it on your own. No one born or achieve any programming language proficiency without lots of hours of coding in it, unless the language is similar to another one already well known.

    Btw. there is difference between googling and googling, while one can google for how to share limited resources in C/C#/java (and C is OS dependent…) and another can google for synchronization classes to make sure if he/she needs monitor, mutex, semaphore etc. I just wanted to say anyone can be stupid and can find good people who help them solve problems on e.g. stackoverflow, but those who knows will see level of question.

    Liked by 1 person

  3. I’m not a programmer, I’m just in IT, but every part of this rings true. I can’t tell you how many times I’ve waited for an “Expert” at a software vendor to fix something for hours or days and then find out half an hour and google would have fixed it. I forget this every once in a while and call an expert, and quite often I realize I could have fixed it by myself if I’d tried one more thing.

    Liked by 1 person

  4. This is very encouraging. I really feel I have a good understanding if programming and when I read code I understand what’s going on or when I’m shown the solution it makes total sense. The problem is that first step is so hard. I tend to just google copy and paste an hack it out but I wonder will I ever get I the point of not only understanding the solution needed but puting it into practice. The first line of code is the hardest

    Liked by 1 person

  5. “But a liberal arts CS major prepares you for a career in computer science research, which is completely different from, say, software engineering.”

    At my university, it was not. The only difference between the two majors was whether you supplemented the core computer science courses with more physics and chemistry courses, or with foreign language and humanities courses.

    “It’s about staring at every line of code until you understand what’s going on, or googling until you do.”

    From the engineering-ish jobs I’ve had, this actually sounds backwards. As a computer scientist, I want to read every line until I understand it. As an “engineer” I’m constantly pressured to use/edit/ship something today, even if I don’t understand it.

    Liked by 1 person

  6. Spot on! Two and a half years ago, I knew just a little bit of PHP and how to connect to a mysql database. Now I’m developing a WordPress plugin that has nearly half a million downloads, and running my own business (besides being the IT director for a small college where you have to know some of everything). People always ask me how I learned everything I know. The answer is “I’m a good googler…”

    Liked by 1 person

  7. […] Programming News: How to become a programmer, or the art of Googling well The fall semester of my senior year, I was having some serious self-confidence issues. I had slowly come to realize that I did not, in fact, want to become a researcher. Statistics pained me, and the seemingly endless and fruitless nature of research bored me. I was someone who was driven by results – tangible products with deadlines that, upon completion, had a binary state: success, or failure. Going into my senior year, this revelation was followed by another. All of my skills thus far had been cultivated for research. If I wasn’t going into research, I had… nothing. Read full story => Okepi […]

    Liked by 1 person

  8. Nice read man! I understand CSS/JS pretty decently and I believe I understand how a web scrapper would work but I have never implemented it. I think I should get over that barrier and try building stuff instead of just learning about them. Am going to work hard maybe get an internship and who knows maybe even I can dream about Google!

    Liked by 3 people

  9. Thank you for helping to boost my confidence. I just went through a class that introduced us very quickly to Windows and Linux command line. I felt like I was transported to another country and told to do physics. The kid next to me intimidated the hell out of me. He was a whole 23 and knew about every program known to man. He started creating servers and scripts on his own, leaving me gape mouthed. I found out his dad is a software engineer and he would take him to work with him. At the age of 8 this kid would open up programming books to keep himself busy. No wonder. I’m about 25 years behind this kid. Reading your story helps me to remember this and to not feel so intimidated getting into this business/world at a “later” age. Thanks for the post!

    Liked by 1 person

  10. Hi! As an IT professional wanting to switch from Embedded to Web Development, your blog post just inspired me even more to keep on pushing and fill in my skill gaps! Thank you and keep writing!

    Liked by 1 person

  11. Reblogged this on Geoff Whatley and commented:
    “The gap is not insurmountable because I have got what it takes to learn.”

    Holy hell I could relate to this article. A lot of people think I have some kind of unnatural gift with technology, whereas I just have a really easy time finding the knowledge I need and grasping foreign concepts – it just so happens that technology is my primary interest.

    Liked by 1 person

  12. When I was just beginning to program professionally (20+ years ago), my biggest hurdle and fear was figuring out what I reasonably could be expected to know. Sometimes it’s perfectly okay to tell your boss or god-like coding co-workers, “I don’t know, but I will.”

    Liked by 1 person

  13. Thank you so much for this! I grew up for the first part of my childhood computer less. We finally got a Mac when I was I’m middle school. As such they have integrated into my life but I don’t know anything about them…not really anyway. I’ve decided to switch careers into so!ething computer related but feel so completely, absolutely, woefully incompetent because I don’t know a damn thing when it comes down to it. It’s nice to read about people that also maybe are so privileged to have this knowledge basically osmosed into them.

    Liked by 1 person

  14. I fell in mad love with computers when I was 18. The romance has endured a slow decline, but I still wish I had a job that involved programming, or even better, computer security. A rash of spam infections and malware aggro has made me want it even more, but not enough to actually take the classes that would require.

    I am still enough of a programming fangirl to wish I had been part of the Sierra Games company or Westwood Studios, and I still play some of those games!

    So all I can say is keep going for it!

    Liked by 1 person

  15. Love it. This really hit home! Found myself beneath all those googling and what the heck I am doing…

    As what my god-like-coder boyfriend used to tell me when I ask him how come he looks like he knew everything: “I don’t know everything but surely, I know where to find them. ”

    Cheers to all programmers and to those real MVP who would blog/post solutions online!


    Liked by 1 person

  16. That was an amazing story! I am trying to learn how to make iOS apps but I always get confused. I learned HTML and CSS, but I’m not good at JavaScript at all. Hopefully I go somewhere. Right now I am in 9th grade. Check out my blog if you want, but I haven’t posted anything recently.

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s