Skip to main content

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.

Apart from the above-mentioned platforms where you can learn interview specific programming, you must study the entirety of computer science like a monk in some monastery studies religious text. You really have to spend a lot of time and I mean about 60% of your time just reading books, watching videos/simulations about data structures and algorithms and actually trying your best to code recode and recode some more the algorithms and data structures that you study.

You must remember that programming is a natural mode of expression for the human mind. Some people are adept at it naturally but you cannot really escape practice. The more you know about the computer in all aspects the better a programmer you will be. 

You must really put your mind to it, even though there are going to be large swaths of time when you feel like you are not making any progress. You must just keep going and going no matter how long it takes.

Another very important thing to keep in mind is that even though you know how to code, you should really make the effort to study discrete math. This cannot be understated. My favourite book in this respect would be Concrete Mathematics by Knuth et. al This is a mature book so you might need to brush up on some of your basic algebra skills before getting in.

Even if you don't own a PhD. you should be able to understand PhD. level text in computer science and advanced algorithms. You need to really broaden your mind if you want to solve some fundamental problem in computer science just the way Page and Brin solved automated web search with Google. 

If getting a job is all you care about then you don't need to go super deep, just trick your way through with hackerrank, learn some web stack, build some toy projects in your portfolio, prepare seriously for the tech interview, learn how to code on a whiteboard and that's all. But if you want to become a real master capable of starting a multi-billion to trillion-dollar company then you must be monastic in your dedication to the mastery of software and hardware technology.

Comments

Popular posts from this blog

New Information interfaces, the true promise of chatGPT, Bing, Bard, etc.

LLMs like chatGPT are the latest coolest innovation in town. Many people are even speculating with high confidence that these new tools are already Generally intelligent. Well, as with every new hype from self-driving cars based on deeplearning to the current LLMs are AGI, we often tend to miss the importance of these new technologies because we are often engulfed in too much hype which gets investors hyper interested and then lose interest in the whole field of AI when the promises do not pan out. The most important thing about chatGPT and co is that they are showing us a new way to access information. Most of the time we are not interested in going too deep into typical list-based search engine results to get answers and with the abuse of search results using SEO optimizations and the general trend towards too many ads, finding answers online has become a laborious task.  Why people are gobbling up stuff like chatGPT is not really about AGI, but it is about a new and novel way to...

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.

From data based models to program based models.

 The most successful approach to modern AI has been the data-oriented version. Using statistical learning methods, we have created systems that can recognize, and generate information. While there are numerous benefits to these paradigms as can be seen obviously many new techniques that have become commonplace in daily life, from more accurate recommendation systems to text and image generation systems that make it easier to retrieve human knowledge in a compressed form, these methods are limited in the sense that they depend on human-generated data to be "intelligent". The main issue arises from our understanding of what intelligence requires. Our educational systems have conditioned us to think that intelligence requires the absorption and retrieval of information, and so we have created systems that do these actions to a greater or lesser degree.  If this is what we consider intelligence, then the  LLMs and image generation systems of today are the totality of what tha...