LongCut logo

Learning Software Engineering During the Era of AI | Raymond Fu | TEDxCSTU

By TEDx Talks

Summary

## Key takeaways - **AI is a tool, not a replacement for engineers**: AI excels at generating code and fixing bugs, but it lacks understanding of the 'why' behind tasks, real-world context, and long-term business goals. Human engineers are still crucial for strategic thinking and validating AI-generated outputs. [01:44], [03:50] - **Software engineering is more than just coding**: The core of software engineering involves understanding user needs, collaborating across roles, making empathetic decisions, and guiding machines toward meaningful outcomes. The best engineers think deeply, not just code quickly. [04:53], [05:15] - **Engineers must collaborate with AI, not fear it**: AI is democratizing technical tasks, but software engineers retain their advantage by understanding AI's inner workings, using it to build production-ready software, and actively improving AI models. They are becoming architects of future intelligence. [05:50], [07:10] - **Future engineers need broad skills beyond coding**: Aspiring software engineers should master foundational concepts, think about system architecture, become full-stack, practice communication, and use AI as a creative partner. Adaptability and continuous learning are key. [09:25], [10:44] - **Software engineering is the foundation of leadership**: In the AI era, software engineers are evolving into visionaries, bridge-builders, and leaders who guide both human teams and AI. They are not just coding but actively building the future. [11:29], [11:55]

Topics Covered

  • AI Redefines Programming: Is Your 'Golden Ticket' Still Valid?
  • Avoid the Dual Traps: Don't Ignore AI, Don't Trust It Blindly.
  • An Engineer's True Value: Deep Thinking Beyond Just Code.
  • Engineers are now Architects of Future Intelligence, Raising the Ceiling.
  • Future Engineers Need Foundational Mastery and Broad Interdisciplinary Skills.

Full Transcript

[Music]

[Music]

At the turn of this century when I

started to learn software engineering my

one of my professors told us that in the

future every job is a programming job.

That's in 2001

and he said that we're holding a golden

ticket to job security.

Just last month, the CEO of GitHub said

that the future of programming is

natural language.

It looks like the prediction of my

professor at the turn of this century is

going to become true, but probably not

in the way that he had imagined.

Artificial intelligence is capable of

writing code for you through a natural

language prompt. GitHub C-Pilot can

complete code for you and fix bugs for

you. and chat GBT can create an entire

project for you within seconds and all

these tools available to anyone.

So I find myself wondering, have we lost

our golden tickets to job security?

And as a CST professor and a father to a

daughter who studies computer science,

there's a bigger question for me.

If AI is going to do programming, does

it still worth it for us to learn

software engineering anymore?

Today, I would like to explore this

question with all you guys. Let's talk

about what AI can do and more

importantly, how we can how our students

of software engineering uh prepare for

the future roles of a real software

engineer. So, let's dive in. First,

let's talk about what AI is good at in

when in terms of programming. AI is

really good at generating thousands of

lines of code. It translate between

programming languages. It can create

user uh interfaces and fix bugs for you

and it excels at repetitive tasks and

you know pattern recognition.

You know, once I asked ChatGBT to create

a project for me, uh, a dating app like

Tinder in Python, and within seconds, it

actually created a a complete

application with user profiles, the

swiping logic, and even a sample

database. The only thing didn't it

didn't do for me is find me a date.

But AI has a lot of limitations. We have

to accept that. you know, it still

doesn't understand the why behind all

the tasks we asked them to do. Um, it's

it's um it needs you human input for

real world context and scenarios. It may

not work well prioritizing long-term

business goals and assessing trade-offs.

And last but not least, it's not

reliable.

It hallucinates and sometimes give us

the wrong answer.

The statistics say that 55% of the

developers today are actually starting

to use co-pilot but only 30% of them are

accepting the outcome without any

changes. So if you are a developer and

you are not in the first 55%

that means you're not using AI you're in

trouble.

But if you are in the 30% that means you

trust AI too much. You may be in bigger

trouble.

All right. So, all the leading AIs today

are built on top of large language

models and it's trained on the text of

human knowledge. It's impressive. If you

give a clear prompt, it'll give you very

good results. But all the strategic

thinking are still us. It's the the

human. And you can think of AI as a

brilliant junior developer that you hire

to your team and they can do a lot of

jobs very quickly and efficiently. But

it's up to us human to define the vision

to validate the results and ensure what

we're building is good for the society.

So there's another thing that I want to

talk about that um AI is is struggling

on. It's struggling to communicate and

collaborate with human beings. Well,

maybe you will say this is more of a

human problem, right? We humans

sometimes deal with the same problem

too. But this is something, you know, we

will have to work out. Let AI do what AI

is good at and we humans can take care

of of the boring jobs such as handling

office politics.

All right. So, talked about the the

capabilities and limitations of AI. Now

