Internship Post Mortem 2016
Aug 8, 2016 “A basic post mortem review of my Summer internship”#programming
This summer, I interned at an undisclosed software company. Without getting too specific, here’s a basic post mortem of my experience.
Things I Learned
- Things are designed for the lowest common denominator, especially in software.
- There isn’t enough documentation, and often the code is better documentation than the actual documentation.
- Using source annotations to generate documentation for the end user (eg JavaDoc, JsDoc) is often easier than writing the documentation by hand (this only applies to large code bases, however).
- Bugs in your code can be exposed by other people’s bugs.
- The mathematics involved with mapping software is far more complex than it seems.
- The jargon in mapping is complex and overwhelming to beginners
- The same applies to rendering software too.
- Virtual environments in Python are useful, and you should use them.
- Complexity actually is a problem in software.
- What matters is the solution, not necessarily the path to the solution.
- Planning and communicating with teammates goes a long way.
Things I Did
- I built libraries according to my superior’s specifications.
- I read hundreds of pages of documentation for libraries and programs that I had never heard of before.
- Good documentation is often long and verbose.
- The same applies vice-versa.
- I read specifications for protocols and formats to determine the best way to utilize said standard.
- I found solutions to problems I never thought I’d have.
- Sometimes I reinvented the wheel so I could have fewer dependencies.
Things that Sucked
- The rage from dealing with JavaScript that just wouldn’t work was terrible. I need to walk away from these problems instead of going insane.
- Compile times (for an interpreted language?!?!) for JavaScript were terrible. Some people say that bundling ≠ compiling; to them I say: look at the pre-computing definition of compiling.
- Sometimes the room was too cold.
- Windows 10
- Transporting, serializing, and moving data from one format or library to another without forethought is a mess. Never again.
- Asynchronous Python is great if you know what you’re doing; I didn’t know what I was doing for most of the time.
- I had cognitive dissonance for writing JavaScript after bashing it for so long.
All in all, it was a pretty good experience - I learned quite a bit, and I earned some dough. Not too bad for a college student.