Enhance your problem-solving skills. Do not just learn code

When I started out my software development journey, all I needed was perfect my software development skills and get better with time, my initial mindset was, “Play around with the data” (Which is the basic thing if you think about it; Input data, process a little, check of it exists and if not, just store, or do otherwise). All will go well if you know this, but then with time, data will increase, processing will kick in.

Take an example, you have been developing a transaction system, say for an institution to incorporate into their banking systems to maybe perform mobile banking. In the start, since the customers are few, you will just check for existing information, maybe in a for loop, and then process their data and that’s it. Your system works. Then the marketers will do their job and the few hundreds will turn to thousands and so on, now the application that was very fast will start getting slow, bugs will show up, and the initial for loop might be needed to be translated into a parallel.for loop, maybe start indexing buffers and so on.

Then later someone might take advantage of your system because of that stored procedure you left in memory (Though as a matter of caution especially when working on a large project, you have to be very clear on where business logic lives. When you allow an environment where individual developers can put business logic in the business object layer or in a stored procedure as they see fit, a large application becomes very difficult to understand and maintain. Stored procedures are great for speeding up certain database operations. The advised  architectural decision is to leave all logic in the business layer of the application and employ stored procedures in a targeted manner to improve performance where benchmarking indicates it is warranted.).

So, all you learn is to better yourself as a programmer as per this post.

But there is one side that will always remain lacking and whose focus is supreme over most of the code you are to write. After you have learned to get to the best of your programming, WHAT NEXT?

This is where the problem-solving skills come in. A problem is not just a statement or a document with the challenges you are meant to solve brought in front of you. A problem is the entire package of the underlying challenge brought to you, including the challenges your system will bring along. Taking to our initial system challenge; the banking application, it would have saved you a future recall if you had designed that system to be elastic enough to accommodate extreme processing, so that even when the people increase, you will not have challenges.

This will be in turn to your credit; fine, your client will not call you back and you will not get that allowance maybe, but you will have a great referral in case any other development opportunity shows up. You will realize that your programming skills you have been longing to improve will actually improve when you put all considerations to the problem brought forward to table, and you will learn twice. Artifacts don't give you those benefits. The proper usage of those artifacts is what give those benefits, that is why you will need to get the full challenge, assess the future usage and project an increased number of people using your solution if you are to benefit better from both your problem solving skills and programming skills.

I would love to hear your take on this. Thank you

To view or add a comment, sign in

More articles by Dennis Mwebembezi

Explore content categories