Alexandra Grant, a software engineer at Digg Q&A
On May 21, Alexandra Grant appeared on the Day One Facebook group to run a Q&A session.
About Alexandra Grant:

Alexandra Grant is a passionate full-stack developer at hand. She currently works at Digg, She formally worked for the NSA as a developer. She graduated from Dartmouth College with Bachelor’s in Computer Science.
And finally, here are the questions!

Jeremy Meyer
Do you work with the front-end, backend, or full-stack? Which do you prefer? Do you recommend being a well rounded generalist or specializing in a few things?
Alexandra
I’m a full-stack engineer but recently I’ve been focusing at back-end at Digg. I’ve definitely jumped around the stack a lot and I think having a general understanding of both front-end and back-end technologies allows you to be a better engineer and to make smarter design decisions, wherever it is you’re working.

Sanny Lin
How is it like working for the government?
Alexandra
Working for the government can be awesome or terrible, it really depends what office you’re in and how much red tape you have to deal with. The other crazy thing is that it is usually very “stove-piped” so you don’t know what anyone else is working on. This means there can be a lot of redundancy in certain efforts. But it definitely made me feel very patriotic. There’s American flags and bald eagles everywhere.

Rodrigo Argumedo (me)
What is your primary motivation for getting into programming?
Alexandra
I got into programming when I realized how much you could build if you understood computers. It really is a field where the only limit is your imagination.

Josh Harrington
Mac or PC?
Alexandra
I’m using a Mac now but it’s a recent thing. I was using Linux primarily before.

Daniel Kao
What are some things that you would tell anyone before they went to work for the government?
Alexandra
I would tell them to make sure they know exactly what kind of work they’re going to be doing. I had other job offers from government offices which sounded really glamorous but once I ended up working there I realized those jobs would have been terrible. Thankfully for me I was in a rotational program which let me work in a new office every 8–10 months. Also, the kind of satisfaction you can get from government work can be really high because you have the chance to make some really big differences in the world.

Erik Finman
What do you think caused that realization (that you wanted to learn how to program)?
Alexandra
The programming realization? Honestly just being able to build Java applet games was really exciting to me. I was just thinking that if I could make this in a couple days, then imagine what I could build if I put years into.

Max Rais
What’s the worst thing you can legally say about your time at the NSA? And what’s the goofiest thing you can legally say about your time at the NSA?
Alexandra
Haha, yeah. I have some anecdotes about crazy things but sadly, I can’t speak much on those. But I have met the previous director, General Alexander, and received a coin from him which was pretty crazy. My coworker was briefing him and a lot of higher ups and wearing a Hawaiian shirt.
Probably the worst thing I can say about NSA is that their cafeteria food kinda sucks. And parking. Parking really sucks.

Ken Gene
What did you do when you got stuck on a problem, or you had trouble debugging. How long did it take you to debug, and solve the problem? What steps did you take?
Alexandra
So it really depends what I’m working on. If it’s web apps it’s a little more straight forward to do debugging. I think the hardest problems I’ve encountered were generally issues with unreliable networks, and assembly code. Looking at memory dumps gives me headaches.

Josh Harrington
Another question, favorite programming language(s)?
Alexandra
Um, right now I’m pretty fond of JavaScript but previously I would say C. I realize that’s kind of a big jump.

Adam Odell
What college did you go to?
Alexandra
I went to Dartmouth in Hanover, NH for a CS degree

Josh Harrington
Lol yes, a BIG jump… I am a fan of PHP mainly although I code a lot of JavaScript using Appcelerator now with my mentor. what would you say is/was your hardest (or one of your hardest) obstacles to overcome while learning / getting used to a new environment in the dev environment?
Alexandra
Honestly, doing development on Windows was the biggest pain I think, but that’s probably because I don’t have a lot of experience there. I found using JS and Node to be extremely easy to set up (especially with NPM). And Python isn’t bad once you start using virtual environments.

Ken Gene
Have you ever met someone at work, with no cs degree or anyone with no college degree at all? Just self learn code. How will employers feel about hiring someone with no degree, but they went to a coding bootcamp instead.
Alexandra
I’ve met a couple people without college degrees, but these were people who had been in the weeds, hacking away, since they were very young. I found they had a much better understanding of code than I do which might just be because of years of hands on experience, alongside their natural curiosity for how things work. I also knew another really bright programmer who went to CMU, but he only went to class to take the tests. Otherwise he just textbooks and coded in his spare time.
I think if you’re genuinely interested in coding and tech then code school could be a good way to go, but if you’re just doing it to get the “cool job” you’re never going to be a great software engineer. People hiring you want to see that you’re curious and that you want to continue to learn. You can’t expect to go to a code school and get a job and be done with the learning part.

Rodrigo Argumedo (me)
What is your typical advice for new programmers on joining the Computer Science field?
Alexandra
Hmm, so if I could go back in time and give my sophomore self some advice, it would probably be this:
- Don’t be intimidated by people who know more than you. Everyone starts from square one. And don’t let others make you feel bad for not knowing something.
- Pick one language in the beginning and learn it WELL. Preferably something that makes you think about memory management. After that, all other languages will come to you fairly easily.
- Have fun! Build things you want to use. You learn so much just by messing around with code.
- One last advice point: Never roll your own crypto.