….so you want to write Software for a living

  1. Language. This is the language in which you write your software; C#, Swift, Python, Java and so on. This area of knowledge is all about syntax and how you use the language to solve problems.
  2. Platform. This is where your software runs. Most of the time, your software will need to interact to some extent with it’s environment; the operating system and/or the hardware it is running on and maybe a database. This area of knowledge is about how you make your software perform these interactions. It maybe a Windows laptop, an iPhone or maybe a Linux VM running in the cloud. Writing software for each of these platforms usually (but not always) requires specific knowledge of that platform.
  3. Domain. This is what your software does. To write software that controls a nuclear power station requires knowledge of how the power station works. The same is true for banking software, games, aircraft autopilots and so on. To write software that performs a task, you need to know about the task.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store