From my own experience of building dozens of software products and deploying another few dozens, I want to tell you that to become a complete software developer you need to apply the structured method of software development, exercise managerial leverage and elicit an athlete’s desire for peak performance.
Today, I am going to share with you the exact system you need to follow in order to become a complete software developer based on my own experience of building my career starting as a coder in 1992, becoming CIO of Sony Music in 1998 and CEO/Head of Digital at Zee Entertainment in 2005.
The first thing you need is to hone your skills to solve the problem in a poetic and beautiful way.
You need to have the technical skills necessary to become a software developer. Which technical skill to know and how to acquire it becomes quite overwhelming to many software developers? It happens because there are so many choices, so much to learn and it becomes difficult to even know where to start.
I am hoping that you’ve already started learning that one programming language really well.
After you have mastered one programming language mastering another language is quite easy at any point in time as most of them have a somewhat similar structure, commands, and aesthetics.
I hope that you’d gone through my previous blog post and writing simple, understandable and easy to maintain code
Stop like being other developers who go through their whole life writing wasteful code. I recommend you to read a book Code Complete by Steven McConnell to learn this valuable skill, review codes written by great software developers on Github and participate in the coding competition to sharpen your coding structure.
Practice the Model View Controller
Building a large project requires you to manage complexity. Practicing MVC allows us to separate complexity into a bunch of interconnected components which makes it easy to tackle the entire complex system.
Algorithm and Data Structure
Your life as a developer will involve dealing with algorithmic programming and handle data structures quite a lot. Being good with algorithms will empower you to solve a problem in quite a short period of time than the ordinary developers who take several days figuring out. The best resource to learn the algorithm and data structure is to read Cracking the Coding Interview by Gayle Laakmann and practicing it on your favorite programming language.
Development Platforms, framework, and stacks
The world of a developer is filled with platforms, frameworks, stacks, and IDEs. You should get familiar with the platform and IDE native to the programming language you have chosen to pursue as a software developer.
In software development, databases are often used to store data for an application. You should know how the database works, how to perform queries to get data, how to create, read, update and delete data, and how to join datasets together.
Github and Source Code Control
You will be collaborating with multiple developers during your work. Today, it is expected that you know how to use GitHub and other source control system to check in, check out, and merge changes from multiple sources.
Testing and debugging
You can no more afford to just write a code and throw it to the testers who would find all kinds of bugs in your code and then you would fix them. Quality has become the responsibility of every developer and more you know about the testing mechanism better you will be in your craft.
Learn some basics of testing mechanisms like white-box testing, black-box testing, unit testing, automated testing, and test acceptance.
You will be spending 90% of your time figuring out why your code doesn’t work. You need to be familiar with the debugging techniques, tools and learn the art of debugging your program effectively.
I know I have said quite a bit of stuff. But, I wanted to tell you the exact skills and abilities you will need to acquire in order to become a complete software developer. Be the change!
Start with challenging yourself to think bigger and deliver faster!