Lessons from The Complete Software Developer's Career Guide - Part 3

Posted by Alex Zdatny on November 17, 2019

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 also emphasizes the differences between server-side and client-side rendering as well as constructing APIs. Before attending the Flatiron School, I had only worked with HTML, CSS, and Javascript while developing websites. Now having a competent understanding of both client and server-side rendering, I can go beyond just building simple websites. One area that I want to start building applications in is mobile development, specifically for iOS and Android. It’s not something that I have been necessarily avoiding, but when building apps I generally only scale down the pixels in the CSS to fit a mobile screen. I agree with Sonmez that mobile apps are arguably the future of development.

Being a software developer is not only about creating web applications but also building for numerous devices. It’s a great addition to your resume because mobile apps can be developed in a short time with one working engineer. Besides mobile apps, Sonmez also provides a great overview of what areas developers should always work to improve in. This includes how to create a user interface, how the architecture of the back-end works to support the software, how to store and retrieve data from a database, and how to implement algorithms. However, Sonmez states that the goal isn’t to become an expert, but rather gain an understanding of what it’s like to work as a software engineer.

Another important lesson from this section is understanding and utilizing DevOps. Sonmez describes DevOps as a “multidisciplinary process of getting code from development to production and taking care of the code when it’s there.” I think the greatest benefit of DevOps is that it creates reliability stability among software engineers. Teams are often submitting code multiple times a day. It would create a lot of disconnection if there was no organizational process. It establishes an advantage for that software engineer if they know each step from brainstorming the application to monitoring it once it’s deployed.

Having researched and applied to a variety of companies, I’ve learned that DevOps is sometimes divided across several roles instead of assigned to one software engineer. However, I agree with Sonmez when he states that software engineers should take full ownership at every step because you never want to encounter a situation where you check back to your code and it’s completely inaccessible to users because DevOps wasn’t followed or handled properly.