365 Days of Code Journal
Tags: programming, 100daysofcode, computerscience, devjournal
Published: 2022-02-20 20:30:04

2021 has been a tumultuous year. I worked full time while attending Flatiron School’s Software Engineering part time program, and officially pivoted my career in tech to become a Full Stack Engineer at RE/MAX (First Engineering Team). It was truly an epic year. 🥳

However, I have to admit that I also overworked myself. That’s right, I finished the 365 Days of Code challenge. 🥲

---

#### Table of Contents
1. [100 Days of Code](#chapter-1)
2. [The Sequel](#chapter-2)
3. [Educational Materials](#chapter-3)
4. [End of Story](#chapter-4)

---

### 100 Days of Code <a name="chapter-1"></a>

It all began with the `#100DaysOfCode` challenge. Most junior engineers (including me 🙋🏻‍♀️ ) take on this challenge for fun. Why not? They are all over the Twitter tech universe. When I set the challenge in motion, I was already halfway through my bootcamp. [Ruby on Rails](https://rubyonrails.org/) was my first exposure to object-oriented programming language and framework. 💎

{% embed https://twitter.com/fentybit/status/1353900267742191617 %}

As soon as our cohort concluded the Rails module, we switched our learning curriculum to JavaScript language and [ReactJS](https://reactjs.org/) framework. JavaScript is... wild. I remember having to take supplemental courses; [JavaScript: Understanding the Weird Parts](https://www.udemy.com/course/understand-javascript/) by Anthony Alicea, [The Modern JavaScript Bootcamp Course](https://www.udemy.com/course/javascript-beginners-complete-tutorial/) by Colt Steele and [Eloquent JavaScript](https://eloquentjavascript.net/). They provided a great introduction to understanding JavaScript fundamentals, not to mention the amount of YouTube instructors I had randomly subscribed to. 😅 

{% embed https://twitter.com/fentybit/status/1375897052987621381 %}

Two months later, I was able to build an app with Vanilla JavaScript and Rails back-end. I had no idea you could do so much with Vanilla JavaScript! Soon after, I decided to implement my rudimentary JS knowledge on building a [personal website](https://fentybit.me/). To be fair, I used [Pixelarity](https://pixelarity.com/)’s ready-made template. My point is that anyone can do a lot with JavaScript alone. 🙂

One thing that I realized, I was never alone during my `#100DaysOfCode` journey. It ended up triggering many interesting conversations, new Twitter friends and discovering tech stacks from fellow engineers. I felt like the Twitter tech universe was 100% with me. This motivated me to further extend my `#100DaysOfCode` challenge to `#365DaysOfCode`. Yikes, I know. 😬

---

### The Sequel <a name="chapter-2"></a>

I dedicated my best efforts to my final ReactJS project creating a journaling app. I graduated from Flatiron School in May 2021, though my moment of triumph was to finally land my first Engineer role at [RE/MAX First](https://www.first.io/) soon after. 😭  I started looking for opportunities 4 months prior to graduation. I feel like I need to write a separate blog when it comes to career pivoting. I would say behind a single success, there lie many failures. 

{% embed https://twitter.com/fentybit/status/1398373045727731712 %}

I had my moments when I felt like maybe.. I should stop, and simply focus on getting myself acclimated with the new role. Then, I was advised that the first year of being a junior engineer is highly critical. It is an opportunity to learn many stacks, and absorb knowledge from fellow mid and senior engineers. So there I was, spending extra hours after work daily trying to enhance my personal development. RE/MAX offered me a Full Stack Engineer position. I was super stoked. The role aligns with my interests in both realms, front-end and back-end. Flatiron School’s ReactJS was a great introduction to [React Native](https://reactnative.dev/) mobile development. I spent the first few months learning React Native, a11y (accessibility), [GraphQL](https://graphql.org/), [TypeScript](https://www.typescriptlang.org/), [Jest](https://jestjs.io/) and [RSpec](https://rspec.info/).

I believe diversity and inclusion should be universal to all product platforms including mobile apps. I had the opportunity to spend sometime learning [Web Accessibility by Google](https://www.udacity.com/course/web-accessibility--ud891). The course educates developers to approach code design solutions with empathy. When I was introduced to TypeScript, I quickly fell in love with its strict syntactics. I learned TypeScript from basic to intermediate with [Execute Program](https://www.executeprogram.com/) alongside a supplemental reading, [Programming TypeScript](https://www.oreilly.com/library/view/programming-typescript/9781492037644/) by Boris Cherny. In my downtime, I like to practice my Vanilla JavaScript with [Wes Bos’ Vanilla JS Coding Challenge](https://javascript30.com/). 

{% embed https://twitter.com/fentybit/status/1432779802482659329 %}

Moving on to back-end stacks and system architecture, I was lucky enough to have the chance to deepen my Ruby knowledge. Rails is the current main back-end stack. Flatiron School introduced us to Ruby on Rails, and its rudimentary knowledge building school projects. While at work, I am super thrilled that I have been exposed to real complex object-oriented domain modeling. [Ruby Koans](http://rubykoans.com/) helped me with intermittent retrieval practice on Ruby language, syntax and structure. [Practical Object-Oriented Design](https://twitter.com/fentybit/status/1433497646392479745) by Sandy Metz is an amazing read for all Ruby lovers. My struggle has always been writing [RSpec](https://rspec.info/) since that was not a part of Flatiron School’s curriculum. To this day, I am still learning new things. Feel free to share if any devs out there have any suggestions on RSpec learning materials. 

This is miscellany. Git commands have always been a common struggle for junior engineers (including me again 🙋🏻‍♀️ ). I ended up taking a side course on [Git and GitHub](https://www.udemy.com/course/git-and-github-bootcamp/). 😆  The world of Git is vast indeed. [The Pragmatic Programmer] (https://twitter.com/fentybit/status/1443727545610879013) by David Thomas, Andrew Hunt and [Clean Code](https://www.oreilly.com/library/view/clean-code-a/9780136083238/) by Robert C. Martin were both instrumental in guiding my daily contribution to my peers. 

While it was all fun deepening my knowledge on front-end and back-end frameworks, I enjoy learning data structures and algorithms. I settled on Colt Steele’s [JS Algorithms and Data Structures](https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/) Udemy course. It took me about 3+ months to grasp basic algorithm concepts. I vaguely remember some of the concepts during my undergraduate years. Data structures and algorithms can be frustrating at times, and the key is to not spend more than an hour a day. Be kind to yourself.

{% embed https://twitter.com/fentybit/status/1450105133946204168 %}

Fast forward... 💨  on my last day of 365 days of coding challenge, I decided that this day should not be the last day of my learning ventures. I want to take on the challenge on the theoretical aspects of Computer Science. I want to learn [C](https://en.wikipedia.org/wiki/C_(programming_language)), first programming language created in 1972, and maybe another object-oriented language, Phyton. 

{% embed https://twitter.com/fentybit/status/1485675657744977920 %}

---

### Educational Materials <a name="chapter-3"></a>

Summary of courses and readings I went trough.

**Courses:**

- [Flatiron School Software Engineering Program](https://flatironschool.com/welcome-to-flatiron-school/software-engineering/?utm_source=Google&utm_medium=ppc&utm_campaign=12728169833&utm_content=127574237744&utm_term=flatiron%20school%20software%20engineering&uqaid=513799628786&Cj0KCQiA6NOPBhCPARIsAHAy2zCfu2Z22sXl4hQgGxjnnVoROnk_Vox5I8AfuutK_rJRXE-Ai-eC27MaAmAuEALw_wcB&gclid=Cj0KCQiA6NOPBhCPARIsAHAy2zCfu2Z22sXl4hQgGxjnnVoROnk_Vox5I8AfuutK_rJRXE-Ai-eC27MaAmAuEALw_wcB)
- [JavaScript: Understanding the Weird Parts](https://www.udemy.com/course/understand-javascript/)
- [The Modern JavaScript Bootcamp Course](https://www.udemy.com/course/javascript-beginners-complete-tutorial/)
- [Ruby Koans](http://rubykoans.com/)
- [The Git and GitHub Bootcamp](https://www.udemy.com/course/git-and-github-bootcamp/)
- [JavaScript 30](https://javascript30.com/)
- [Execute Program](https://www.executeprogram.com/)
- [Web Accessibility by Google](https://www.udacity.com/course/web-accessibility--ud891)
- [JavaScript Algorithms and Data Structures Masterclass](https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/)

**Readings:**

- [Eloquent JavaScript](https://eloquentjavascript.net/)
- [Programming TypeScript](https://www.oreilly.com/library/view/programming-typescript/9781492037644/)
- [The Pragmatic Programmer](https://pragprog.com//titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/)
- [Clean Code](https://www.oreilly.com/library/view/clean-code-a/9780136083238/)

---

### End of Story <a name="chapter-4"></a>

Why did I end up writing this blog? I would have preferred technical writing, as I find more joy in writing documentation. Developers live in such a fast-paced setting, especially when it comes to tech ecosystems. We don’t get much time for reflection. This journal is to remind myself that I am grateful for the opportunity to learn and grow. I have learned so much the past 365 days. 

**Miscellany**

Of course looking back, I’d be curious which of my tweets is most popular and/or re-tweeted often. Surprisingly, this one tweet when I was having fun with [Grasshopper App](https://grasshopper.app/) (great intro to JS’ DOM manipulation). I still don’t understand how Twitter analytics work. 😆

{% embed https://twitter.com/fentybit/status/1358630928709341184 %}

***
<center>[**fentybit**](https://fentybit.me/) | [GitHub](https://github.com/fentybit) | [Twitter](https://twitter.com/fentybit) | [LinkedIn](https://www.linkedin.com/in/fentybit/)</center>