A perspective on Programming Problems and Challenges

See the RSS feed in

In light of my recent conversations (in tweeter) with one of my acquaintances, I spent some time thinking about what constitutes a programming problem and what actually is the challenge in programming. This blog is actually a reply to his tweet which asked "What's an example of a programming problem, in your perspective".

Programming, in the end, comes down to writing a set of instructions. But the effort that has to be put in to write those few lines of codes sometimes can be overwhelming. Because, there are design issues, deadline issues, trade-offs between quality and time in hand, and many more issues.

The easiest part of programming in my view would be taking user inputs, and showing final program outputs. Luckily, many programs in the world do just about that - take the user input, process the data by applying well known operations through well known libraries and tools and show final output. An example of this easy life of programming can be : A simple database application which used to be developed through VB6 during the late 90's and early 2000's. Now a days, the more elegant form is .Net to do the same things. As long as our programming boundary bounds itself only to the simple well known stuffs (e.g addition, deletion, update, simple queries etc. in case of database apps) I think we can call it programming, but not programming problem solving.

So, what can be a programming challenge in the database application I mentioned above? If the same application could provide undo/redo feature for addition/deletion/editing of rows then some of us would have a programming problem in hand and henceforth faced with a programming challenge. Why I gave the database related example is I find myself a novice in database stuff and providing undo/redo feature(or state maintenance) in a database app is something I am not familiar with. That is why it is a programming problem for me. This is not something I see in a day to day database application and I am dealing something I am not comfortable with.

Probably if you are experienced and have enough knowledge about design, then you could fit the problem into a pattern and you would have overcome the first challenge. Fitting into the proper pattern can be a fascination aspect in some cases, but it shouldn't be the toughest challenge.

In the above problem, If i decide to follow the command pattern (well known for undo redo features), maybe I have done the job well. But the real challenge begins after that. If I know that I should follow command pattern (I am not suggesting it's the best pattern for the undo redo stuff in a database), the real hurdle is -what variables to declare, what should be done in the command execute method, what states and bookmarks should be saved and how to write the unexecute method of the command class. Here the noticable aspect is, the databases and their purposes vary from application to application, and this is where the uniqueness, talent and the insight of the programmer will come into play. The solution depends upon the project, its complexity, context and obviously the deadline.

In short, to me, a programming problem is a challenge that rises because of the uniqueness and context of the project. The solutions to the problems vary from project to project and here-in lies the challenge of programming. Basic skeletons to solve most programming problems in the world, up to now, exist. It's the programmer's job to tweak the skeleton, fit it according to the project demand, and give the solution a unique look. The more you gain knowledge, experience and skill, the easier is to tweak the skeleton.
And of-course, there are genius people who comes up with new theories and new outlook to problem solving (thus creating new skeletons), but they come very few in numbers.

Yes, you can make life easier for a programmer by providing frameworks and library, but you cannot make the programming problems of a programmer easier.... Solving the problems is where the art(!) of programming resides.


Recent News and Updates

  • Lokkhi - the product developed by Rational Technologies has been selected as a top 5 winner of the Techrockers event held at Digtial World 2015, and the team was invited to take part in TieCon 2015 that was held in the Silicon Valley, USA on May 15-16

  • Rational Technologies has been selected to present in “Demo Day” of Digital World 2015, Bangladesh. The event will be attended by representatives of major Silicon Valley venture capitalists such as Fenox, Golden Gate Ventures and Sajeeb Wazed Joy, ICT advisor to the Prime Minister and Zunaid Ahmed Palak, State Minister, Ministry of ICT. The event will be moderated by Shameem Ahsan, the founder and CEO of Akhoni.com. More information at ‪#‎RationalTechnologies‬ ‪#‎Lokkhi‬ ‪#‎DW2015‬ ‪#‎DigitalBangladesh and http://www.digitalworld.org.bd/event/details/23/demo-day

  • Rational Technologies introduces WebRTC in Bangladesh and is a pioneer in research related to browser based video conferencing
  • Rational Technologies has been chosen as a Strategic Partner for IT of Rangs Group which is one of the biggest Groups in Bangladesh. Rational is now involved with various aspects of Social Marketing for the Group.
Go to top