How to become a software developer

How to become a software developer

Playing the piano might have more in common with writing computer code than you think. In both cases, it’s relatively easy to learn the basics: Press the right keys, and you will soon have the first results. In the beginning, your learning curve will be steep, but it can be frustrating when your progress stalls. Don't panic! Here are some tips for anyone wanting to get their developer feet wet.

You don't know what you don't know yet

Beginners often have limited know-how and lack a learning strategy. When you set out on your journey, you don't know what information you're missing. There are many different topics you could start with, but which one should be covered first? Unfortunately, beginners often get stuck early, and many hopeful careers as concert piano players or professional software developers end after a few weeks. You are probably already very interested in software development, but please don't rush, and take some time to get an overview of the topics and learning paths first.

Education vs. self-teaching

There's no right or wrong way to get into software development, just as there isn't one right way to learn to play the piano. Some developers I know have neither a degree in software engineering nor formal training, and they're great developers. Some got their bachelor's degrees to start their career, and others are self-taught professionals who decide to study later to boost their know-how.

So, what are the differences between the two approaches? When you choose the academic path, you commit time to a specific topic. It takes months or even years. The learning path is defined, and you walk it month after month without worrying about navigation. Developers with an academic background typically have broader experiences in software design and often have more practice dealing with mathematical problems than self-taught developers. On the other hand, depending on the project, many developers do not have to deal with advanced math when completing everyday tasks.

You cannot or don't want to spend several years at a university? No problem. Today, there are tons of good resources available online. Finding the right courses can take some time and effort, but e-learning platforms often provide well-prepared paths for beginners. Great examples are (my tip for absolute beginners),, and To get an overview of the topics you should learn as a developer and in what order, visit Other good ways to get started in software development are internships or joining a coding boot camp. Some courses are already suitable for teenagers! Another great option is to search for a mentor to help you get into the different topics in the best order and find helpful learning resources. To find the right person, I recommend asking your network for support.

No matter which path you choose, self-teaching is essential. Learning something new every day keeps a developer's — and a pianist's — career interesting.

You need time — a lot of time

No crash course will get you to a professional level. Do you think that Mozart played the piano so well only because he was exceptionally talented? Well, his father was a professional musician and taught him from an early age. So, when little Wolfgang Amadeus gave his first concerts, he already had a lot of piano lessons. Keep in mind that he probably had more practice than you could ever get if you took piano lessons once a week starting today. Anders Ericsson, a US psychologist, formulated the so-called 10,000-hour rule back in 1993: In his opinion, it takes 10,000 hours to become an absolute master in any field. Fortunately, you don't have to spend these hours all at once.

Create a 15-minute-a-day habit

Even if you don't like to spend months or years in higher-educational institutions, try to continuously spend time improving existing skills and learning something new. Choose a topic and invest time every day. For example, commit to 15 minutes a day for three months.

Spending 15 minutes a day for three months adds up to almost a full day dedicated to improving your skills.

In my experience, 15 minutes often fly by, and I'm sure you'll add a few minutes here and there. Even if you are tired or don't have much time today, 15 minutes should be doable. Why not go to the office 15 minutes earlier and spend time before starting to work? Or how about spending 15 minutes on your commute? You'll easily create a new habit within a few weeks. Just ensure you stick to your routine so that you won't lose momentum.

Conclusion: My 5 tips for long-term learning success

  • Set your goals: Research the skills and know-how software developers need and prepare your path to success.
  • Find your learning style: Decide on one of the various educational paths that work for your budget and lifestyle.
  • Make the time: Be aware that becoming a software developer might take a while, and be generous with yourself when planning your goals.
  • Create a learning habit: Commit to a certain amount of time every day.
  • Look into internships and apprenticeships: Follow your favorite companies to find out about opportunities for on-the-job experience.

How Frontify supports the next generation of software developers

In 2021, we decided to invest more time in training young people by offering a position as our first apprentice. Noah is our software developer apprentice, and at Frontify, he learns all the professional skills he needs during his four-year apprenticeship. Following Switzerland's dual education system, Noah spends an average of 3.5 days per week working at Frontify and 1.5 days studying in a vocational school.

I am a certified vocational trainer, and together with two mentors, I support Frontify's apprentices during their first steps into professional life. My colleague Vanessa also advances professional development at Frontify: She works part-time as a software development teacher and expert for professional exams. We are pleased to offer a second position in 2023 and give something back to the community.

Jonas Büchel
Jonas Büchel
Lead Frontend Developer