Fear of speaking and feelings of an inadequate technical knowledge base can often be a paralytic combination, especially to those newer to a technical field. Imposter syndrome and feelings of inaptitude can easily become dominant, resulting in a self-fulfilling prophecy with high levels of inertia.
Thankfully, I have a low level of unease regarding speaking in front of people, including to groups upward of 60 people. While my presentation experience has largely not been about technical topics, much of the skillset translates over. As I mentally prepared myself for the idea of giving a technical talk, I still had to overcome the serious sense of imposter syndrome that I could provide anything meaningful to the conversation as a developer with one year of experience. Over the past two weeks I have given a technical presentation twice to groups of approximately 20 people, and am preparing to give the same presentation to approximately 150 people next month. During this process, I discovered three key areas which challenged my preconceived notions that had thus far prevented me from stepping out.
I am so excited to announce that the redesign of my portfolio and blog is finally live after going back to to the conceptual drawing board and rebuilding it from the ground up. It has been an exciting journey to implement new development and design concepts that I have picked up since May 2017 when I built the first version of the site. At the time, it was the first full site that I had put together, and was substantially more involved than the relatively small projects I had done to that point. Since then I worked on more complex applications, built a full stack travel application with a team of two other developers, and dove headfirst into React.
This was a week of pushing myself towards things that I have not utilized before, and confronting things that had previously made me nervous. I decided that I wanted to incorporate a quote slideshow in the About section which would utilize the same basic logic that I had already created for the slideshow. I am not a fan of copying code across files, and appreciate modularity when possible... Due to the carousel component using state and methods which directly alter the state I was not able to simply export the functions. After some research, it seemed like a higher order component would serve the need that I wanted and I decided to finally research them more.
I’m not sure why higher order components had previously intimidated me. As I researched how to implement them to solve the problem, the complexity for this use case was much less intimidating than I thought it would be. Higher Order Components are simply a function which accepts arguments and returns a React Component. The React docs provided a great explanation of what they are and how to craft them. After reading through them a couple times I set forth to create my first one. Since I had already written the fully functional Carousel component, I was able to copy out all of the business logic into the HOC, leaving the Carousel component to solely handle the styling and rendering of the data. The arguments I included in the function were the WrappedComponent, an array to iterate over, and the timer length. The latter one is optional, capitalizing on ES6 default arguments. If this argument is not included in the function call, it defaults to 5000ms. Since I also included the array in the HOC, I decided to pass down the entire contents of the current index as a separate prop,
slideData, for ease of use in the rendering. I refactored the Carousel component to utilize the new HOC and make sure that it still functioned the same. Everything worked great and still passed all of the previous tests. Mission success.
2017 was the start of the journey from the directionless doldrums to an unbridled creative passion. I started the year looking for a job in a similar field as what I currently am employed in, believing that a change of scenery would help recover some of the drive and passion that has faded in my current position. Each day was a struggle to overcome the feelings of being beat down and unmotivated. My work ethic precludes me from outright giving up, but I was clinging on to the last few threads. Around the beginning of March, I had still not made much progress in finding motivation or a position I thought would be much better, and I started to rethink my career trajectory entirely. Did I want to continue working in this field? Did I like the progression of where it was taking me? The more I considered those questions, the more deafening the response. I needed a change.
I had been somewhat toying with the idea of programming from ongoing conversations with my brother who was in his final year of a CS degree, but hadn’t moved forward with it the slightest. The nagging curiosity that often sneaks up on me before many a binge learning session continued to arise; I kept thinking of how much I enjoyed past creative ventures and also the love of mind puzzles (I can’t stand the cardboard variety 😀). I decided to try out some free development learning resources to see if it was something that may pique my interest long term. I came in with a basic introduction to HTML from 2003, but remembered nothing beyond some basic concepts and elements. After some initial research I decided to try out Free Code Camp as I liked the concept of building out actual projects instead of following tutorials. I completed the HTML and CSS courses in 2 days.
With the holidays and travel, my development and writing time has been all over the place. It definitely is further evidence for how I benefit from routine and self-created structure. I still made progress in my development goals, but it did slow down. I knew this going in, and it was more important to be present and spend quality time with my family.
The past couple weeks have been productive for the site redesign. It's going slower than I anticipated, but learning and applying the new skills has been well worth it. I continue to get more comfortable with testing, although I know I am still scratching the tip of it. I need to dive into mocking more, as the concept and applications of it are still a bit elusive to me.