How can students balance theoretical knowledge and practical skills when preparing for a career in software engineering?

admin 43 0

The “theoretical” part builds your mental model of what happens inside the computer; the better you understand the works, the better problem-solver you’ll be. Of course, you should only need to understand the next two or three layers down, but I learned how to design, implement, and debug chips, CPUs, memory, compilers, link-editors, overlay managers (there’s a couple of fossils for you!), databases, user interfaces, text editors, user tools of all sorts, communications protocols, and other stuff I’ve certainly forgotten, like Cobol.

Some of that was even for coursework. The “practical skills” part includes all of the above.

The theoretical informs the practical. You should know why bubble-sort sucks, not just know that it does. You should know when a recursive solution is best, and when it isn’t. You should know enough languages to be able to pick one that works better than others (eg, don’t write a user interface in Fortran). You should know when programmer time is more valuable than CPU time (Python vs C, for instance).

That’s what makes the “engineering” label a real thing.

Post comment 0Comments)

  • Refresh code

No comments yet, come on and post~