Rocket Academy’s Intro to Software Engineering
You might have heard of the phrase "software engineering" thrown around at school or the workplace, but ever wondered what it really is about? And more importantly, how does one get into it?
What is software engineering?
Software engineering is the process of designing, building, and maintaining software tools. Many of the tools we use daily depend on software engineering, such as the operating systems in our phones and computers, chat applications, food delivery, banking applications, and news websites. Developing these tools involves building the look of the applications, the business logic behind, and the infrastructure that serves all content.
Software engineering is one of the highest-paid vocations internationally because of the relatively rare expertise required. Software engineers are paid most in Silicon Valley where many of the world's international tech giants are headquartered, and each software engineer generates a large amount of revenue due to the ability of software to serve customers internationally with minimal local infrastructure.
What is the difference between software engineer, coder, developer, and programmer?
Software engineer, coder, developer, and programmer are mostly used interchangeably. Software Engineer is the more common professional title. Technically, software engineering implies engineering larger, more scalable software systems. Coding, developing, and programming only refer to the act of writing code.
In practice, most vocational software courses use terms like "engineering" and "development", and most casual or enrichment software courses use terms like "coding" and "programming". Rocket Academy prefers "software engineering" because the technical definition of software engineering is what the industry looks for. Coding, developing, and programming are more colloquial terms that imply software engineering.
Can I become a SWE if I did not study Computer Science or work in the tech industry?
Yes. Anyone, with the correct attitude and aptitude can become a software engineer. Check out our FAQs for more information.
I am in my 30s/40s. Is it too late to switch to a career in software engineering?
Anyone can make a career switch to software engineering, but financially this may be more challenging at a later stage in one's career, because entry-level software engineer salaries start at roughly S$3,000/mo. Entry-level salaries can be higher depending on the company, but one must be prepared to start at the entry-level after switching careers.
What is software engineering like in Singapore?
Software engineering is less lucrative in Singapore than Silicon Valley due to the absence of international tech giants of the scale seen in Silicon Valley and China.
Software engineering remains one of the highest-paid vocations in Singapore, largely due to the presence of tech companies' regional headquarters in Singapore. These companies tend to employ a smaller number of highly-skilled software engineers, which Singaporeans are well-suited for because of their command of English and relatively strong educational background.
Why do people become software engineers in SG?
- People that enjoy solving problems, working with computers, and building digital products that many can use often enjoy being software engineers.
- People also enjoy the work culture that tech companies represent, typically involving flexible work hours, flatter organisational hierarchies, and mission-driven work.
- Software engineers also tend to enjoy competitive salaries and overall compensation.
What kinds of SWE roles are there and what are the differences in Singapore?
- Software engineers work on a wide range of technologies that can be broadly classified into a few common categories. These typically include front-end engineering, back-end engineering, and infrastructure engineering (also referred to as devops, or developer operations). Less common classifications of software engineering work include platform-specific classifications such as web engineering and mobile engineering, or language-specific classifications such as Python engineering and Java engineering.
- Front-end engineering refers to anything related to user interface and experience.
- Back-end engineering refers to anything related to business logic that may happen behind the user interface.
- Infrastructure engineering refers to coordination of machines on which front-end and back-end software runs. Infrastructure engineering used to require more hardware expertise, but since the rise of cloud computing it has become more of a software role.
- Software engineering teams typically comprise both generalist and specialist software engineers, where the balance depends on the company. Generalist software engineers are typically referred to as "full-stack" engineers, where "stack" refers to the range of technologies that make up software systems. Specialist software engineers may specialise in parts of the stack (e.g. front-end, back-end), specific technologies (e.g. iOS, AWS), specific languages (e.g. JavaScript, C++), or any part of a software system that requires specialisation.
What are data science, data analytics and how are they different from software engineering in Singapore?
Data science and data analytics are the usage of data to provide business value. Data science typically involves machine learning to drive business value in real-time (e.g. matching riders to drivers, recommending products, filtering spam), and data analytics typically involves manual queries to make business decisions over a longer period of time (e.g. reports on customer usage, research on specific customer segments).
Data science is different from software engineering in that data science typically involves a deeper understanding of statistical models that can be used to extract business value from data. Software engineering typically involves building pipes for data to flow through, but software engineers do not always understand how to derive insights from data, especially when those insights require real-time analysis with machine learning.
What kinds of companies do SWEs work for in Singapore?
- There are 2 kinds of software engineering teams. In-house teams and software agencies.
- Both kinds are common in Singapore, where bigger and more tech-driven companies tend to hire in-house teams, and smaller and more traditional companies tend to outsource to software agencies. Many companies will have both in-house teams and contracts with software agencies due to difficulty in hiring enough software engineers in-house.
- In-house teams are responsible for development, maintenance, and iteration on a company's products. Within in-house teams, there are broadly 3 kinds of companies that hire software engineers: Big Tech, Big Non-Tech, and Small Tech.
- Big Tech companies are well-known and primarily driven by proprietary software. Examples may be Grab, Shopee, or Carousell. These companies hire both generalist and specialist software engineers, and tend to have more mature and stable software engineering practices.
- Big Non-Tech companies are well-known and less driven by proprietary software, but have started to incorporate software to make operations more efficient. Examples may be FMCGs, banks, telcos, or big retail chains. These companies tend to hire more specialist software engineers to maintain specific systems.
- Small Tech companies are less well-known and primarily driven by proprietary software. Examples are smaller startups, many of whom are based at one-north in Singapore. These companies tend to hire more generalist software engineers to build and evaluate products quickly.
- Software agencies are typically contracted to do shorter-term projects that clients do not have the expertise or manpower for. Software agencies are exposed to a wider variety of projects due to the shorter-term nature of their work. Agencies with longer contracts tend to produce higher quality work because they will be responsible for project maintenance.
What is the career and salary trajectory of SWEs in Singapore?
- This depends on the type of company you work for. Software engineers enjoy stronger career trajectories at companies where software is more core to the company's operations. Career trajectory will also depend on the rate of growth of companies one works for, as well as one's individual performance. Like other professions, software engineers get promoted quickly when they take initiative and deliver value above and beyond what the job requires.
- Entry-level software engineering salaries can range from roughly S$3K-6K in Singapore, with a median (based on our experience) of roughly S$4K.
- Mid-level software engineering salaries typically range between S$5K-10K, with a median around S$6K.
- Senior software engineering salaries are higher, but there are fewer real "senior" software engineering positions in Singapore because there are not as many tech companies whose products are mature enough to warrant very senior software engineers. Currently in Singapore, most software engineers that want to progress beyond mid-level software engineering choose to become managers. However, this is changing as more tech companies mature in Singapore and Southeast Asia.
Will learning software engineering help me start my own company in Singapore?
- Yes and no. Starting a company requires a deep understanding of the market and problem you are addressing. No amount of software engineering will substitute for that.
- Assuming you understand the market and problem well, being able to build your own product can be a big advantage. This means you have more control over product development and cost, enabling you to move faster in the early stages by reacting quickly to customer feedback.
- Often people with a business idea but no coding background try to find a technical cofounder or outsource development to a software agency. Finding a technical cofounder is ideal but notoriously difficult. Outsourcing works for some, but can produce less-than-ideal results because of misaligned incentives.
- Given a lack of other options, gritty entrepreneurs often learn to code themselves to get their company off the ground.
What groups can I join to learn more about SWE in Singapore?
- DevSG Telegram group for general software engineering chat
- https://engineers.sg/ for software engineering meetups and events in Singapore
- Join our Bootcamp course to network and grow with like-minded peers!
How would one learn and become a software engineer after tertiary education in Singapore?
3 common ways people become software engineers after tertiary education in Singapore are:
- Self-learning
- Bootcamps
- Post-graduate programmes such as diplomas and master's degrees
How different are outcomes of CS grads, master’s/diploma grads, bootcamp grads, and self-learners in Singapore?
CS grads have the longest duration of learning (typically 4 years), and this often includes 2-3 software-related internships that further boost their candidacy. This means that CS grads are typically the most in-demand for entry-level roles. CS grads also tend to perform well long-term because they have the theoretical computer science foundation to help them solve more complex problems as more senior software engineers.
Post-graduate programme graduates often do well if they have relevant prior experience, such as work as a data analyst or at a tech company. While such graduates typically spend 1-2 years learning computer science, they may not have as much practical experience through internships as CS undergraduates. Thus post-graduate programme graduates typically need to spend more time building practical skills through projects outside of the course.
Bootcamp grads typically learn for 3 months and start applying for software engineering jobs after. Due to the short duration of bootcamps, many practical skills but relatively little computer science knowledge are covered during the course. This allows bootcamp grads to typically get roles at non-tech companies, software agencies, and smaller tech companies. Bootcamp grads less commonly get roles at larger tech companies with more competitive applicant pools, for whom software engineering is a core competency, and some computer science foundation is helpful in working on more mature products.
Self-learners have the widest variance in outcomes, but often their success is determined by their network: whether they have mentors with experience in software engineering that can guide them on their learning journey. Self-learner outcomes tend to be closest to bootcamp outcomes because they often focus on practical skills and less on theory in a short amount of time.
There is variance in the above. For example, someone graduating in Computer Science from a less reputable university may not perform as well as a bootcamp grad from a top university that studied something other than Computer Science. Outcomes across all ways of learning software engineering are closely correlated with past performance, though as always there are outliers.
What are pros and cons of self-learning software engineering?
- Pros: Self-learning is the cheapest, and allows one the most flexibility in learning. One can learn at one's own pace, and focus on specific areas that one is weakest in.
- Cons: Self-learning is the hardest, because there tends to be less structure around the learning curriculum, fewer mentors to provide guidance, and fewer peers to motivate continued engagement.
What resources can I use to self-learn SWE?
For more structured learning, should I do a bootcamp or a post-graduate programme in SG?
Bootcamps tend to be cheaper (~S$5K) and faster (3-6 months), though outcomes tend to be less strong than post-graduate programmes because of the reduced exposure to computer science foundations.
Post-graduate programmes are more expensive (~S$10K+) and longer (1-2 years), but outcomes can be stronger if graduates put in the effort to pick up more practical skills during or after the course.
Where can I learn more about bootcamps in Singapore?
Most reputable bootcamps in Singapore are partners with IMDA's Tech Immersion and Training Programme (TIPP) and Rocket Academy is a partner.
How does Rocket Academy compare to other coding bootcamps in Singapore?
Rocket Academy's teaching and job support are led by software engineers, allowing Rocket Academy to be most in touch with needs of the software engineering community in Singapore and update our courses accordingly.
What are the best post-graduate SWE programmes in SG?
- NUS-ISS offers a master's programme in software engineering.
- University of Newcastle Singapore offers a bachelor's programme in information technology.
- Please reach out to us if you know any others!
Let's get the toughest questions out of the way.
1. How do I get a SWE job in Singapore?
- Learn how to build software products. You can do this through self-learning, joining a bootcamp, or joining a post-graduate programme.
- Practice data structures and algorithms interview problems such as ones on Leetcode or Hackerrank. These problems are commonly used especially by larger tech companies as a standard and efficient way to screen candidates.
- Get referrals through friends working as software engineers. If you don't know any, try to make connections at meetups or on LinkedIn with the Add a Note feature when you connect with others.
- Apply to as many open jobs as you can find. Try to schedule interviews at companies you are less interested in first to get more interview experience. Most software engineering interviews are similar, thus practice makes perfect.
2. Do tech employers recognise self-learners in Singapore?
Yes, although bigger tech companies' recruiting departments often explicitly screen for university CS degrees because they have a more competitive applicant pool and CS grads tend to be stronger candidates overall.
Most tech employers will be willing to hire self-learners if they can do the job well, regardless of past experience or credentials. Ironically, it is usually past experience or credentials that allow self-learners to get interviews. This is where bootcamp credentials can be helpful.
3. Do tech employers recognise coding bootcamps in Singapore?
Yes. However, because bootcamp grads tend to have a weaker foundation than CS grads, bootcamps grads tend to take slightly more entry-level roles than CS grads.
4. How do bootcamps like Rocket's help graduates get jobs in SG?
- Most bootcamps have relationships with employers in Singapore and invite employers to attend a demo day to meet graduates at the end of each batch.
- Some bootcamps such as ThoughtWorks JumpStart are subsidiaries of a software agency, and have the capability to hire graduates into their own parent company.
- Beyond demo day, Rocket Academy helps bootcamp graduates get jobs by actively supporting graduates with unlimited resume reviews, interview prep, and continued referrals to new open jobs through the Rocket Academy network. Rocket Academy maintains a database of open software engineering jobs across Singapore such that graduates can enjoy referrals to the widest selection of jobs available.
- Rocket Academy also hosts Q&As with software engineers from the industry, where students can attend and develop professional relationships with speakers.
- Rocket Academy's career services are led by software engineers, unlike career services at other bootcamps.
5. How do post-graduate programmes help graduates get jobs in SG?
Similar to bootcamps, post-graduate programmes typically have job fairs and career offices to support students. However, post-graduate programmes do not have the same incentives as bootcamps to get graduates jobs because their subsidies do not depend on graduates getting jobs.
Keep up with us! Get all your Rocket Academy updates straight to your inbox.
Related posts
Glad you're enjoying our articles, keep going!