Main image of article Advice for New Software Developers and Engineers

So you’re becoming a software developer. What do you need to know about the profession? How can you put yourself in a great position to succeed?

Breaking into software development is exciting, but the thrill may fade if you focus only on the best ways to code an app, service or website. To truly succeed as a software developer, you’ll need to understand complex systems, use your “soft skills” to effectively collaborate with teams, and constantly learn new technical skills. Let’s break down some tips for how new software developers can succeed.

No Software Development Job is ‘Just Programming’

Decades ago, people who wrote software were called programmers, and their jobs were mostly centered around coding. But software has become far more complex, and now developers (which seems to have replaced ‘programmer’ as the proper term for coding-related professions) must often have domain-specific knowledge, especially if they work in a specialized industry such as finance.

Luckily, most businesses don’t expect you to know everything about an industry or company upon joining. But just keep in mind that a coding job is never just about coding. As you explore fields:

  • Research: Understand the specific skills and technologies each path demands.
  • Build a portfolio: Showcase your projects, even personal ones, highlighting your strengths.
  • Network: Connect with developers in your target area, attend meetups, and participate in online communities.

You’ll Need to Specialize

Right now, web development is incredibly popular among software developers; before that, it was mobile and desktop development. The next big trend will likely involve building apps and services around artificial intelligence (A.I.) (if you haven't tried it yet, have a play with ChatGPT or Bard to get a feel for what A.I. can do).

Within these specializations, developers can pursue any number of jobs. For example, web development includes front-end engineer, back-end engineer, full stack engineer and DevOps engineer. A front-end engineer is often just a web developer who writes JavaScript as well as HTML/CSS, while a back-end engineer deals with databases and server code, and a full-stack engineer does both. A DevOps engineer creates or modifies processes, tools, and methodologies from coding and deployment, to maintenance and updates.

Specializing in a particular subset of coding can open up all kinds of opportunities, as companies are often looking for developers and engineers who are very skilled in one particular aspect of the tech stack. As you debate about what to specialize in, consider the following:

  • Embrace new technologies: Explore frameworks, cloud platforms, and emerging trends relevant to your field.
  • Master data structures and algorithms: Understanding these fundamentals strengthens your problem-solving abilities.
  • Learn design principles: Create user-friendly and intuitive interfaces, even if you're not a front-end developer.
  • Stay curious: Read industry publications, attend conferences, and participate in online courses to stay updated.

Soft Skills and Secondary Technologies

Most employers want “team players.” Aside from technical abilities, they also want their software developers and engineers to possess “soft skills” such as empathy and communication. The ability to work in teams and communicate effectively is also key, especially if you must convey information to people who aren’t necessarily very technical. Here’s what you need to know:

  • Communication: Clearly articulate technical concepts to both technical and non-technical audiences.
  • Teamwork: Collaborate effectively, respecting diverse perspectives and fostering a positive team environment.
  • Time management: Juggle multiple tasks efficiently and meet deadlines consistently.
  • Problem-solving: Approach challenges creatively and come up with innovative solutions.

On the skills front, it’s also important to learn the subsidiary tools and apps that power a tech stack, as you’ll need to integrate them into whatever you’re building. For example, many companies rely on version control systems, bug-tracking, issue-tracking and project-management software applications such as JIRA (if you don't know any version control system, start by learning Git). Bigger companies may use Enterprise VCS like Perforce or TFS.

Knowing SQL is a very good plus on your CV, as it allows you to work with relational databases, and it's worth investing your time and money in a book or online training course to get you going. You can install the developer edition of SQL Server or an open-source database like MySQL/PostgreSQL on your home PC. Or an easier approach is to use websites where you can learn SQL such as with the Khan Academy or on Code Academy.

Other Things to Consider

When you start working, you'll be emailed or copied on all sorts of things, including logins, passwords, server URLs, configuration information, and more. It's worth investing a bit of time in keeping these somewhere secure that can be backed up. If the company has Microsoft Office installed, consider using Microsoft OneNote; it lets you create password-protected pages, which are useful for passwords or other information you want to keep secure.

Ask About Training

It could take years to master certain programming languages and tools. Given the increasing importance of software developers to companies’ strategies and fortunes, it’s well worth asking your employer if they’ll be willing to foot the bill for training and education. In the meantime, consider doing the following:

  • Seek opportunities to lead projects: Step outside your comfort zone and gain leadership experience.
  • Join online communities: Participate in discussions and actively listen to different viewpoints.
  • Enroll in soft skills workshops or courses: Invest in targeted training to hone specific skills.

Becoming a software developer is a learning adventure that never ends. If you embrace the challenges and develop diverse skills, you’ll have your pick of opportunities.