we can take a look at the software

engineering roles.

So software engineering roles is not

just about writing code. It actually

talks about you know we need to

understand what the user needs. We need

to uh collaborate across roles and also

making tough decisions with empathy and

responsibility. This is what a soft

engineer should be doing, right? We're

not just tax executors. uh the the best

engineers are not the ones who code the

fastest but the ones who think the

deepest.

So a good engineer will take messy

problems, ambiguous problems and guide

machines towards a structured and

meaningful outcomes.

So there are system architects who

design the best solutions and they

should be the AI collaborators who use

AI to implement those solutions and then

they need to be ethical technologist to

make sure the solutions that we're

building are b truly benefiting human

being. So AI is actually democratizing a

lot of complicated technical pro tasks

like today a designer can mock up an

application and then you know it it's

just with a prompt and also marketers

they can they don't need data engineers

they can just run data analytics with

some you know without writing any code.

Does that mean soft engineers are losing

our advantages? The answer is no.

actually you know it it it still remains

essential for software engineers and the

reason is as follows.

First we understand AI better. We not

only know how to prompt and we also know

what's under the hood, the models, the

data pipelines, the limitations and

risks and the understanding of these are

very important because AI is integrated

into every product we're using and we're

building in the future. Second, we can

make better use of AI when building

software. So nowadays anybody can you

know prototype a demo or or create a

simple application of features but

softwares think of the bigger picture.

We are actually using AI to build a

production ready software that is

scalable reliable with long-term

maintainability.

Finally we are making AI better. We

fine-tune models. We optimize the

performance and improve usability. We

make AI available and useful for

everybody else. The next generation of

AI are still built by software

engineers. Do you guys remember this

quote from CEO of GitHub? This is not in

reality yet. It's still up to the

software engineers to improve AI and

make this happen.

So software engineers, we're not losing

the golden ticket to job security. As a

matter of fact, we're collecting even

more because we're no longer just

building software. We're actually

building the future intelligence itself.

And what we're how we train, direct, and

supervise AI today will define the kind

of systems, technology, and society that

we're building tomorrow.

AI is raising the floor, but software

engineers were raising the ceiling. And

I want to share this not just with you.

You can applaud. That's okay. I want to

share this with not just system

engineers. This is for everyone. All

right? We have AI that's rooting us up

from the floor, but it's human that we

have to reach to the ceiling and raise

up the ceiling.

All right? So after all these now we can

talk about software engineering

education, right? So you know in the

past coding is very important piece of

uh software engineering education but

software engineering education is not

just about writing code. It's also about

you know teaching you how to break

complex problems into steps think

logically and critically and harness the

digital tools to build solutions that

really matters.

So in the time when everybody AI is

everybody's assistant engineers becomes

the orchestrators we remove remove

barriers and open doors

and in order for us to uh be a

successful software engineer the

students should go beyond learning code

as quickly as possible and get into the

following things

you know so in order to become a

successful engineer in the future we

should focus on master to the

foundations, the data structure, the

algorithm, the programming concepts,

they're still very important. Spend

enough time to learn on these and make

make become an expert on those because

they're the very important basics.

Next, think about system like architect

because you know uh aim higher, meet the

expectation of a senior engineer as soon

as possible and think about designing

systems that can that is reliable and

scalable.

go beyond u go full stack across

disciplines. The days when a soft

engineer can uh can focus on either the

front end or the back end or the

database is gone. The future software

engineers all full stack engineers and

there's more. You need to also get into

the other disciplines like design,

product, data, project management and be

prepared to wear multiple hats.

practice communication and

collaborations. Learn to work with

people um you know through team projects

because you know in the future the way

you if you can explain and connect it it

it'll become increasingly important and

it will set you apart.

Use AI as a creative partner. Embrace

UI, don't hate it, and learn LLM,

generative AI, you know, model

fine-tuning and uh rack, etc. You

discuss your project with AI and

delegate your work to AI as if it's one

of your teammates.

Last but not least, stay adaptable.

Tools change, principles last. So, you

should always focus on learning how to

learn.

So in the future when everyone uh can

code a little the ones who can master

the craft will build the path for

everyone and becomes the leader. So in

the era of AI software engineering is

becoming the foundation of leadership.

I've talked a lot about programming but

perhaps programmer is no longer the

right term we should be using to refer

to software engineers. The software

engineers of the AI era should be

visionaries who can define meaningful

result uh meaningful problems. A

bridgeuer who can connect tools, teams

and disciplines and leaders who not only

lead human beings but also lead AI. So

the future doesn't belong to those who

code the fast fastest but it also it

should belong to the one who think

deeply adapt quickly and collaborate

efficiently. They are the ones who don't

just predict the future we build the

future.

Thank you.

[Applause]

[Music]

Loading...

Loading video analysis...