topic: Continue learning

Well done! You’ve finished all the projects in this challenge. We hope you pushed yourself and learned a bunch!

This challenge just scratched the surface of web development. It’s our hope that you feel empowered, inspired and equipped to keep on learning.

In this step we’ll be setting you up with some mindsets and resources so you can continue on your learning journey.

What to learn next

As mentioned earlier, there are a lot of different coding careers worth pursuing, and there is a lot of confusing and conflicting advice on the Internet about where to start. The problem is that there isn’t one perfect learning pathway that is suitable for all people.

Get the big picture

Before you go too far down any learning pathway, it’s useful to get a high level view of how the Internet works. It will make it easier for you to choose the right path for yourself.

These resources are a good place to start:

The first crossroads: frontend or backend? Or both?

Different coders like different things:

  • Some coders loooove writing frontend code and making everything beautiful. This is often called UI programming
  • Some coders love writing frontend code that is intuitive and gets the job done. This is often called UX coding
  • Some coders are not visual at all and like to write backend logic
  • Some coders love working with data

If you are into UI/UX:

  • you will need to be pretty familiar with HTML and CSS for a start. This is true even if you want to get into mobile app development
  • knowing the basics of JavaScript will be useful. If you enjoy writing Javascript then there is a chance that you’ll like backend code so it’s worth exploring a bit

If UI/UX isn’t your thing (or if you are unsure) then it is worth learning a general purpose programming language. HTML is only good at one thing, CSS is only good at one thing. A general purpose language is good at a lot of things.

For example you could use a general purpose programming language to:

  • send emails and text messages
  • process files and interact with databases
  • check cryptocurrency prices
  • build game logic
  • generate invoices

And all sorts of other cool things. The sky is the limit!

How to choose a general purpose programming language

There are loads of general purpose programming languages out there, they all have pros and cons. You might be tempted to get a list of languages and just learn a bit of each but it is much more useful if you try to get deep knowledge of one language before picking up another one.

Why go deep?

If you go deep on learning one language and you end up needing to make use of another one then learning the next one will be much easier. A lot of the “hard parts” of learning languages are exactly the same across different languages.

Also, if you have deep knowledge of one language then you can do really useful things. If you have shallow knowledge of many languages then you are mostly useless at many things. Try not to spread yourself too thin.

You can try a few languages out, but then pick one to become an expert in. Once you are a pro then expand to other things.

What to look for in a general-purpose programming language

You want a language that:

  • is as easy to learn as possible
  • is powerful enough to do really useful stuff
  • doesn’t force you to write a lot of code to do simple things. You want something that is streamlined and easy to read and write
  • is widely used and respected in industry
  • has a big solid community of people using it
  • has a lot of tools, libraries and packages that you can use

There are two languages worth considering here:

Javascript

This is the language of the web. If you want to work in frontend web development or mobile development then it’s worth getting into Javascript.

One of Javascript’s super-powers is that it can run in web browsers. So you could add come Javascript to the website you made and make your website interactive and it’ll just work. Other languages don’t work like this.

Javascript is also a very good backend language.

Python

Python is a backend language. It doesn’t run in web browsers but it does have a few benefits over Javascript:

  • it’s syntax is much simpler than Javascript, it’s easier to read and write
  • it is a bit more strict about a few things, this means that certain bugs just can’t happen in Python

Python also has a very lovely community and a big ecosystem of tools that you can use for free.

If you are interested in data-science, data engineering or automation then Python is for you.

Python is also a very powerful backend web development tool. If you go down this route (as many people do!) then you’ll probably want to learn JavaScript as your second language.

The most important thing: Practice makes perfect

Coding is a craft: Doing courses is good, but if you want to be a pro, it’s very important to actually make use of the skills you are learning.

As you learn more things, try to take your knowledge and demonstrate it in code. Put that code on Github.

Practice also makes a portfolio

If you practice your skills by writing code and saving it on Github then you will have a portfolio. You’ll be able to prove that you have skills and dedication to future employers and business partners.

This is a very big deal! It can be really hard to get your first job as a coder. There are a LOT of people trying to break into the industry so you need to stand out. The best way you can do this is by demonstrating real skill.

A lot of new coders do very misguided things - they do some tutorials on the internet and then get a whole lot of shallow knowledge in a bunch of different things (remember, it’s important to go deep!). They then put a whole lot of fancy words on their CV’s and resumes and claim to be good at all sorts of things that they don’t actually know about.

Don’t do that. It’s silly and harmful.

Rather: Practice your skills and build a portfolio that shows what you can do.

Things to keep in mind while building your portfolio

Here are a few pointers for you:

  • other people need to be able to find their way around. It’s useful to have a list of projects that you would like to show off in one central place so you can share that list
  • don’t just do tutorials, try to push yourself beyond the basics
  • if your portfolio projects solve real problems and are actually useful then that is great. You can solve small problems. You can even solve problems that other people have solved before
  • focus on clean code and best practices: This is something that we haven’t covered in this course but it is a big deal. If you are learning a tool then research the “best practice” for that tool. Eg: if you are learning React then you can google “React best practice” and see what comes up. This will be good for your own growth and it will show potential employers that you pay attention to detail

Learning resources

Here are some learning resources you can use to continue your journey

HTML and CSS

  • W3Schools: You already interacted with this. It’s a good place to get foundational web development skills
  • MDN developer docs: These docs are very in depth, this is great because you’ll get a full picture of how everything works. The documentation can be a bit dense though, so if you struggle to follow then rather build up foundational knowledge somewhere else, and then come back to MDN to fill in the gaps
  • FreeCodeCamp: This lets you complete small exercises to progress through courses.

One of the benefits of using FreeCodeCamp is that it does have a kind of certification system built in and it’s pretty well respected. If you get a FreeCodeCamp certification people will know that you know what’s up. Some people find FreeCodeCamp’s tutorials a bit hard to follow so i’t nice to have something like W3Schools and MDN to refer to.

JavaScript

Master the basics with SoloLearn

And here are a few other resources. Try them out and see what works best for your brain:

Python

Practice your problem solving skills

If you are learning a general-purpose programming language then it’s important to learn to use the code to solve novel problems. So once you get your basics down you can start practicing your problem-solving skills.

There are a lot of websites that let coders practice their skills. Hackerrank is one of the big ones, but there are a lot of competitors.

Try some out and see what works for you :)

Here are a few things to keep in mind:

  • This stuff is really hard, if you struggle then that is normal. If you keep at it you will improve
  • Always aim to grow your skills - you want to be the kind of person who can solve new problems. A lot of these platforms keep track of your progress with points. Growth and learning is the most important thing, not points.

Finding help: Stackoverflow

Last but not least, check this out. Stackoverflow is a question and answer site for coders. It’s amazing. If you have a question about code then there is a good chance you’ll find the answer on Stackoverflow.

The end … for now

That’s all we have for you in this challenge. We hope you enjoyed your time with us and that you are able to continue learning on your own.

This isn’t then end of the road with us though. Now that you have shown us that you are willing and able to push yourself to learn new things and prove your skill, we know that you will make the best of other opportunities we send your way.

We will send you invitations to join other coding challenges, courses, internships and other opportunities as they come up. So please stay tuned!


RAW CONTENT URL