- About this Blog
- Notes for the Reader
- The Real Juicy Stuff
- What Even is Web Development?
- What is User Interface/User Experience Development?
- What is Games Development/Design?
- What is Data Science?
- What is Machine Learning and Artificial Intelligence?
- What is Cyber Security?
- The Complicated Bit
- What is the Cloud?
- What is Cloud Development?
- What is DevOps?
Breaking into the tech industry as someone over the age of 25, who didn't study computer science in school was intimidating.
I’m 29 years old, the extent of my ‘tech’ education in school was building a website using PowerPoint – yes – you read that right – PowerPoint.
I bumbled my way through life, knowing tech was something that I was interested in but that I always thought was out of my reach.
If you are reading this and you are feeling like I was, I am here to tell you…
Tech is for you! And I am on a mission to help you make the best start.
Welcome to my blog – a series of articles for newbies aimed at explaining things that I found challenging in very plain English so that they will be a breeze for you (hopefully).
As a newbie I often find the guides I am reading have this element of tech "stuff" I am just expected to know about. They all seem to assume prior knowledge or knowledge around the subject, so I created this blog to help guide you through the things I found tough.
I am open to feedback so please, leave me some below or reach out to me on Twitter. I am also keen to cover the topics that you will find most useful so if you have got a burning question/worry get in touch and I will try and include it in this series.
This is article 3. I ran a poll to get an idea of which topic to cover first, the vote came out as:
I’ve got a surprised planned for number 4 but after that I’m all out – let me know if there’s anything you’d like to know about 😊
There’s also a poll going on Twitter today (13/08)
Navigation - you can read this guide all in one or use the contents list above to jump to the sections you need.
This guide is intended to give aspiring web developers a one-stop-shop to learn about different areas of the tech industry, languages, frameworks and roles.
I have tried to explain everything very simply, if you feel patronised, I’m sorry but as someone who found other guides too technical, I wanted to try a no jargon approach.
Ok if you are still with me, lets dive in.
By the end of this post, I hope you will be able to:
• Understand what Web Development is
• Understand a little bit more about the tech industry
• Understand the different roles available in the industry
• Understand the different language/frameworks
• Have some cool resources to make a start on your learning
Web Development used to be thought of as just the development of websites but as our online lives have grown, the definition of web development has become broader. Now days it is used as a very general term to describe the development of anything web related things like websites, web applications, progressive web applications (don’t worry we’ll go over what these are below).
The tech industry continues to grow as do the various job titles and niches. As a newbie you’ll see guides that say “…if you want to be a X developer learn x, y, z”. That’s all well and good if you know the pathway that you want to go down but if, like me, you picked up coding because you were bored you probably don’t know which area you’re aiming for because you probably don’t know about the possibilities.
So here it is, a comprehensive guide to areas of the tech industry involving programming, the possible job types and titles, the languages and frameworks most used in those areas and how to get started with your learning.
The development of content based on the web including websites and web applications.
Web Application (Native Web Application)
A web-based application where the viewing area (user interface) must be downloaded to your device. The application is accessed via the internet and uses web-based languages and servers – they need an internet connection to work.
In the olden times (say, before 2005), you needed to buy expensive software on a CD and all the data for that software was stored on your device. Now you can have hugely powerful programs on a tiny device as all the data is dealt with remotely.
Examples of Web Applications
You may have also seen the term ‘progressive web applications’. These are a new type of web application that combine web and mobile technologies to give the user quicker access to the service. They’re like websites with all the functionality of an app and you don’t have to download them from the app store to access the content, it’s available on the web and has the look and feel of an app.
Examples of Progressive Web Applications
• Twitter Lite
Roles and their Responsibilities
Front End Web Developer
Deals with what the user sees and interacts with, depending on the size of the company, sometimes the FE developer will also be responsible for the design of the content but in larger organisations, the FE developer is given a design by the design team and is just responsible for creating the lines of code to bring that design to life.
Other Job Titles May Include:
Front End Web Designer
Junior Front End Developer
Senior Front End Developer
Front End Designer
Front End Engineer
Languages Used by a Front End Developer
Frameworks & Building Tools
• Saas (Syntactically Awesome Style Sheets)
Resources for Learning
Back End Developer
Deals with all the behind the scenes functions, things like: servers, applications, databases, functionality, reporting, security, they also need knowledge of hosting and the cloud.
The work of a Back End Developer is never seen by the user they speak in server-side languages and deal with the data required to make the website responsive to the users requests on the front end.
Alternative Job Titles:
• Web Developer
Languages Used by a Back End Developer
• Ruby on Rails
Resources for Learning
Full Stack Developer
Is a hybrid between Front End and Back End – they do both, a jack of all trades. Full Stack is becoming more and more common in the industry but some companies still like specialisms so do what you want to do, if you start with Front End there’s nothing to say you can’t pick up the Back End skills later.
UI and UX usually go hand in hand with each other and Front End Development, some companies will have a separate Front End/UI/UX roles and others will keep them together in one role.
It’s important to note that although some Front End Developers deal with UI/UX, they are not the same thing, UI/UX is a specialism. UI/UX is generally more design focused and deals with creating designs that are visually pleasing, easy to use, enjoyable and ethical.
UX deals with the human-first design principles and how to make the interaction with a service an enjoyable experience for the user, how easy is this service? Can the user access all the content they need quickly and simply? Is this element relevant or necessary?
UI is a digital term and deals with the look and feel of a service and how a user is going to interact with that service in practical terms. They will deal with things like buttons, icons, spacing, typography and colour schemes. They are less focused on usability and more about making a design visually pleasing.
UI/UX design requires a lot of user research, analysis, testing, interaction design and design strategy.
Alternative Job Titles:
Languages Used by a UI/UX Developers
Other Tools Used by UI/UX Developers
• Adobe Creative Suite
• Adobe Xd
Resources for Learning
- Bootcamps (lots of them now offer UI/UX specific course, examples: GA & Ironhack)
- UX Design
You guessed it, a Games Developer deals with the development of games, these could be browser-based games, web application games or video games.
Potential Job Titles
Video Games Developer
Video Games Engineer
Languages Used by a Games Developers
Creating complex algorithms to help businesses interpret large amounts of data, you’ve probably heard the term Big Data thrown around, Big Data deals with datasets that are too large or too complex to be dealt with by standard data software.
This data is extracted, analysed, and then used to inform all sorts of decisions in business. Data Science, Machine Learning and Automation work hand in hand (read more about these terms below).
As datasets grow and become more complex, the cloud is being used more and more in Data Science. You can read more about Data Science and AWS here.
Potential Job Roles:
• Data Scientist
Deals with creating data solutions – deciding how the data should be dealt with
• Data Engineer
Deals with scaling the data solution created so they can run over large datasets, they need to understand the configuration of databases
• Data Analyst
Deals with complex SQL queries and the maintenance of the data
Alternative Job Titles
• Data Architects
• Business Intelligence Analyst
• Business Intelligence Specialist
Languages Used in Data Science
Other Tools used in Data Science
• Apache Spark
About teaching computers to learn and act like humans do, I know you’re now thinking about iRobot and exciting things like that but unfortunately AI isn’t always that exciting…
Machine Learning is all about teaching computers to use data to make better decisions the next time around but this learning happens very quickly.
Imagine you’re shopping for clothes, the recommended products section? Yeah, that’s AI, it’s gathering data from all the shopper buying that product and data from your previous purchases to make suggestions of things that you are likely to buy.
Machine learning works with big data (described above in Data Science), using complex algorithms to analyse that data which then improves decisions made by the computer.
Potential Job Titles:
• ML Engineer
• AI Engineer
• ML Programmer
• AI Programmer
Languages used in ML/AI
• SQL Server
Is the practice of helping protect computers, servers, mobile devices, networks and data from nasty people, basically.
There are many different types of security professionals some deal with creating the security measures and some deal with trying to break them (like ethical hackers).
Some security professionals do not use code in their work and just have a very good knowledge of network security instead, I have only included those that require programming for this list.
Potential Job Titles:
• Security Software Developer
Creates software for the detection of viruses.
Develops security systems using algorithms and cyphers to encrypt sensitive data.
The study of analysing information systems in order to study the hidden aspects of the systems and decrypt secret messages.
• Ethical Hacker
Also known as White Hats – these are people who attack a system on purpose to check for areas of vulnerability.
Languages used in Cyber Security
These two were left to last because I thought they were the most challenging to capture simply, I had to reach out to the Twitter network for support on these ones, so thank you to:
For their help in understanding these concepts so I could bring this section to you!
The cloud sector is growing massively as are the various job opportunities available for working in/on 🤷♀ the cloud. As of 2020 the majority of businesses use cloud services instead of traditional web hosting.
Cloud development deals with the design, building and maintenance of cloud-based systems and infrastructures.
I know we talked about the cloud last time, but I think it’s important to have a refresher here…
The cloud is everywhere, essentially the cloud accesses hundreds of servers that are connected via the internet to bring you content.
It allows easier access to applications for the user, for example, if you were to download Microsoft Office to your computer, you would need a computer powerful enough to run it and a lot of memory to store the application and its data whereas, if you use cloud-based service like Google Docs, you can access the same features through the internet without the need to download anything to your computer.
Before the cloud, software applications were tied to one computer, you couldn’t access the same software or data on your PC and on your smartphone.
The cloud is not owned by anyone, it is collectively managed, and its easily accessible nature has allowed for lots of new application to be offered for free. And some older application be offered at a much cheaper price.
For example, Adobe applications used to cost hundreds of pounds and you would only get one licence, now you can access the whole Adobe creative suite for a monthly fee.
The cloud has also made it easier and cheaper for the businesses behind these applications. Companies now have a lot more choice about their backend set-up so instead of requiring a whole team of infrastructure professionals they can access all or some of these features through the cloud.
There are three types of cloud:
There is a tier system for the different types of cloud services:
Infrastructure as a Service (IaaS)
This is the most basic level, you rent the back end services like: servers, storage, networks, firewalls etc.
Platform as a Service (PaaS)
PaaS includes everything from IaaS, but it also has added “middleware” with things like operating systems, development tools (easily accessible development software managed by the cloud provider), business intelligence (analytics) services, database management
Software as a Service (SaaS)
SaaS is basically for organisations using the software over a large network like Outlook, the company would rent the hardware and the software from the cloud provider so that all their employees can access the application.
There is also:
Is very similar to and crosses over with PaaS however, it is highly scalable and event-driven meaning code is only executed when necessary, so the “renter” is charged for exact usage rather than a fixed amount.
Examples of cloud computing services are:
Cloud developers have many of the same skills as Front End, Back End and Full Stack developers however they design and maintain cloud systems. That includes the development of applications used on one of the services like IaaS, PaaS, Saas but also the development of those services.
Cloud computing is very complex and is still growing, it’s hard to find easy to digest guides on the subject and as it's quite new, there's lots of differing views on the topic, if you are really interested in the cloud, I’d check the learning resources below for getting started with AWS.
I’ve tried my best to describe the roles in more detail below.
Potential Job Titles
Mainly dealing with the maintenance of current running cloud services and applications.
Deals with the design of cloud applications or services and part of a development team.
Developing cloud-based software, applications and services.
Languages Used in Cloud Computing
Cloud Service Providers (that you might wanna Google)
• Amazon Web Services (AWS)
• Microsoft Azure
• Google Cloud
• Alibaba Cloud
• IBM Cloud
Other Tools used in Cloud Development
- This amazing freeCodeCamp Course
- Microsoft Azure Certification
- Google Cloud Certification
- A Cloud Guru
- Danny Steenman’s blog ####DevOps
Depending on who you speak to DevOps is either a way of life or sort of does what is says on the tin, it is a combination between Development and Operations which means applications can be developed and released faster as the two teams are working together rather than for different purposes.
It used to be that development and operations were dealt with as two very separate processes, the developer would create a new piece of code and operations would then add that new feature to production (the live version).
It was found that new code needed a little bit of extra refinement to work in the live environment which would cause delays and operations teams often felt a bit lost as to what the development team had been trying to achieve which caused further issues.
With DevOps the two processes or teams are brought together so they can work more effectively. They automate a lot of the work, code is broken down into lots of smaller, more manageable bits so the changes can be implemented over hours instead of days. It also mean less errors when the new feature is pushed into live.
For DevOps there are no particular languages to learn as you can use the languages of the application you are building but you will need to be aware of these services and tools:
Learning Resources for DevOps: