Skip to main content

Learn some competitive coding

 Although in real software engineering scenarios you will barely encounter the kinds of problems you see in programming interviews or competitive programming, it is actually a good thing to train at these kinds of things because in the end, not only will you train your brain to become stronger, you will also develop what I call the mechanical mind. 

This mechanical mind must be trained through programming interview-like preparation or competitive programming because it does not come naturally in most people. As you get better at solving programming-interview/competitive programming questions, your general ability to think mechanically, which is actually algorithmically will improve, allowing you to apply that strong analytic skill to other things you might be engaged in.

But in my opinion, the biggest benefit of possessing a mechanical mind is when you seek to study really advanced algorithms. Without proper mental training, you will find it hard to study really hard graduate-level algorithms without which you will not be able to make any significant contributions to software/algorithms.

If you got some developer job and focus solely on solving the kinds of problems that arise in your job, after many years of experience you might develop a very good aptitude for solving practical software problems, but you might not be able to develop ground-shattering algorithms like page-rank or some new better form of compression, etc. 

Without a solid foundation in algorithmic/mechanical thinking that you get from competitive programming, you will not be able to venture into really sophisticated algorithms except you have a natural ability for that. For the common everyday developer who wishes to solve some fundamental problems in computer science without a graduate degree, the path of competitive programming can develop your mind to the level where you are able to start studying the really hard algorithms with the hope that one day you will be able to build one of yours. 


  1. According to this system of classification, there are four types of AI or AI-based systems: reactive machines, limited memory machines, theory of mind, and self-aware AI are discussed in tal dilian.


Post a Comment

Popular posts from this blog

Next Steps Towards Strong Artificial Intelligence

What is Intelligence? Pathways to Synthetic Intelligence If you follow current AI Research then it will be apparent to you that AI research, the deep learning type has stalled! This does not mean that new areas of application for existing techniques are not appearing but that the fundamentals have been solved and things have become pretty standardized.

Virtual Reality is the next platform

VR Headset. Source: It's been a while now since we started trying to develop Virtual Reality systems but so far we have not witnessed the explosion of use that inspired the development of such systems. Although there are always going to be some diehard fans of Virtual Reality who will stick to improving the medium and trying out stuff with the hopes of building a killer app, for the rest of us Virtual Reality still seems like a medium that promises to arrive soon but never really hits the spot.

What is Intelligence: Software writing Software

Sometimes I wonder why programmers are hell-bent on writing programs that can communicate in natural language and not even putting adequate effort into writing programs that write other programs. Maybe is because of the natural tendency to protect one's source of livelihood by not attempting to automate it away or maybe because writing programs is hard enough such that contemplating of writing some program that writes programs might be even harder.