An investment in knowledge pays the best interest.
Over the years, I’ve heard complaints from different colleagues and friends, in different teams, disciplines, and companies: “I don’t get any time for further education!”. When you ask them though, who forbid them to improve their skills, the answer usually is something like: “Well, no one, but I don’t have the time and we need to finish project _____!”.
Maybe you’ve heard the following short story before:
A hitchhiker walks through the woods. Enjoying the nature, he suddenly hears someone scream and swear in anger. Coming closer to the source of the sound, he sees a lumberjack who is vividly trying to cut a tree trunk in half. As the lumberjack’s swearing doesn’t stop, the hitchhiker asks:
“What’s the issue? Can I help?”
– “My axe is blunt. It’s almost impossible to get one inch further!”
“Couldn’t you sharpen your axe?”
– “But I don’t have time! I need to cut down this tree.”
Professional training can be a complicated and quite emotional topic. Still, I dare to give you my (personal) thoughts on this topic and a couple of recommendations on how you could improve your learning.
Let’s grab a coffee and talk about: Professional training.
Learning can be much hard than solving tickets!
When you work on a feature or ticket, you know the outcome more or less. You know what the expected behavior is, or at least, you can grasp the idea of the feature and ask people who know the answers or make the decisions for you.
While learning on your own, you don’t have this scaffolding. Most times, you don’t have a specific goal and you don’t know the steps to achieve your vague outcome. For example: “I want to learn React” or “I want to learn DevOps” are no specific goals. Yet, suddenly you have the whole internet with thousands of thousands of articles, videos, books, trainings, paid and free content! But it’s hard to know where to start. And you haven’t even started learning. This was all just preparation!
Of course, some of you might have it all figured out. I just want you to acknowledge that learning something new, on your own, without a specific outcome, can be a rough start. Maybe then, does it feel easier for you to work on a ticket instead?
When you stop consistently improving, there might come a point, where new skills are needed but missing
Most professional projects don’t give you a second chance. That means, when you start a new project, you will get in a lot of trouble when you (i.e., you & your team) have never worked with the framework/technology before! Yet, at the same time, there comes the point where you can’t and shouldn’t use the same old tech stack again.
The problem here is: when the new project is started, it’s too late to start learning about the technology you need to use. These technological decision don’t fall from heaven, though. Even if you get two months of preparation, you could already be on a different level when you consistently learn and improve your skills.
Let’s face it, the IT world is moving extremely fast and you need to stay up to date, at least to a certain degree. This brings me to my third point:
It’s your personal responsibility as a professional to take time and educate yourself
While your company has an interest in keeping you up to date and well-trained, it is your personal responsibility to take care of your self-development. Technology can change, companies can go bankrupt, or close down departments, or move their IT headquarters to a different city. Maybe you decide to switch jobs. You personally must keep yourself up to date.
No one wants to be extinct.
Does it mean that your company doesn’t need to care about your training? Hell no! But it means that you need to be far more demanding to get the training you need. And you need to be very specific in what you want! Don’t put yourself in the victim role. Even your best coach can’t read your thoughts! Instead, create a plan on how you want to develop and communicate it with your colleagues, coach, or supervisor.
Strategies to get the most out of your training
Pay youself first
As mentioned before this year: work on your most important – not most urgent – tasks first! There is always so much stuff to do! The abundance of works, tasks, features, tickets, improvements, or bug fixes is so huge that professional training is possibly one of the first victims to being postponed and prioritized down. So to fight against this possibility, make learning an integral part of your daily routine. Do it at home before commuting for example, or come in earlier and do it before your first meeting. You’re a programmer – you’re good a problem solving and finding solutions! You will definitely find a way to integrate it but it is important to not move your training to the “after I’ve finished everything else”-slot which usually never happens.
Use waiting times
Another great way to squeeze in a little more time for learning is the few minutes in between. The waiting time at a doctor’s office, waiting for a colleague being late to a scheduled meeting, waiting in a queue (e.g., at the supermarket), waiting for your train to arrive, waiting for your coffee to be finished or hot water to be boiled.
Throughout your day, there are certainly a couple of options to find a few minutes to read a book, watch a video or listen to a talk/podcast. A couple of minutes here and there and suddenly you have an additional 15 minutes every day invested in learning – more than 90 hours per year!
What have you learned today?
Maybe it’s something small. Tiny even! Maybe it’s work-related, maybe it’s not. The fact is: we often don’t even realize that we are learning continuously. You might have learned to use a new framework, bundle, API, software, technology – whatever! But looking back over the last year it wasn’t what you wanted to learn and it wasn’t as significant that you really remember all the things that you’ve learned in a year.
A great way to combat this possibility is using a Learning Diary. It’s basically a book (paper, digital, doesn’t matter) where you answer one single question every day: “What have I learned today?”. Give it a try for a few days, weeks, or months and be amazed at how much you are actually learning!
Furthermore, this is a great way to reflect every evening on what you have learned. Reflecting and repeating the new knowledge in your mind helps you to memorize it better!
Sometimes it is challenging to stay committed. As mentioned earlier, it can be really tough to keep on track. What should I learn? How should I learn it? Did I get lazy and decided to work on features instead? Occasionally, you might get stuck and don’t understand a topic. Or you simply want to talk about the topic with someone.
A Learning Buddy can be a colleague, a friend, or your significant other. This really depends on their knowledge and how you want to make use of the concept. Pick someone of your own area of expertise if you want to discuss topics. Perhaps, you even want to teach each other the topics you studied. But you can also use the Learning Buddy concept to have someone who holds you accountable for your learning goals. To be more precise: you should keep each other accountable for each other’s learning goals to get the most out of this exercise.
Integrate Self-Development in your daily work
As James Clear states in his fantastic book Atomic Habits: “Forget about Setting Goals. Focus on Systems instead.” (there’s a brilliant blog post about this, too: https://jamesclear.com/goals-systems).
The idea should not be to achieve that one learning goal and then stop learning. Instead, focus on improving a little every single day!
Never. Stop. Learning.
When learning becomes a daily habit, you will find it much easier to find the time and learn something new every day. Combined with the above-mentioned tools, you’ll become a real super-learner! 😎
Use all resources you can get
Who are the experts in your social circles? Not only your friends or colleagues! What are the experts you follow on social media? Are there experts in other departments or disciplines in your company from whom you could learn?
When you analyze your surroundings, you will definitely find a lot of unused resources, talents, and experts in various areas. Use them! If you’re an inexperienced developer, for example, you have an obligation to ask stupid questions! But even when you’re already experienced in your field, the exchange of ideas and experiences is crucial.
Of course, the “higher” you reach, the more difficult it might be to get an answer. But this doesn’t mean that you shouldn’t try to kindly ask (not demand!) for help or advice. Use meetups, use Q&A sessions, go to conferences and ask speakers. In summary: use every potential resource you have to learn and gain experience. People might have traveled a similar path and learned how to avoid a few obstacles on their way. Why should you repeat their mistakes if they are avoidable?
By now, I don’t even have to quote studies anymore. Everyone has experienced or heard about this one: When you teach your own knowledge to others it will solidify and enlarge your own knowledge.
Let’s say, you read a book about Test-Driven Development. It’s a huge difference using it on your own, explaining it to others, and reflecting on the benefits and disadvantages of it. Even the simplest programming paradigms you’ve used for years might be tough to explain comprehensibly. But at the same time, it might open your eyes and make you see the topic from a different angle.
This doesn’t mean that you all need to become conference speakers now. I know a lot of people having issues with public speaking. You can get the same effect when you tell your co-workers about it at lunch. Or talk about it in a 1on1 session, heck, tell your significant other about this amazing thing that you just discovered! The size of your audience or the situation don’t really matter. It’s about getting your thoughts back out of your head and into words. You could even write a blog post about it 😉
Additionally, I just want to acknowledge how much most companies are already doing to satisfy their developers’ hunger for learning.
- Conferences & Workshops That’s an obvious point. A lot of companies will send you to conferences and/or workshops about the technology you’re using or that you will be using in the near future.
- External Trainers Not that obvious, but I know a few companies that invite external experts to the company to do weekly team- and 1on1-sessions with the developers. This is extremely helpful when you want to get an independent opinion, but also if your company’s main expertise might not be IT.
- Communities / Chapters / Gatherings There are hundreds of different names for this. Yet, the idea is very similar: Group your developers with the same technology stack or programming language. Put them in a meeting and let them talk about awesome tech. This might include presentations about current projects, Post Mortems, or discussions about new technology, experience with some 3rd party libraries, or programming methodologies.
- DevWeek The Endava DevWeek is awesome! Nevertheless, we’re not the only company doing such events. It’s mainly like an internal conference with local and global events, talks about technical and non-technical topics, and coding challenges. These events usually take a couple of days (or a week) and include fun events like competing in Code Golfing or Speed Coding with colleagues from other disciplines.
- Innovation Lab The Innovation Lab is something I have only seen/heard of at Endava. Nevertheless, I’m sure there are similar, internal, hackathon-style events in other companies. The Innovation Lab gives developers (and anyone interested) the opportunity to work on their own, original ideas and pitch their projects on a local and then global stage.
- Career Coaches In addition to community events, there are also 1on1s concerning your personal development in many companies. For many companies, this means, your supervisor has a talk with you about your goals and future development. On top, you might have a talk with your technical supervisor if they are not the same person. What I really like about the concept of “Career Coaches” is that you’re not talking with your supervisor but an independent co-worker. This creates a safe space to talk about technical- as well as team issues with someone outside of your team. Your coach is there to find the perfect path for you. Oftentimes, they already traveled the path that you chose for your professional development and can give you a lot of advice from their own experience (see “Use all resources you can get” above).
- Professional Day Call it Google Friday, 20% Project, ThinkFridays, or “Professional Day”. There are many names and variations of this but the basic idea is the same: You should spend a little time working on something different than your normal project(s). It could be an unofficial feature, a side-project, learning new technology. The idea is to spark creativity and give you time to learn and improve your skills.
There is so much to learn and only so little time every day. I personally think consistent learning and professional, as well as, personal development are crucial elements to progress in your career path. That being said, it should be your personal responsibility to find time for improving your skills. As noted above, companies are already investing a lot in your professional development.
Don’t slip into the role of the victim! Be courageous and demand time for your professional development (if necessary). And then sit your ass down and study!
Happy Learning everyone 😉