JSJ 270 The Complete Software Developers Career Guide with John Sonmez
This episode features a panel of Joe Eames, AJ O’Neal, as well as host Charles Maxwell. Special guest John Sonmez runs the website SimpleProgrammer.com that is focused on personal development for software developers. He works on career development and improving the non-technical life aspects of software developers. Today’s episode focuses on John’s new book The Complete Software Developers Career Guide.
Did the book start out being 700 pages?
No. My goal was 200,000 words. During the editing process a lot of questions came up, so pages were added. There were side sections called “Hey John” to answer questions that added 150 pages.
Is this book aimed at beginners?
It should be valuable for three types of software developers: beginner, intermediate, and senior developers looking to advance their career. The book is broken up into five sections, which build upon each other. These sections are: - How to get started as a software developer - How to get a job and negotiate salary - The technical skills needed to know to be a software developer - How to work as a software developer - How to advance in career
Is it more a reference book, not intended to read front to back?
The book could be read either way. It is written in small chapters. Most people will read it start to finish, but it is written so that you can pick what you’re interested in and each chapter still makes sense by itself.
Where did you come up with the idea for the book?
It was a combination of things. At the time I wanted new blog posts, a new product, and a new book. So I thought, “What if I wrote a book that could release chapters as blog posts and could be a product later on?” I also wanted to capture everything I learned about software development and put it on paper so that didn’t lose it.
What did people feel like they were missing (from Soft Skills) that you made sure went into this book?
All the questions that people would ask were about career advice. People would ask things regarding: - How do I learn programming? - What programming language should I learn? - Problems with co-workers and boss - Dress code
What do you think is the most practical advice from the book for someone just getting started?
John thinks that the most important thing to tell people is to come up with a plan on how you’re going to become educated in software development. And then to decide what you’re going to pursue. People need to define what they want to be. After that is done, go backwards and come up with a plan in order to get there. If you set a plan, you’ll learn faster and become a valuable asset to a team. Charles agrees that this is how to stay current in the job force.
What skills do you actually need to have as a developer?
Section 3 of the book answers this question. There was some frustration when beginning as a software developer, so put this list together in the book. - Programming language that you know - Source control understanding - Basic testing - Continuous integration and build systems - What kinds of development (web, mobile, back end) - Databases - Sequel
Were any of those surprises to you?
Maybe DevOps because today’s software developers need to, but I didn’t need to starting out. We weren’t involved in production. Today’s software developers need to understand it because they will be involved in those steps.
What do you think is the importance of learning build tools and frameworks, etc. verses learning the basics?
Build tools and frameworks need to be understood in order to understand how your piece fits into the bigger picture. It is important to understand as much as you can of what’s out there. The basics aren’t going to change so you should have an in depth knowledge of them. Problems will always be solved the same way. John wants people to have as few “unknown unknowns” as possible. That way they won’t be lost and can focus on more timeless things.
What do you think about the virtues of self-taught verses boot camp verses University?
This is the first question many developers have so it is addressed it in the book. If you can find a good coding boot camp, John personally thinks that’s the best way. He would spend money on boot camp because it is a full immersion. But while there, you need to work as hard as possible to soak up knowledge. After a boot camp, then you can go back and fill in your computer science knowledge. This could be through part time college classes or even by self-teaching.
Is the classic computer science stuff important?
John was mostly self-taught; he only went to college for a year. He realized that he needed to go back and learn computer science stuff. Doesn’t think that there is a need to have background in computer science, but that it can be a time saver.
Is there one question you get asked more than anything else you have the answer to in the book?
The most interesting question is regarding contract verses salary employment and how to compare them. It should all be evaluated based on monetary value. Salary jobs look good because of benefits. But when looking at pay divided by the hours of work, usually a salary job is lower paid. This is because people usually work longer hours at salary jobs without being paid for it.
What’s the best place for people to pick up the book?
simpleprogrammer.com/careerguide and it will be sold on Amazon. The book will be 99 cents on kindle – want it to be the best selling software development book ever.