I wrote this point in January 20th, 2020 - about a year ago!
Testing: The Most Effective Skill Aspiring Developers Need to Land a Job
I just finished a two week grind at work in which I wrote about 150 lines of code to implement a new feature. I wrote about 900 lines of code to test that new feature.
Start Writing Good Tests Now
Aspiring Engineers, try your best to write good tests early on. Just google “ testing framework/tutorial>” and you’ll be on your way. Even writing a ton of “if x else y” after your programs is sufficient. Just start.
Testing is one of the most important and underrated skills In Software Development. There are actually whole departments whose responsibility is only testing!
Writing good tests positively affects how you design and write your code. Good tests proves that your code is high quality. Future changes to code will rely on tests to ensure that things keep working the way they should.
Comprehensive tests build trust and confidence in your ability among your peers. These qualities are crucial for landing that first job. It is the most effective way to becoming a better developer.
How valuable is a developer if he/she knows a ton of amount of languages/frameworks/tools but creates content that is consistently error prone? There’s no trust behind the code that’s written. That means there’s no trust towards the person who wrote it.
Use tests to give yourself confidence!
Bugs are Expensive
WHY DIDN’T YOU TEST FOR WHETHER THE PEICES WOULD STAY ON THE BOARD AFTER SOME MOVEMENT? TESTING THIS WOULD HAVE LED US TO ADD MAGNETS TO KEEP THINGS TOGETHER! AAAAAAHHHHH!!!!
A study by IBM reports:
“the cost to fix an error found after product release was four to five times as much as one uncovered during design, and up to 100 times more than one identified in the maintenance phase.”
Now take a look at a few examples:
- NASA — $18 million dollars. A software bug cause a rocket to veer off course.
- Toyota — $3 billion dollars and at least four lives. A software bug in the anti-lock-brake system caused the accellerator to “stick”. A car with this bug suddenly went our of control at over 100mph and crashed, killing all four who were in the car.
- Knight Capital Group — $440 million dollars. A software bug in 2012 caused them to lose almost 4x the amount of money they made in the previous year.
The full article on information from this section can be found [here](http://“the cost to fix an error found after product release was four to five times as much as one uncovered during design, and up to 100 times more than one identified in the maintenance phase.”). Worth a read.
Don’t Let Testing Hinder Your Productivity
Often times the effort taken to make a decision is more consuming than living with it.
Be Smart about writing tests. There is no such thing as code that is complete.
Bugs will occur no matter what. Don’t spend hours trying to test an error that will most likely never happen. Get your feature/challenge code done and design your test to cover edge cases (variable x can only be 1–10) and most obvious ones (variable x can only be a number).
The beginning will be tough. The rate at which you will be writing code will slow down, but this investment will pay off. Your tests will save you and your peers time in your life that you’ll never get back, allowing more things to be done. That’s huge! The ability to think of test cases/scenarios to check for will also get better and faster over time.
As someone whose responsibility is to interview people, I look for that trust in potential candidates in the tests they write on their projects.
Unfortunately, most aspiring developers I see don’t normally focus on testing. This occurrence is so common that it’s the norm. While I don’t give a thumbs down to a candidate that doesn’t focus too much on testing, I will pretty much always push to interview a candidate that does.
Testing is Important. Start Now
As a Software Engineer, you’re paid to generate code that will be used to generate some kind of value. The energy you spend creating code can be used to make money (services or products), learn (scientific instruments), kill (missiles), explore (space shuttles), cure (medical devices), and protect (monitoring devices, home security). Testing is important.
There’s different kinds of testing. There are tools that are favored by the community. There are golden rules to writing/designing tests. WHO CARES ABOUT THAT FOR NOW. Just start.
If you liked this post, follow me to learn more about how to become an effective Software Engineer. Interested in working with me for free? Email me. Let’s get this testing stuff down together.