Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How did you get into programming? #1

Closed
sindresorhus opened this Issue Jul 5, 2015 · 11 comments

Comments

Projects
None yet
7 participants
@sindresorhus
Copy link

sindresorhus commented Jul 5, 2015

No description provided.

@amandaharlin

This comment has been minimized.

Copy link

amandaharlin commented Jul 5, 2015

+1

@kentcdodds

This comment has been minimized.

Copy link
Owner

kentcdodds commented Jul 5, 2015

The answer to this question requires a bit more time than I have right now, but I'll get to it soon :-)

@kentcdodds

This comment has been minimized.

Copy link
Owner

kentcdodds commented Jul 7, 2015

Tl;DR: I started loving coding around the end of 2011. I started with Java, I moved on to JavaScript (thanks to Domo). I now work at Alianza where I totally love it.

The beginning

When I was a kid, I had a friend who coded. He was working on a game and I wanted to work on it with him. He totally lost me when he was teaching me what a String is. From that, I decided that I wasn't cut out for programming.

College

When I started college years later (2007), I decided to major in Electrical Engineering like my older brother. I took two classes on programming: Intro to Computer Programming (Java) and Computer Systems (Machine, Assembly, and C). Each required about 8 hours of coding a week. I struggled quite a bit (though I pulled an A and a B+ out of them) and determined that the last thing I wanted to do was sit in front of a computer for 8 hours a day.

After that first semester, I took a break to serve a two year mission for my church. When I got back, I still felt like I should stick with my major even though I hadn't really enjoyed programming (not all EE is programming anyway).

After a while, I started poking around at other majors like Chemical Engineering and Physics. I actually ended up deciding on Accounting (my dad's an accountant). That required me to take an Information Systems class to get into the program. And here's where I get back to programming.

After taking a few Accounting classes, I realized how much of a distaste I have for Accounting. But I enjoyed my Information Systems class (we did a tiny bit of programming in Excel and a tiny webpage with HTML and CSS). I decided that if I could get business and computers together, that would be awesome, so I switched majors (again, for the last time).

Information Systems

Before I started my first semester in the BYU Information Systems program, I got a job at The More Good Foundation and was tasked with a very mundane, monkey job of uploading tons of videos to YouTube in 13 different languages.

I started work on the project right around the time my Principles of Business Programming class started. That class was basically another intro to Java class. I was dreading it. But after just a week or two of that class, I really liked it. A lot. I decided that I could automate my job away with Java. It was a dream. I coded for four hours at work every day, and then another couple at school, then I started coding for fun at home. My first three open source projects were from around that time: Java-Helper, My-Components, and MassMessenger (which I built for fun to send the announcement of our first daughter).

Internships

I got an internship at the Information Communication Systems department at my church as a Business Intelligence Engineer (getting that internship is an interesting story as well). I still wasn't totally convinced that I was going to be a programmer. But instead of creating star schemas, ETLs, and SQL queries, I ended up automating a lot of the processes that we had there using Java. They kept me on when I started school and I commuted for a while...

I was then offered an internship at Domo as an "endpoint tester" and switched for an opportunity to do some programming as part of my job description. I can't quite remember how it all went down, but somehow I wound up not doing any endpoint testing and moved in as a regular team member working on the frontend app in JavaScript. BOOM! Life. Changed. For. Good.

I totally loved JavaScript. The more I learned, the better I got, the more I enjoyed it. I started working on projects at home trying to learn as much as I could. At Domo, I worked with some of the most talented developers I've ever met: @iammerrick, @joeeames, @jargv, @geddski, @aaronfrost, @timehat, and more. These guys taught me how to be a software engineer. I learned so much while I was there.

Drinking it in

Before I'd received my during school internship offer from Domo, I'd already accepted a summer internship at USAA. Domo had just started migrating their app from Backbone to Angular, so when I took off for the summer to San Antonio to work with USAA, I spent my evenings learning Angular. I built a few toy apps and libraries (both Angular and vanilla JavaScript). I had about a mile walk to my desk (USAA is huge), so I read several books on my walk (both Angular and vanilla JavaScript). I was drinking in the JS (and Angular).

Overall, USAA was a good experience, and I loved the people I worked with. I learned from that experience how valuable autonomy, leading edge tech, and smaller companies are to me. So I denied their offer of employment and went back to finish my masters degree and work with Domo part time again.

Landing the full time job

Getting a full time job at Domo is a fun story. Having rejected USAA was scary for me because at the time my wife and I had our daughter and we were expecting our son. All my friends were getting and accepting offers and I was nervous I would be left with the dregs. Domo wasn't making any offers to anyone so far out (like many other companies do), so I wasn't sure I'd get a job with them either.

Domo had regular hack nights that were tons of fun. You pretty much build whatever you want for four hours after work and they pick "winners" at the end of the night. One of my work related tasks involved fixing some keyboard shortcuts we had in the product. I forked keymaster to do it. Then, for the hack night I added a bunch of keyboard shortcuts to the product.

It was fun, but I soon figured out that the keyboard is pretty limited to intuitive keystrokes for actions. So for the next few weeks, I built genie at home and at the next hack night I implemented it in our project.

It worked out great. @iammerrick was impressed and decided to bring Josh James (the CEO) over so I could show him what I'd done. I pretty much stumbled (I was seriously intimidated by Josh) all over my words and I don't think he got it until Merrick explained it in plain english to him. Here's about what happened next:

Josh: Hey, that's way cool.
Merrick: Yeah, and get this, Kent's an intern.
Me: That's right Josh, and you know what, if you give me a job offer right now, I'll accept it.

There was almost an audible gasp from the 10 or so other people standing around when I said that. Josh stared at me for a second, but slid me a piece of paper and said: "What's your number?" I was freaking out! I hadn't planned for this. I jotted down something that I thought was fair and he called the HR VP (it was almost midnight) to get approval. He wrote up a quick job offer and signed it. I signed it a boom! I landed my full time job for when I graduated.

domo-offer

Moving on...

There's plenty more to tell, but to make an already super long story shorter, I no longer work at Domo, I'm now at Alianza where I totally love it.

Feel free to ask more questions about how I got here, what I'm doing now, etc. :-)

@kentcdodds kentcdodds closed this Jul 7, 2015

@sindresorhus

This comment has been minimized.

Copy link
Author

sindresorhus commented Jul 7, 2015

Interesting! Thanks for sharing :)

