Learn Software Engineering

Edx

Full Time Senior
Apply on EasyApply

Create a free account to apply in seconds

Explore top online software engineering courses

Breaking into the software engineering field doesn't have to be daunting. Explore courses and programs to help launch your new career.

Create an account


What is software engineering?


Software engineering is a branch of computer science that applies engineering principles to design, develop, test, and maintain software. The primary goal of software engineering is to produce high-quality, dependable, and effective software, while completing projects on time and within a given budget.

While most software engineers hold a bachelor's degree in computer science or information technology (IT), successful software engineers continuously expand their skills to stay current with rapidly evolving technologies and practices.

Popular software engineering courses

Browse online Software Engineering Certificates

Find new interests and advance your career opportunities

Stand out in your field


Use the knowledge and skills you have gained to drive impact at work and grow your career.

Learn at your own pace


On your computer, tablet or phone, online courses make learning flexible to fit your busy life.

Earn a valuable credential


Showcase your key skills and valuable knowledge.

Certificates

Related Topics


How to learn software engineering

1. Create a learning plan


Start by looking into software engineering specializations like:

• Web development (front-end, back-end, or full-stack development)

• Development operations

• Information security

• Machine learning

Figuring out what interests you most will help you decide which programming languages and specialized skills to focus on early in your learning process.

Next, assess your current skill level. How much time can you commit to studying software engineering (full-time or part-time), and what type of learning format works best for you? Options range from self-paced online courses to more structured pathways, such as bachelor's degree programs in software engineering.

Once you've outlined your direction, consider setting SMART goals and building a timeline. This may help you remain focused, track your progress, and hold yourself accountable as you move forward.

2. Master the prerequisite skills


Build a strong foundation with core computer science concepts like:

• Algorithms

• Data structures

• Computing systems

• Infrastructure

Learning the basics of programming languages such as Python and JavaScript may also help you gain fluency in essential coding languages. Courses like Harvard University's CS50x: Introduction to Computer Science can teach you the fundamentals that may be prerequisites for advanced software engineering courses.

3. Start learning software engineering skills


Enroll in specialized courses or programs that build on foundational computer science knowledge. With programs like IBM's MicroBachelors® in Full-Stack Application Development, you can learn about:

• Software design and development

• Cloud computing

• Database management

Once you've built this technical foundation, apply your skills through personal or open-source projects to gain experience and build your portfolio.

"Given enough time, you can work through any problem that comes your way. I have seen many new software developers in the field panic because they are not able to solve a problem immediately, or because they spend an entire day on a project but come up empty-handed. That is okay, and what's more important is that you try your best, research, and communicate with your team during meetings to navigate the problem together."

— Jordan Black, software developer and PhD candidate in machine learning, game design, and player psychology, University of North Texas


What can you expect from a software engineering program?


Software engineering programs cover a variety of topics related to software design, development, and maintenance. Courses often emphasize programming and coding languages such as Java, Python, C/C++, and JavaScript, though the curriculum may vary depending on the program type and institution.

Typical coursework may focus on:

The software development life cycle

Best practices in software design and web development

Software testing, verification, and validation

Software project management

Algorithms

Computer architecture

Data structures

Computer networks

Operating systems

Database design

Artificial intelligence

How long does it take to learn software engineering?

The time it takes to learn software engineering varies depending on the learning path you choose to pursue. If you decide to earn a bachelor's degree in computer science, for example, it can take at least four years of full-time study. However, you can start learning the basics from short courses that only take 4-6 weeks to complete.


How to choose the best software engineering program for you


When choosing a software engineering program, consider factors such as time commitment, desired skills, career advancement prerequisites, and evolving industry demands. Explore edX's online software engineering programs to find the best fit for you:

Courses


Software engineering courses are usually quicker to complete than degree programs — around 4-6 weeks is common. They're perfect for learners who are just starting out or want to build a new skill.

Certificates


edX offers a variety of professional certificates in computer science. These programs are geared towards professionals who want to enhance their résumés or learn new skills while maintaining their established careers.

Executive education programs


Executive education programs in software engineering are appealing options for seasoned professionals who want to grow their software engineering skills. Some require a short time commitment, around 10 weeks.

Degrees


A bachelor's degree is a good choice for anyone considering a career in the field. These programs typically take four years of full-time study to complete. A master's in software engineering program might be an attractive option if you want to qualify for more senior or technical roles.


Jobs that use software engineering


Building up your software engineering knowledge and skill set can help open doors to a variety of careers. Find common jobs below, with salary data from the Bureau of Labor Statistics.

Software developer


Software developers design computer applications and programs and oversee their maintenance. They may also recommend application upgrades to their clients.

Required education

Skills

JavaScriptPythonJavaMachine Learning