Soft Skills Audiobook Review

About a week ago I completed listening the audio book Soft Skills: The software developer’s life manual by John Sonmez. I purchased this audio book due to the many great reviews, and also the credibility of John Sonmez who regularly posts fairly interesting content on both his blog and youtube channel. I hoped that the audio book could give me a good overview of what non-technical skills and habits a software developer should strive to have in order to produce the best results possible. Fortunately this is for the most part what I got out of the book.

If I was to choose one word to describe this book it would be breadth. The book covers a wide variety of topics, stretching all the way from blogging to stoicism to stock options. This is a great thing for anybody getting started on their career(like me) since it provides a perspective on the many different opportunities that exist.

A large part of the book is dedicated to topics pertaining to making the right software career decisions. A lot of concepts are borrowed from other “self-help” books, however, John does a good job of putting them in a context that is more specific to software developers. Topics such as freelancing, blogging, working remotely, and managing job offers are all covered and explained on a high level.

Rather than giving a specific set of steps to finding a job or getting a raise, the book focuses on more broad concepts such as self-marketing and productivity. These lead to finding better jobs anyway, and are beneficial in many other ways. Some of the self-marketing techniques described are different than what you’re taught in school such as creating an e-mail list, and providing value through blog comments.

Productivity methods were mentioned all throughout the book, my favorite being the pomadoro technique. The technique is described in detail, John gives his specific way of using this technique to achieve high levels of productivity. This technique I found myself using almost immediately after I read the chapter, and I definitely recommend for anyone reading this to at least google what it is.

The last few chapters of the book are very “self-helpy”, they focus on philosophy, spirituality, and general well-being. I found everything to be described quite well, most concepts seemed to have been borrowed directly from other books. These chapters are a good introduction into these topics, and may be an eye opener for anyone who hasn’t heard of them.

Due to the vast amount of topics covered, majority aren’t covered in detail. This is a reasonable trade-off, and isn’t quite that bad since John provides resources throughout the book for where more information is available. The vastness also makes it likely that you’re probably already very familiar with some of the topics, in which case I recommend skipping the chapters.

Overall I enjoyed this audio book. I could relate to almost every topic covered, and each concept was explained from experience which gave the information more value. The book has the feel of a conversation making it easy to understand without intense focus. I’d definitely recommend this to any software developer in the beginning stages of their career. One thing to note is that the audio quality is not quite up to par with what you’re normally used to when purchasing on audible.

Living with Parents After Graduating

I just recently moved back in with my parents after graduating University. Prior to this I’ve been living on my own focusing on my studies. Almost instantly after moving back in major changes started taking place in my lifestyle, some for the worse. My focus was affected due to the high number of distractions that came with living with three other people, of whom one is an 18 year old girl a.k.a. my sister. Diet took a hit since I no longer had full control over what went in the fridge. My schedule could no longer be kept strict due to the unpredictable events that would take place throughout the day. Most importantly though, my state of mind was affected meaning it was far harder to focus my thoughts on what is important rather than trivial.

With that being said, it wasn’t all bad. Firstly I was able to spend time with my family and was no longer isolated inside a single room with roommate’s I don’t know. I also got to cut down on living expenses, luckily my parents didn’t charge me for rent and I could get away with using their utilities, furniture, and other things that I couldn’t have afforded otherwise. My living space was much larger, and there was always somebody to talk to if help is needed.

So what’s better, living with parents or alone? I think that both living environments have their place. Given the situation it makes a lot of sense to live with my parents since I don’t have a lot of money and rent is super expensive where I live. I think that while the environment is less work friendly, with proper communication, organization and time management it is still possible to stay on track.

It is definitely something short-term though, I think that living with parents slows down my growth as an individual dramatically. This isn’t only because my productivity is affected but also because the environment isn’t ideal for change. My parents are accustomed to the person they raised me to be and changes in my behavior and ways of thinking sometimes scare them. Being independent, and having nearly full control over the environment I live in will definitely make changing easier, whether its habits or ways of thinking.

Why I Chose the General CS Program

I recently graduated from the University of Guelph with a bachelors degree in Computer Science and unlike the majority of students, my study only lasted three years. This wasn’t because I fast tracked two semesters worth of credits studying 18 hours a day, or because I have a super high IQ.  Instead it was because I made the decision to only complete a general Computer Science degree.

You might right away assume that I’m lazy or maybe that I didn’t have the grades to pursue an honors degree, but neither is the reason for my decision making. When I made the decision to switch into the three year Computer Science program my work-ethic and GPA were at an all time high.

So why did I make the decision to chose to graduate with what most people consider a less prestigious degree? There’s more than one reason, the main one being that I did not see school as the best way to learn what I intended to. Many of the required Computer Science courses were nearly useless and taught poorly. Furthermore, I was required to pick an area of applications or a minor where this problem arose once again.

A three year general computer science degree allowed me to only acquire a minimum amount of non-major course credits and was less strict in terms of what courses were required. To a lot of people this presents itself as an easy option, giving less than average performing students the ability to graduate. You simply take the required courses and as your elective credits you pick the easiest courses possible to boost your GPA and allow yourself to get by with the minimum amount of work.

The plan of action described above is great, and for someone that wants to acquire an easy degree it works.  Once again though, easy was not what I was after. I wanted a faster way to get to where I wanted to be. I decided that I could take the required courses and as my electives choose courses which I knew to be useful. The general degree requires that you acquire a small amount of art credits, which I did not value much and dreaded completing. Luckily, my guidance councilor allowed me to replace them with math credits which I considered a much better option.

The road wasn’t as easy as I thought it would be, as a matter of fact it was much more difficult than when I was enrolled as a “Honors Software Engineer”. The courses I was enrolled in were pretty much all challenging and as a result caused me to learn at a much faster pace than before.  Furthermore I was able to graduate a year early and begin my career while still having the option to come back for further studying if I felt like it.

I do question this decision sometimes and wonder whether further education would’ve provided me with a better future. So far it doesn’t seem so given that not one employer took interest in how long my degree lasted or whether it was labeled an honors. I also feel I’m learning at a much faster pace on my own, working on and reading material that I believe is closely tied to what I’m after. I guess the question will answer itself with time as I attempt to achieve different things. If you have an opinion on this matter or advice feel free to leave a comment or send an email.


The War of Code??

I decided to call this blog the war of code, to most the name probably makes little to no sense. The name was inspired by the very popular book The War of Art by Steven Pressfield which dives into why it is so damn difficult to begin the process of creation, and how to overcome the resistance to do so.  In the later chapters of the book Steven begins to get mystical and goes over the magic that occurs once the process of creation begins. The concepts described in the book I believe don’t just apply to creating what most people would consider “art” such as painting, rather I believe they apply to any sort of craft in general. Coding, programming, software development, or whatever else you want to call it, is one of these crafts. Just as it is sometimes difficult for an author to sit down and force himself to write, it is also often difficult for a software developer to get in front of his laptop and begin coding. Once started though, it gets easier and easier to continue at your craft until eventually it is difficult to stop.

On this blog I plan to write about my journey as a software developer and the different battles I face both technically and mentally in this “war” with code. I plan to describe and reflect on my stumbles with this annoying “resistance” which gets in the way of my craft, but also the beauty of being in “flow” where it seems like the code is writing itself. While programming is the definite focus of what I’ll be writing about, it won’t be exclusive to that. I’m a big fan of integrating different aspects of life such that they are all benefiting one another, creating one enjoyable experience. My goal is to find the easiest and most satisfying way to create software, not only through attaining advanced technical skills but also by adjusting other areas of my life.