I graduated from Flatiron School a little over two months ago, and I have been busy trying to land my first software engineering role. When I initially began my job search, I wrote about my plan to organize my days without the structure of Flatiron’s lessons, and that plan is largely working for me.
I put a lot of time and effort into finding, researching, and applying for positions at companies that align with my personal goals (I’m looking at you, companies working for social good). After a few weeks of hunting, however, I began to notice my coding skills were starting to deteriorate. I simply wasn’t devoting enough time to maintaining and developing them.
Like any good bug in a program, once I identified the problem, I was then able to design a fix for it. I revised my initial Master Plan and implemented a three-pronged approach to sharpen my coding skills. Each weekday (I reserve the weekends for my family and try to stay off the computer), I have dedicated specific times to work on a project, learn a new skill, and review with my friends.
Project Development
For a programmer, nothing is as valuable as being able to work on your own projects. In my experience, writing an application from the ground up really solidifies my understanding of the code and its underlying concepts. For this reason, I try to spend at least two hours each day working on my own project.
Currently, I am converting ClassReads from a Sinatra app to a Rails one. This gives me the chance to compare the two technologies and practice writing a monolithic Rails application. I am also using this project as an opportunity to explore customization within the popular Devise gem and work with a more complex database structure. When I complete my ClassReads rewrite, I will finally deploy my first app on Heroku.
New Skills Acquisition
While I am constantly learning new things in the course of working on my project, I also spend an hour or so each day learning from someone else. I’m not very strict about what I do with this hour. Some days, I work through a few Flatiron lessons or complete a section on freeCodeCamp. On others, I watch a talk or read a book recommended by a professional in the industry (if you have any suggestions, send them my way). I also use this time to prepare for interview code challenges. No matter what I do, I try to ensure I learn something new each day so I can say something smart at the dinner table that night.
Study Group
In Flatiron, I relied heavily on my cohort. When I felt my skills beginning to wane, I turned to them once more. A few weeks ago, a member of my cohort and I expressed our concerns with one another. We both missed the camaraderie and accountability we shared during the boot camp, and we resolved to remedy the situation. We decided to form a study group and open it to our entire cohort.
Now, each morning, we all hop on a Zoom call and work through challenges on CodeWars. We chose this platform for a variety of reasons, but it’s biggest draw was the number of languages available. Because I’m mostly writing Ruby in my ClassReads project right now, I complete the challenges in JavaScript. One of my friends does them in Ruby.
We don’t have any rules for how we complete these challenges. On some, we work through it together from start to finish. In most cases, however, we start by sharing our ideas, and then we work concurrently on our own solutions. At the end, we compare our results and do a little pair programming to support anyone still stuck.
While I see the value in working on projects and learning solo, this study group has been immensely beneficial to me. Because of it, I am more comfortable talking about code and explaining my thought process with others. As the saying goes, there’s more than one way to skin a cat, and comparing my work with the others has allowed me to discover elegant solutions and, ultimately, write cleaner code.
More than anything, however, the study group reminds me that I’m not coding in a vacuum; by becoming a software engineer, I joined a community. Though I am not yet on anyone’s payroll, I still have a team, and we will continue to collaborate and support one another.
Just Keep At It!
If you are also slogging your way through a job search, remember to spend time actually writing code. I personally find that working on a project, learning something new, and studying with my friends is the precise mixture I need to keep me motivated and excited to power up my computer each morning. Whatever you do, keep plugging away. That job is right around the corner and, who knows? You may just create something spectacular in the interim.