Effective Learning for Software Developers
Software developer degrees or bootcamps don’t guarantee that you are set for life. Whatever your responsibilities are right now, I can only guarantee you one thing: you will have to learn and level up in your career on a regular basis.
Less experienced developers are often anxious when it comes to closing the gap between where they are and where some of their more senior peers are. There are so many topics out there, and a lifetime is not enough to learn them all. This is one reason why software developers often express their frustration about the high churn rate when it comes to technological change.
The objective of this article is to put an end to trial and error with unproductive learning. My highest intent is to show you that there is a mindset out there that helps you accomplish a lot more in your career than you could ever imagine, while making learning one of the most exciting things in your life. You will soon find out how to get out the most from your learning experience, and how to profit a lot more from it than ever before.
You see, if you can’t learn effectively, your career will suffer. If you internalize an effective mindset and strategy for learning, you may save years in your professional career.
Let’s start building momentum by taking some specific actions towards becoming a better learner. These are:
1. Have a learning plan
2. Put things into context by thinking about what you already know
3. Keep your attention
4. Let go of perfectionism, breadth first takes you farther than depth first
6. Connect the dots
1. Have a Learning Plan
The learning plan of the average person is: look for book recommendations from people you follow, and read the books from cover to cover. Follow as many people as possible, so that you don’t miss out on anything that’s interesting. If you want to become above average, this strategy is not likely to be effective for you.
Having a proper plan is a vital component of succeeding. In his book Peak: Secrets from the New Science of Expertise, Anders Ericsson and Robert Pool cited a story that people capable of reaching peak performance tend to commit to the skill they are learning.
If you think of yourself as a pianist, who will continue playing the piano for ten or twenty years, then you tend to advance faster than those who just want to reach a short goal and then stop.
You need to know why you learn something. This sounds obvious, but you can shave off years of trial and error from your professional career by knowing what you want.
Ask yourself. What is your outcome? To kill time? To entertain yourself? To take your career to the next level by learning and utilizing a skill? Different goals require a different approach.
Check out my article The Software Developer’s Learning Plan. If you need help in synchronizing your learning plan with your career plan, and reach the next level in your tech career, you can also check out my book, The Developer’s Edge, where we dive deeply into career planning.
2. Put things into context
I still remember my university years. Whenever I learned something new, I asked myself, what does this remind me of? How can I connect the new stuff to things I learned in the past? Compare and contrast your knowledge from different sources.
Our brain works like associative memory does. We form associations in our mind. The closer a new topic is connected to something you already know, the easier you will retrieve it in the future.
Those who can integrate knowledge from different sources do better in their field of expertise than others. If you just know something without making connections, your knowledge may be enough in a factory where you have to press the same button over and over again, but the most important skill of the 21st Century is creativity. Why? Because the rest of the work will be eaten up by AI sooner or later.
Always ask yourself what the bigger picture is.
3. Keep your attention
The attention span of an average person is quite low. Have you entered a meeting just to see that some members of your team straight up ignore the meeting and start fiddling with their phone? Have you ever started watching an educational video or a lecture, just to catch yourself thinking about something that has nothing to do with the topic?
Our mind is doing its best to maximize our chances of survival. The problem is, our minds are optimized for life hundreds of thousands of years ago. Evolution cannot keep up with the rapid pace of technological change. Therefore, we need tools and strategies to stay in the present moment.
The first trick I recommend is multi sensual reading. On audible and on scribd, you have a chance to listen to an audiobook while reading the same book. If you hear what you read, your senses will be focused on the material. This is a great tool for consuming non-fiction books fast. This is an effective way of improving your leadership skills, assertiveness, negotiation skills, and many other soft-skills of yours.
If you are watching a lecture, you can stay present by repeating your lecturer’s words in your mind. This is a crazy technique, but it works. For the same reason, note taking also works, even if you will never use your notes in the future. Although in the 21st century, many students go to a lecture hall with their computers, your brain tends to be more integrated with pen and paper note-taking.
A more advanced technique for staying present is to think ahead.
I admit, literature was not one of my favorite subjects during high school. My teacher was overly aggressive, forcing her opinion on the class. Freedom of thought was non-existent in our class.
Yet, I was presented with a challenge, because I had to get the best grade so that I can make it to the best tech university of Hungary. This was a screwed up system. I had to study five times as much literature as maths, just to enter a tech university.
Obviously, I was looking for a hack. I found out, when someone read my teacher’s mind, she gave the student a plus sign. Four plus signs equal an A. An A in the register book also means that the candidate will not get an on-the-spot oral exam, which was a famous massacre technique from the teacher. So, sure enough, on every single lesson, I was listening to my teacher’s words, and as soon as I figured out I could add value, I raised my hand to butt in the monologue of my teacher, and said it.
As a result, I got around one oral quiz a year. Those quizzes were usually Bs and Cs, but all the A grades I got overrode these results. I got rewarded for reading my teacher’s mind. This is when I mastered the skill that made me stay present throughout the whole lecture.
Ask yourself, what is the lecturer going to say next? If you have trouble maintaining attention, you can play the game of predicting what the author will explain next. Think about it. Once you become good at these predictions, you can be certain that you already know what the author is saying now.
4. Let Go of Perfectionism
If you ever studied to pass a tech interview, you might have come across the breadth first search and the depth first search technique. When you have a tree with root R, and the successors of R are succ(R), depth first search just selects one node from succ(R), and searches the entier subtree of that node before checking any other nodes. You dig deep into the tree fast, but it may take you ages until you explore all the nodes in succ(R).
The first thing breadth first search does is go through all nodes of succ(R) before diving deeper.
If R is your topic, the nodes in succ(R) often give you a great overview of the whole topic. Focusing on succ(R) instead of digging deep pays off. It does not matter if you don’t know the details. Having an overview is beneficial in itself, because you will be able to make more connections the second run through.
During your first run through, don’t even attempt to consume the learning resource cover to cover. Go for quick wins, and just grasp the basics. You can then start building something tangible in practice, and once you get stuck, you will get new questions, and your second run through the material will be a lot more effective than a cover to cover read.
Start experimenting with the material early. Even after a broad overview, you can realize that you can start playing with the things you learned. You will get stuck sooner or later, but until you get stuck, you will be able to ask many meaningful questions.
You could also do a google search to see if you can come up with the answers to your questions.
Don’t worry about messing things up. This is your learning experience. Your second run through the material will correct many theoretical mistakes. While you learn, you are encouraged to make as many mistakes as possible, so that you can learn from them.
6. Connect the dots
Ask yourself, how do your new discoveries contribute to the big picture? What are you capable of now? What new pathways opened up on the horizon?
Learning is like a role playing game. When you level up, you unlock new skills. Once you unlock new skills, your opportunities widen. I admit, this is an addictive game, but this is one of the most healthy addictions you can have if you use learning for the right purposes and you don’t let learning use you.
What Smart Students Know
We have reached the end of the hacks. I promised six strategies, but there are some more in the book What Smart Students Know: Maximum Grades. Optimum Learning. Minimum Time. by Adam Robinson.
Read it especially if you want to save time and hack your way into passing subjects. Although these tactics are not as important as the coming mindset section, sometimes you do need the tools to get ahead.
The Truth about Learning
The first part of this article was about some strategic quick wins.
Most of us need these quick wins to get started. Even though we know that the right mindset is more important than the concrete strategies, we just want to go for the strategies. Deep down we all just want a pill that we swallow, and out of the blue, this pill solves all our problems. This is why most Internet marketers write posts like “Five Habits that Make You an Effective Learner”, or “Seven Steps to Learn a New Language Quickly”, or “The Master Learner Formula”.
We want solutions, and we want them now. Especially after a failed exam, or after realizing that we are not going to get that desired raise we expected for a year.
Unfortunately, there is no one size fits all solution in life. You are a unique individual. You know what works the best for you. More importantly, you are responsible for your own future.
Self-awareness unlocks the path towards self-improvement. Your mindset will make it possible for you to innovate and get better. If you have the right mindset, you will be able to come up with your own learning strategy that fits you.
We will now discover one cornerstone of your learning mindset: creating value.
Be a Creator
Before diving deeply into the strategies and the mindset, the most important principle I have to emphasize is the trap of consumption.
If you just consume knowledge without ever using it, you will forget most of what you learned. Be a creator instead.
I know, many people have the fear of other people trolling and exposing our fragile work to the wide audience. But guess what, this is not going to happen. After years of creation, the worst thing that ever happened to me was a reddit thread, where I got trolled. First time this happened, I was a bit self-conscious. However, after a few minutes, I concluded, all I have to do is take the constructive criticism, discard the destructive criticism, and move on.
I have written a lot more than a hundred articles so far. I got destructive criticism on one or two of my articles in total.
If you just consume information, you will not be able to innovate without hands-on experience. Don’t get me wrong, consumption may take you far. Unfortunately, there is a point when endless consumption makes your mind overflow, and you stop seeing benefits. This is a state that we refer to as this person is in his or her head. Your message will lose its weight. This is because you have all the theoretical knowledge, but zero practice. You can cite brilliant concepts, but putting them into practice will be hard for you.
If you are very junior, you might have to consume more just to learn the fundamentals. As you mature, you will be able to take more and more action to put the material you consume into context.
Going through the content from start to end will not make you above average. This is what every student is supposed to do just to get an average grade.
To take your knowledge to the next level, you have to be a creator. If you are a creator, you will learn how to build on knowledge you acquire and how to use it in practice. The biggest level up happens when you create. Therefore, as you consume, don’t forget creating! If you go through a five hour long course, book at least 20 hours of practice, where you accomplish something meaningful.
Most of us consume material from cover to cover because we are insecure about our ability to put concepts into practice and feel that we are good enough even if we don’t know everything. I have been there myself. I remember, around 15 years ago, our semester consist of 30 credit points, and I accomplished 40 with straight A grades. My insecurities drove me to succeed, because one B would have meant the end of the world for me. The fear of not being enough. The fear of not being worthy.
Going through the material cover to cover without putting it into practice is an insecurity called productive procrastination. You get the illusion of progress. Real progress happens when you apply what you learn.
While I was running away from my fears towards success by performing well in university subjects, others built businesses, launched their online poker career, worked in internships or on a part time gig, created meaningful relationships, or just had fun. As I recall that specific semester of mine with the 40 credit points, I just realized, I have forgotten most of the subjects completely. I remember simulating some weird Petri nets using formal methods. I remember some stuff about 3G, and some network contracts, but I know I never wanted to be a network engineer.
Once I started adding value and creating things that last, I took my learning experience to a whole new level.
My Story about Being a Creator
I know, it sounds easy for me to say, be a creator. If you know me from other forums, you know that I live my message, and I have a reason to say that it pays off to be a creator.
This may be the first article you read from me. In this case, I would like to let you know why studying is the cornerstone of what I do for a living.
As most of the Medium audience doesn’t know me yet, I would like to make one thing straight. I am here to help, not to brag. In fact, in my book, The Developer’s Edge, I dedicated a whole section on self-esteem. If you study the phrase, you realize that self-esteem comes from within.
If you put yourself out there, good things will happen to you. Publishers will chase you for cooperation. Course platforms will want your course to be in there. You may self-publish a book just to be picked up by a publisher a few weeks later.
These contacts don’t come for free. I put the following content out there:
- My tech blog, zsoltnagy.eu, contains 84 tech articles and at least twenty hidden articles that are only accessible for subscribers. I had to learn all the stuff I wrote about.
- My career blog, devcareermastery.com contains 16 articles on soft-skills, distilling my knowledge I gathered throughout the last years.
- I currently have two books on Leanpub: ES6 in Practice — The Complete Developer’s Guide , and The Developer’s Edge — How to Double Your Career Speed with Soft-Skills. Earlier, I had a third book on Regular Expressions, but a well known publisher bought the rights to publish my book, so I had to retire the book.
- ES6 in Practice and my Regular Expressions book have their video versions too. It was a big barrier for me to start producing videos. I was originally afraid of looking awkward. This is now gone.
- I have a Youtube channel, currently containing 20 videos. This will increase in the future.
- I have authored 2 courses with SitePoint on TypeScript and CSS architecture. I have also authored 5 video and e-learning courses with Packt Publishing. I am currently in development of a Python AI E-learning course with Packt.
- As a side-note, except for 2009, and a three month long recreational break in 2012, I always held a full time position while creating things.
- As a university student, I learned that after getting up to speed and learning the basics, the real value was in research and creation instead of just consuming the subjects. Besides other activities, I ended up with the Computer Science and Information Technology department of my university, and started publishing research papers with my supervisors, and started presenting in conferences.
Believe me, creating content always pays off in the long run. Worst case you organize your thoughts. Often times, opportunities open up for you. I forgot most of the calculus, physics, and computer networks knowledge I learned at the university. I never needed them. Most of these courses were too detailed for me anyway. At the same time, I could jump in any field I practiced tomorrow, and get up to speed right away.
If you create content, you will get a different level of understanding on any subject.
You already know that learning is a creative process. You have to create something new to really lock in the lessons.
Sometimes the creation process is blocked by an unwanted emotional state. You will now discover some ways to reframe your situation, and unlock your potential even if you feel insecure about learning.
1. Proximity is Power
One on one mentoring is the fastest way to grow. The second fastest option is a group training, where you can ask your questions live. All courses and learning resources only come after these two. Most people have a mental block when it comes to investing in themselves. I admit, when you are just learning the basics, you may be better off taking a course or a book. However, when you want to master a skill, your peer group and your mentors will greatly influence your success.
I am happy to pay several hundred euros per hour for therapy, coaching, and one on one sessions if they address the problem I have, and save me a lot of time and money. If you see a positive return on investment on the deal, taking the services of a coach or consultant pays off. There is no financial crisis in the world that evaporates your skills and capabilities.
This is the reason why coding bootcamps may charge you five figures to teach you software development. After months and months of proximity, it is inevitable that you succeed and get a job. Group coaching with some one on one elements pays off in a bootcamp.
When learning tacit skills, you can learn the basics in group lessons, but one on one training will bring you the fastest results. Life is too short to learn slowly. If you can afford a coach, go for it.
Some people say, if you can’t afford it, you should go for it even more, because you will make the biggest difference in your life if you can barely afford the fee. I am a bit sceptical in this advice, because I know, there are many scammers out there who just want to take your money pretending that they know what they are talking about. Just because someone has good marketing, it doesn’t mean you can trust that person. If you want immunity against marketing, read the book Influence by professor Cialdini so that you can realize when an Internet marketer is trying to manipulate you. You know the drill. They keep on repeating your name over and over and keep praising you and framing their sales pitch as a favor to you just so that you reciprocate a favor to a “friend”.
If you hire the right expert though, your ROI will be positive even if the training or coaching is expensive.
2. Making Mistakes is the Price of Growth
The sooner you accept that you may look like a fool the better.
I made my fair share of mistakes.
Once on a public speaking arrangement, I saw a reputable person making a strange expression while I was talking. I saw pain on his face. As I had a great professional connection with this person, I asked myself, what is going on? Am I saying something stupid? Am I stupid? Am I not worthy of his attention?
These thoughts pushed me up in my head, and my presentation just fell apart.
Afterwards, I found out that the expression signaled that he had a hard time hearing me, because the microphone was bad.
We all have our insecurities.
If you become a creator, the more popular you become, the more people will criticize you. You can be grateful for the constructive criticism coming your way, because they give you great feedback to improve your skills even further. From time to time, you may get some destructive criticism. You cannot do much with it, just accept it and forget it.
Don’t react to destructive criticism. As my method acting teacher says, “if you play with pigs, two things happen: they enjoy it very much, and you get dirty”.
How often do you get criticized? I have had hundreds of thousands of page views, and got maybe three or four people destructively criticizing me in total. Is it worth creating things for 99.99% of your audience and not worrying about the 0.01%?
Real progress happens when you allow yourself to make mistakes.
3. Your Failed Attempts are not Equal to You
If you fail at the job interview, fail at a certification, fail at passing a test, it doesn’t mean anything. It just reflects one temporary opinion of a person, a grading algorithm, or an institute.
You are just as worthy of love and you should have just as much self-worth as any other person is entitled to on this planet. You are not inferior because you didn’t pass a job interview. You are not superior just because you passed a hard interview.
Don’t put your self-esteem at the mercy of your interviewers or teachers. You are enough. Unconditionally.
Your actions determine your results, but there is a clear difference between you and your actions.
Your mindset and your methods determine how well you learn.
4. Questions Make You Think
During pair programming and knowledge transfer sessions, I have seen a frequent phenomenon of people becoming defensive when they don’t know something. A lot of software developers pretend that they know something they don’t.
The necessary condition for making progress is to let your guards down.
You don’t have to know the answer to anything. Questions just make you think. That’s the point of a question.
Even during an exam, if you don’t know the answer to a question, admit it, and announce that you would like to think a bit and see whether you can connect the dots and derive the answer to the question. Often times, your thought process will not lead to the answer, but you still demonstrate enough value with your thoughts to cooperate with your examiner. People want to help people who are like themselves. Your examiner knows the topic inside out. If you think along, you demonstrate these skills.
Some of my biggest aha moments came during exams and job interviews. As I matured, I started treating some of these opportunities as free one on one coaching. I enjoyed every challenge I got, because I could grow.
Yes, you read it right. Learning can be a lot of fun. Let’s see why.
5. Learning is Fun
Have you ever noticed that you learn, experiment, find connections between topics you are mastering, and all of a sudden, you find out that hours have passed without you noticing it?
Chances are, you were in a state Mihály Csíkszentmihályi calls flow state. He even wrote a book with the title Flow. This special experience provides you with optimal experience, where you are deeply immersed in an activity. When you experience flow, you stop sensing how time passes.
Based on research cited in the book Flow, involving many subjects wearing a beeping device, scientists concluded which activities caused the highest level of overall satisfaction and happiness in the lives of test subjects. Obviously, things like eating in the companion of other people and sex ranked really high, but besides these clearly enjoyable activities, flow ranked number one.
This is a very important conclusion determining your learning mindset.
If you experience flow while learning, you experience happiness to the extent that you don’t want to do anything else, but continuing your immersive experience.
This is the secret of great learners who can pass any exams with the best grade, while other people fail at the same exam, even though they study five times more. I am glad I discovered this mindset in practice without knowing what the flow state is.
Some people go the other way. They discipline themselves to success by beating themselves up on a constant basis. Hard discipline may only work in the short run. In the long run, it is impossible to beat someone in flow if you just use willpower and discipline to continue learning something that you don’t want. Sooner than later, you will rebel and quit.
A healthy learning process looks as follows: If you are invested in what you want to learn, because your career depends on it, and you have to show the results to other people, it is inevitable that sooner or later you will relate to the topic as something familiar. The more familiar the subject is, the more you will like it. The more you like it, the higher your chances are for a real flow experience. The more time you spend in flow, the more you want to stay in flow.
No wonder why mindset is more important than strategies.
Why make your life hard if you can take it easy and learn a lot faster?
6. You Are Your Best Teacher
People learn differently, they have different background, knowledge.
Give the same book to two people, and they summarize it in completely different ways. In some cases, we may even draw different conclusions.
You know what works the best for you. No-one else does. Sometimes you have to override your coach’s judgement. Even if they have the best intention, sometimes they are just not aware of the struggle you are going through, because they have never been in your shoes. Others have been in your shoes, but it was a long time ago, and they don’t remember the struggles anymore.
Think about it. If you want to lose fat and grow muscle, do you go to a PhD in nutrition or biology to improve your situation? Similarly, if you are a software developer and you want to learn how to code better, would you approach a developer who is slightly more senior than you, or a CTO, who may be able to code really well, but he is lacking the practice, because he hasn’t written much code in the last ten years?
Learning is counter-intuitive.
You may think you are doing it the best if you advance in the material fast, and go cover to cover. Unfortunately, this is one of the worst things you can do.
If you want to quickly improve your situation, improve some quick wins such as creating a learning plan, increasing your attention span with some easy techniques, or experimenting with what you learned.
Above all, be a creator, not just a consumer. Any material you consume should be utilized in practice. If other people can also see your creation, even better.
The most meaningful gains in learning come once you also work on mindset. You are capable of becoming a superlearner by reframing learning one of the best experiences you can enjoy in this planet. Once you get rid of fear and anxiety connected to making mistakes, you let go of self-consciousness, and you can focus on creating a flow experience for yourself, in the way how you want to learn.
If you implement some changes in your professional life inspired by article, you may eliminate years of trial and error in your professional career.