Top 5 Things I took away from Completing #100DaysOfCode
Believing the issue to be so complex and seemingly run by magical elves, negative self talk can try to influence us to believe that we cannot accomplish such a feat. However, when the problem is broken down into its smallest components and each one is tackled piece by piece, the larger problem can become much more approachable.
The first round of the 100 Days of Code challenge has completed, and it served the exact needs that I was looking for. Primarily, I was hoping for added motivation to keep pushing the needle forward each day and a community to work alongside in my learning path. I only missed a couple days (which I didn't count) and some of them were intentional due to family commitments. It was important to maintain some boundaries, as it is really easy for me to fall deep into a project and lose track of several hours.
Since starting this challenge, I have also stepped up the amount of time that I am coding each week considerably. I had been previously averaging 10-15 hours a week before starting the challenge. I maintained that as the lowest level throughout the challenge, but my average increased to approximately 20 hours a week. I topped off in the final push of Wanderful completing about 40 hours each week. A significant amount of that was capitalizing on train commute time (about 10 hours a week) and then eliminating television almost entirely. I'm also incredibly thankful that my wife has been supportive of this journey and the process towards getting a job as a developer. We have been working on our own respective projects after our 4 year old goes to sleep rather than watching TV together most evenings. I didn't think that I watched much TV, until I cut it out almost entirely. It also helps that I find web development invigorating, and unless I am mentally exhausted, am almost always interested in working on it.
Top 5 Things I Learned/Reinforced:
You can't beat internal motivation. I love programming and am always thirsty to learn more and advance/solidify my skillset. This motivation and love for programming is what pushes me forward, and makes working the additional 20-40 hours per week honing my craft on top of the day job palpable.
Community is important. One of the things that I wanted to focus on since the start of this round was being intentional on not isolating myself and overcome some of my introverted tendencies. Participating the hashtag on Twitter has introduced me to a number of amazing people around the world, many of whom I would consider good friends. I also have been more consistent in going to meetups with other developers. This has been instrumental to my learning process by being exposed to other modes of thinking, listening to and sharing different concepts, as well as doing my first technical presentation on user authentication. Additionally, working with a team of other developers to build Wanderful was amazing. I learned so much by explaining what I built and learning how others approached complex problems. You can find the full write up of that particular experience here. Being involved in a community of developers has done so much more than I anticipated, and has been instrumental to the progress that I have made.
Things are much less intimidating when they are broken down. Especially when confronted with something new, that is a level or ten more complex than previous pursuits, it can be easy to fall into a sense of directional paralysis. Believing the issue to be so complex and seemingly run by magical elves, negative self talk can try to influence us to believe that we cannot accomplish such a feat. However, when the problem is broken down into its smallest components and each one is tackled piece by piece, the larger problem can become much more approachable. This concept demonstrated itself consistently as I continued to push myself learning new things, and especially when building my first full-stack application.
Consistent application accelerates conceptual. I can read all the docs and articles that I want and complete many tutorials, but knowledge doesn't cement itself until I continually practice the concept in real world applications. Following along in coding tutorials can be a great way, at least for me, to be introduced to a concept and the different benefits and challenges it brings. However, the deeper understanding comes from building things with the technology. By consistently pushing myself and building things each day I was able to learn many new technologies and create meaningful projects. This level of pragmatism is one of the many things that I love about 100 Days of Code and joining a Chingu cohort for a third of it. Concept without application is only half the journey.
- 343 commits across various projects
- Frameworks/Libraries learned and implemented: React, Node, Express, MongoDB (including Mongoose API layer), user authentication (via PassportJS), Redux, CSS in JS.
- Projects completed: Pomodoro timer, Tic Tac Toe game, and Simon Game were all built utilizing React to help solidify the concepts. 2 backend microservices (timestamp and header-parser) were built. Wanderful was built on the MERN stack. I worked primarily on the backend building out the database, authentication, internal APIs, and endpoints to reach external APIs. I also worked on the frontend implementing some features, and created most of the Redux architecture.
- Not blogging through it. I was originally planning to blog once a week and did a total of 3 posts after the initial one. I got enraptured into coding and didn't make time for the blog posts.
- Fighting perfectionism regarding a day off. I needed to remind myself that it was ok when I occasionally missed a day due to plans or spending vacation time with my family. I did this around four times, and just skipped counting it as a day.
Now that I have completed the first round of 100 Days Of Code, I took a couple days off and officially started the next round this past Saturday. I am currently focusing on breaking into my first developer job, and feel well equipped after this first round. As I have been building increasingly complex projects, and completing my first large scale project with a team of other developers, I know that I have the foundational skills to be successful in a professional setting. Now it is just a matter of getting the first job, which I have heard is the hardest; it's a good thing that I am persistent.
My first project on the new round is to revamp this website. I am already hard at work on a visual redesign as well as migrating the website to being built in React using Gatsby. The initial ramp up started a bit slow, partially because I am fully investing in using Emotion to write all of the CSS inside the respective React components. I'm past the initial learning curve with this change, and already see some of the benefits to keeping everything in one place.
I am hoping to be better about chronicling the progress of this round better than previously. I am consistent about posting each day's progress on Twitter under the 100 Days of Code hashtag.