Reader small image

You're reading from  Developer Career Masterplan

Product typeBook
Published inSep 2023
PublisherPackt
ISBN-139781801818704
Edition1st Edition
Right arrow
Authors (2):
Heather VanCura
Heather VanCura
author image
Heather VanCura

Heather VanCura is a Senior Director at Oracle in the Standards Strategy & Architecture team. She is the Director and Chairperson of the Java Community Process (JCP) program. In this role she leads the organization and chairs the JCP Executive Committee, composed of top global enterprises in the world. She serves as an international speaker, and an organizer of developer events around the world, engaging with open source groups and user groups. She regularly mentors developers at all career levels, leads coding workshops that extend into local communities to inspire young developers from diverse backgrounds, and delivers keynote presentations on these topics, including her signature series: How to Ally for Diversity & Women in Tech. Heather has worked with developers and technology executives for the past twenty years at Oracle, Sun Microsystems and at SCO Unix. She has served on the boards of Dress for Success and FIRST LEGO League NorCal, and regularly volunteers with organizations such as Andela, Rippleworks, Women Who Code, IEEE Women in Engineering, Anita Borg, and Professional BusinessWomen of California.
Read more about Heather VanCura

Bruno Souza
Bruno Souza
author image
Bruno Souza

Bruno Souza is a Java Developer and Open Source Evangelist. As founder and coordinator of SouJava (Sociedade de Usuários da Tecnologia Java; Java Technology Users Society) and leader of the Worldwide Java User Groups Community at Java.net, Bruno helped in the creation and organization of hundreds of JUGs worldwide. A Java Developer since the earliest days of the technology, Bruno took part in some of the largest Java projects in Brazil. Bruno is a Principal Consultant at Summa Technologies and has extensive experience in large projects in the Government, finance and service industries. A Cloud Expert at ToolsCloud, he promotes and develops cloud-based systems using Java. Nurturing developer communities is a personal passion, and Bruno worked actively with Java open source communities and projects. Bruno Souza is an Honorary Director of the Open Source Initiative (OSI), President of the innovation-focused Campus Party Institute, and Coordinator of Nuvem, the Cloud Computing Lab of LSI/USP. When not in front of a computer, Bruno enjoys time with his family in a little hideout near Sâo Paulo. An amateur in many things - photographer, puppeteer, father - he strives to excel in some of them.
Read more about Bruno Souza

View More author details
Right arrow

Knowledge versus skills

Developers around the world ask us a quite common question: How can we keep up with current, ever-changing technology? Developers spend many hours every week trying to do exactly that: learn about technologies, frameworks, APIs, languages, and tools that pop up all the time, hoping that this will amount to keeping up to date with technology.

The problems with this approach are multiple:

  • There are too many things happening at the same time, and it is impossible to know which ones are the most important
  • Trying to learn many things at once is confusing and you end up feeling tired and overwhelmed by the number of things that need to be done
  • Forcing yourself to spend many hours a day doing something that seems never-ending is a recipe for frustration

But there is one thing that gets the crown for being the most frustrating:

  • Learning many things that you will not apply right now is not only superficial but the knowledge will neither last nor will it be useful for long

When you learn a new skill, think about how you will apply that skill. Actively search for a way to incorporate your new skill into your day-to-day coding projects. Using the skills you gain right away will help you to build the muscle memory for the new skill and assimilate it into your library of knowledge.

Have you ever spent hours learning something that you are not using in a project right now, and a few months later, when you need it, you remember next to nothing, and have to refresh it? And does that refreshing feel like almost having to relearn everything? There is a reason for that feeling and it is the difference between knowledge and skills.

An effective way to think about knowledge is that it is a collection of memories that are disconnected from each other. Because they are disconnected, it takes some time for you to remember those things when you need them. And once you recover one memory, it does not help you recover other memories. This is like learning about the history of bicycles and how they were invented. Although you may love bikes, it is hard to remember the names and dates and who did what. There is a better way.

Have you ever heard the popular saying that goes like this: once you learn how to ride a bicycle, you never forget? This is because riding a bicycle is not knowledge; it’s a skill. An effective way to think about skills is that they are collections of memories that are connected to each other. Once you recover one of those memories, they all come together and are accessed in a much faster way by your brain.

That is why, once you acquire the skill, you just sit on the bicycle and go. You do not need to remember each fact about riding a bike. It just comes to you, without effort. The most important thing about skills for you to keep in mind is that although you can acquire knowledge by reading or listening, you can only develop skills by doing. There is no amount of reading, listening, watching videos, or following amazing tutorials that will ever get you to ride a bicycle. The only way is to go down to the park and try, fall, try again, and eventually, do it.

This is the same for every developer skill that you want to master. To really learn something, you must do things, instead of simply studying to acquire the knowledge.

When you write your CV or resume or prepare your LinkedIn profile, do you list in it all the books you read and YouTube videos you watched? Do you list all the knowledge you have? Or do you put more focus on the projects you worked on and the experiences you acquired?

Even when just starting, you will clearly be better off including everything you did, even if they were just personal and volunteer projects, because, at the end of the day, it is your experience and skills that really matter.

We started this chapter by talking about how developers spend a lot of time trying to keep up to date, so does the discussion around skills just make it worse? We must spend time keeping up to date, but the outcome we desire is to gain more skills. As we gain skills, we must still do our day-to-day things, so it will take more time, not less!

