Is a degree in for example Computer Sciences necessary to succeed as a developer, according to you?

Myself, I don’t have a Computer Science Degree. The computer industry as a whole has become so big now that under the title of ‘developer’ there are so many areas or specialties. You can definitely become a competent frontend developer without a Computer Science degree, that’s a given. But when you’re talking about an AI data scientist, then you probably need a phD to be competitive.

Specifically for frontend I believe that having a Computer Science degree is not necessary. But having it definitely helps. So if you’re still deciding, if you want to get into the industry and you have the chance to get one, then you should probably do. If you’re already graduated but you want to get into the industry it should not stop you from doing it.

It’s about not letting ‘having the degree or not’ limit your thinking.

“Having a degree or not is just a proof of something you did in the past. It doesn’t determine what you can or cannot do in the future “ — Evan You

When I was doing programming I sometimes had to buy a book and learn about some algorithms. For me, I wouldn’t say that because I don’t have the degree I can never learn the algorithm. I just have to do it now instead of having it done in the past.

You can buy the books or just go to Coursera or OpenCourseware, all the MIT classes… they’re all available online.

“If you’re determinate enough you’ll find a way to learn all the things you need to learn “ — Evan You

What do you think can be the advantages of ‘live’, offline training like the workshop you gave the last few days? Compared to online courses that are very popular now?

Offline the most important thing is the feedback you can get immediately from your mentor. If you do it yourself you may just get stuck at something for months without finding a solution. But with someone who has been there right in front of you, who has walked that path and who can just point you in the right direction at the spot, you kind of save a lot of effort.

“Maybe the 2 days you spend offline could save you several months of trying things out” — Evan You

It depends on different people’s learning styles. Some prefer watching videos, others read books. For some developers offline, live training will be more effective. I don’t think there can be one universal way of learning. There are definitely developers that are better off with going to an offline setting which helps them to get immersed in the context and bring the best out of them.

Personally I’ve never been to a training session, so I’m the different learning type. But I surely know the kind of developer that prefers the fast feedback loop when they’re in an offline environment and they can get more out of an offline training.

Did you, or do you, have a mentor?

In terms of programming I don’t have a mentor who talks or talked to me directly. The way I learnt was mostly by reading other people’s code. It’s almost like reading someone’s handwriting. You can almost get a sense of what this person is like and what kind of habit they have, just by reading their code. And by trying to guess what they were thinking when they were writing this piece of code. That’s actually my main way of learning in terms of programming techniques.

“I would consider all the people’s code I’ve read to be my mentors”- Evan You

I’ve read a lot of code from TJ Holowaychuck and Guillermo Rauch. It were the early days of Node.js, Express etc.. I was just getting started with Node and figured: “How do I learn it? I’ll just read these popular packages”. I simply opened the source code and read it, and saw how they were doing it: that was cool.

Everyone should try it. I think it’s really effective and I’d say it’s really important to constantly read other people’s code. The code itself is what directly connects you with a person and their way of thinking. Often I find that it’s very difficult to communicate verbally about programming ideas, specially down at the actual code level.

It’s easier to talk about abstract concepts and higher level ideas. When you’re down in very specific techniques, just seeing the code is probably worth more than talking for an hour.

That’s why I think it’s extremely important and it’s the reason why I’m coding as I talk, during workshops for example. Then people immediately see what I mean. If I would just talk without the code it would probably not work.

What attracted you to learn JavaScript?

You can get something running in your browser, and the browser is everywhere. So when you write code in JavaScript, it can literally run anywhere. Node.js was just coming up and I think that, when I was in school, Node was still in a very very early stage. But that convinced me that one day JavaScript would be really universal.

You can use it on the server and the client. It can run as a native app with Electron, you can run it on phones,… it literally runs anywhere. And we had some hardware programming stuff at school that’s also down with JavaScript, so that was pretty cool.

So when I was at school it was literally the time that I realised: oh JavaScript is going to be everywhere. It looks like a cool programming language to get into.

Evan with the Hackages team at bHack To School 2017

Also because I always wanted to share the things I make with people. JavaScript makes that super easy. I’d just build something and put it on the web, and everyone can see it. Whereas if you build something with, like processing or open frameworks, you build those projects and it’s really hard to share them. Even to get it to someone else’s computer it takes forever.

“I really like the fact that web and JavaScript are inherently together. It enables you to get your things in front of another person instantly” — Evan You

Do you think that is the reason why it became one of the most popular programming languages?

Yes, the biggest advantage or power of JavaScript is its reach. You learn the language and you’re able to run your code in almost every environment you think of. Even NASA uses Node.js.

Some people hate JavaScript, but I guess I just learned to embrace it. Once you used it long enough you know all the little weird things and you kind of automatically ignore them. And then you come to enjoy the language’s good parts.

How do you manage to stay up to date with fast changing technologies yourself? Do you have time for that?

I have to. In order to keep the Vue ecosystem going I need to be aware what’s going on in the bigger frontend scene. My way of doing that is basically by following a bunch of people on Twitter. If something interesting comes up, people will talk about it. Then I will do my research and check out some Github repos, look at their code and play with it. I’d also talk to people at conferences and asking them what they think, that helps too.

Thanks for this interesting talk, Evan!

This interview was conducted during bHack To School 2017, 2 weeks full of technical workshops in Brussels. Save the date for bHack To School 2.0, 15–19 October 2018 in Brussels, Belgium — it will be awesome!