This post is way overdue :-/. I finished my second year at UVa early this month. Overall, it was much more different compared to the previous year. My first year was all about finding my place and what I wanted to do. That required trying lots of different things and seeing what I liked. I think it worked out well. I really like what I do these days.
I think I had confidence issues last year. Not in general, but more about things like math or programming. In my math classes, most of what I was learning content that I had seen before in high school. It was hard for me to judge my progress and understanding. After breezing through a semester with 4 math classes, I feel much better about math.
I was unsure about my programming skills for a while. I think when I started interning at VividCortex, I kept asking myself if I was doing things correctly. Code reviews really helped. Those were very new to me. In high school and my past internships, no one looked through my code that deeply. Sometimes it is upsetting when someone says your work is all wrong (but they’re right!). It can be an annoyance when someone doesn’t like your capitalization in an error message, for example. It feels like working with someone with OCD. I say these as if they’re bad things, and for a while they felt that way, but I’ve come to learn that this sort of nit-picking is extremely useful. It keeps code consistent and clean. And honestly, these things happen only when you’re starting out. You get better. I became much better at writing things the Go way. Also, code reviewing is teamwork. Not only do you get help, but others understand through code reviews as well.
Lately I’ve been looking at another company’s Go code and doesn’t look like idiomatic Go code. It’s hard to read and understand, and it’s distracting. I realize that being able to recognize unidiomatic code and see how it can be made better makes me feel better about the way I program. It really boosts my confidence. Also, about the other company’s code, it seems that they don’t do code reviews. Or rather, they don’t do them as often as they should. It’s littered with typos, it’s not well-documented, the master branch fails often, etc. If someone gets annoyed at OCD-level code reviews, I’ll just show them code that isn’t reviewed ;-).
I’ve been fortunate enough to be able to go to conferences, meetups, and talks and meet lots of interesting people. I’ve made many connections locally and was able to organize a databases session with talks by local professionals. It’s great to go from a passive member of a community to an event organizer.
I’ve been with VividCortex for almost a year now. My previous internships were only for a summer, so by far this has been the longest that I have ever worked for a company. I’ve worked on lots of different things, but I liked working on the FreeBSD port the most. I got to dig around in BSD land and figured out how to grab all of the OS metrics we collect. I even found a bug with a syscall (Getfsstat) and submitted a fix to the Go syscall package to fix it. First time I contributed to a language!
I’m back for another summer, and there’s lots of new stuff to work on. I forgot to mention, I think I’ve gotten so much better at programming since I first started. I’m curious to see how much better I get in the future.
I’ve been asked by multiple people about what I’m going to do once I graduate. I don’t have an answer. I decided not to plan that far in advance. I think it’s like forecasting the weather a year from now. There are too many unknowns. I like being ready for whatever is coming.
That said, I can narrow things down based on what I’m interested in and what I’m good at. Besides the obvious, I would like to start my own thing. Over the past year I think I’ve come to be very opinionated about certain things and I’d like to make those views have some sort of impact. I’d like to start my own business, but I’d also like to become an investor. I definitely want to become an “expert” at something.
Oh and yes, still hacking away at database stuff whenever I have time :-D.