My 1 Year Anniversary of Writing Code Daily— Here’s What I Learned
19 January, 2016 - 5 min read
Originally posted on Medium
Disclaimer 1: this post is meant for all — not just aspiring programmers. While the headline may focus on a year of gaining tangible skills, this post is meant to reflect on the journey that I took to become a programmer, and the intangibles attained that are equally as valuable.
Disclaimer 2: if you’re constrained on time, it’s all good! Here is a recap:
- When beginning anything, don’t be afraid to ask questions.
- You’re closer than you think you are to achieving some of your goals.
- It’s okay to feel scared sometimes. More often it’s just something unknown to us. Do your best to establish a tolerance to ambiguity.
- Prioritize being awed & inspired, and seek out what brings you joy.
- Life is short. You only get to devote your time to so many projects. Choose the ones you deem worth your while.
As an undergraduate upperclassman I took an introductory course in Python, mainly out of curiosity. That was a recurring trend in my undergraduate career, taking classes ranging from sociology to physics to Arabic. I’ve always held curiosities in high regard and sought to explore them. Next up on the list was code.
I left the Python course a bit regretful. Not due to the curriculum or the outstanding professors, but because I wish I had taken it earlier in my undergraduate career. During that semester Python was sort of an escape from the required electives I was taking — a form of expression, logical thinking, and inspiration. I didn’t have much time to dwell on that feeling, however.
Right after the semester, I started a summer internship on the sales & trading side of an investment bank. I was interested in finance, after all. The majority of my electives had to do with it, I was partner of a student-run investment fund, and had an internship with an investment bank the previous summer. But that Python class threw a perfect wrench into my plan of becoming a full-time trader.
While interning, I began drifting over to the quant desk, asking all sorts of questions a beginner would ask. Lesson 1: when beginning anything, never be afraid to ask questions. I wanted to find trends and write algorithms that backed those trends. I would complete my daily tasks and then get to work on testing different strategies. Eventually, with the help of one of the quant guys, we took a backtested strategy and presented it to salespeople on the floor. It felt good to add value in unexpected fashion. I began seeking out ways I could contribute while staying as close to code as possible. I wrote a macro that formatted daily futures trades, removing unfilled orders and combining orders under the same security. I left the internship with confidence that what I wanted to do was very much out there: dig deeper into programming.
I started teaching myself by reading Chris Pine’s Learn to Program, following a few tutorials, writing simple programs such as a tic-tac-toe game, watching Stanford’s iOS Lectures on iTunes, and reading Big Nerd Ranch’s Guide to Objective-C programming (they do an amazing job explaining important concepts). At that point, I decided it may help to get some formalized instruction. I enrolled in the Flatiron School’s 12 week iOS Development program. I aimed for mobile because I found the intersection between code and hardware fascinating, and most of my ideas are conceived as mobile-first concepts. While there I met amazing people and worked on a few projects, one of which made it into the App Store. It’s called SnS — Save & Send Contact Information Faster (shameless plug). I was proud of the progress I made and happy that I was building something that could be deemed a useful utility. Lesson 2: you’re closer than you think you are to achieving your goals.
Beyond my time at the Flatiron School, I had a short stint at a startup doing cool things called Fresco News before accepting an intern position at goTenna. Right now I’m at goTenna contributing to an awesome team, working on a side project, and taking my second-ever CS course — this time in C & C++. I’m right at the midpoint of scared and excited. *Lesson 3: It’s okay to feel scared sometimes. In reality all it is is something you haven’t experienced before. Do your best to establish a tolerance to ambiguity***.
This past year has been a blessing. I have gained useful perspective, met some really cool people, and had a lot of fun. Lesson 4: Never forget to prioritize the feeling of awe, or joy, or pure happiness over things that may seem more important at the present time. And I don’t mean just socially. If you’re really passionate about a problem, don’t dwell. Prepare to take the necessary steps to solve it.
Opportunities will be bountiful, but exercise good judgment. As a developer or not, you may constantly be approached to solve problems others are passionate about. Lesson 5: my good friend and collaborator on the side project, Cooper Veysey, has a famous line:**
“You only get to devote your life to so many projects. Choose the ones you deem worthwhile.”
Lastly, thanks for taking time to read this post. If you are an aspiring programmer, someone dissatisfied with the way things are currently going, a student unsure of what the future holds, or anyone else, please feel free to reach out. I would love to share experiences and offer anything I can to help. Or just make friends :)
**an actionable reminder app for scheduling your communications — for more detail or if you want to be a beta tester please reach out! My twitter handle is @Rizk_Taker.