Breakdown of the Tech Industry and the Skill Sets Required.

I will start from the unseen.

Before you ever see a website (like Amazon or Nairaland) or an app (like Twitter or WhatsApp), there are infrastructures they run on. Those infrastructures are called servers. https://twitter.com/_ndianabasi/status/1348528947672309760
The servers store the codes for the website and app so that they are executed when we open the app or visit the website. These servers must always be up 99.99999% of the time (reliability). Those responsible for these servers are called system/server administrators.
When you hear of website hosting. Those who make it happen are system administrators.
Server/system administrators must learn Linux administration, computer networking, DNS, etc. See this free detailed video for more:
Servers or computers do not operate in isolation. They are networked or connected in the most amazing way to form the world wide web. That's how you are able to access your favourite website or app from your computer or phone. Internet service providers such as MTN, GLO,
Mainone, Spectranet, etc depend so much on the network of servers across the world to give you internet access. Those responsible for maintaining this amazing mesh and keeping the internet running are called network engineers.
Requirements: Network engineers must study and master
Computer networking, take exams like CCNA and depending on your vision, you can keep learning and taking more advanced courses and exams to accelerate your career. If you want to work in a place like MTN or GLO and earn well, a good path will be as a network engineer.
See this free detailed course on network engineering.
Continuing with the unseen and less popular but very critical fields in technology.

Servers which host our codes or database are targets of bad actors (hackers) whose work are to infiltrate those servers and steal sensitive information. The servers must be protected at all times
Those responsible for securing these servers and other critical IT infrastructure are Information System Security Engineers AKA Cyber-security engineers. You can see them as good hackers because they can hack but they hack to keep the bad hackers out.
Requirements for Cyber Security engineering:
You have to be familiar with Linux and Windows systems. You have take Information Security courses. Knowledge of Linux administration is a good requirement. See this video for details:
It is good to add that tech is not about software companies like Google or Microsoft alone. Tech companies can also be companies which provide HOSTING SERVICES like @whogohost or @HostGator, TELECOMS COMPANIES like @MTNNG or @AirtelNigeria; INTERNET SERVICE PROVIDERS (ISPs) like
@Mainoneservice, @Spectranet_NG, @googlefiber; PAYMENT COMPANIES like @InterswitchGRP, @paystack, @theflutterwave; ECOMMERCE COMPANIES like @ShopKonga, @JumiaNigeria, etc.
Also want to add that these skills listed above can be useful to any small, medium, and large scale company. For example, knowledge of network engineering can be used to network small to large offices for companies. Companies often have separate departments with 10s to 100s of
Computers. With knowledge of networking, you can design a reliable network for this computers and earn a good living with that. It will involve laying cables and crimping them, working with router/access points and switches, etc. All these will be learnt in your basic CCNA course
A recent field in tech is cloud engineering. It is an unseen field but very critical in how 21st century technologies work. The cloud isn't a new thing. It just means storing your code, databases, and files on other people's servers (not on your own server running on your
Laptop or server within your office). Having other people store (host) your code, files, and databases could be more reliable, cheaper, more accessible globally, and more secured. This is the basics of website hosting and forms the bedrock of cloud engineering.
Cloud engineering is basically provide large-scale remote hosting of codes, files, and databases to clients around the world. Companies like Google, Amazon, Microsoft, and Alibaba have their cloud services which are used by over 70% of the market.
See this free video about Cloud engineering:

Learn more about cloud engineering:
Now to the visible and popular fields of technology.

A lot of the times, when we think about tech, software and web developers come to mind. However, software/web development is more involved than just programming. Let me break it down.

Software/web development typically has
Two broad aspects/areas: frontend and backend. These areas have their own subareas. Beginning with the frontend.
The Frontend aspect of the web/software deals with the view which clients/users interact with.This could be the website a user is browsing or the mobile or desktop app
The frontend is often called the user interface of the website or app. It must be designed to be aesthetically pleasing and easy to use by users. The need for design of the user interface and user experience of a website or app created specialised fields known as Frontend Design
Frontend Design deals with creating user interfaces for websites and softwares with beauty layouts and components(user interface design) and making sure that these layouts and components are arranged in such a way that users find the software/website easy to use (user experience)
User interface design and user experience design are highly needed skills in technology. These skills do not require coding but do require you to have a flair for graphics design. You will often use tools like @figmadesign or @Photoshop to create user interfaces.
Learn more about frontend designs here:
The frontend aspect of a website/app/software has two large areas: frontend design (already discussed above) and frontend development.

Let's discuss frontend development.

While frontend design requires no coding - just knowledge of graphic designs tools,
Frontend development requires the knowledge of coding - that is programming. Frontend dev is often the starting point of most software engineers. They are responsible for converting the designs created by frontend designers into codes which
can interacted with with a mouse (websites and desktop apps) or fingers (mobile apps/responsive websites).