@kentcdodds

This comment has been minimized.

Copy link
Owner

kentcdodds commented Jan 6, 2017

As requested in #227 from @cynicaldevil, here's an update:

I worked at Alianza for just over a year. While I was there, I rewrote our build from grunt to this messed up gulp thing I thought was super cool at the time, and then again to webpack. I started co-locating everything and loving it sooooo much. I learned a TON while I was there. Most of my webpack/babel experience came from making those tools work at Alianza. I also moved our frontend stuff to a Continuous Delivery setup with SnapCI (after evaluating other solutions). I believe they've since moved to Wercker. I set it up to deploy to every one of our environments for each build and pull request so we could validate things in a real environment with ease before merging. When all you've got is a couple of static files, doing something like this is pretty simple. But it was soooo cool. Being the sole frontend dev at a 40ish person company was pretty awesome. I was given a great deal of autonomy. I loved it.

When I hit about the 10 month mark (around August 2015), a recruiter at Facebook reached out to me and wanted me to interview. It's hard to say no to Facebook, and quite honestly this is about the time I started to question my loyalties to Angular (in favor of React... see #7). So I interviewed, had a great experience (I even saw Zuck from the back! Sitting there hunched over his laptop in the middle of everyone else at a table like everyone else) and I got an offer. It was extremely difficult, but my wife and I decided that the reasons we didn't want to move to California outweighed the reasons we did. So we said no.

But at this point, I was starting to consider things a little more. I started to realize that it would be really nice to work with a team of frontend engineers. In fact, the guy I replaced at Alianza had left for the same reason. I had actually hired a frontend engineer to join me and we'd been working well together for a few months. But I wanted more team members who had more/different experience than I had. So I kept my options open. I actually interviewed at two local companies and didn't get offers from them (a wonderfully needed humbling experience).

Then this happened and I got my job with PayPal. I've been here at PayPal working on the cross border peer-to-peer payments team. It's been awesome. I've been a part of making people's lives easier. That's been really awesome. PayPal's been really supportive of the extra things I do. Last year they let me attend a bunch of conferences on company time. They've supported my open source work (as it was relevant to my work, and sometimes when it was less relevant). They supported me doing JavaScript Air. They've let me spend time giving talks and workshops internally. And they asked me to represent PayPal on the TC39. It's really been awesome. I've been with PayPal for just over a year now and I plan to stay for a few more years.

So that gets us caught up! Maybe I'll do this again sometime!

@Attrash-Islam

This comment has been minimized.

Copy link

Attrash-Islam commented Feb 9, 2017

OMG... Absolutely great story!
Thanks for you both!

@hinell

This comment has been minimized.

Copy link

hinell commented Aug 10, 2017

Pretty interesting and inspiring story for junior like Me. Thanks for sharing! 😄

@kentcdodds

This comment has been minimized.

Copy link
Owner

kentcdodds commented Sep 11, 2017

Just adding something here. I've talked about my story on a few podcasts in case you're interested:

@ionapjolive

This comment has been minimized.

Copy link

ionapjolive commented Dec 12, 2017

Thanks for sharing a story that didn't involve being a software engineer from birth! I similarly entered engineering late in the game (following in an older brother's footsteps), and not initially software engineering.

@ccnokes

This comment has been minimized.

Copy link

ccnokes commented Feb 26, 2018

I work at Domo and I remember removing your keymaster fork about a year or two ago. I'm sorry, I didn't realize there was so much history associated with it 😅

@kentcdodds

This comment has been minimized.

Copy link
Owner

kentcdodds commented Feb 26, 2018

Ha! Nice! 😂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.