Framework to learn any programming language

Deepti Mittal
3 min readApr 25, 2023

--

Photo by Artem Sapegin on Unsplash

For so many years I worked on Java and I decided that I will work on projects related to Java and build expertise in it. Being in consultancy firm its not possible all the time that u will get good project to work where programming language is Java.

Six months back I was offered a project where problem statement looked interesting but programming language was .net. After talking to multiple people I end up joining the project.

We all aware of industry war between JVM and .net world. I am still part of that war and it keeps happening in my team in fun way.

While learning dot net I came up with a framework which can be applied to learn any programming language.

Common Concepts in most programming language:

  • Engine or core: I believe very first thing would be to learn core engine for any programming language. In case of dot net its dotnet core. In case of Java/Kotlin it would be JVM.
  • Build tool: How does your source code gets packaged. In case of Java it will be gradle/maven. In case of dotnet it MSBuild. In case of scala it could be SBT.
  • Project setup: How to set up a project or how does project structure looks like. At this step start writing some simple code with unit test case, and use the knowledge of build tool and engine here.
  • Semantics: OOPS concepts are universal but different language will support different way or best practices to implement those. So extend the code written in above steps to implement some simple OOPS.
  • Data structures: Understand how data structures are being supported in language and include some in project.
  • Functional programming semantics: If I compare to Java how to write code using something similar to Lambdas.
  • Logging: No project can be developed without logging, So find out supported logging framework and use it in project.
  • Error handing: Errors or exceptions are reality for any solution and what are the best practices/frameworks recommend to support them.
  • Rest/Web API framework: In my project we were implementing rest APIs so it was important to learn about it. If its not an immediate need it might come later in your case.
  • Web server: If rest API is being developed then supported web server is also very important and how its running behind the scene. How to configure port and other aspect. How it supports parallel incoming requests.
  • Dependency injection: This is a popular concept because of spring framework and I truly love it. Find out how to achieve that is possible in language. In case of C# I found it very different from Java.
  • Threading/Async programming: How to write thread safe code or async code.
  • Unit test case and mocking framework: I already mentioned unit test before, but finding out better libraries for setup and assertions will make life easy.
  • Configurability: How to supply different configurations based on environments. Something similar to spring boot profiles which are supported by application.yaml.

This approach really helped me to learn dot net and I feel very confident to learn any programming language with this framework.

This list might not apply as it is for every programming language but gives me good start to learn any language.

Please let me know in comments section if there are different concepts in other programming languages.

I will share my journey to learn other language using this framework.

--

--

Deepti Mittal

I am working as software engineer in Bangalore for over a decade. Love to solve core technical problem and then blog about it.