As developers, we solve problems, we handle challenges almost every day. Some developers take their technology, tools, infrastructures and frameworks for granted - they "magically" work. They think that by simply using them, they are considered experts. The truth is that they are "expert beginners". However, there are developers who constantly keep learning, dig deeper and understand why things work the way they do. They are on the path to become experts. They are "Active Learners". In this session, we will learn how to become Active Learners and how to avoid the "Expert Beginner" trap.
9. *use it every day
*know its pros
*understand their solution
cannot explain how it works
cannot explain the cons
think that it’s the only solution
BUT
39. “This is a black box”
“I saw it on Stack Overflow”
“That was here before me”
“The other team is responsible for this”
“X sucks, Y is the best. It just is”
71. 1. It is a mindset
2. “YOu as a project”
3. Read
4. Share your knowledge
5. After school activities
6. Repeat
Take away points:
ActiveLearner
@DennisNerush
#ActiveLearner
In the last couple of years I’ve interviewed over 500 candidates.
Most of them were great candidates with many years of experience and lots of confidence
They could describe the tools that they were using, the frameworks and the technology stack. They knew their architecture and could describe their product very well, they were so promising...
However
Most of them didnt pass, and were not accepted to my company
Why is that? How come they seemed so promising and yet, they didn’t pass our interview?
I know what you are thinking, and no. Our interview is not impossible or extra hard, we don’t ask tricky questions or riddles like
how would you escape a blander if you were in a size of a coin
Just a normal interview...
For us, most of these candidates failed for the same reasons,
They could talk about their architecture, frameworks and their tools, They used them every day. They loved them. Knew their tricks and all the advantages
But they didn’t know how they worked or how they were built or why they were using them instead of something else. They didn’t know in which case they should not use them. In their eyes, their choices didn’t have any disadvantages. They were absolutely sure that there is nothing better than what they knew. Their tools were silver bullets for them and of course - for everybody else.
We call them “Expert Beginners”. They think that they are experts, however, they are still just beginners.
But on the other hand, there is that other type of candidates and developers in general
We call such a candidate - a ”wolf”.
Not the animal, and not the wolf of wall street...
He is like Winston Wolf! From pulp fiction movie. He “Solve problems”. Any kind of problems.
The wolf is all over the place. He is the one with the answers. He is the “he’ll know guy”
He knows how things works and why did we decide to use it and not something else.
He is one of those people who drive the innovation in the company. Not because new things are sexy but because he is aware of improvements in the industry and he is able to distinguish between what’s “hot” and what we actually need.
He is the one we want to hire, he is the one you want in your company and in your team
So what is the difference between the two two?
The expert beginners think that they are experts in their field, even though they are not.
Their whole knowledge relies only on what they use in their job and on what others tell them.
They cannot explain the why and the how or provide alternatives and different points of view.
They have what is called “pretended knowledge”.
But what about the wolf? Well you guessed right
He actually knows his stuff. He has real knowledge. BTW At the bottom you can find a great article that really explains what it is pretend (pretended is not a word!!) knowledge and how you can spot it
“the wolf” is not an expert beginner, he is not necessary a real expert. But he is aware of what he knows and most importantly, what he doesn't know. He is on the path to someday become a real expert, To go this path he cannot rely only on what his job teaches him and out of the box just working solutions- he must actively learn. He is an Active Learner.
What is an active learner? How does one become an active learner? This is exactly what we are going to talk about.
He actually knows his stuff. He has real knowledge. BTW At the bottom you can find a great article that really explains what it is pretend (pretended is not a word!!) knowledge and how you can spot it
“the wolf” is not an expert beginner, he is not necessary a real expert. But he is aware of what he knows and most importantly, what he doesn't know. He is on the path to someday become a real expert, To go this path he cannot rely only on what his job teaches him and out of the box just working solutions- he must actively learn. He is an Active Learner.
What is an active learner? How does one become an active learner? This is exactly what we are going to talk about.
I’m Dennis, I am the head of integrations at HiredScore. We help large companies achieve their hiring & recruiting goals using deep data integration and AI.
Before that i was a group leader and a team at Sears Israel and a full stack developer at the Israeli air force.
I speak and write a lot about people growth, company culture, management and personal improvement.
I’m constantly looking for new ways to grow and improve myself, my team and my company in various aspects. You can read about some of stuff that I do and things that are important to me on my blog and you are welcome to follow me on twitter.
I’m happy to be here today to talk with you about several things.
Let’s start from the basics, how do we acquire a new skill? Any skill, cooking, playing a game, new language or learning to code
This is the Dreyfus model for skill acquisition .it basically states that in order to become experts we have to come through a long path and different phases. In each phase we get better at what we do, we do it by understanding that there is a bigger picture than what we currently know, and we are willing to keep going in the journey of getting a grasp of that picture and becoming better and better.
This is an extension to the original model, it adds another path..
As such, Advanced Beginners can go one of two ways: they can move to Competent and start to grasp the big picture and their place in it, or they can ‘graduate’ to Expert Beginner by assuming that they’ve graduated to Expert. the expert beginner is a very dangerous place, since they think that they have already become experts and therefore they don’t try to improve themselves.
I love this chart. It shows how do we might think of ourselves when learning new things. After a while we might have the sense that we know pretty much everything there is to know. Which of course if very far from the truth
However, this is a trap.
The expert beginner will stay at this place, without realizing that he is not an expert and that he has so much more to learn.
Expert beginners don’t see the bigger picture, and they don’t realize that actually they still have so much to learn. They think that what they see is the whole picture,
They just don’t know
How little
They actually
know
So why does it happen? How come that some developers turn this way and others not?
Our world constantly keeps moving and new technologies, frameworks and tools appear every year. The “Cool” thing to do is to spot the hot things and of course use them ASAP.
That, makes becoming a real expert very hard, since almost everything changes every year. It makes us constantly switch technologies and environments without having enough time to really deep dive and properly understand them and gain the proper experience.
The second reason is the wrong perception of some developers that fact they are full stack developers means that they are actually experts. Don’t get me wrong here - There are full stack developers who are definitely experts, I’m not talking about them
I’m talking about those who have completed a React and Node tutorial, built a todo app and deployed it with a single click to Heroku and therefore considered themselves fullstack developers. They see immediate results without any understanding of how does this magic happen? How will it scale? And what disadvantages does that platform have? . 2 or 3 more tutorials and that’s it! They have nailed software! They are damn unicorns
Another reason is the fact that some developers are stuck in the same aco system for a long time. The trivial path is when someone is sitting comfortably in the same team for years, developing the same features, fixing the same bugs, over and over again and basically not learning anything new.. The non so trivial one is when that someone changes his workplace moves to different teams and companies, but actually remains in the same aco system, same position, has same responsibilities and keeps using the same tools. And again, not learning anything new
That someone may have lots of years of experience but actually he was just repeating the same tricks over and over again, I’ve seen many resumes of such developers with 6 and even 9 years in the industry, when talking to them you couldn't feel all that experience, it was like talking to a mature but still junior developer
And the last thing is the fact that the expert beginners learn only what they are exposed to in their day to day, the technology and the challenges they daily phase make them learn and grow. But it has a limit, There are many more solutions and alternatives out where. Expert beginners are not aware of them.
What they know is what they think there is to know
When you try to talk to them. challenge them and ask them questions you’ll usually hear things like…... Does it sound sound familiar?
What you won’t hear is depth. The deep understanding of how things work and why.
When you try to talk to them. challenge them and ask them questions you’ll usually hear things like…... Does it sound sound familiar?
What you won’t hear is depth. The deep understanding of how things work and why.
And I think that this is the core difference between an expert beginner and an active learner. Active learners don’t necessary know everything. They are aware of the bigger picture, they do realize that nothing “just works” and that there are no silver bullets, everything has advantages and disadvantages. They use the “it depends answer” :) they are not ashamed of not knowing - they always willing to deep dive, learn and understand
They develop a sense that tells them that “there must be a better way” or that a certain solution is just not good enough. Even when they are the ones who suggested it in the first place
So how can one become an Active Learner?
Everyone can!
Everyone can become Active Learners!
You see Active learner is not a phase. It is a mindset, a state of mind, so anyone who embraces the fact that he is yet to be a real expert and that there is a bigger picture than what he knows and is willing to through the path to discover it - can become an active learner
Everyone can!
Everyone can become Active Learners!
You see Active learner is not a phase. It is a mindset, a state of mind, so anyone who embraces the fact that he is yet to be a real expert and that there is a bigger picture than what he knows and is willing to through the path to discover it - can become an active learner
I want to share with you 3 methods and some tools that I personally embrace and use daily, I believe they can help any active learner to achieve his or her goals
Reading is the first thing you can do in order to actively start learning and making your understanding deeper. it is also the easiest. we internet is full of articles, blog posts, videos and podcasts about any topic.
it is there just waiting for you.
read about what know, strengthen your knowledge, dig deeper, truly understand the internals of how something works and see if there are any alternatives, perhaps there are better tools for your needs
also read about what you dont know, stop believing in magic and black boxes. Google it and understand how it works and what is it good for, don’t take anything for granted. Open your mind, read the things you are not familiar with and even those that you don't understand their title :)
There should be no reason for you not to know how things work or what they mean. Today it is easier than ever to google it and get whatever you want.
I want to share some of my personal productivity tools that work for me and help me organize my reading
I have a board in trello for all the things that i've heard around the office and i didnt know what they were. That is basically a board where you can add notes.
Later, when I have time II google them and understand. Usually I’ll find the answers in a blog. So in case it is a good one I add it to my fieldy that is an RSS reader. It helps me to track when new things appear in the industry.
Every day. every one of us see lots of different links that people share on any kind of media. We don’t always have the time to read them and usually we never remember how to find them later.
I use pocket for saving any article that i'd like to read and i don’t currently have time to. This is the best app for me, I have so much things I want to read about but I don’t always have the time, so when I stumble upon an interesting link I automatically add it to Pocket, I’ll make sure to read it later when I have time.
There are also many great podcasts around there, about almost any topic. It worth subscribing to them since they usually make sure to talk about new stuff and really explain their benefits and advantages. It’s a great use of your time while you commute or while you are at the gym.
The last method that I use a lot is googling some topic and adding “vs” to it. Google automatically suggests alternatives for that topic. This is one of the best way to learn about different solutions to a problem
Second tool
Now that you’ve started reading you’ll see many great posts and articles with awesome content.
So every time you’ve read an interesting post or watched a cool video, go ahead and share it with others. Write an email to your team, share it on twitter, open a slack channel or even write a blog. But don’t just copy paste the link, challenge yourself to always try to explain what was it that you liked and why you decided to share it with others.
By sharing in such a way you’ll experience a double impact
First, by spreading your knowledge others will benefit from it and you’ll help your environment become better
The second impact is on you! It is not so easy to write about something. You cannot share half truths and present shallow understanding. Writing about any topic will force you to understand it. You’ll be able to tell a story about it, hold an argument and explain its WIIFM to others. It is a muscle that you can use not only in writing.
This is one of the reasons I’ve decided to open a blog. Writing about different topics forces me to learn more and really understand them before I share with others
Passively learning on our job has a glass ceiling.
There are other ways to increase our experience.
An active learner uses after school activities to learn things his job simply cannot provide
Go to meetups, meet other people who use the same tools or try to solve the same problems, see how they are doing it learn from them.
Try contributing to an open source, go over some of your favourite open source projects, check how they are actually implemented, and even try to help them out, solve an issue, add a feature. Contributing to open source will lift your skills higher than even.
You know that site that has alll the answers to our problems? Well the answers didn’t appear out of the blue. People just like you not only ask questions but also answer them. You’ll be surprised of the number of questions that you can answer. Same as writing - in order to provide a good answer you’ll have to really understand what the solution that you are proposing. And increasing your score is always fun
We all have magical frameworks in our company. They save us so much time. It is time to stop believing in mafgic and re implement those awesome frameworks by yourself - solve the challenges your great tech leaders had solved for you
Digging deeper and strenghening your existing knowledge can be done not only by working with what you are familair with.
Don’t do only what you know and what you are used to
Try implementing something on different language
Or learning an alternative framework that you don’t use in your company.
Don’t do it just because it is cool - but to see a different way to solve the challenges that you are facing.
You’ll see that no matter what language or framework you are using the principles, design patterns and the best practices remain the same
SOLID, DRY, KISS, automation and many others are relevant everywhere - they are cross platform, cross product and cross language.
You will realize that the principles remain the same, Rediscovering it again and again will sharpen your understanding for their importance and it will drive you to apply them to any place where they are missing
Challenge yourself - Try creating magic and black boxes by yourself.
And really, just open a laptop and code, whatever you want, whatever you are passionate about, whatever you don’t really know.
Every Time you’ll do it, open a new project, develop by yourself something you’ve considered magic or a black box you are making your skills stronger and your understanding deeper
You’ll really learn when you should use it, and when you should not
Pause
Let’s say i read, go to conferences, code at home and even I’ve decided to buy a Mac. is it enough?
The answer is no
All the things I’ve said are just the tools that can take where you want
BUT! You need to know where you are going, you need to know what you want to be, what skills do you want to acquire, which meetups to attend and which ones to avoid.
If you won’t decide on those things you might find yourself reading the same articles, going to tons of meetups but eventually doing nothing about it.
We are all busy people, we don’t have time to fool around, therefore we need a plan, to be efficient and focus on what everyone of us really needs in order to grow.
You need to have a vision of yourself, a plan, a road map and goals.
This is the most important takeaway from this talk, in order to truly evolve, grow and improve yourself. ..
You need to treat yourself as a project. Repeat
in order to truly evolve, grow and improve You need to treat yourself as a project. ..
Exactly as your comany that has a vision, a roadmap and goals and it works towards acheicing them - so should you.
Decide who do you want to be - what skills and expertise do you wish to have - build a vision of yourself.
Then, plan ahead - define your goals, you objectives, and then decide how are you going to achieve them.
What do you need to read, what do you need to learn and which areas do you want to improve and really understand. This will guide you through the noise and the disruptions and focus you on what you really need.
Pivot along the way and see methods work for you.
And of course, this is not a one time thing. you need to keep doing it, again and again and again
So to sum up:
Active learner is a mindset, everyone can decide that they want to grow and become better than they currently are.
To achieve that you need to have vision of yourself and roadmap with goals and objectives - measure yourself and make sure that you are actually on the right track.
Use the tools - read, understand, summarize and share what you’ve learned with others, exspose yourself to meetups, open souce, different languages and tools and start creating magic by yourself.
...And of course repeat