 Learning is like eating a cheesesteak. We don't know where to start from. It is pretty messy, it is pretty hard, but in the entity it is 100% worth it. Hey, I'm Nikolai, I'm a meta engineer at Automatic. You can find me on the web. But now back to learning. Learning seems kind of important, especially now since in the past few years the tech around WordPress has been calm like a Wednesday morning high in the mountain. Not much has changed. Stability is good, but the world is pretty big and it happens to be changing a bit. We noticed this head first in the past year in a half at Automatic where we kind of wrote a brand new WordPress.com admin which used totally different technologies because success is a moving target and it may require a bit different technology stack. So a lot of developers' world has changed. A lot of people had to get used to a totally new development stack to do purely JavaScript stuff in the browser using GitHub and in a single page app. And I noticed something very interesting. Very often the people for whom it took a bit longer time to get used to all of this new stuff were people who were used to only one paradigm or people used to only one language, for example PHP or people who had only done stuff on the back end and not in the browser or on mobile or desktop. And we can find partial explanation in the old saying that if the only thing you have is a hammer, everything looks like a nail. And it turns out that a pretty big part of learning is actually unlearning, especially if we want to learn something radically new. For example, in Calypso, we had to unlearn a few things. For example, how instead of starting fresh on each web request, we had to carefully apply changes and if we wanted to carefully apply those changes instead of changing the DOM manually with something using jQuery, this was actually a terrible approach and we should just let React do it by itself. But unlearning those things that were very deeply ingrained in our way of working takes time. And the other realization was that the more concepts you keep in your head, actually it is easier to learn new ones and either you don't have to unlearn things because it's not a radical new change for you or unlearning itself is actually easier. And of course we come back to the cheesesteak analogy again because the more you learn, the more appetite for a learning you actually have and it is much easier for you to stomach new learning. There are countless examples of why broader learning is really good. First, I noticed that the people who had either mobile or desktop experience had a much, much easier time learning how to develop single page apps even though in the beginning it seemed slightly unrelated experience. Of course, broader learning is not always immediately useful. Sometimes it is just flexing the learning muscle and sometimes it is something that is useful just a bit further in the future. I'll give you an example. For example, one of the reasons our live blog plugin managed to scale was that it used two concepts which were very, very far away from the WordPress and even web universe. One of them was using commutable data which allowed us to cache a request to the servers indefinitely which makes it really simple and easy. The other one and the concept of commutable data comes from functional programming many, many years ago. The other concept was event sourcing which means instead of keeping the data in itself you keep all of the events happening and when you need the actual data you reconstruct the events which is a concept from early 2000s enterprise Java stuff and combining those it made it really easy to make a performance live blog. Of course, we probably could have done it any other way but still having those broad knowledge was really, really useful. Of course, here comes the question couldn't we just learn it when we needed it? The idea and it's probably even a movement learning by doing is incredibly popular today. But when we have to learn something radically new and we are doing something especially when we have the pressure of shipping something learning by doing is very often reduced to doing by doing where if we have even the slightest pressure it is a lot easier for us to default to our old ways and it becomes a lot easier to fail to unlearn. I have a few examples. I've seen WordPress plugins which needed to be extended and had almost zero hooks which is pretty classic. Outside of programming there are a ton of examples of people failing to unlearn old habits for example. Have you ever seen some especially older people using a computer as a typewriter when they always print stuff instead of saving files and never correct things and just start a new page? And there are countless examples like this in history for example the change between riding a horse and riding a car is pretty big and if you don't forget how to ride a course probably kicking the car on the side wouldn't really help even if you try. And why does even our learning time need to be so productive? If you look at marathon runners do they run marathons so the time? No, most of the time they actually run much shorter distances or they lift weights, aka they practice. If you look at musicians do they always play good sounding pieces? No, most of the time they play weird sounding ketudes and I've heard this saying from musicians that if you sound good you're probably not practicing. Martial arts is another great example where people don't fight all the time but a lot of the time they do the so-called cutters we are carefully choreographed patterns which are designed just for practice. And for example if you want to learn ES6 which is the new JavaScript thing there is a pretty great website called ES6 Cutters which breaks it down to a very small exercises whose goal is to just teach you very, very, very small pieces and it's totally unproductive you're not building a real project but you're learning a lot more targeted and specific things. Another example are code reads which are not incredibly productive but still are very targeted and specialized exercises meant mostly for learning. And the best learning is not always doing an actual project. Of course the motivation of seeing the end result of our labor is great but if it's something radically new and we want to learn a new concept and we want to go deep deliberate and unproductive learning is almost always the way to go. But enough stupid trumblings. Probably a lot of you care a lot more not about some weird terms like deliberate and unproductive but what do we do now? How can I here help you probably learn more or better? And before the end I have two small action items for you. The first one is pick a new skill. I'm speaking mostly about developers but I'm pretty sure it's not too hard even if you're not a developer to choose a new skill something that can be broadly useful to you. But if you're a developer I have a few ideas. Of course everybody has been talking about JavaScript this is an easy item on the list. Functional programming is really interesting a lot of great ideas even if you don't use it directly. Looking in the world of single page apps is pretty interesting because it's totally different. Or just learning about any new language or library there is no saying that every developer should learn one new language a year. There is a pretty cool book if you haven't seen seven languages in seven weeks or something like this which is also pretty quick when they're totally different if you want higher exposure for a long time. Or you can look at totally different concepts like reactive programming. Again, picking something totally new every year is a great idea. Even if you're a developer knowing a bit more about user experience and design is incredibly helpful it helps you understand your colleagues better and your users better. In general anything about product and business is also pretty useful. You can even get into lower level things like algorithms or how a machine works. There are a ton of ideas here. So let's say we pick something. There are a ton of ways to learn it but before that I have something else and the other item on the action list is let's just get better at learning this would be the universally helpful thing. I have two ideas here because learning is a skill like any other and we can learn it in the same old ways. First, I can recommend you a great book even if you're not a book person which is totally understandable not everybody likes letters on a piece of paper or on a screen. I promise you this one will be worth it it's called Pragmatic Thinking and Learning it's a great resource about ways to learn finding the best way for you to learn and a lot of very practical ideas about learning plan. And the other resource is a course on Coursera called Learning How to Learn Luckily there is a new edition starting in January I think when you can do it together with many more people I've done it in the past and it's pretty cool it's not very developer focused but still it's incredibly useful. And just have fun. Learning is a lot of fun especially as you learn more and you start having the shivers when you're not learning new things every day. I will leave you with probably the most influential idea at least in my life and which coincidentally happens to be the first line of the automatic creed which is a funny story and this was the time when I almost left the company but then the creed came out and like oh okay I guess I'll have to stay. Thank you. I'm pretty sure we have plenty of time for questions. Yeah we have 10 minutes for questions if you have a question the microphone is over there I'm not like Nathan I will not be offended if nobody asks a question. Okay you have 10 more minutes to get to the mic. Do you have any tips about how to fit learning into your routine? This is a great question. I have a few tips. I'm not sure if all of them will work great for you. Probably the best one is even if you're super busy probably learning is better investment in the future so even if I have a lot of work to do I just sometimes put learning time on my calendar when I read a book. To be honest I'm a book fan which is pretty convenient so one other trick is that I put the Kindle app on my home on my main row on my phone so now when I have 5 minutes instead of checking Twitter or something I accidentally open the Kindle app and I continue reading my book. But mostly it's just pushing back against all of the stress most of the stuff we do are not so urgent even if we have deadlines and stuff and sometimes I don't tell anybody I have spent some time learning I sometimes don't include it in my weekly or bi-weekly or whatever report but I just do. Even if I work less on other things. Once you've learned something how do you bring it into the team context how do other people around you on the team benefit from your learning? Any tips about that? Me being here is probably one of those ways but it very much depends on the team to be honest I work on a distributed team and it's a little bit harder but just talking about it is a great starting point if you learn something share with others it helps very much if you summarize things and especially if you know the people just tell them directly oh I think you would love this but to be honest I don't have anything more specific sure go I can always repeat the question I just wanted to ask your personal opinion on speed reading and if you do it or if you think it's a real thing like a viable thing to read like a page in 10 seconds or something like that To be honest I don't know I've been interested in it I almost went to a course once but I've heard very conflicting opinions I've heard it's a scam some people have told me it totally worked for them so again I don't know but if it's not incredibly expensive and if it doesn't take so much of your time I would try it's on my list I found that learning often works best in context like in a project do you have any recommendations or resources or ways to find projects that fit and suit the level and skill that you're attempting to learn like trying to match a project to whatever language or skill you're trying Not many but I have a few one of them is a book I skimmed through recently I can't totally vouch for it but it was called exercises in programming or something similar it's by pragmatic programmers so you can find it there the idea was to have a set of exercises in different varying in difficulty and in size so that every time you learn a new language you go through the same thing and you go through the same exercises and you can compare your experiences with what you knew before and this can give you a good idea about projects in the JavaScript community there is an incredibly popular project code to do NVCE whose idea is to compare a lot of the front-end frameworks and basically when you create a framework together with it you create a project like this so if you want to learn something new you can just not look at the reference implementation you can try it yourself and it's a pretty clearly defined task one interesting, another interesting small thing is just to implement a game of life in every language or to implement actually I don't want to run my imagination loose because it usually ends badly I hope this was enough we have time for one or two more questions Hi, so learning one thing a year seems like a really good idea and viable for most of us so what's your opinion on technologies that are deemed trendy or bleeding edge or doesn't have a lot of real-world use yet? Sure, this is a great question actually because there are a ton of technologies and we can spend all of our days just following the brand new thing usually at least what I do first is to try A, see how is this different from everything else and if it seems different enough this usually means it is worth more because it's a totally different approach and most of them are just approaches to things which you can use even if you're writing in a totally different language or framework or anything most of them are just ideas and the cool thing about ideas is that you can extract them even without learning the whole thing so probably this would be the first thing extracting the ideas out of the hype and the actual implementation and then you can make a much more informed choice of what is cool for you and how much time do you have and if you just want to try something Thank you I don't have a question I just wanted to respond to the person that asked how do you integrate this because you get really busy I have scheduled every Wednesday from 9 to 1 to be at my public library where it's quiet nobody knows me, no one's bothering me and I sit there and that is my scheduled time to learn new things I'm a sponge, I want to know what the latest is and I don't take any appointments during that time and one of my office knows I'm not there and it's hard to do but I've been doing it now for four months and it's worked wonderfully so if you just put it in your calendar and you stick to it and you're serious about it you can set the time aside and be in an environment where you can learn I just wanted to share that, thanks Great, thank you Okay, thank you so much