I Have Learnt HTML, CSS & JavaScript, What Next?
By: Kehinde Ladipo
Tags: Bootcamp, Web Development, Software Engineering

Photo Credit (Dufuna Org.)

“What do I do next?”, “What are the next steps?”, “How do I proceed?”. I get asked these questions a lot of time by people who just started learning to code. Most times, I just suggest something off-the-cuff to the person, depending on their background and interests. In this article, I intend to provide a more structured and detailed response to these Next Level questions.

Having learned any one of HTML, CSS, and JavaScript, or your first programming language, the next step generally is to gain mastery of the language(s), build fun stuff, get mentorship, get an internship or an entry-level position where you can gain experience by working on live projects. Here are a few suggestions for the things you might want to do next.

Learn how to use Version Control Systems

Version Control Systems (VCS) are used to track changes to your project files over time. They are useful to manage your projects and are an incredible collaborative tool when working in a team. You will be using them a lot in the future. Common examples are Git and Subversion.

If you can already use a VCS very well, then you are good to go. It’s time to push all your practice projects to Github for potential employers to see. Github can also serve as a backup for your projects.

Dig deeper into HTML, CSS & JavaScript

You have learnt a lot of HTML tags, CSS Selectors and rules, JavaScript Events and so on. This is the time to dig deeper into some concepts that might have been skipped in the beginner tutorials. You can start learning about CSS Transitions, CSS Flexbox, CSS Grids, CSS preprocessors (LESS and SASS).

For JavaScript, you may want to look into task runners such as Gulp, how to use external libraries with package managers like NPM and Yarn. You would be using a lot of these in the industry, especially if you aim to be a Frontend or Full-stack developer. You can even build your own library and distribute with NPM, everybody will be excited to use that library you build!

Keep Practicing

Practice makes perfect. To develop a mastery of the syntax you have learnt, you need to constantly practice and apply the concepts you learn. Apart from the overused “todo lists”, you can build clones of applications that you commonly use. These two articles contain interesting ideas for projects that you can build. Pick up the projects that interest you one at a time and set a timeline for completing each project. You can even collaborate with a peer to work with you on the project. When you are happy with what you have built, share with others and get their feedback. Don’t be ashamed to showcase your work. And don’t forget to push to Github, you are building your portfolio!

Hopefully, your tutorials introduced you to the use of IDEs for writing your code. If not, IDEs are advanced text editors that will make your coding more fun and enjoyable by providing autocomplete, syntax highlighting, VCS integration and lots more. VSCode and Atom are two free IDEs you can consider using. Sublime Text is also a good choice.

Photo by Caleb Jones on Unsplash

Taking a Path

Learning HTML, CSS and Javascript imply that you probably want to learn web development. If this is so, then you might have heard about Frontend and Backend. The Frontend contains everything the users of the web app will see, if you build the frontend components then you are a Frontend developer. The Backend, on the other hand, contains the services that enhance the web application to run. This contains the servers, the caches, the databases, external services, etc. Similarly, if you build backend components then you are a backend developer.

Frontend

If you wish to tread this lane, then you must learn about advanced CSS: Flexbox, CSS-Grid, LESS, SASS, and Responsiveness. You may start learning about the use of frontend frameworks such as Bootstrap, Foundation. Knowledge of advanced JavaScript frameworks such as React, Vue or Angular is also a requirement for Frontend developers these days. These are very popular in-demand skills on job postings for Frontend developers. It is also important to know about Web Accessibility. You should learn how to consume APIs too. Starwars API is an open API available for practice.

Backend

If you are not the one for fanciful colors and styles, o̶r̶ ̶C̶S̶S̶ ̶j̶u̶s̶t̶ ̶a̶n̶n̶o̶y̶s̶ ̶y̶o̶u̶, then you can go the backend route. You will need to learn a scripting language for the backend. I would recommend PHP or Python for starters. NodeJs is also a good choice. Python is very easy to learn and it will come in handy should you decide to dabble into machine learning. To switch it up a notch, you may learn a framework for the server side language you pick, such as Laravel or Yii for PHP, Express for Node, Django or Flask for Python. Notice how I mentioned frameworks in the Frontend section too? It is because frameworks are generally written to bootstrap (setup) everything you will need in your application. You will find out more when you start learning one.

You should also learn the use of package managers such as Composer for PHP and PIP for Python.

You will also need a way to make your backend code accessible by using a server. Essentially, you need to know about provisioning your backend logic with servers. Apache and Nginx are a good choice. The knowledge of third-party services like Heroku, AWS, Azure, Cloudinary is important, you may need it at some point. You can also learn to deploy your applications on the cloud.

You must have heard API a couple of times, API stands for Application Program Interface. Think of an API as a set of uniform methods for communicating with your application, irrespective of the caller. Knowledge of API development is an invaluable skill. This article explains how to develop a simple API in PHP

Databases

Another important component you need to learn about is databases. Databases serve as the store for your application data. MYSQL is a SQL good choice to start with. For NoSQL, you may look into MongoDB.

Many Other Career Paths

It is worthy of mention that there are many career paths you can take, ranging from Machine Learning, Product Management, Software Testing (Quality Assurance), Design, to Mobile Apps Development, Security and a lot more. Research into these fields will help you better understand what each of them entails. Your interests may change as you go forward, so it’s alright if you have not decided on a definitive path to take.

Getting Real

Don’t be stuck on tutorials and pet projects, reach out to people to work on real projects. Do free work for people if you can, as long as it presents an opportunity to learn, GRAB IT. Build up your portfolio with the things you have done. Apply for jobs that match your skill to an extent, you don’t need to know everything on the job description.

While you are still looking out for a job or internship, you need to continually practice to sharpen your skills. Remember what happens when preparation meets opportunity?

Every once in a while, you may get an idea to develop something new or create something fun. These ideas may come from things you see around you or a local problem that may be solved by technology. Please pay attention to your ideas as you may be nurturing a startup idea. It’s perfectly okay if you aren’t getting any ideas just yet.

Resources

I have included some links to some keywords I used in this article. Please don’t be limited by those links. A Google search will return a lot more possibly better resources for anything you want to learn. FreeCodeCamp has a lot of awesome tutorials. There are many other online courseware platforms where you can learn to code for free.

Community participation is very important. You can look for local chapters of Google Developers Group (GDG), ForLoop, or any other tech meet-up around you. Through community participation, you can get to network, find mentors, get jobs and learn most importantly.

Photo by Christian Erfurt on Unsplash

Phew! Looks like there is a lot to be learnt. Well yes, but you only need to take it one step at a time. This article is not meant to be a strict manual, that specifies the next steps in your learning. Rather it contains suggestions on the next steps to take. I must say that you may eventually branch out of these technologies sooner or later, depending on the path you choose to take or the tech stack that your job requires eventually.

Good Luck!