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 basewhat Git was and even what pull requests areI 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 learnThe 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 


Another aspect which is brushed over is what device do our users actually useWhat usually happens is in university we code with the latest features for the latest phonesWhat 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 


Diagram from Pixels, Resolution, & Aspect Ratio: What Does It All Mean


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 lets 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:  

  1. 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? 
  2. 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 copyThe use of versions allows us to make changes and track who and what the changes were 


We also must make use of branchesBranches are like copies of the application however we do not need to have the copy of the entire appA 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 unchangedThis also allows us to share work for collaboration a lot easier 


What is a PR? Well in this context, by PR I am referring to pull requestA pull request is a request to combine your branch to another branchThis is something you will be doing very frequently if you are a developerWe spoke about branches earlierA pull request is when combine two branchesSo, let’s get back to immedia School appIf 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!