Knowledge of Technology is must for everyone
If you look around, you will notice we are surrounded by products which are powered by Technology. Technology is becoming an essential part of our life. Especially to build the business and scale it, people are looking at technology to help it grow.
The below statistic shows the total technology spending worldwide from 2014 to 2019. In 2018, the global tech spending is forecast to amount to 3,212 billion U.S. dollars. The global technology market includes telecom services, tech outsourcing and hardware maintenance, tech consulting and systems integration services, software, communications equipment, and computer equipment.
The top hiring challenges reported by employers are finding workers with backgrounds in emerging tech, finding workers with desired soft skills, intense competition for tech talent, rising salary expectations, and limited pool of available workers. (ComTIA, 2018) — https://financesonline.com/technology-statistics/
So if you are planning to join a tech company or planning to build a tech product, it is important to get aware of few technology terms which will help you in your role!
So here’s the 15 technology terms which is important for you to understand!
#1 API (Application Programming Interface)
Lets say you are developing a web application or an app and you want certain features which are already developed and distributed by certain companies. Instead of rebuilding the features, you would rather think of using those features in your web or mobile app.
Example — An e-Commerce web app looking to build a feature to accept payments.
Such features are generally packaged and distributed to you which is called “API”. APIs are generally understood by the Software developers which provides Request and response fields. Request means the input the service need from you to provide you the output ( response)
Example of APIs can be found out:
#2 Mobile Technologies
Mobile devices like Android and iOS are seen everywhere. Apps built for such devices is becoming necessity for any businesses. Apart from website, everyone now have Mobile Apps as well. So what mobile technologies you should be aware of.
- Mobile Apps are build on Android OS or iOS OS ( OS — Operating Systems)
- Programming language for Android is Java and for iOS it is Swift or Objective C
#3 Web Technologies: HTTP, Client — Server
HTTP is the common language through which all web applications communicates.
Client-Server — This is most basic concept in software development. Any web apps or mobile apps will have this design. Examples of Client would be the application which is requesting for certain features like Mobile devices/ Tablets/ Desktop and Servers are the computers which serve the requests coming from different clients.Servers have the business logic and processing mechanism to fulfil the client’s demand.Example of Servers can be web servers, Application servers
When we create our profile in any web app/mobile app, how does it get persisted. It is stored in Databases. Databases are the technologies which will store data, business information, user information and their relationships. This is generally kept in a secured place so that no client application/devices will have access to it directly.
To access databases, you will need to install application like SQL developer, Oracle or Postgres. Mobile app sometimes keeps the data in SQLite.
Applications can query from these relational databases to fetch the information which is persisted here.
For accessing the data outside of the application, APIs need to be exposed which will securely get the data and provide to requestor.
#5 Software delivery: version control, build systems, deployment automation(DevOps)
Building and delivering software requires following certain processes and workflow. DevOps is the culture being adopted by the companies today so that Operations staff and development staff can work together from the beginning to ensure the code, infrastructure are secured and stable.
Version Controls are the systems where code for the applications is checked-In by the Developers. Version of the code and history is maintained here. There are various version control systems available today, most popular is GitHub.
Build systems and Deployment automation is the need of most of the companies today. Tools like Jenkins, Docker and Chef are making the life of operations and developers staff easy by automating their usual release activities.
Continuous Integration is the process which ensures code from all developers are regularly integrated and they all work together to provide a stable build for testing.
Continuous Delivery is the process which will ensure the integrated code gets deployed to various other environments so that code is verified in other environments as well (similar of Prod environment)
Continuous deployment is the process to deploy the code automatically in Prod after all the steps gives green signal. This is risky though and generally companies prefer less.
#6 Distributed system ( Cache, Message Queue, REST)
An application is called distributed and large scale if :
- There is a huge amount of Data getting generated
- A lot of concurrent users accessing the applications
- A lot of scalability requirements is needed
For example — Google search engine, Facebook, Twitter, Uber
To design such systems, architects consider cache to improve the performance, Message queue to improve the availability and REST architectural style so that APIs are easy to understand and consume.
#7 Non-Functional attributes of the system
System should not just fulfil the functional aspects but also ensure the non-functional attributes are taken care. Some of the attributes are:
If a system is reliable, it is available. However, if it is available, it is not necessarily reliable.
#8 Cloud Computing
Managing the infrastructure is a big task for businesses today. It involves cost and efforts of the people. Thats why businesses is preferring Cloud computing. The cloud aims to cut costs, and helps the users focus on their core business instead of being impeded by IT obstacles.
Cloud Computing ensures the application uses the infrastructure as-an when they need and businesses are charged usage specific.
Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The term is generally used to describe data centers available to many users over the Internet. Source
#9 Data Analytics
There are three types of Analytics:
- Descriptive — What has happened?
- Predictive — What might happen?
- Prescriptive — What should we do?
Data can be “Quantitive” or “Qualitative”
Quantitative data is expressed in numbers while Qualitative is expressed in groups or categories.
#10 SDK ( Software Development KIT)
Think of this as a Toolbox. You have a web app/mobile app and want to just plug-in this toolbox and build something interesting.
SDKs provides capabilities like user interface screens, API integration, customisation options.
As a Mobile app developer if you don’t want to worry too much about what the backend API looks like then this client side SDKs would serve your purpose.
#11 Frameworks and Programming languages
There can be server side framework and client side framework. Framework provides the basic functionality on top of which your code can run to accomplish a specific business need.
Examples — spring- java, .NET, Flask-python
#12 Cyber Security
This is set of processes, technologies and practices which helps secure the enterprise and consumer application from various cyber threats.
Information security, Hardware/network security, unauthorised access, cryptography are some of the practices which comes under Cyber Security.
Authentication and Authorization are key terms within cyber security.
#13 Data Science
It is the study of Data, The big Data. Big data gets created through:
a) Velocity — data coming rapidly.
b) Variety — data is in multiple forms
c) Volume — data is huge
Data Science involves below steps:
- Identify the business problem
- Acquire the data
- Clean the data and transform it to a usable format
- Create models
- Deploy the models
- Generate the report using tableau or PowerBI
#14 Machine Learning
Machine Learning process:
1. Understand the business issue
2. Collect the Raw data
3. Cleanup the data
4. Create Training data
5. Input this training data to ML algorithm
6. Generate Model
7. Applications call this Model
8. Get prediction/results
Two basic types of Machine Learning models, Supervised and unsupervised.
#15 Architecture patterns: Microservices, SOA, SaaS
These are Architecture Pattern.
Service oriented architecture(SOA):
A service here typically means a completely separate operating system process. Communication between these services occurs via calls across a network rather than method calls within a process boundary. SOA emerged as an approach to combat the challenges of the large monolithic applications.It is an approach that aims to promote the reusability of software; two or more end-user applications, for example, could both use the same services.
MicroServices are small, autonomous services that work together. All communication between the services themselves are via network calls, to enforce separation between the services and avoid the perils of tight coupling.Our service exposes an application programming interface (API), and collaborating services communicate with us via those APIs.
The golden rule: can you make a change to a service and deploy it by itself without changing anything else?
Software as a Service, also know as SaaS, is a cloud-based service where instead of downloading software your desktop PC or business network to run and update, you instead access an application via an internet browser. The software application could be anything from office software to unified communications among a wide range of other business apps that are available. — Source