The entry skills into becoming a frontend developer is by learning HTML and CSS. Then Javascript. With these three technologies, you will be able to create your own
Websites from scratch or customise existing websites. You should be able to easily build websites with WordPress and earn a living. Most importantly, with experience, you should be able to pick a design mockup and convert it into a user interface with HTML, CSS, and Javascript.
See this full free course on frontend development from @freeCodeCamp :
Once you under HTML, CSS, and Javascript and can build your own website, another level in frontend development is to working with server resources. Server resources are information sent down from the server into the frontend. One of the duties of a frontend developer is to
Read information sent down by servers and then render or display them for your users to see and interact with. For example, when a user clicks on a link, a request is sent to the server for the information, the server will respond with the information. It is the duty of the
Frontend developer to display that information as a page or table or chart or list or picture in such a way as it is compliant with the design already provided by the frontend design team.

Javascript is a very important aspect of frontend development. Once you understand HTML
And CSS, you have to focus on Javascript so that you read data sent from servers and render them well. Start with the pure Javascript at this stage and avoid Javascript frameworks such as React or Vue at this stage.
You can see a full free Javascript course here :
Javascript also powers the interactivity of websites like drop down menus, pop ups, scroll effects, etc. Javascript is also used to process data and render them as tables, charts, lists, etc.

When you understand the basics to medium levels of Javascript, you can then adopt
A Javascript framework and learn to use it to accelerate your frontend development. There are lots of Javascript frameworks nowadays. They include Vue JS @vuejs, React JS @reactjs, @sveltejs, etc.
Frontend development/engineering is a large field which can be specialised. It is highly demanded even more than backend engineering. For a typical project, you might need 2 or 3 frontend engineers to 1 backend engineer. There is no need to go into backend engineering if
You don't want to. You will have more than enough work to do and opportunities available for career growth.

Since we are learning about the different fields of technology, we won't stop here. Let's continue.
Web/software development has two broad aspects. We have discussed the frontend aspect. Now, let's discuss the backend aspect.

The backend aspect of a website or software deals with the codes running on the servers which powers or provides the core functionalities of the software
Or website. Those core functionalities include databases, authentication and role management, data processing, email functionality, data acceleration, security, file storage, and communications with third-party services.The backend aspect of a software is broad and often requires
Dedicated expertise for different aspects of the backend. For example, in a large organisation, there could be dedicated database administrators, security analysts, backend software engineers, etc. However, in smaller companies, a backend engineer is required to understand the
Different aspects of the backend and should be able to develop a software with those different technologies. He is also required to work with the frontend engineering team and provide the required data in the best possible format so that the frontend team can display them
Properly to users and clients.

In a typical setup, when a user arrives an app (like Facebook) and requests to view a friend's profile, the app sends a request to the backend which has the database and the code responsible to retrieving the profile information and send it down to
The app for the requester.

So the first step in learning backend engineering should be learning database programming. There are many types of databases available now. However, I recommend learning SQL databases (such as MySQL first) before learning the recent noSQL databases.
You see this free detailed course on SQL from @freeCodeCamp:
You will notice the wide range of options for backend programming but only Javascript was mentioned for frontend programming? Why is this so?

1. Most apps run on web browsers such as Google Chrome or Mozilla Firefox. And the standard way of programming for web browsers is with
Javascript.
2. Most desktop apps now are actually running within embedded web browsers. So the frontend is still Javascript. This can be achieved with @electronjs.

This workflow allows you to write the same frontend code and deploy as web app or desktop.
Our focus is on web applications (apps design to run on your web browser) or desktop apps running within embedded browsers or mobile apps.

Permit to digress and talk about mobile apps before continuing with backend technologies.
Mobile apps are designed with the similar principles used for web apps.
1. The frontend is designed.
2. The frontend is developed with HTML, CSS, and Javascript.
3. The backend data is read (consumed) by the frontend and displayed to the users.
Due to heavy competition in the mobile apps industry, you must ensure that your interface is beautifully designed, the user experience is excellent, and your app loads and works fast. The same principle is pertinent for web apps though not as competitive as mobile apps.
There are two major platforms for mobile apps:
1. iOs - owned by Apple.
2. Andriod - owned by Google.

