The Most Important Lessons I Learned as a new Developer
Tags: programming, beginners, productivity, career
Published: 2024-02-19 18:55:37

As I signed my diploma and received it from my professor, my journey as a 'real' developer began. However, I quickly realised that what earned accolades in university didn't always align with the real world. During my initial months as junior developer, I gained valuable insights and learned how to effectively work towards your goals.

At the time of writing, I work as an engineer at a medium-sized corporate company with around 1000 engineers. The platform we develop serves millions of customers, making quality a crucial part in our development process. This is also considered important during university days, but priorities differ there. It's usually a step-by-step process that is worked out to achieve quality. By being selective with your time and making optimal choices, you can prioritise productivity.

In my opinion, the following points are the key aspects that help you transition from being a graduate to a highly valuable developer. Of course, the journey is unique for everyone. Some individuals possess the communication skills and technical expertise to take the forefront, while others can excel as technical experts without having a strong opinion. Nevertheless, I see a pattern in the characteristics that every rapidly-growing engineer possesses - and I’d love to share them with you.


## Understanding your purpose
As a starting developer, it's crucial to have a clear sense of direction and purpose. If I could offer one piece of advice, it would be this: every junior engineer should start by discovering their true passion and purpose.

> Identify what drives you and makes you excited to jump out of bed each morning. What activity engrosses you so deeply that you lose track of time? What do you aspire to achieve?

Now, I understand that addressing these questions can be quite challenging and carry significant weight. And you most likely think, here we go again - these endless questions about finding your purpose - who cares? Well, I had the same mindset, however that completely changes. It's important to note that finding your purpose shouldn't feel like an obligation or burden. However, it can immensely benefit you by serving as a guiding light, helping you chart your goals.

During your university years, you were likely provided with a structured framework. Although you had some freedom to choose courses, you were still bound by a fixed schedule. But once you step into the professional world as an engineer, the possibilities open up significantly. You receive a broad education, leaving multiple paths for you to explore. Knowing your core values and purpose enables you to set goals early on, and therefore make big impact.

For instance, your purpose might revolve around making a positive impact on sustainable e-commerce. When you actively contribute to this cause and witness your efforts taking shape, it brings a profound sense of fulfilment. You remain aligned with your values, and there's no need to question what truly matters to you. However, if you find yourself drifting away from this purpose within your workplace, it becomes crucial to ask yourself, "Does this purpose still resonate with me?" Do you still see yourself reflected in the direction the company is taking, or is it time to take action?

Occasionally, it's beneficial to step back and reflect on what truly matters to you. By consciously evaluating your progress and focusing on your priorities, you can actively shape your own journey.

> Remember, discovering and staying connected to your purpose is a continual process, one that leads to personal growth and fulfilment.

As told, I used to consider this as a peripheral matter. Finding your purpose and knowing your career goals were questions I deemed impractical and too unrealistic for a starting/ young engineer to answer. However, my perspective has completely changed. When you discover what truly matters to you and what you find interesting, you can actively steer yourself in that direction. By selectively choosing learning opportunities and dedicating time to work towards this goal, you'll notice that you continue to grow effortlessly and stay motivated to pursue what you love. This results in a rapid and effective learning process. Your interest in the subject allows you to absorb information more quickly, taking you step by step closer to your initial goal.


## The importance of a growth mindset
Buzzwords, who doesn’t like them? Growth mindset; job crafting; purpose, all super cool words to use in your sentences to look knowledgable, right? It’s funny to see that these words mostly carry a negative load. Most people don’t like to think about these things since it asks questions to really think about what you’re doing at the moment, and how you can achieve new things.

One of the most crucial factors for a starting engineer is cultivating a growth mindset. Adopting a growth mindset means embracing challenges, persisting in the face of obstacles, and seeing failures as opportunities for learning and improvement.

As a junior team member, it's common to sometimes feel overwhelmed, thinking that you are far behind your teammates' level. Many refer to this as imposter syndrome (Imposter syndrome refers to the psychological phenomenon where individuals doubt their accomplishments and have a persistent fear of being exposed as a fraud, despite evidence of their competence and achievements). You may find yourself feeling uncomfortable during brainstorms or discussions because you feel like you lack the knowledge to fully participate. However, these moments are often the most valuable in your career.

> You must learn to become comfortable with the uncomfortable.

By stepping outside your comfort zone, you will discover and learn the most new things. Don't be afraid of change and challenge yourself. Be autonomous and proactive in exploring these blind spots and seek them whenever possible.

When you dive into everything with a growth mindset, you'll quickly notice how rapidly you absorb information. However, it's essential to set limits for yourself and narrow down the scope. Establish boundaries and consider what matters to you. What supports your goals and how can this knowledge contribute to the desired outcome? Gradually start seeking more and more information from your teammates, teachers, or managers.

Personally, I've always had a passion for presenting. I often receive compliments about it being one of my strengths, and people enjoy listening to my presentations. I believe that presentations are one of the most powerful tools to showcase your ideas and inspire others with your thoughts. You can have great ideas, but if you can't bring them to light, no one will know about them.

