DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

Do students get to work with existing codebases?

I'm curious as to whether students in computer science and/or code schools are getting to work with existing codebases in any way? "Legacy" or otherwise.

I definitely never did this in any types of education I was a part of, but I'm curious if anyone is doing it these days.

Oldest comments (34)

Collapse
 
sleepyfran profile image
Fran González • Edited

Nope, never had to deal with legacy code at university. The closest I was to it was a networks class in which we had to implement communication through Serial Port (yeah, Serial Port) and we had to tweak some of the insides of the driver that the professor gave us, but still not really, which is sad considering that once you start working it's very unusual to be working with a clean slate.

Collapse
 
yechielk profile image
Yechiel Kalmenson

I had a friend who went to a bootcamp (sorry I don't remember which one) where the final project was two weeks. Week one students paired up to create a project, and then in week two you switched projects with another team and had to add features to their code without help from them.

I believe the focus was two-way, in the first week the focus to make sure your code was clean and documented enough for the next team not to have too hard of a time, and in the second week the focus was on working with a "legacy" app written by someone else and contribute to an unfamiliar codebase.

Collapse
 
danielw profile image
Daniel Waller (he/him)

That's an awesome idea for a final project!
It will definitely help to prepare you for the things you will see once you start working.

Collapse
 
yechielk profile image
Yechiel Kalmenson

Yup! I was really impressed when I heard that.

If I ever go into the bootcamp business that's one thing I'd adopt :)

Collapse
 
david_j_eddy profile image
David J Eddy

WoW! What school is that 'cause it just earned some major brownie points from me.

Collapse
 
yechielk profile image
Yechiel Kalmenson

Wish I remembered... :(

Collapse
 
dvanherten profile image
Dave van Herten

I've often wondered how you'd introduce this concept into a classroom setting. This is a really neat idea on how to do it. I think schools would benefit greatly from it.

I'd love to see schools or bootcamps introduce debugging of an intentional hard to find issue as well. Not sure how to do that one well either.

Collapse
 
alchermd profile image
John Alcher

I'm still technically a student, so yeah some do work with legacy codebases (through internships). I've heard from some of my colleagues where they work on an existing product on day 1 (shudders), yet some finished without writing a production code.

Collapse
 
yorodm profile image
Yoandy Rodriguez Martinez

Back in my student days, we had the opportunity to access code for on-going University projects (some of them anyway) or to actively enroll in those projects in any capacity we could provide. A few years later when I became a Teaching Fellow the school set a program in place where undergrad students had to "certificate" themselves in at least two "roles" (like Tester, Developer, Architect an such) before graduating.

That being said. Even in my country (our educational system focuses a lot on what we call "professional practice") it is rare for CS or IT students to get their hands on legacy projects that they can use to learn from their peers.

Collapse
 
vbordo profile image
Victor Bordo

I didn't get this experience in school. We had one assignment where we were given some code to QA. It wasn't a real-world app though, just pretty trivial functions with a test-suite we needed to modify. A few months into my first job out of college, I remember wishing I had more experience working with larger, preexisting codebases.

We've been thinking about adding an educational component to DevFlight in the future. Essentially, students/ new devs who want to simulate a professional software development experience working with existing codebases can closely collaborate with participating OSS maintainers. Devs become more effective software engineers and maintainers have access to devs willing to help them with their projects.

Collapse
 
jsn1nj4 profile image
Elliot Derhay • Edited

I wish I were able to get some actual experience in college too.

Also, your educational component for DevFlight sounds like a really neat idea (although I'm not a student anymore, so I probably wouldn't qualify).

Collapse
 
vbordo profile image
Victor Bordo

Thanks! You never know, it could mature into an efficient, pleasant way to learn a new language/framework for seasoned devs :)

Collapse
 
danielw profile image
Daniel Waller (he/him)

For our 2nd semester software development lab we had to implement missing features inside a larger Java application. This application had been written some years ago and was reused every year for the lab.

So in a sense you could call it "legacy" because we had to implement solutions in an existing system, but there was always someone that knew how it had to be done because the system was designed to be incomplete as a learning tool.
It definitely helped me later when I took my first student job, because I had at least some experience with finding my way around an existing architecture with a couple of thousand lines of code.

Collapse
 
florimondmanca profile image
Florimond Manca • Edited

I'm in a school of engineering that is not specialized in computer science, so I only had a handful of software development projects. If I'm counting well, that is 2 group projects and 1 or 2 alone.

All of them consisted in building something from scratch. Never had to deal with legacy. Only a bit during an internship.

I actually find this question extremely relevant — most schools don't teach how to deal with existing codebases. They teach you how to build systems, but not how to deal with systems other people have built. It seems even companies don't let interns deal too much with legacy code because of the burden of "getting into it".

I think if it was the case, it would not only teach the student/intern new skills but also let them develop empathy as to why it is important to write good code in the first place.

Collapse
 
sagar profile image
Sagar

In my company, trainee employee use legacy codebase for learning. I don't know how much it help them.

Collapse
 
zhu48 profile image
Zuodian Hu

In my Operating Systems class, we worked with a precursor of the Linux kernel. Pretty sure that counts as legacy.

Collapse
 
ianandhum profile image
Anandhu Manoj

No. I am still a student and I can't believe that I am learning VB6 right now, and it is already "Legacy" :(