There is a multitude of different languages and applications that can be built in this day and age. You could be starting off as a web developer, or creating mobile apps for Android or iOS. Regardless of what coding adventure you are embarking on, these 4 essentials are going to help you become a better software developer.
When I started working at immedia I started to see that there are things which I felt university did not prepare me for. I had to learn about the code base, what Git was and even what pull requests are. I know you might be confused about these terms I know I was too in the first month of working.
At the start of my internship, the first thing, I had to do was learn the code bases. I had started looking at a massive app which was far larger than what I was accustom to in university. I also had to learn a new language as I was not familiar with the language being used.
You are more than likely to be working on app that has matured its development process with already existing coding standards that you are going to have to learn. The challenge is that, usually being in university, we just look at what the code does and not think about the way it is organised or structured.
Devices
Another aspect which is brushed over is what device do our users actually use. What usually happens is in university we code with the latest features for the latest phones. What we need to be aware of is that this is not the case. Many people use older devices as many people do not have the money to upgrade as soon as a new device is released, or they may keep their old devices. This is a truly relevant point as we always need to consider things like aspect ratios for example and how will the behavior of a feature affect all devices which the app supports.

Version Control
Version control is a powerful tool which helps us manage changes being made to the code. So why do we use version control? So let’s take an app, for example the immedia School app: we may want to add a new feature. Without the use of version control we would have one or two copies of the app as a backup and then make changes to it and release the app to the app store.
This way of doing things has a lot of issues:
- Firstly, what happens if two people are working on two different new features ? Which persons version is released and how would the other feature be changed?
- Also, if there is an issue with the version what happens? How can we view the changes to know what to fix?
The use of version control prevents all these issues. By using versions we do not need to make an entire new copy. The use of versions allows us to make changes and track who and what the changes were.
Branches
We also must make use of branches. Branches are like copies of the application however we do not need to have the copy of the entire app. A way to think of it is like having a book and each page is different but still part of the book. The benefit of this is that we can make a new branch and if something breaks we can easily revert the changes back to the main branch which has been unchanged. This also allows us to share work for collaboration a lot easier.
PRs
What is a PR? Well in this context, by ‘PR’ I am referring to pull request. A pull request is a request to combine your branch to another branch. This is something you will be doing very frequently if you are a developer. We spoke about branches earlier. A pull request is when combine two branches. So, let’s get back to immedia School app. If we create a new feature and it has passed its tests we can now add it into a PR which your colleagues can review before merging into the main branch which we can, after approval from your team, release to the app store.
These are not the only essential skills you will need for the rest of your career, however these are great things to know before becoming a software developer or to help you as you begin your journey as a software developer.
If you would like to learn about what is happening in the Android software development world, check out our article about HarmonyOs and how it is impacting the mobile space. You can also join our development community in our immedia School app, or sign up to be a Summer Schooler – like I did!