Throughout the past several weeks, I’ve discussed a variety of lessons that I’ve learned from “The Complete Software Developer’s Career Guide”, written by John Sonmez. This includes the importance of networking, writing tests, collaboration, and learning how technology stacks affect every step of the development and production of an application. One of the biggest struggles for me as I was learning to become a Full Stack Developer was asking for help. In my mind, if I couldn’t figure out how to solve a problem, I’m not valuable or motivated enough to pursue this. I was always trying to jump to the solution instead of taking a step-by-step process. I’m thrilled that this mindset has been obliterated. It’s been an incredible journey to learn the different programming languages and frameworks, connect with other software developers, and explore the various career opportunities.
During the past few weeks, I’ve been continuing to read through “The Complete Software Developer’s Career Guide” and I’ve finally reached the section about “The Maintenance Phase.” Sonmez has offered an incredible perspective on the world of software development, but arguably the most important lesson I’ve learned is the mindset and strategies behind problem-solving. Throughout my coding journey, I would almost always jump into the debugger when trying to fix errors or bugs. It ended up becoming a habit and sometimes cost me countless hours because I didn’t fully understand the problem’s source and the steps to solve it.
Having become immersed in computers from an early age, one of the reasons I wanted to become a software developer was because I enjoy solving problems. It’s not just about building applications, but a large part of a software developer’s career is maintaining and testing the code. There are several important lessons that I learned from Sonmez while reading the sections on testing and source control. Sonmez states that testing is about reducing risk. If you think about the research that goes into user interface and experience, there is always an advantage to fixing issues that you normally wouldn’t focus on when deploying the code to consumers.
In my previous blog posts, I’ve discussed several of the lessons I’ve learned while reading the first two sections of The Complete Software Developer’s Career Guide by John Sonmez. As for Section 3, Sonmez goes more in-depth about the specific areas of Software Development, but generally discusses many of the concepts and skills that I’ve learned at The Flatiron School. He begins the section by covering the major programming languages used in the tech industry, some of which I have yet to build full-stack applications.
During the past few weeks, I’ve taught myself some of the fundamentals of Python and C++. I was surprised to find out that it was much easier than I anticipated. This could be because it more or less accomplishes the same purpose and goals of Ruby. Once you’ve coded in one object-oriented language, it shouldn’t be as difficult to learn some other ones. However, Sonmez points out that many programming languages don’t fall into one category as they incorporate features across multiple categories. This ties back to the importance of a company’s tech stack, which utilizes a variety of different frameworks and languages to create their applications and services. You don’t have to be a master of every programming language, but you should have a relative understanding of how each one is used.
Sonmez begins the second section by discussing the various types of internships. It’s a way to gain experience and also showcase that “you are willing to do whatever it takes”. He continues that it’s not about making money, but that it will open the door to more opportunities that will pay you later on. Sometimes interns tend to interrupt the time management element because they take time away from their boss and other co-workers. Sonmez says you should become “self-directed” and observe the workplace environment and anticipate the needs of your co-workers rather than having others constantly help you. This doesn’t mean that you can’t ask questions on tasks, but you want to be an active learner. It will be a lot easier to transition into a full-time job with this mindset.