I started out learning philosophy in college because I wanted to understand esoteric questions ("What is consciousness?"). Midway through, several friends encouraged me to do something 'practical', so I added a CS BA as a second major.
I did alright through the CS program, but I didn't really like it, unlike many in the HN crowd. Felt like I was perpetually swimming to catch up, which was very stressful.
Got internships in two small companies, and one of them hired me after school. Over time, I've moved away from dev work, and towards pre/post sale implementation work (We are a small B2B vendor, selling to large software companies. Our software is typically installed on-premise).
I've found that I've liked the following things: * Learning vim (I have pretty damn deep knowledge of vim at this point. It's occasionally helpful.) * Setting up Arch Linux from scratch. * Learning some functional programming concepts on the side. * Teaching people (I often coach clients on how to change system configurations for the software we install). * Explaining complicated concepts to people. * Finding clever ways to break things.
I'm neutral towards, but pretty good at: * Task organization and prioritization. * Documenting things in a manner that is clear to users.
On the flip side, I'm not very good at the following: * The boring parts of industry software work (java, reading code, reading long documentation) * Actually building stuff. (My GitHub has stuff like essential-scala and a partial workthrough of 'The Little Schemer'. Most recently, I've been working through overthewire's bandit.) * Office politics (although I'm not terrible).
Would love any ideas or suggestions about what paths I might best fit into.