Getting started in software engineering can be intimidating, especially when there are so many different factors to consider: What languages you should learn, what qualifications you’ll need, which organisations you can trust to effectively upskill through, and more. Here we’ll look at seven steps you can take to get started as a software engineer from WeThinkCode_.
WeThinkCode_ is a software engineering training academy in South Africa. They have a 93% success rate placing their graduate software engineers into permanent employment. They offer a 16-month software development program in which individuals learn how to code so that they’re ready to enter the workforce.
1. Figure out what you want to do in software engineering
Think about your dream role
You need to plan this process around the career you want, which includes what kind of role you want to fill, such as full stack engineer, UX designer, or data scientist. Software engineering has a variety of jobs to offer.
WeThinkCode_ encourages their students to determine what they want to do once they complete their learning journey:
“Start by figuring out what you are actually passionate about in software development. Because if you know that, it’ll make it much easier to know what research you need to do and where to focus in your journey to becoming a developer.”
Take a look at different job specs and see what interests you the most. Are you passionate about mobile app development? Then look into Android and iOS engineer job specs. If you still feel it’ll be a great fit for you, take note of what skills you’ll need to secure the job. It’ll help you later on when you’re determining how to go about learning these skills.
Start with the following OfferZen articles, which include companies currently hiring with details about each company and their open positions:
- Top companies currently hiring developers in Germany
- Top companies currently hiring Python developers in Germany
- Top companies currently hiring developers in the Netherlands
- Top companies currently hiring React developers in the Netherlands
You can check out the list of companies that use OfferZen, explore other job listing boards or chat to developers in your network. The more information about potential employers you can gather, the better.
Research your ideal industry
There are also multiple industries to choose from. You may want to explore the AI industry, considering 50% of South African developers say it’s the most promising in 2023. Perhaps you’d prefer to focus on healthcare, green tech, Fintech or eCommerce.
Whatever sparks your interest, do some research on the well-known and trending companies in those industries. Most companies will have a job listing board on their website. See if there’s currently an opening for your ideal role, or email them and ask what kinds of skills they require for that role.
If you have a few dream companies in mind, you already want to understand what they’re looking for, including technical and soft skills, so you can work towards it throughout your upskilling process.
2. Establish the right mindset: problem solving, passion and perseverance
In your application, WeThinkCode_ doesn't test your coding skills since you require none to join the program. Rather, they test your ways of thinking. Applicants who can problem solve and think critically are accepted into the course, which is tested as the first step in the application process.
You don’t need to be extremely well-versed in Mathematics or Science, which is a common misconception WeThinkCode_ points out:
“There are still a lot of other skills you need to be a successful developer. You’ll need to be able to work with people, understand what people require from you to actually build and create what they need. We can teach the fundamentals of coding, but being able to problem solve is essential.”
Besides problem solving and critical thinking, WeThinkCode_ say perseverance and having a passion for development are beneficial if you’re looking to start a career as a programmer:
“You need to know that you’re disciplined enough to actually go forth and become a developer, which takes a lot of perseverance and passion. Nobody is going to micromanage you. You need to have strength to push yourself.”
Upskilling to become a developer is not a fast process. It takes hours of work and dedication. Passion and perseverance will ensure you reach your goals.
3. Decide on the programming language you want to begin with
Choosing a programming language to start off in can be challenging, but if you already know what kinds of roles you’re prioritising, it’s easier to determine what tools you need to learn.
For example, if your heart is set on getting into the AI industry, learning Python will be your first step. Besides AI, Python is a great first programming language to learn since its syntax is similar to spoken English. It’s also used in data engineering, application and web development, so you could easily pivot if you change your focus.
WeThinkCode_ start their students off in Python and from there they teach coding in Java. They teach these languages first because of their relevance to the South African market. There is also an option in your second year to undertake a different language elective.
Don’t be worried if you’re unsure of your first programming language choice. WeThinkCode_ notes that you’ll be set up to code in any language once you understand the fundamentals of coding:
“The nice thing about WeThinkCode_ is that no matter the language we teach, you’ll learn how to adapt to any language very quickly as a software developer. As long as you understand the fundamentals of programming, you’ll be able to code in any language.”
Considering how dynamic the industry is and with programming languages and tools constantly being released and updated, learning to adapt will be paramount to succeeding as a developer.
4. Find the education method that works for you
There are many education options out there in the current market. So, it can feel overwhelming to figure out what will help you land your dream job. Your two main choices will be between in-person and remote set-ups.
In-person education: Universities and training academies like WeThinkCode_
One of the great things about a career in software engineering is that a degree is not essential for most jobs. We've found that practical experience can be more useful in getting your foot in the door.
Through WeThinkCode_, you graduate with a level five NQF certificate in information systems. As part of your qualification, you’ll complete projects that will equip you with practical experience in software engineering. This is something their company partners appreciate about their graduates:
“Our partners are often impressed with how quickly our students adapt to the professional space. We’ve tried to simulate a work environment in our program, so our students can adjust to their new jobs faster than someone coming from university who doesn’t necessarily have these skills.”
Explore WeThinkCode_ and the successful course they have to offer here. They don’t rely on traditional learning methods that are often theoretically based. Instead, they try simulate a work environment:
- There are no lectures or lecturers, but rather workshops and mentors.
- There’s plenty of teamwork, project building and accessible resources.
- The students work 40-hour weeks, just like a usual job.
So it’s not entirely necessary to have a university degree to get a job as a developer. There may still be companies out there that require one, and if it’s your dream company then you have the answer to what education route you should take. However, if you present your skills well and show that you can do the job, it likely won’t matter to most tech companies.
Remotely-based education: Online courses and self-learning
If you’re only able to upskill remotely, there are online courses available, sometimes at no cost at all. Check out Udemy and Coursera for structured online courses.
If you fully understand what you need to learn to secure your dream developer job, you can take a deep dive into YouTube for more unstructured learning. This can be challenging if you’re starting with no coding experience as it’s likely you miss out on key learnings. You may find there are YouTubers out there with courses in the form of playlists, which can help.
If you choose the self-learning option, join communities of people either doing the same or are already experts in the field. They may have meetups where you can ask questions, as well as network.
Check out Meetup for opportunities to connect with like-minded people either in-person or on online platforms.
5. Build your portfolio throughout your learning journey
WeThinkCode_ encourages their students to start working on their portfolio the moment they join the program:
“We tell our students to set up a LinkedIn profile (as a lot of our partners check for these), have a GitHub account where they can show hiring managers the type of work they’ve done, develop a personal website adding in their other social media profile links, their projects and a little more about themselves.”
Building your online presence from the moment you kickstart your software engineering journey is essential. Hiring managers will be more impressed with a junior developer that has a curated online presence as it showcases the passion you have for your career.
They also encourage their students to attend conferences to network, work on projects on the side, such as hackathons, and include these on their profiles:
“It’s a nice way to show the level of competence and that you are able to solve real-life problems.”
Throughout your learning journey, keep track of all the projects you work on. If you can choose the focus of your projects, try work on something you’re passionate about. It’ll make it easier to speak to a hiring manager, and the hiring manager will likely be impressed by the passion that comes across.
6. Work on a project with a team
Working as part of a team is an essential skill to becoming a professional developer. Unless you are handling all parts of the development process, from backend to frontend to design to project management (which is unlikely, especially as a junior developer), you’ll need to collaborate with others in building software.
WeThinkCode_ assesses their applicant’s team player abilities before accepting them into the course:
“As a programmer, you’ll be working in teams most of the time. So we judge our applicants based on their interpersonal skills: how they work in a group.”
Hiring managers will assess your communication skills in interviews as they aren’t just looking for technical skills. It’s important to showcase your interpersonal skills proving you can work as part of a team.
They run a six-day bootcamp at their main campuses for those that pass the problem solving and critical thinking assessment. Only those that receive good feedback from their peers, mentors and reviewers are accepted into the course, as they deem these essential skills to become a software engineer successfully.
7. Gain professional experience
At the end of WeThinkCode_’s course, they assign students to an internship with one of their partners:
“Our students are allocated to a four-month internship to get actual work experience with one of our sponsors or partners. It’s not a given or a handout: They need to be eligible for these placements. We select students based on their performance and work readiness so they understand they need to work for what they want to achieve.”
Your internship could turn into permanent employment as it did for one of WeThinkCode_’s alumni.
Besides this possibility, having an internship under your belt will assist you in securing your first developer job. It shows hiring managers that you’ve had a taste of what professional development looks like, and this is hugely beneficial for employers.
See here for tips on how to build a standout job search portfolio as an entry-level developer.