Sure. My name is Bianca, and I've been teaching people and writing curriculum on how to become a web developer for about 3 years now while working at Hack Reactor, cofounding Telegraph Academy and teaching in other venues like Girl Develop It, Laboratory (in Peru) and online with Frontend Masters, Pluralsight, and Udemy.
I also code on the side, but I spend 70% of my work time related to education, coaching, mentoring and content creation. Right now I am in Kuala Lumpur and will be traveling with my partner and working remotely for the next several months or so.
Hmm. Great question. It can be tough to teach when you are disconnected from the beginner's mind. When you are so familiar with something, you start to have assumptions about what the person already knows.
I avoid this pattern by staying a student of my students, which looks like being annoyingly curious and asking a lot of questions. If you see my teaching style, it is very Socratic and more of a discussion because I always want to learn where everyone is.
I have learned a lot about communication, and I continue to nerd out on effective communication. Communication isn't just about saying what you intend to say and it coming out eloquently, it is about what the person walks away with with includes a message but also feelings, etc. I am always testing what message students walk away with and monitoring the environment so that I can hone in on what is going right and what I need to improve.
I don't like this question! Unfortunately the JS/Web community is pretty fragmented and tribal, which means people are re-inventing the wheel all the time and defending very minor points or brand identities. The future looks like it will continue that way, and I will continue to stay out of it. :)
I will just use whatever tool is required to get the job done until it doesn't anymore. I also like to dabble in lots of different things, but I am not the type to hold strong opinions about anything unless I have extensive experience which I'll never have with something that is new.
The nice thing about being an engineer and not a politician is that I can stick to my facts and not try to predict the future!
Haha, wow. I should write a book on this :)
I will just stick to one which I think is the most important. Aside from learning the technical pieces, you should learn how to effectively measure your learning, especially if you are self studying. There are lots of things you can do that will give you a false sense of productivity but at the end of the day you can't actually build anything.
The key - research, google, read, watch videos etc just enough so that you can build the thing. Laying down before bed and reading about X framework, tool or whatever will only get you so far (not far at all). It doesn't have to be complicated. Pick a small project. Make a view show up as quickly as possible and then go from there.
How do you know if you are learning? You are able to apply whatever you are studying to build something or solve small programming challenges.
The metaphor I use a lot with students is if you want to learn how to write poetry in Spanish (assuming you don't speak Spanish), you can start by reading Spanish poetry and/or about Spanish poetry, sure. But when you sit down at your laptop and try to write it, you probably won't be able to at first, despite all your research.
The fastest way to learn how to write poetry in Spanish is to simply start writing it in Spanish. Yes, it will be terrible at first, but you have to start somewhere. Programming is just the same!
These are my favorite eng educators: Albrey Brown (Telegraph Academy), Scott Moss (Angular Class, Udacity, Hack Reactor), Patrick JS (Angular Class, OSS contributor), Aysegul Yonet (Autodesk, Girl Develop It, Annie Cannons), Brenda Gin (Girl Develop It, Slack)