Overview¶
All the applications we write are a bunch of programs interacting with each other to create desired outcome of a business domain logic.
A program can be thought of piece of code that executes on a particular runtime. It needs input devices to gather input data and output devices to communicate output results, it will also need a memory to perform computation on data. runtimes can be turned off or crash at anytime, so your programs can also be absrutply terminated. Therefore programs should also have to way to write current knowledge to a persistent disk and be able to retrieve/recover to the best of previous knowledge and continue to run from where they were terminated.
This foundational mental model of programing is very important and forms the basis writing/understanding/debugging them. We deal with programs that run on various runtimes, you may write an application that works on browser, or an machine hosted on cloud or special runtime provided by cloud providers like lambdas, edge functions etc.
Over the time technologies and frameworks evolve, but mostly these fundamental concepts remain the same. You should always keep yourself informed about the changes and paradigm shifts that happen in your domain of expertise. Learn the ability to identify from your mistakes and get better. Gain the skill to discern good programming patterns from the bad ones. Continuously keep learning, keep yourself updated and practice what you have learnt methodically.