Tips For First-time Software Developers

tips for software developers 2

So, you’ve been recently hired in your first software development position? Congratulations!

By now you know that the software development industry is an ever-changing and fast-paced environment. Trying to keep-up with new tools and ideas can be overwhelming!

And chances are that you’re specifically overwhelmed by the sheer scale of how much code your company has created. You’re asking yourself: How are you ever going to succeed, or keep up with the demand? Well, I can help you answer those questions with a positive mindset through tips based on my own experience as a developer.

In the following article, we’ll tackle:

  • The differences between a “coder” and a software developer professional
  • Expectations and tips around what it takes to be a software developer
  • Practical career tips for those just starting as a developer

Your Transition as a New Software Developer

The way I like to picture the transition into your software development career is by thinking about transitioning from a “coder” to a developer.

Before entering the industry, many new software developers learned how to code on their own.  But coding on your own and building smaller personal projects are not the same as being a professional software developer.

Let’s compare the two.

“Coder”

Most coders have a few traits that work well for them. These include knowing a couple programming languages well, possible in-depth knowledge of syntax, the ability to solve problems that arise in smaller projects and codebases, and a theoretical understanding of design patterns and principles. But it’s not enough to get you totally ready for full-time software development.

Developer

Being a new software developer, on the other hand, involves much more than pumping out code. You are expected to take business requirements and turn them into applications and tools that solve real-world problems for real people.

Here are a few traits that developers must have which differentiate them from “coders” and which you ought to be prepared for:

You’ll need to be able to communicate clearly with your teammates

You need to be aware of what matters when speaking and having discussions with your team. If they’re asking you to discuss what tasks you are working on today, don’t take five minutes to explain in-depth what your tasks are. Instead, briefly indicate what general tasks you are working on.

For example, the following would be an appropriate update for your teammates:

“I’m going to fix a bug related to the main menu on Android devices. Then I’ll continue working on the new email template for the marketing team.”

I’ve seen many developers go “off the deep-end” and spend minutes talking about small details that no one has any idea about. Don’t do this.

You’ll need to have emotional intelligence to handle “people-problems”

Sometimes team members have a bad day. Don’t we all?

To really understand your teammates you must have empathy for them. Try to encourage them when possible.

If you do have problems with them that are logical and obvious, the best thing to do is address them with the person one-on-one.

Don’t forget that your managers are there to help you with these types of issues.

You’ll work on projects that are too large to “fit in your head”

Most junior developers will be overwhelmed when they get a glance of the codebase they are going to be working on!

When I was first hired as a junior developer, I was expected to start working with a database that had over 700 tables! That’s not even including the codebase! Needless to say — I was overwhelmed.

You will be overwhelmed.

It’s OK.

Expect to take a long time to complete tasks during your first few months. That’s normal!

You’ll have to learn to tackle a large problem by breaking it down into smaller pieces.

My advice: Write it down.

Figure out a strategy on paper. What’s the first thing you need to do? Write it down.

Then figure out the next part. Write it down.

Here are some things you might want to consider jotting down:

  • Any database tables or columns you will need to change
  • Which code files you might need to change or investigate
  • Any design patterns that might help
  • Any questions you’ll have to come back to
  • Any unclear business requirements or business rules

Your peers will appreciate your work much more if you have these types of design-related questions for them before beginning to code.

No one likes it when someone dives head-first into the code only to figure out — sometimes days into it — that they took the wrong approach.

It’s also helpful to bundle all your research and questions into one document so that you can schedule a meeting with your mentor or superior to discuss.

Understanding how to connect various systems together

Similar to the previous point — developers need to be skilled in connecting various systems together.

This might be connecting the front-end to a back-end for a web-based application.

It might be connecting a mobile application to an API.

Sometimes it’ll be connecting two different applications together by using various tools.

Use the same advice I offered for the previous point: Write out your game plan before beginning to code.

More Practical Tips

I also want to share more general practical tips that will help you avoid some mistakes I made. These will help set you on the right track early on in your career!

Keep Silent For A Few Months

I learned this the hard way.

During the few weeks into my first developer role, I had seen some code that I didn’t understand — so I researched it. I discovered that it was a very inefficient way to do the task in question.

I relayed this finding to my manager via email.

I never got a response.

Why?

Because in the grand scheme of things, it didn’t matter. Yes, that piece of code was inefficient but I didn’t have an understanding of how important that small piece was in terms of the system as a whole.

Looking back, it was a pretty silly assumption. Not everything ought to be optimized!

My manager didn’t have time to deal with these insignificant “issues.” Yes, he should have responded. But it was my folly in the end!

Avoid my mistake. Just keep silent for the first few months whenever you find “issues” in the code you are working on.

Truth be told: You need to build trust before being able to point out issues in the code anyways.

Excel with what you are asked to do. Eventually people will notice. Then you’ll have the trust from your peers and they will listen when you really do find some issues or have suggestions.

Keep An Achievements Library

Keep a journal or spreadsheet of every major task and project that you successfully complete. If possible, include any metrics that go along with that task.

For example:

  • “I improved the speed of a critical SQL query X by over 200%”
  • “Completed feature X which lead to X number of new clients for the company over the next 6 months”

These will come in handy when you decide to build your resume and LinkedIn profile for the next part of your career.

It’s also great to have so you can remind yourself of what you’ve done!

Learn How To Research

One of the essential skills you will need as a developer is knowing how to research questions you have about solving specific problems such as finding out language syntax.

My best advice, which may seem strange at first glance, is to become an avid reader of books.

If you stretch your “reading muscles,” you’ll learn how to skim through reading materials quicker and be able to assess whether a particular article or answer to your question is worthwhile.

A number of years ago before I was a developer I really struggled with reading. But I was intentional about starting with small books about simple ideas, such as philosophical topics. Eventually I moved up to larger and more complicated books.

Today I can easily skim through articles to find what I’m looking for. But it took a lot of practice.

Don’t forget that Google is your friend. Yes, even the most seasoned developer still have use Google to research issues!

Get Involved In The Community

One of the things I regret not doing sooner in my career is getting involved in developer communities. They help you find jobs, make new friends, and generally make your career more enjoyable and useful.

Figure out who the “best” developers are for your particular field and interests. Follow them on Twitter and start reading and commenting on their blogs.

Other things you can do might include:

  • Start contributing to open source projects
  • Start an open source project
  • Attend local user groups and conferences

Specialize

The IT field is growing so fast. There’s just too much to learn.

Knowing a little bit about everything doesn’t make you stick out.

You need to become the “go-to” for some topic or area in order to stand out in your company, and in the community as a whole.

Some ideas to get started might be:

  • Front-end development with react
  • Building RESTful APIs
  • Building functional prototypes (with vuejs, react, etc.)
  • .NET performance optimizations
  • Cross-platform mobile development with Ionic

If you discover a gap in the knowledge of your company then jump on it! Become the expert on that subject or tool. That will make you stand out!

Get Moving!

Now you’re armed with some practical tools and tips to start accelerating your career. Get out there and put them into practice!

What do you think?

19 points
Upvote Downvote

Written by James Hickey

Experienced .NET developer with an entrepreneurial mindset. James has been featured on various Microsoft publications including the official Microsoft ASP.NET website, Microsoft’s .NET engineering team’s blog and .NET Foundation Community Standup.

You can find him on Twitter @jamesmh_dev

Leave a Reply