Contenu connexe



  2. 2015 Speech and Language Therapist + premaster Speech and Language Pathology Currently Java and Kotlin developer for OpenValue Text
  5. STM String j w oe k s is active true CHUNKS boolean
  8. RETRIEVAL No encoding No LTM Encoding No consolidation Consolidation LTM
  10. NETWORK STRUCTURE tiger zoo lion orange black cat pinguin brown water dolphin jungle pigeon
  11. CONTEXTUAL ASSOCIATION Correlations that are being created between different sensory perceptions.
  12. EXAMPLE Records SunPKCS11
  13. EXAMPLE Records Semantic meaning: Class with immutable data. Grammatic rule: Already implemented constructor, getter, equals(), hashCode() an toString()
  14. CREATIVE CONTEXTUAL ASSOCIATION Correlations that are intentionally being created. E.g. connect a symbol to a meaning or grammatic rule.
  15. EXAMPLE Records Semantic meaning: Class with immutable data. Grammatic rule: Already implemented constructor, getter, equals(), hashCode() an toString()
  17. PARROTING Actively apply what you’ve read or learned. Don’t copy paste..
  19. IT’S HARD TO UNLEARN Go through multiple solutions. Be careful of bad examples!
  27. FREQUENCY Practice often rather than longer
  29.  Mnemonics  Different scenarios  Visualization  Pros and cons  Things to be aware of DICTIONARY + ASSOCIATION BOARD
  30. STUDY TIME Weekly learning schedule:  Study time: take 30 minutes of learning • Write down • Visualize • Associate  Use them  Evaluate  Explain to others
  32. Indirect feedback: Non-urgent situation Direct feedback: Urgent situation GIVING FEEDBACK Point out the mistake and optionally show right example. Let colleague fix it themselves! Let colleague review your code with an example on a different approach. “TOWEL!!” “Let me grab that cat for you”
  33. KEY TAKE AWAYS • Use (Creative) Contextual Association to improve your retrieval strength. That is; use multiple senses when learning something • Actively apply what you learn • Find someone that can correct you • Automate your LTM retrieval • Learn together
  34. • The programmer’s brain – Felienne Hermans • De taalontwikkeling van het kind - Annemarie Schaerlaekens • Afasie – Reni Dharmaperwira-Prins & Willemijn Maas • Atonomy & Physiology – J. Anthony Seikel, Douglas W. King & David G. Drumright • Intellectual and Memory Impairments - Joseph Jankovic MD, in Bradley and Daroff's Neurology in Clinical Practice, 2022 • • coding-concepts-5-year-olds-can-understand/ • DALL-E 2 SOURCES
  35. Mastodon: @de_gijt LinkedIn: Simone de Gijt Slidedeck:

Notes de l'éditeur

  1. Goodmorning everyone, I hope you are just as excited as me! First of all I want to thank you so much for inviting me to your beautiful city. It is the first time that I’ve visit Romania and I took the train from Bucharest to Cluj, really I can recommend it to everyone as the landescape is so beautiful. But you are not here to hear about my travel stories. You are here today on Voxxed Days to get inspired and learn about new techniques and maybe about new language features. So that is where I come in. Before starting this day I will tell you a little bit about your brain, the way it’s wired and how your brain is learning new languages so that you can get the most out of today
  2. Now I can imagine that you’re thinking; who are you tell us about this? Well, I am Simone de Gijt and I am from the Netherlands. Weird fact; we Dutch people call ourselves a cheese-heads, so there is that. I graduated in 2015 as a Speech and Language Therapist. But directly after I already switched to IT and I currenly work for OpenValue.
  3. Now during these 40 minutes that we’ve left, we are going to talk about how your brain works and with each chapter I will give some tips and tricks on how you can apply that knowledge in an IT environment. Now before we really dive in, I want to give you all a few seconds to grab a pen and paper preferably or your laptop or mobile phone if you don’t have pen and paper. In that later case, I would highly recommend to put yourself on Do Not Disturb but that’s all up to you of course. Let’s start!
  4. Let’s start with something positive allright. I am here to tell you: You are learning every day! You might not realise it, you mind even think you only performed repetitive tasks which you already knew. But even in that case you are strengthening your already present knowledge and therefore participating in the process of learning. In order for us to talk about learning new languages we need to know how language is stored. So let’s start there.
  5. Every single second you are experiencing things, yes even when you are asleep. Your senses are always on, unless of course there is an issue in one of the senses, and they are capturing way more than we notice. For example, you are probably only seeing the slides or me at this moment. However the people sitting next to you are still in your view, they just don’t get your attention. But all that sensory information is stored in what we call the sensory memory.
  6. The very first memory storage that we have is sensory memory. Sensory memory stores everything that we can experience for all 5 senses: so hearing, smelling, tasting, feeling and seeing. So what does it mean. Let’s take smell as an example. Your nose is smelling your environment the whole time, but most of the time you don’t really notice it, until… You smell smoke. Suddenly this smell becomes part of your attention. So senesory memory is a bit like those . folders. You know they exist, but you are hardly aware of it, only when issues occur or you need info, you will look at them.
  7. Now with regards to IT, the iconic memory is the only memory that is interesting for us. Iconic memory is about sight and vision. This is what we use when we read code. Now as I said we are far more aware of things than what we pay attention to, the funny thing is however, that once it becomes relevant we can take this information out of our sensory memory and start using it. We then become aware of it. Now with this in mind I can already give you the first tip of the day: Whenever you are reading, investigating or searching through code. Instead of really micro focussing on reading the methods line by line. First take a few seconds to glance over the page, without really reading it. Just scan it, be aware of it and then start reading from your starting point. This will help you, place the code in broader perspective. Because eventhough you might not recall the details of what you just saw, your brain has stored that information into your iconic memory making it easier to retrieve knowledge whenever needed.
  8. So whenever we need information about our surroundings we take it from our sensory or iconic memory into our short term memory. This is the place where we are aware of the information.
  9. Now we all know Dori right, the cute blue fish from the Disney movie Nemo, who always forgets everything. Whenever she hears something, she can react to that in that specific moment. But she can never recall anything that was said to her or what she experienced before. It seems like Dori only has her short term memory to rely on. Which can be compared to the RAM of a computer, where you can temporarily store a limit amount of data. Now recent research shows that for our short term memory that would be 2 to 6 chunks at the time and each item has a time-to-live of about 30 seconds.
  10. So what is a chunk? A chunk depends on your previous knowledge. A chunk can be one letter, but it can also be a words that you know, a concept that you have learned or a syntax that you memorized. Let’s take this variable as an example. The variable name is complete random, but the word String is most likely something you are all very familiar with. Also the o and e are in your head probably glued together as one chunk because your head treats it as /oe/. Now as you can see, depending on how you chunk it, this will take up a lot of your short term memory. Whereas if I would show you this variable, you probably won’t have problems remembering that at all right?! So two tips that can help to not overload your short term memory would be: Make use of Design Patterns. The more often a certain structure is used, the easier it is to chunk. And avoid abbreviations, because in most cases your brain can’t reconstruct those letters to a words immediately. Leading to separate chunks per letter instead of one chunk. But still with that in mind. 6 chunk is not a lot right.. So we need something else, otherwise we all end up as little Doris.
  11. From short term memory we’ll go to long term memory
  12. I have another Disney analogy for you! The elephants of Jungle book. Relying and showing off with their long term memory. A long term memory can be compared to a computers hard drive where information can be stored for a long period of time. Now let’s see how that works
  13. Now the first time Dori or any other fish sees this lovely creature, they will have no prior memory of it right? There is no encoding, therefore no memory to be retrieved. However, she has seen it now, so she encodes the shark and stores it in her long term memory. Now the second time Dori bumps in to the shark, she might feel like she has seen the creature before, she might have a sense of recognition but nonetheless she can not retrieve the memory from her brain because there has been no consolidation. The memory is there but there is no path leading to it, so to say. Recent research has shown that the things we process will be stored indefinitely in the long term memory. So whenever you cannot recall something, it isn’t so much a matter of that you forgot the memory. You are actually failing to retrieve the memory. Now this seems to be a great time to look a little closer to those pathways.
  14. You can think of it as a forest. The very first time you stand before the forest, there is no path. So when you walk through the bushes, pushing all the brances aside you will create a path. But when you get back to it in let’s say a week or so. You can’t find the path anymore, it has been overgrown again. Only if you come back regularly , in time you will create a path. I will however, dive into this last point, because it has everything to do with learning. So we started this topic by saying kids start with easy words that they hear often right?! This is because they need every chunk in their working memory in order to process whatever information comes their way. Now I already told you that once you walk enough times over your forest pathway, it will eventually turn into a solid pathway. Which will be easy to retrieve and take up less space in your working memory. However what I haven’t mentioned yet, is that your road also can become a high way. From which the information can be retrieved automatically. For that kind of information, you don’t need to waste a slot in your working memory, you literally “don’t even have to think about it”. Now why should we want information to be retrieved automatically? We all have google and stack overflow right?
  15. First I am going to give you a little bit of context. Because the brain works a little bit like binary code in computer science. We all know that computer science boils down to the key concept that all information can be represented as sequences of zeros and ones. So basically ”on” or “off” right?! Now when you would tell your non-developer neighbour this, they would probably be surprised and wonder how a computer can accomplish such complex tasks with only two options. Whereas for us it makes totally sense right, because the amount of variety we can make with so many zero’s and one’s is immense. So please hold this in mind when we take a look at our brain.
  16. Your brain is made up of these funny looking mushrooms that are called ‘neurons’ and they are the information messengers of the brain. They receive, process and transmit messages from and to other cells. and an average adult has about 86 billion neurons.
  17. And not only is that an incredeble amount, it is also very useful because our brain uses these to give us what we call ‘Neuroplasticity’. Neuroplasticity is the ability of our brain to create new neurological pathways and to deal with change. So the neuroplasticity are our forest paths that we just talked about before. Now this has pro’s and con’s. The disadvantage is that the more changes stabilize, so if the forest road is promoted to be a paved road, the harder is it for plants to overgrow it again. In other words, to unlearn or forget them. This can lead to conflicting situations when for example you always wrote your code in Java but are now switching to Kotlin, or even worse to Python for example, as that will lead to even more conflictions. Now on the positive side we can state that you are never to old to learn. Your brain can always make new pathways. It is however a fact that neuroplasticity get’s used up, so it can become a little harder in time. However, we will never reach that point where we used up all our 86 billion neurons.
  18. Now with all that in mind, you want to make use of those neuroplasticity the best that you can right? So what do those pathways look like?
  19. You can compare it to domain driven design. The goal of domain driven design is to easily deal with changes. Sounds familair? To make that possible they create bounded contexts. In which one model (e.g. Customer) can exist in two different contexts, where one inherents from the other.
  20. Our memories are stored as a network that link together. Leading to a greater retrieval strength for information that relates to other memories. Take for example this blueprint. When this person needs to learn a new animal, like tiger for example. It will be way easier to learn, compared to when he needs to learn the bird pigeon. Now you might have noticed that the colors on the left side aren’t white. I made them in a different color because in this case you will probably not really recall the words, but the actual visual memory of that color. So not only words are included in this map, also other senses like visualisations and smells are included in this network. This is also why almost every new concept that I am discussing in this presentation, I am introducing with an example or comparison that you’ll most likely already know and a picture. This will most likely help you in retrieving it the next time.
  21. So this concept of linking different sensory perceptions together and to a meaning is called contextual association. The more senses are involved in the learning process, the better it will stick. That is also why I started this presentation with offering you a moment to grab paper and pen. Because when you start writing it, next to reading and hearing it. You will create a third link to the learned information. Let’s look at an example:
  22. Records were introduced in Java 14. Now probably all of you know the word record, making it already way easier to remember then when you read SunPKCS11 in the releasenotes of Java 17. This has everything to do with what we call Phonology in linguistic terms.
  23. Phonology is the sounds that separate the meaning of a words. For example if I say /C/ to you, it could be either one of these three options. Whereas if a native English speaker would say this, they would maybe hear the difference. Next to that it is the sounds that we recognize a word by, depending on the context. So we didn’t recognise the letters of this variable name before to form one word, just like this example. Except when I now switch the letters, you probably do. This is also why it isn’t wise to chose names that aren’t easily pronouncable, because it will be way harder to retrieve them from your memory. The easier the phonological setup of a word, the easier it is to make chunks out of it and the easier it is to learn.
  24. Back to our example. So records is easier to pronounce, therefore easier to learn. But next to that it is also probably a word we already know. So we can just add a new correlation with a new meaning to that already existing word in our network structure. Now moving on. We search further and find that the semantical meaning of records is; ‘a class with immutable data’. And the grammitcal rules that come with it. Now whenever you learn these things start making it a regular practise to read out load. Again, more senses you use, the easier it is to retrieve that knowledge the next time.
  25. Now before we showed that it is easier to learn something whenever we have visualization for it. But in IT a lot of times you don’t have an automatic visualization of the new concept you are learning. However, research has shown that even if you make up your own visualization, which you link to the meaning or syntax, it will still work as if you would link the word tiger to a visualization of that tiger. We call this creative contextual association. So correlations that are intentionally being created by the person themselves.
  26. Now allthough you probably already have a visual association with the word record. It might be wise to introduce a new visualisation for this new meaning. As this visualisation will probably cause you more harm the help, because it will put you on the road to the other meaning of the word. Now this is where the creative contextual association comes in. Because you are going to correlate a visualization of your own choice to this word. For example: This document behind bars, representing for me the fact that data is captured and can not be modified.
  27. Now with this being said you can also use creative contextual association when you are learning two conflicting programming languages. So try to literally visualize that you have two different circles, or bookshelves per language. Whenever you learn a new concept, place the term, concept or meaning inside the right circle or bookshelf. Now, you can have a combined drawer or circle when a term occurs in both languages. But only when it has the same meaning, otherwise be wise to keep it in two separate places in your mind, preventing it from getting mixed up. Next to that, prevent too much context switching. We all know that our second language skills are a bit rusty at the moment when we didn’t use it for a while. We need to dust off our pathways, however when you spend some time on it; you’ll retrieve the level at which you were before. The same happens for programming languages. You need to find your way to the right bookshelves every time you switch. So personally I recommend to stick to one programming language a day if you can make that choice.
  28. Now something I really like to do, is to look at kids and see how they learn. Because their learning process is so natural. I think we all heard kids repeating whatever they heard right? Also the words we rather had them not knowing.
  29. This technique is called parroting and I can tell you, we all do it! We all spent many of our hours searching and reading through stackoverflow right. But I have one remark, we can unfortunately not call it parroting when we are simply copy-pasting a solution. You will maybe have learned something, when you spend actual time reading carefully through the suggested change. However, parroting is an active way of learning, requiring you to actively repeat the thing you’ve learned instead of passive learning, which would be that you only read it.
  30. Okay second thing that children do is, they try the words out in different situations. Meaning they can easily call a dog a cat, or a couch a chair. By trying it out, the kids get a better and deeper understanding of what the concept is of the new thing they learned. Important to note here is that this repetition of course only works successfully if you have someone that can correct you and can tell you that that this towel, is actually a cat
  31. Now a disadvantage of the internet is that it holds information very very long. Which means information can be outdated, even if more than 100 people gave a like to it 5 years ago. It can very well be outdated nowadays. So it is always a good practise to reaad through multiple solutions, because as you might remember. It can be pretty hard to unlearn something.
  32. Last but not least; childeren start with words they hear the most and which are easy. But in order to really understand why we need to get back to Dori for a sec.
  33. Now you might remember this picture from before and you might remember that neurons had something to do with the processing of that memory from short term to and from long term. Now the processing of that information we call the working memory, which is performed by neurons making use of neuroplasticity. Important to know is that researchers are not agreeing if the working memory is actually a seperate entity or just the same as the short term memory. This disagreement mainly comes from the fact that the working memory can only process 2 to 6 chunks at the time. Now for this talk I leave it as two seperate stations.
  34. Now why is it, that we sometimes feel “overloaded”. You are reading through a class or a method and you just can’t seem to get your head around it.. This has everything to do with cognitive load. We just learned that the working memory can process 6 chunks of information at the time. It is the mental compiling and execution of code. So whenever you feel that you need to write down some notes or make additional comments, then that’s a sign of your working memory is becoming too full. Now there are some ways to help your working memory dealing with this load. Unfortunately we have limited time and I also don’t want to give you a cognitive overload during this session. That is why I will skip through the next slides, but they will be in my slidedeck if you want to take a look at it after this talk.
  35. I will however, dive into this last point, because it has everything to do with learning. So we started this topic by saying kids start with easy words that they hear often right?! This is because they need every chunk in their working memory in order to process whatever information comes their way. Now I already told you that once you walk enough times over your forest pathway, it will eventually turn into a solid pathway. Which will be easy to retrieve and take up less space in your working memory. However what I haven’t mentioned yet, is that your road also can become a high way. From which the information can be retrieved automatically. For that kind of information, you don’t need to waste a slot in your working memory, you literally “don’t even have to think about it”. Now why should we want information to be retrieved automatically? We all have google and stack overflow right?
  36. Felienne Hermans writes in her book the Programmer’s Brain among other things that research shows that about 20% of a developer\s time is spent on interruptioins. One of the reasons being the increasing use of Slack and Google. And although it is very useful and convenient that we have such these tools, it does however get us out of a certain mental-flow. And although different research have different outcome on how long it will take until you get back in your flow. They are at least agreeing on the fact that it will take at least 15 minutes to get back into. So learning stuff by heart, will make you a better and more efficient programmer. Next to that, if you can retrieve information automatically, it won’t use a chunk in your working memory. Of which we have very few. So instead of using that chunk to save and process the information you just googled for, you can use that spot for other information. So that’s a big win!
  37. How do we remember things? Why is certain information easier to learn than others? To understand this, it is useful to see how our brain splits up different areas of language.
  38. First slide
  39. Now let’s look at how we can build ourselves a high way. And I know it is not common for developers to actively study new principles after our studies or outside of a course. The phrase “learning through experience” is very often heard and although you will definitely learn from it. It isn’t as effective and efficient as actively and intentionally sitting down and studying. So the next couple slides are all about study-techniques. And I ask of you to keep an open mind and see if I might convince you in using one of those tools.
  40. Now whenever you are writing code and you come across something you want to google. Try to actively recall the information and write down what you think you know, even if it’s incomplete or incorrect. Only after, google for it and then, if you want, write it down in your dictionary or create a flashcard out of it. It has been proven that whenever you actively recall information. You are more likely to recall it the next time.
  41. First of I start with one of the most effective ones: Flashcards. They can best be compared to language learning programs like Duolingo. The strong suit about applications like these is that the lessons aren’t specifically long, but they trigger you to revisit it every day. Which makes a lot more sense on the long run. Instead of building a pathway in one day and then have trees regrowing over it, rather build the pathway slowly but keep walking it every day. Making sure to revisit your previous mistakes, causing the pathway to become a solid one. You can very easily make these flashcards yourself. You can do this physically, which of course has an advantage. Remember contextual association. However, I can understand that you would rather use an already build application for that. The concept however remains the same..
  42. Just like in school, you write on one side whatever you want to learn, whereas on the other side you write either the term, or place a visualization. So hello voxxed becomes in this case Buna Ziua Voxxed. Applications which you can use for this, are for example Anki and Quizlet. The nice thing of using these applications is that they will give you a daily reminder to revisit your words and next to that they take into account if you knew the word. Leading to showing the term more often or less often, based on how well you already know it.
  43. Next you can create a dictionary or association board. We all know that being developer automatically means that we’re quite creative right? So challenge yourselve and start creating this. The goal of creating a dictionary. Is that you actively write down things that you need to google for. So that instead of copy pasting it, you are stabilizing the information in your brain.
  44. And last but not least, study time! Personally I really this one, together with the flash cards, because it really gives you focus. Sometimes, especially when learning a new languages there can be so many new things coming your way that it’s a bit overwhelming what to give your attention. With study time you pick one concept, one technique, one feature that you will focus on in that next week. You block half an hour in your agenda, always on the same date, on the same time and preferably first thing you do that day when you start working. In that half an hour you’re spending time on research and creating a dictionary or association board. The week after you are actively trying to use it. So daily you are aware of your assignments for that day, and you are going to think about how you can try the technique out in your current work. At the end of the week, the best thing is to write down all the situations where you used the concept. Try to see if there were any situations that you hadn’t thought of before. Adapt your dictionary or association board to it. And last but not least, if you feel comfortable enough. I highly encourage you to explain it to others. Not only will it give you satisfaction of what you’ve learned. But if you can explain it to others, you are certain you understand it well enough. With this last point you are actually in the process of teaching and therefore helping others. This is the last part of my talk for today.
  45. Now before I begin I want to point out that when you are in the position of helping others learn. That you are probably more experienced and therefore likely to suffer the curse of expertise. The curse expertise means that you can’t really remember your own learning process. You just know, that you know stuff, but you kind of forgot how you got there. Being new to something or in process of learning is vulnerable. Please remember that you once where in their shoes and apart from that, that you are also still learning. So let’s start
  46. As stated before, kids love to parrot and just like any adult they don’t really like to be wrong or to make a mistake. So what we as speech and language therapists always practiced was to correct kids without them knowing. Whenever a kid makes a sentence that is not correct. Instead of really saying they are wrong, you repeat whatever they say but in the right way. Now this can also be done whenever helping a junior in the team. In case of a non-urgent situation or merge request, instead of really saying the person is wrong you can also show him or her an example of a different approach. This will help strengthen the network structure and next to that you give a little bit more room to the cognitive load of the junior, as he can decide for himself if he has room to pick it up. Of course there can also be situations in which you do immediately need to give direct feedback. However, in that case, instead of making a suggested change in gitlab for example. Explain the mistake and let the colleague fix it themselves.
  47. First slide Research indicates that almost 60% of programmer’s time is sent on understanding code rather than writing Design patterns will help chunking. Beacons (smaller parts of code than chunks) helps to understand what the code does: Simple beacons are self-explaining syntactic code elements e.g.. Variable names Compound beacons are larger code structures comprised of simple beacons.
  48. First slide
  49. First slide
  50. First slide
  51. First slide
  52. First slide
  53. Hope you enjoyed and have fun during the rest of the day. If you really want to be crazy.. Download Anki right now and start creating your flashcards (even just for fun) during the talks, and see in the next couple of days if you like it and if it works for you. Enjoy!
  54. You might think it’s not important to know the syntax by heart. Or you can say; well I will just google whenever I need to use a list. However every time you want to look up something online, it needs to be processed. It will take it’s toll on your working memory. When you have automated this information and you can just recall it without really thinking about it, you leave space for other “unfamiliair” information to be processed. Next to that, interruption of your work is killing. Research shows that after disruption of your workflow (for a telephone call or an email), it will take about 23 minutes to get back to the same attention level that you had before the disruption. Anki, Quizlet System hungarian: place an idetifier in front of the variable name in order to state the role of that variable (e.g. temporary, fixed, min, max etc)
  55. Before diving into the real linguistic and programming language part it’s good to get a better understanding of our brain and how it functions. So let’s dive in..