June 18, 2017
For the longest time, my heart has always been split between computer science and computer engineering. Both with the spotlight during different periods of my college life. One being the theoretical part of things, how to reason about and analyze algorithms, linear algebra, abstract algebra, category theory. The other being applied to software engineering, which is my day to day job. Dealing with management, software estimates, development, testing, gathering requirements, having the skills to talk with people, convince, lead at meetings, and create an architecture with the usual “-ility”, extensibility, scalability, maintainability. For the last couple of months, I’ve been more introspective about my growth, both personal and career wise. Feeling a lack of technical mentorship, I set myself on a path to become better engineer by reading more, understanding and interiorizing the learnings from the books. And it feels like such a slow process, almost imperceptible since not all the time I have previous experiences that I can use to interiorize the learning. So I’ve become more attentive to my surroundings at work, understand how everyone handles the situations, and how they get solved. With the theoretical side of things is harder for me. Since I’m not used to reading math, I do understand some notation, and can do a differentiation, integration, some matrices operations, and some other easy things. It’s been a really steep learning curve, with regards of category theory, so I’ve been moving up the abstract chain. More (or less) abstraction, so I went from category theory to abstract algebra and linear algebra. Moving one level up (or down) has made things easier for me, it’s easier to understand matrices, and after that groups and rings. Hopefully in a couple (or more) months I’ll get more used to all this math material and can start reading computer science white papers, and creating a connection between all this math and functional programming which is my goal. To balance things out, alternating between both, I’ve been reading one book related to software engineering, and do math exercises (with a textbook) along with YouTube videos. What I’m trying to achieve, is to make what I consider would be growth for me, in my career. Learning more theory, and becoming a better engineer that delivers value. It’s nice to help other people with their doubts and questions about a subject that you’ve been studying for the last several months. In the end, it depends on where you want to be in regards to your personal life and career plan. Hopefully growing and being happy along the way.
I'm a software architect that enjoys helping people, building platforms, and working in distributed systems at the intersection between people and software.