Advising beginners

On Twitter, @fox asked which resources beginners can use when they want to learn front end software development.

If someone wanted to learn front-end, where would you point them to? — @fox


Classic. ?: Where would you point someone who wants to learn front-end?

?: I would tell them to learn React.

?: …



PSA: I think React is good, but pointing beginners w/o great understanding of HTML/CSS to a JavaScript-based UI library…not so much. — @fox


Some people provided good feedback where to start, but others just said “Yeah, learn React and you’re done with it”. For me this kind of answer is problematic.

If people are new to front end, then chances are high, that they loose interest very quickly and do something else.

Front end development nowadays means handling multiple technologies at the same time and also know what each technology can do and what not. It takes quite some effort to gain this knowledge in short time, but mostly one gets this with their experience over a longer time. When you then just recommend something which needs quite some knowledge about certain things (HTML, CSS, JS) like React the it basically means “works for me, then works for you, too” without caring about the other person’s problems/tasks.

This feels wrong to me, because the other person might not have the same experience level as you have. If you have over five years of experience and the other person half a year or less, this probably won’t work.

Instead, you can ask these questions:

  • What do you want to accomplish? What’s the problem you want to solve?
  • What is your experience level?
  • Did you try something else? If yes, what didn’t work out?

Then start to work on a solution. The most obvious thing here is, you don’t scare people away by just advising a from their perspective random technology, but more important, you showed that you care by sitting down and figure out with them what could help and what not.

If you’re a beginner, then it is more important to learn the principles and concepts than a certain library or framework. When you understand the principles of the web for example, then it’s easier to learn Angular, React, what else.

People tend to fight long fights which library does the job better, in the end it’s mostly a matter of personal preference. And here it is wrong to confuse beginners with these fights, but to teach them which criteria are important to pick the best tool for the job.