Software Development at Awesomity Lab ๐
Hello there. if you are here; I am guessing you've heard about Awesomity Lab through a friend, social media or maybe had a vision๐.
Maybe you were told that Awesomity Lab is a software development company.
This might have caused you to think, "What on earth is software development??" or maybe you just randomly clicked on this post and now you don't want to leave.
Well either way, you have come to the right place. We will try to explain software development and give insight on what we use to build software at Awesomity Lab. Hold on tight
Let's get started
Before understanding Software Dev at Awesomity, one must first understand Software Development itself.
What is software development
Here is the definition from Wikipedia
Software development is the process of conceiving, specifying, designing, programming, documenting,
testing, and bug fixing involved in creating and maintaining applications, frameworks, or other
software components.
Obviously, the Wikipedia definition is a bit complex so I will put it in simpler terms. Software development is a set of steps where one person or many people try to come up and create a solution to a problem, challenge or difficulty; that solution coming in a form called a package called a software. A software is a set of instructions that is given to a device (computer, smartphone, etc...) and tells the device what to do & how it should work. It's kind of similar you giving someone very clear instructions on what the person should do & how to do it.
The processes included in software development are long but in a nutshell; they are all serving a purpose of understanding what the software should do, how the software should look like, what will be used in order to build the software as well as creating the software and making sure it works the way it should.
There are different types of application software, and ALOT of them. You can take a look at them here. Chances are that you are using an application software to read this article right now, your web browser.
Develop Software... how do you do that?
Using Programming languages
If you have no idea what a programming language is, think of it being a bit similar to languages we use like English or Kinyarwanda; the similarity being that they both serve the purpose of communication. Speaking languages help us communicate instructions to each other while programming languages help us communicate instructions to computers. There are many programming languages and developers don't always agree on every programming languages
So, what programming language should I learn & use?
Any language you want
Pretty much any programming language can be used to create software. With that said, not every language is good at writing every type of software, some language are good in only specific types of application software. For example, You might want to build the next big social media mobile app for iPhones; there's a programming language you can use that works better than others in that case.
Alright, so what language do YOU use at Awesomity Lab?
It depends...
Like we explained in the section above, different languages work best for different use cases. We use languages based on those use cases.
- For software that will run on web browsers we use HTML, CSS & JavaScript; which help us provide beautiful and interactive interface to our users. This is called the frontend side of the software
- For software that will run on smartphones we use Java, Swift & TypeScript; Which help us provide a smooth mobile experience to smartphone users.
- Naturally our users will most likely also use our interfaces to store and manipulate data, this data has to be given to them through a central hub called a backend. We use Java, JavaScript & TypeScript for our backends. A backend does more than just data manipulation, to not make this post longer than it is here is a post explaining front-end vs backend
Conclusion
This was probably a long read. But there is a lot more into how Awesomity Lab makes software; we can only give you the gist of what we use to build them. Moreover, things change; so does software development. This means that we might have a change of which languages, frameworks & libraries we use based on what is the best choice for the use case. Hope we could give you some insight and if you have any more questions feel free to contact us at <<team@awesomity.rw>>