Technology is a vast subject. It can enable you to write a to-do list on your phone, sell goods online or send a rover and a helicopter to Mars. Software is built by developers and codebar is here to teach you how to write such software. Whether you want to make a career of it or acquire some exta skills.
Typically software can fall into two (very broad) categories:
- User interface - How to present information to people using the technology and enable them to interact with it. For example:
- Displaying your vehicle and responding to joystick inputs in a game of Mario Kart
- Displaying your balance and allowing you to make a payment in your bank’s online banking site
- Displaying current temperature and allowing you to change the target on your Hive or Nest smart thermostat
- Data processing - How to manipulate the data and perform the task that the software implements. For example:
- Calculating the position of your vehicle and detecting collisions
- Validating that your account has enough funds to send this payment and processing the payment
- Starting or stopping your heating or air conditioning depending on the current temperature and the target you set
At codebar, we concentrate on web technologies for several reasons:
- No initial investment is needed: all the tools you need to learn about web technologies are available online for free. And the computer you use doesn’t have to be new or a top of the range model, most computers will perform well, including shared computers in libraries.
- You can see results very fast.
- They are ubiquitous: a lot of technologies that started on the web are now used in many other places. Even if you end up working in a domain that has nothing to do with the web, you will likely use or interact with web technologies.
Web technologies are designed in such a way that they tend to more clearly separate user interface work from data processing work. As a result, web developer jobs typically fall into three broad categories:
- Front end: work that deals with user interfaces
- Back end: work that deals with data processing
- Full stack: work that combines both aspects
Both front-end and back-end have their own complexities and neither is easier than the other. So let’s have a look at what they both involve. Take this web page as an example. It is a page on the codebar.io website and you are reading it via a web browser on a computer or mobile device. The codebar website runs on a computer in a data center that runs a piece of software called a web server. Both talk to each other via the internet.
To build a website like this involves two pieces of code:
- The front-end code that runs in the web browser
- The back-end code that runs on the web server
Below we go into more depth about these roles, and what languages you would need to learn.
HTML (Hyper Text Markup Language)
HTML is the language used to build websites. All text and content that you see on the internet is built using HTML.
CSS (Cascading Style Sheets)
CSS is used alongside HTML to style the page and make it look good.
As a back-end developer you would be responsible for the code that runs on the server. This type of development usually consists of three parts: a server, an application, and a database. Many back-end developers know front-end languages such as HTML and CSS but need to use languages such as Ruby, Python, PHP, Java, and .NET to get the job done.
Front-end and Back-end development overlap a fair amount so starting in one role doesn’t mean that you can’t switch or learn the other, should you change your mind further down the line. They also have strong ties to other areas of technology. For instance, front-end development shares a lot with mobile app development; back-end development with data science.
Ruby is an object oriented scripting programming language typically used for building web applications. It is most commonly used with Ruby on Rails, a web development framework built with Ruby.
Python is the preferred option for data science thanks to scientific libraries like NumPy and pandas.
PHP is a general-purpose scripting language especially suited to web development. It is a server side scripting language that is embedded in HTML. It is used to manage dynamic content, databases, session tracking, even build entire e-commerce sites. Also commonly used with WordPress so if custom WordPress themes interests you, then learn PHP.
SQL is a domain-specific language designed for managing data held in a relational database management system. It is often combined with the technologies described above.
A full-stack web developer is a person who can develop both client (front-end) and server (back-end) software. For this we suggest learning any of the languages under front-end development and back-end development. Below are some further subjects that relate to both:
Why do you want to test and what different types of tests you can do:
- Unit testing
- Integration testing
- End to end testing
- Acceptance testing
- Security testing
- Performance testing
Basics on HTTP, JSON and how to put this together to use or build an API.
Basics on privacy, things like GDPR and overall principles.
How you use web technologies to build your websites has an impact on who can access and interact with the information you provide. Accessibility is a set of guidelines and techniques to ensure that your websites can be used by as wide a variety of people as possible, irrespective of whether they get on the web like you do or in a very different way.