In my time so far on the dev team, CSS has been my most-improved skill. As a student I avoided it whenever possible. I like debugging and finding the exact line of code that does something I don’t expect. CSS bugs have always felt harder to isolate that way. I can swap values in and out while examining elements in the console, but if something goes wrong, I don’t get an error message guiding me to the source. By far the hardest CSS situations I’ve had to troubleshoot involve stacking context.
For the past few weeks, we’ve been doing some extensive work in React on a soon-to-be-released project. Several times in this project the code has used React Refs, something I haven’t come across yet in my React studies. (Note to self, spend more time reading React docs.)
Weeks 6 and 7 of my engineering rotation brought my first feature lead. It was a great experience and it was a bit of a mess. We recently had a long sprint that the entire team was involved in which created notifications and requirements for new student accounts. This setup was designed to help us identify where students were in the account setup process and make sure they completed necessary steps in the right order. I joined that project part way through, but it was originally conceptualized and structured following Domain Driven Design. In software engineering a domain is a collection of abstractions that encapsulates both the data and behavior of a specific activity or area of knowledge. Domain logic (or business logic) forms the rules for how the objects interact with each other to create or change data. Domain Driven Design bases designs around these domain models and builds ever-evolving domain logic around them.
Now that I’m over a month into my rotation on the dev team, I’m able to see our work with more clarity. The first month I found myself overwhelmed with the volume of new information. Not only was I learning new design patterns, tools and techniques, but I also was learning a giant new code base. With all this information to process, I moved more slowly than usual. It took longer to understand relatively clear patterns and even some simple ideas weren’t sticking.
In boot camp you get used to owning your projects, knowing where all of the code comes from and how to run it. Even after getting my environment set up for the dev team, I struggled with understanding how all the tools and services for a large-scale application work together. Below is a quick rundown of some of the tools and services a website can use.