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.

The Threefold nature of Intelligence

Trefoil knot. Source: I am constantly contemplating Intelligence, not purely for the purpose of exercising my mind, but also to discover its secrets so as to enable myself or anyone I inspire to create an artifact that embodies it as it is inevitable that humanity will eventually build synthetic intelligence to augment its current capacities.

What you actually need to become an expert programmer

 When it comes to programming, there is no reasonable shortcut to practice. What kind of practice am I talking about? Does it mean we should spend all day on  Leetcode  or  Hackerrank ? No, you don't have to but it is very important that you spend sufficient time on these platforms to improve the quality of your programming expressibility.