The Index Funds of a Developer’s Career

Mastering the interface of a programming language with no theoretical knowledge of algorithms and data structures is a bit like being very good at English and having nothing to say..Algorithmic thinking is the essence of problem-solving with computers..And a theoretical understanding of algorithms cannot be divorced from data structures..While algorithms help craft the logic of your program, data structures help manage the state.There is a case to be made that both algorithms and data structures vary significantly from language to language..There is also a case to be made that different professional domains (such as blockchain engineering, data science etc.) mandate a focus on different families of algorithms and data structures..Both of these points are valid but it is important to keep in mind that all programming languages and technical domains rely on the same underlying principles of computational logic (due to the fact that they all run on computers)..This has two implications — firstly, building up your ability to think algorithmically becomes a domain-agnostic and language agnostic skill..Secondly, some fundamental algorithms (like searching and sorting) will remain constant across all languages and useful in all domains..While it is true that you may never have to implement these fundamental algorithms in a professional setting, you will probably end up using them a lot.If like me, you did not have the privilege of learning this stuff in a university course, a good place to start would be this Quora discussion..My first exposure to these concepts was an e-book named ‘Problem Solving with Algorithms and Data Structures using Python’..This is a great introductory resource (especially if you know some Python-esque language) but I would highly recommend following it up with some Hackerrank challenges at the very least.II..Distributed SystemsImage SourceHumans love ‘scale’.. More details

Leave a Reply