DEV Community

Tony Hicks
Tony Hicks

Posted on

Thought experiment - Create your own degree

If you had to make a syllabus for a degree, what would you deem essential for an aspiring software developer to learn and why?

What has been your experience with developers that do vs. don't have a computer related degree?

Top comments (11)

Collapse
 
ben profile image
Ben Halpern

Percent I'd allocate to each type of credit

  • 5% microeconomics
  • 5% psychology
  • 20% computer science/computer history
  • 30% software engineering/development
  • 10% business
  • 30% misc/electives

My degree is weighted more heavily towards practical software development so that students really feel like they are earning relevant industry skills, but also teaches computer science and offers courses in some other relevant scientific fields. It also encourages doing electives in whatever the hell you want. Theatre, music, history, whatevs.

Collapse
 
tonyhicks20 profile image
Tony Hicks

Very interesting choices! I like that you included misc to pursue your own interests, potentially out of the tech world. Why would you suggest psychology?

Collapse
 
lpasqualis profile image
Lorenzo Pasqualis

I'd go with this:

  • 30% software engineering/development. To gain the knowledge, skills, and practice to be able to write software.
  • 15% computer science. To acquire the theory to know what you are doing, how to solve some problems, why some problems are not solvable and why some algorithm choices are better than others.
  • 15% electives. Exploration of fields of interest, important because "software" is such a broad field!
  • 10% math. Computer science without math can only go so far. Math is required to understand much of the computer science theory.
  • 10% leadership. Allows a good engineer to become a strong and key asset for a company.
  • 10% business. To gain a good business sense, so rare to find.
  • 5% psychology. To understand how to work with people, and how to better communicate and negotiate.
  • 5% computer & software industry history. Computer and software industry history gives an idea of how we got where we are, which enables an engineer to understand the context of choices that were made in the past.
Collapse
 
tonyhicks20 profile image
Tony Hicks

For some reason, I an unable to" like" your response so thank you for your detailed and thought -through answer! What I find interesting is that this looks quite similar (barring psychology) to what is offered in degree courses at universities in my country.

Collapse
 
tonyhicks20 profile image
Tony Hicks

I've also found no correlation, which has made me wonder if one should get a degree and not just pursue their own knowledge if they would need to go into massive debt trying to get one. why behavioral economics and cognitive science?

Collapse
 
andy profile image
Andy Zhao (he/him)

Following the percent allocation:

  • 25% psychology
  • 20% computer science/computer history
  • 30% software engineering/development
  • 25% misc/whatever

I agree with the computer science and software engineering that @ben said, too. I'm putting more emphasis on psychology since I think there's a lot of value in learning how people behave. Psychology has also helped me understand a lot about myself, too.

The other 25% is really to give me freedom to do whatever, since I have a lot of varied interests.

Awesome thought experiment by the way.

Collapse
 
tonyhicks20 profile image
Tony Hicks

Thanks! I.'m surprised to see psychology come up as often as it has. Would you have any recommendations (books, talks, courses etc.)?

Collapse
 
andy profile image
Andy Zhao (he/him) • Edited

I think any updated psychology textbook will give you a good groundwork, although probably boring. Vlogbrothers on Youtube have a Crash Course on Psychology.

Some books I have read are more pop psychology as opposed to traditional (and usually more scientific) psychology, but I would still recommend them. Some are even in the self-help area, but were useful to me:

  • Man's Search for Meaning, Viktor Frankl
  • Outliers, Malcolm Gladwell
  • The Seven Habits of Highly Successful People, Stephen Covey
  • Flow, Mihaly Csikszentmihalyi (on my to read)
  • Freakonomics, Steven Levitt and Stephen Lubner (not really psychology, but an interesting book that I recently read)
Collapse
 
thorstenhirsch profile image
Thorsten Hirsch

Having my own workplace in mind, I would split my answer in 3 parts:

  • Translating business requirements into code needs a lot of people / communication skills. I guess David and Ben nailed it already, and I especially liked Gregory Brown's tweet. There really doesn't seem to be any correlation between CS degree and skill-on-the-job, as long as one has a scientific background and is used to structured thinking & planning.

  • Building libraries & frameworks for other developers as well as setting up coding guidelines requires quite a bit of CS stuff. You better know the complexity of your algorithms and some systems theory. Here I see a correlation between software quality and a CS degree. But you don't need as much communication skill, because your customers (the other developers) pretty much understand you right away.

  • DevOps stuff, capacity planning, cloud deployment. I'm not sure about the correlation here. You need to to know a bit about hardware, more about operating systems and probably also containers. But you can compensate knowledge about software / algorithms / systems theory by just doing a lot of testing. I would say it doesn't matter if you've got a CS degree as long as you excel at scripting and automation. However communication can be really tough between development and operations, if politics in your company pushes both departments in different directions.

 
tonyhicks20 profile image
Tony Hicks

Hahaha, that quote made my morning :-) Makes sense, thanks for your answer

Collapse
 
georgeoffley profile image
George Offley

A degree that lets you work on something passionately, is actually worth it, and doesn't cost a mortgage.