Sometimes, in order to do things, you need to develop a strategy for doing so. This reminds us of a developer we know named Maryna Savchenko. She is a software engineer, based in Germany, and a true believer in software craftsmanship, clean code, and TDD. She finds intellectual fulfillment in accomplishing hard tasks and is passionate about acquiring and improving skills. When we asked her to share a story with us about learning continuously and shaping her career, she shared that what really helped her in her learning journey is a book entitled A Mind for Numbers, by Barbara Oakley. By reading this book, she figured out her own “learning framework.” Understanding how she learns best helped her to avoid frustration and keep being motivated during learning complex topics. Understanding the best way to learn new skills and gain experience by doing is a crucial step as you continue your path for learning. Let’s hear some more from Mayrna.

After leaving Kharkiv National University of Radio Electronics with a bachelor’s degree in computer engineering, I did not work as a software engineer. I was told that “I do not have it.” And I strongly believed that for some time. When I was offered a job in application support at a software development company, I was glad. I worked hard. I learned accounting by myself (to understand enterprise resource planning systems better) and passed four certifications, only to realize that I was learning the wrong thing. I learned the hard way how focusing on the right thing matters! Why was it wrong? Well, that technology (1C Enterprise) was limited to a number of countries (Ukraine, Russia, Belarus, and Kazakhstan). I could not reuse my knowledge, and working for a company with headquarters in Russia was not right after Russian-Ukrainian War started in 2014. In addition to that, I was making less and less money every day because of inflation. I was paying full price for my wrong decision and for listening too much to other people. At this point in time, I did the first analysis of the Java ecosystem and thought that it may be a good way forward. In the meantime, my husband and I decided to move to Poland from Ukraine. I realized at this time that I needed to think hard about what to do and what to learn next. After one more analysis of the market and technologies, I was sure that Java was a good choice and decided to become a Java programmer. Finding a job abroad without relevant experience is not an easy task. You need to be better than local candidates and prove it. In my case, I needed to prove it to myself also. So, I needed to learn a lot of things, such as the language itself, frameworks, build tools, testing frameworks, databases, design patterns, and so on. In the beginning, I was very slow, ineffective, and overwhelmed. So, I googled how other people learn. Many said they “just learn” and that is it. After some searching, I found Barbara Oakley’s book and it was full of the advice I needed. I also discovered a rich and diverse software engineering community (including Java champions, Microsoft MVP people, experienced software engineers, techno bloggers, and tech educators). It gave me an understanding of what I was doing wrong, and I started to believe in my plan. But looking for a software developer job in Poland was not successful for me. I had only one technical interview. When I tried to send my CV to Germany, I realized how geography matters! From sending 13 CVs, I got 6 responses, 2 onsite interviews, and 1 job offer. And we were on our way to a new country. In Germany, I still needed to learn a lot to level up, as well as the German language. Having a learning framework gave me the right tools and confidence to proceed. Last year, I got promoted to mid-level and started blogging (https://savchenko.tech/). Now, I am living in Munich and on my way to improving my career.

As Mayrna’s story illustrates, sometimes you have to find your inspiration and curiosity to continuously learn. Next, we will discuss how to find focus and priorities to help us identify the skills we need to keep up to date.

Previous PageNext Page
You have been reading a chapter from
Developer Career Masterplan
Published in: Sep 2023Publisher: PacktISBN-13: 9781801818704
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Authors (2)

author image
Heather VanCura

Heather VanCura is a Senior Director at Oracle in the Standards Strategy & Architecture team. She is the Director and Chairperson of the Java Community Process (JCP) program. In this role she leads the organization and chairs the JCP Executive Committee, composed of top global enterprises in the world. She serves as an international speaker, and an organizer of developer events around the world, engaging with open source groups and user groups. She regularly mentors developers at all career levels, leads coding workshops that extend into local communities to inspire young developers from diverse backgrounds, and delivers keynote presentations on these topics, including her signature series: How to Ally for Diversity & Women in Tech. Heather has worked with developers and technology executives for the past twenty years at Oracle, Sun Microsystems and at SCO Unix. She has served on the boards of Dress for Success and FIRST LEGO League NorCal, and regularly volunteers with organizations such as Andela, Rippleworks, Women Who Code, IEEE Women in Engineering, Anita Borg, and Professional BusinessWomen of California.
Read more about Heather VanCura

author image
Bruno Souza

Bruno Souza is a Java Developer and Open Source Evangelist. As founder and coordinator of SouJava (Sociedade de Usuários da Tecnologia Java; Java Technology Users Society) and leader of the Worldwide Java User Groups Community at Java.net, Bruno helped in the creation and organization of hundreds of JUGs worldwide. A Java Developer since the earliest days of the technology, Bruno took part in some of the largest Java projects in Brazil. Bruno is a Principal Consultant at Summa Technologies and has extensive experience in large projects in the Government, finance and service industries. A Cloud Expert at ToolsCloud, he promotes and develops cloud-based systems using Java. Nurturing developer communities is a personal passion, and Bruno worked actively with Java open source communities and projects. Bruno Souza is an Honorary Director of the Open Source Initiative (OSI), President of the innovation-focused Campus Party Institute, and Coordinator of Nuvem, the Cloud Computing Lab of LSI/USP. When not in front of a computer, Bruno enjoys time with his family in a little hideout near Sâo Paulo. An amateur in many things - photographer, puppeteer, father - he strives to excel in some of them.
Read more about Bruno Souza