Hi, it's Caleb from CodeBreakthrough! If you'd like to unsubscribe from the newsletter, unsubscribe here. Are you someone who likes to set goals and reflect on progress? Or do you tend to go with the flow? If you have any goals, respond to this email and let me know what they are! In this email I want to share my exact approach to achieving goals like becoming a software engineer (or achieving any major goal in your life). I've always been a big goal setter, as I believe writing down what you want to achieve allows you to visualize that goal and its completion. Accomplishing a goal becomes much easier when you think about it regularly and what it might feel like to accomplish it. This is what I did for an entire year for a particular goal (more on that in a min). Internal and External Pressure I decided I would achieve this by shifting my priorities to more challenging engineering challenges with languages I wanted to learn deeper. While the language of choice is irrelevant, I decided I wanted to become a strong Rust developer. At this point I had only tinkered with the basics of Rust but had a strong background in Python, JavaScript, and backend engineering. I started with a shift in identity. Rather than "enthusiast" or "aspiring Rust dev" I set up my LinkedIn and portfolio site to embody a qualified Rust developer. I did this by displaying personal projects I was working on in Rust and explicitly stating that I was a Rust developer. I embodied by goal the moment I decided this is who I was. While it's true I'm not going to be an expert in a new language immediately, I put myself out there and started talking about my learnings, libraries I was using, and projects I was working on. I immediately developed external pressure by opening up to the world about my goals. I took the external pressure up a notch higher as I personally found external pressure to be more effective when it came to achieving my goals. I put my Rust experience on my resume and LinkedIn and started applying for Rust roles in cryptography, web development, and systems dev. I knew it would be a tough, but working towards a concrete achievement gave me a path to follow consistently each day. After some interviewing I was able to land a remote software engineering role that utilized Rust for backend development. This was a really awesome opportunity to build real world projects with Rust. I loved that I was able to build new things with new tech and wasn't stuck debugging 20 year old code (even though there is a time for that, too). This kept things pretty exciting and gave me the chance to really go deep on the studies. Here I was able to work with protobufs, multithreading and channels, networking and UDP, APIs built in Rust with Axum and SQLx, Swagger API documentation, websockets, and a lot more. I was right in thinking that getting the software engineering position would push me forward, as I had to learn specific things that I may not have studied otherwise. The external pressure pushed me to new areas that I may not have reached with internal pressure alone. This is why I like to utilize both internal and external pressure: Build a strong motivation with internal pressure through goal setting, then utilize external pressure to make achieving that goal as easy as possible. Now, a year after setting the initial goal, I feel much more confident in this endeavor. Of course there is so much more for me to learn as I can't learn everything in just a year, but this structure gives me the confidence to learn pretty much anything. Plus, I've grown as a software developer. As a side note, the skills I pick up each year are not language exclusive. I'm almost always learning new techniques and approaches to code that go beyond a single language. And that's what makes you a better software dev. What's Next? I want to conclude by saying best wishes to you as you continue your development journey. I'd encourage you to find a resource to stick with such as my software engineering mentorship program. I'm so looking forward to spending more time this year creating new content, tutorials, and interacting with you. I also am looking forward to sharing so many more stories and tips through the newsletter. This is just a brief overview of what my last year looked like :) As I want to keep this newsletter as engaged as possible, if you're no longer interested in receiving these emails you can unsubscribe. This helps me keep my engagement high and helps my emails get delivered to those interested in reading. And if you decide to stay, thank you! Please respond to share your goals, I'd love to hear all about it. Caleb |