The Must-Know Tech Jargons for Junior Devs
The software industry loves to invent new words and because of that, we have a hell of a lot of terms to keep up with. It usually so happens as a junior developer you keep wondering what your colleagues are talking about when you are starting your career. And it sure does sound cool using them while you are speaking in a meeting too.
So here is a list of top terms to familiarise yourself with.
- DevOps: This is a new method of developing and delivering software where you automate most of the tasks thereby reducing the time to deliver a client. Simply put, you have tools to build, test and deploy your code at the click of a button.
- Frontend and Backend: Anything that faces a user is called a front-end. This can include apps, websites, or any other user interface. Backend is where the logic or calculations happen. Servers are an important part of the backend. Simply put, anything that you are not directly communicating with.
- Source control: Gone are those days when we used to code on text editors and push using FileZilla. We use a shared model of coding where we have a central repository called the master and each one of your colleagues has a local copy of the master. This helps to share code, see the history of the file changes made, who and when it was made. It also allows for two people to code on the same file at the same time and even revert your mistakes. Git is a popular example.
- Development & Production: Companies usually have a 2 or more step process to code deployment. There is usually one where all the untested or yet-to-released code goes in which is called development and then there is the production which is the stable copy or working or bug-free copy of your code. This is the one you would showoff to your clients.
- Feature, Bug & Debugging: A feature is something you will develop. It could be as simple as adding animation to a button or even an algorithm that counts the number of drivers available in your area. A bug, well you guessed it, a feature gone wrong or not working as per expectations. And debugging involves fixing that bug by visiting every line of code using breakpoints or writing log statements (the most preferred one :D).
- Sprints: Companies usually work in small delivery periods usually for a week or two. They include tasks like design discussions, implementation, testing, and then delivery, in that order. This gives them more visibility and a sense of progress among members.
- Request and Response: Every software follows the client-server approach. The client is any kind of interface (app, website) your customer has. The client requests some data from the server via an API. The server responds with the result.
- APIs, Contracts & HTTP clients: A function when exposed publicly is called an API to put it simply. It usually gives meaningful data to the customer-facing applications. A major part of a backend developer involves providing APIs to the front-end(apps and websites). The client requests an API for data and the server responds to it. Teams usually document the request and response interfaces they would expect from an API. This also helps resolve conflicts in the team. HTTP clients allow devs to test their APIs if they are confirming the contracts.
- Database, Queries, Indexing & Caching: A database is like the storehouse of raw data. Your code talks to the database for some information. This communication is via queries. Queries become fast and slow based on how your store the data. A popular method of making queries fast is by indexing the stored data in a database. Indexing is basically ordering the data in a particular manner for efficient processing. Say you order names alphabetically to search for a person quickly. Remember binary search? Caching is the process of storing frequently accessed data in a high-speed memory so as to reduce the time taken to return the results.
- Design Patterns: They are recommended solutions to certain situations. These are tried and tested mechanisms developed by software engineers over the years. Read about them here.
- Authentication, Authorization & Tokens: Authorization is when you have the privilege to access something. Authentication is the process of validating that the correct person is using it. Say you want to like a post on Facebook. For this, you have to authenticate yourself i.e. have an account on Facebook, then you have to authorize yourself i.e. have the rights to like/view that post. But all this communication is via tokens or encoded strings that only they understand.
- Domains, sub-domains, Hosting: The address of your website .e.g wordpress.com. A sub-domain would be yourname.wordpress.com. Hosting is the process of putting your code on a public server so that the world can see the magic.
- Libraries & Frameworks: Libraries are codes that take care of a specific set of tasks. e.g jquery or react is a library that allows you to create UI elements. Frameworks are more like a superset which allows you to do more things like routing, connecting to the database, serializing data, etc. e..g NestJs or Angular.
- Terminal & GUI: That horrible black screen that accepts only commands is the terminal and GUI (Graphical User Interface) is the fancy stuff. Get used to the terminal and start using Linux if you haven’t yet coz servers provide the fancy stuff. It’s all dark stuff over there :D
- Cloud & SaaS: A cloud is a space far far away from your office where all the servers exist. You upload your code to these servers which then make it available to the public. But the cloud has shifted from its conventional duties of just storing your data. It provides a lot of other services like manipulating images, backups, crunching reports, sending SMS, and many more. AWS is one such cloud provider with over 200 such services. The best part is you just pay for what you use. Pay-per-use is a popular model that companies are moving towards these days thereby cutting costs immensely.
- Work-from-home/anywhere: With the advent of the pandemic, IT companies have become more lenient and have adjusted to working remotely. People log in from different places around the globe and work peacefully. This in turn has saved millions for the company due to infrastructure cost cuttings.
Drop a comment of the things you learned as a junior dev. Would love to keep this list growing.