To all those who have not meet you yet, how do you describe yourself?
When you started developing, what were some common mistakes you made along the way?
I think my biggest problem, as for any junior developer, was to over-engineer everything. More than once, I have been trying to be too smart about a problem and ended up with a solution that could have been way simpler. Thankfully, I learnt to go for the easy solution over the years.
Another mistake, again very tied to the unexperience, is to rush into the code. When building something, coding is actually not that a big part of the bigger picture. It is tempting to get started right away but is often a bad decision. Taking some time to thing it through before getting started prevents doing things in a poor way.
Front-end seems to be easy until you start to learn. How do you face the challenge of learning new things?
Learning new things is actually what makes our profession fun. It is because we can always learn something new (especially given how fast things are going these days) that front-end development is super interesting.
That being said, I tend to learn what I want to learn, and not necessarily what I should learn. For instance, I should probably learn more about SVG as it is a very powerful technology that is present in basically any front-end stack, yet I recently decided to learn about Redux, even if I could do without it. We learn what we fancy learning, and there is no point in trying to enforce something to our brain. It will come when it will come.
What would you qualify as the top few problems facing developers today?
Complexity, compatibility and performance.
Compatibility, and it really always has been a big issue in front-end development. It started with (and still really much is about) browsers, and how they all understand different things from specifications, implement different things, making developers’ life very hard, which ends up harming the user. And then came responsive web design, and the bazillion of various viewport sizes we have to deal with. Compatibility has always been and will probably always be one of the largest challenges of front-end development. Thankfully, we are getting better are dealing with it, and we no longer claim “Best viewed in …”. Or do we? :)
And performance, because this is a neverending story. Before mobile became a thing, I remember (some) sites being slow as hell. We soon realised that a site has to be fast in order to be good. And now it’s not that much about making it fast for your brand new iPhone, it’s about making it quick so that these people on the other side of the world, stuck on shitty mobiles and crappy 2G connection can access content, because this is the only way for them to access internet. This is a great challenge, but it is a tough one. Performance is hard.
How would you recommend somebody to start learning web development?
Start with a project. Seriously, do not “learn web development” to learn web development. You will get frustrated very quick, and will drop in no time. Learn in order to build something you care about. Whatever it is! It could be your own website, an app for your cooking recipes, a sweet video game or a way for you to keep track and rate all the burger places you have ever tried. As long as it is something you want to build.
Then, prepare for failure. There will be a massive amount of failure, disappointment and frustration. You will not find a single developer that did not burn in a hot rage because something that should work did not. It happens to everybody, everyday. We just learn to deal with this kind of things. It is the way we get better.
Finally, get help. Try things, fail and if you end up being stuck, ask a friend of yours to help you. Not to do it for you; just to give you some hints; to sit with you and tell you what could go wrong with your way of doing. Even when everything works fine, ask somebody to review the code for you. There are always things to improve; it is a rabbit hole.
What are the things you would have known when you first started?
That it was this much fun. I would have probably started sooner. :)
When starting a new project, if you feel stuck where do you look for inspiration?
“Inspiration” is a strange word to me. In my opinion, this is very much tied to design. I do not need inspiration to make something work; I need a solution. Now if “inspiration” indeed means “solution”, I just ask Google. Which asks Stack Overflow. Stack Overflow has all the answers. And if it’s not on Stack Overflow, well… I guess there is Twitter left.
What was your first development job and how you faced it?
My very first position as a 19 year old developer was an internship in a very small company of 3 persons focused on print design for outdoor activities, events and businesses. I was in charge of setting up a WordPress site for the company. It was bad, obviously but not as bad as a first site can get.
What was the most challenging project you ever faced and why?
What excites you most these days?
What is the most important thing that you’ve learned?
Simple trumps DRY (Don’t Repeat Yourself). Sometimes, if not often, a simple way is much better than a complex or obscure solution that saves a few lines. Not everything needs to be abstracted. Not everything needs to handle all the edge cases. Going simple is nice. Smart code is harmful.
Do you have any favorite books, videos, or resources that you could share with the readers?
Do you have any advice for new developers just starting their career journey?
“It is dangerous to go alone!” — unnamed old man from the Legend of Zelda
Nobody gets good by themselves. We get good by working with other people. Have your own projects, write code, experiment, but talk to people. Ask about how to tackle issues. Ask for code reviews. Ask about their opinion. Soon enough, you’ll realise you are not the key to get better. Peers are.
What can we expect from Hugo in the future? Anything you want to share?
Well, I am currently writing a book about Sass for beginners, published by SitePoint in the “Jump Start” collection. It should be ready by February I guess, so there is that. I will also probably get back to public speaking next year, if I can find a few opportunities. And, of course, a lot of open source. :)