iOs app development is majorly done via the Swift programming language with the Xcode development environment. With Swift, you can code iOS, macOS, tvOS and watchOS apps.
Android development is majorly done via Java and recently Kotlin. Google released the Kotlin language as a replacement for using Java for Andriod programming. With Kotlin, you can develop apps for Andriod watches, phones, TVs, and electronics powered by the Android OS.
Whether you choose to focus on iOS or Android development via the Swift or Kotlin language, respectively, what you need to understand is that Swift or Kotlin are PRIMARILY frontend programming languages. They run on the devices the apps are installed on.
Both can also be used for backend programming, however, other existing languages are favoured for backend programming of web apps. This is because backend programming tends to the platform/frontend agnostic (independent of the frontend). And communication between the backend
And frontend is usually via API endpoints which and can be consumed by web apps, mobile apps (iOs or Android), desktop apps (native Windows or Electron app), websites, etc. So the backend has to be as independent of the frontend as possible to reduce development cost.
Continuing with Backend Programming.

Your choice of backend language to learn will depend on several factors. Availability of jobs for the language, internal company requirements, and ease of learning.

Python, Javascript, Rust, and Java are the recommended
Frontend-agnostic languages to learn for backend programming. If you are coming from the frontend path, then you will be already familiar with Javascript.

Let me talk more about Javascript as a backend language. Javascript is very unique as a language. It is the only language
which can run on a web browser like Chrome or Firefox and also run on a server. This is the reason Javascript has the largest users around the world. It gives programmers so much convenience as you can learn one language and use it on both frontend and backend. When Javascript
Runs on the server, it is executed within a runtime environment called Node.js @nodejs. Node JS allows you to execute your Javascript (JS) code within a server and have access to the server's resources such as network and files.
To use JS on the server, though you do not have to relearn JS, you have learn Node JS' APIs. You can find detailed documentation about Node's APIs here: https://nodejs.org/en/docs/ .

Luckily for us, we do not have to understand all the APIs of Node JS to use our JS within the server.
My recent app @gotedo_app is built on @adonisframework. You can see the docs here: https://preview.adonisjs.com/guides/quick-start
Back to other languages, Python, Rust, Java are very good backend languages which can be used for all purposes. However, Python seems to be favoured when it comes to machine leanring. Python is also the most popular backend language.
It is pertinent to mention Typescript.
Typescript is built on top of Javascript. Unlike other programming language, Javascript is not strongly-typed. Typescript adds strong typing to Javascript and supports experimental features not yet available in the official Javascript build. So, though Typescript is called
a language, it is actually a superset of the Javascript language. Writing Typescript is writing Javascript.
When you want to communicate with the frontend from the backend, a standard way of communication called REST APIs are used. With the REST APIs, you are just sending down packets of data which the frontend developer will read and render/display on the frontend of the app.
The backend aspect of a website or app is more than the programming language. The programming language is important because it glues all the other aspects of the backend to form a reliable system.

Other aspect of backend engineering you will need to learn are caching mechanisms,
Database administration, security, development operations (DevOps), etc. Caching mechanisms are used to accelerate the retrieval of data from the backend.
Instead of constantly retrieving data from the database caching mechanisms such Redis, Memcache, and Varnish maybe used to reduce expensive database operations.
I will like to discuss more about database administration as a separate and lucrative IT profession. For small companies and web applications, a single backend programmer can oversee the database admin roles. However, for big companies such as banks or big applications such as
Facebook or Twitter, dedicated and experience Database Administrators are often employed. Database administrators (DBAs) use specialized software to store and organize data.[1]

The role may include capacity planning, installation, configuration, database design, migration,
Database administration is a very lucrative profession which are needed in virtual all medium- to large-scale enterprise who have lots of data to store, retrieve, analyse, and preserve.
I will like to come out of the server box and discuss other professions in IT.

Once you application or website is launched or before it is launched or while it is being developed, a different set of professionals may come. They include:
1. SEO specialists,
2. Analytics specialists.

SEO (search engine optimisation) deals with the process of creating and optimising contents (visible text, images, and meta information) and structuring your website or app for the highest appear on search engines such Google Search or Bing Search.
Analytics involves gathering (anonymous) data about how users use your website or application. Website or app analytics is very important for knowing features loved by your users or those which are less used, bottlenecks in your applications, user-generated errors, etc.
Popular platforms for website or in-app analytics include: Google Analytics: https://analytics.google.com/  and Adobe Analytics: https://www.adobe.com/analytics/adobe-analytics.html

Analytics makes it easy to retry selling your products and services to visitors who didn't buy or knowing why visitors aren't buying.
We cannot finish the guide without mentioning the big boys. I am not qualified to talk much about them because I haven't done much with them. But just know that they exist and will be even bigger in the future:

1. Machine learning. Requires some programming experience.
2. Artificial intelligence. Requires some programming experience.

See more on AI: https://www.guru99.com/artificial-intelligence-tutorial.html
4. Virtual reality/augmented reality. Might requires some programming experience. See more here:
https://www.guru99.com/difference-between-ar-vr.html
You can follow @_ndianabasi.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.