That's why it became crucial for me to choose public speaking as a goal to further explore. I strive to become a little better every day. I actively keep track of where I stand, what I'm working on, and what I still want to achieve in this area. I maintain a small file in Notion where I can hold myself accountable for my progress. By updating it weekly (max 5 minutes), all my goals stay top-of-mind, allowing me to dive right back into them the following week. Some weeks may involve more active learning moments, while others may have fewer. And that's perfectly fine! Take your time to learn new skills as long as you keep your eyes open for new learning opportunities and seize them. This way, it becomes an enjoyable learning process that keeps you easily motivated while developing yourself at a rapid pace.


## Be autonomous and proactive
For me, there are two types of developers. You have the developer who wants to be directed and does what is asked of them. This developer is usually a strong team player and successfully completes their assigned tasks.

The other type of developer is the autonomous developer who is self-reliant and actively seeks new work/ initiatives. By this, I mean they create work for themselves and don't wait for someone else to assign them something. They seek out risks, challenges, or areas for improvement in the current product and try to address them.

Despite the strong technical skills of the first type of developer - in the current market - they can get overshadowed by engineers who take the forefront or have strong opinions. In the realm of new tech talents, there is often reference to "future leaders." As an engineer, you can only distinguish yourself from the rest through your soft skills. How effectively do you communicate with others? How autonomous and self-reliant are you? Do you ask good questions and get others thinking?

Being a natural-born leader doesn't fit everyone—and don't get me wrong, it certainly doesn't have to! However, I believe that all these skills can be learned. Create a safe space where - as a junior - you have the opportunity to ask questions and initiate projects. If you find yourself stuck on something for too long, ask for help from your teammates. Try not to hold back questions on thoughts like, "Maybe I'm asking too many questions, and they doubt my level."

> Asking questions is never wrong, as long as you absorb the information and learn from it.

Additionally, many engineers fall into the trap of solely focusing on their technical skills. Learning a new coding language or refreshing their knowledge of data structures and algorithms. While these courses are incredibly valuable, they don't set you apart from the rest. My tip would be to explore what your talents are. Are you good at presenting or communicating? Then, dive deeper into these areas and take them to a higher level. These talents give you an advantage over others, and your colleagues will think of you when they need a presenter for the next occasion.

> Work must be seen.

From a young age, this is always what I’ve been told. My parents meant that it's important to gain insight into the process, and always be autonomous. What is relevant to your team/product right now, and how can you contribute to steering it? Take on tasks autonomously, initiate projects, or organise meetings/events to shed light on new things. In my opinion, this motto is crucial to every career. When you start to understand how to "see work," you will grow in productivity, seniority, and your overall career.


## Always question decisions, never settle
As a new engineer, you have an advantage: you can ask as many questions as you want. No question is too much, too crazy, or dumb. It's important that you strive to understand as much as possible about everything around you. It's widely accepted that a junior engineer has many questions, which is the main reason why teams value having a junior member. Not only do you learn from these questions, but your team also learns from them. They have to explain why they made choice X instead of choice Y. Through these "simple" questions, you learn about design choices or discover weaknesses in the system.

However, it's important to actually do something with the information provided by your team. Asking questions is one thing, but remembering and applying it yourself the next time is the next step. Your team will greatly appreciate it when they see that you understand and can apply the knowledge they've explained to you. This is considered highly valuable because it indicates that you're actively learning and becoming self-directed.

My rule of thumb is to try to find the answer yourself for at least 10 minutes. We, as developers, are proficient with Google, so make use of it. See if the answers you find align with your expectations or if you have doubts. Once you've done your homework, you can then ask your team the question. How do you perceive this? In what situations would you choose A over B? Since you have done your research on the topic, you can ask more targeted questions and better understand the considerations involved.

> Strive to get to the core of the matter so that you truly understand it.


## What are the lessons learned?
As a newly graduated developer, these lessons have been instrumental in shaping my approach to work and career growth. They have enabled me to adapt to the challenges of the industry, collaborate effectively, and continuously improve my skills. Embracing these lessons has not only made me a more proficient developer but also a more valuable team member in delivering successful projects.

- Understand your purpose: Discover your true passion and purpose as a starting developer to set clear goals and make a big impact. Stay aligned with your values and reflect on what truly matters to you.

- Cultivate a growth mindset: Embrace challenges, persist in the face of obstacles, and see failures as opportunities for learning and improvement. Stepping outside your comfort zone leads to rapid absorption of information.

- Be autonomous and proactive: Take initiative, create work for yourself, and don't wait for assignments. Develop soft skills, such as effective communication and asking good questions. Explore and enhance your unique talents.

- Always question decisions: Ask as many questions as you want and strive to understand everything around you. Apply the knowledge you gain from your team and be actively learning and self-directed. Research independently before seeking clarification from your team.

Like this type of content? 
Have a look at my blog on https://tbeeren.com 😁