DEV Community

Which non-computer science degrees apply to skills needed for a career in software development?

Ben Halpern on October 16, 2019

Which classes are most useful?

Collapse
 
timrodz profile image
Juan Alejandro Morais

Degrees regarding knowledge on empathy, conversation & communication — They’re pillars for developers who want to excel at their job. Communication is simply so important!

Collapse
 
ryancmcconnell profile image
Ryan McConnell

As someone with a Bachelor degree in English, I've become the go to guy in any development job for presentations, proposals, and communication. I can convey so much more to non-technical staff in ways they understand than I would otherwise.

Collapse
 
timrodz profile image
Juan Alejandro Morais

It’s a skill often overlooked, yet such a cornerstone. I’ve been reading and writing blog posts so I can practice my communication skills! In result, I’m now able to express myself in a more concise, clearer way.

Collapse
 
mattlbellingham profile image
Matt Lintz

I had an English major manager for a few years. He was great.

Collapse
 
vinceramces profile image
Vince Ramces Oliveros

Agreed. However, In other third world countries, I have to communicate with other people with different languages at different times. I'm so grateful for them to adjust my inexperienced communication skills.

Collapse
 
timrodz profile image
Juan Alejandro Morais

As a native language speaker, I can empathise with you. Language barriers can seem daunting, but if anything, they help us simplify our vocabulary so that it can be understood by everyone.

“If you can’t explain it simply, you don’t understand it well enough”

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Any degree where you learned to handle frustration and suffering

Collapse
 
lauragyre profile image
Laura Gyre

Yeah, I was thinking that while my BA is helpful enough, what has really made me better at this stuff is being a parent. When I used to play around with coding I would give up easily. Now I'm able to accomplish a lot more because I am ok with things being hard and uncomfortable and I understand what being committed to something involves. If only that kind of background were actually seen as a plus on a resume...

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Actually, if you or someone else feel like it, I would love to read such an article:

How parenting makes me a better programmer

Thread Thread
 
lauragyre profile image
Laura Gyre

That actually crossed my mind when I made the first comment, I can write one!

Thread Thread
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Please do!

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Fully agree with you, parenting should be seen as a plus on a dev resume.

Collapse
 
maeganwilson_ profile image
Maegan Wilson

I think any class that makes you problem solve. My degree is in Lighting, and with it, I've learned different ways to approach problems. It's also taught me that looking at the whole picture is sometimes a good way to see a solution that will work.

Collapse
 
ben profile image
Ben Halpern

Lighting... That's fascinating.

Collapse
 
maeganwilson_ profile image
Maegan Wilson

Studied theatre in school as my passion, and took a few computer science classes throughout the 4 years. I have to say that the theatre degree taught me how to communicate openly and how to problem-solve creatively.

Collapse
 
anthonydevelops profile image
Anthony Campos • Edited

Psych classes! After having spent a full year before graduating taking Psychology/Cognitive Science classes before transitioning to Computer Science, they helped improve me as a person and a friend.

I would say once I got to the upper-division classes in Psychology, it really pushed you to work with others and collaborate on interesting topics dealing emotion, awareness, the brain, etc. Through many of the classes, they value respect and careness for classmates, and it helped set a tone in our meetings which would help make sure it was a safe and open space to share our thoughts when doing group work. These classes made me confident in being honest to others about how I feel, what's going through my mind, and opening me up to not being ashamed of the mental issues I faced myself, among other things. So I would 100% say Psychology/Cognitive Science classes, because in those classes and groups, you felt the care of your classmates which is something I often missed during my Computer Science courses, but it helped me become a better teammate and friend to others.

Collapse
 
elasticrash profile image
Stefanos Kouroupis • Edited

I like how a substantial slice of replies have to do with communication skills. Which let's be fair they are useful, especially on diverse, medium/large teams. But you don't need a degree for that, you just need to be logical and not an idiot.

Having studied Surveying Engineering/GIS and Photogrammetry (masters) and after being in the Software development business for nearly 13 years. A degree I would really wanted to have is on Mathematics.

Collapse
 
ryancmcconnell profile image
Ryan McConnell

Interesting that you think communication is easy...and then implicitly insult those that aren't good at it. Hint: saying anyone that's not good at communication an idiot is not great communication. I don't think communication is easy for anyone. It's a learned skill that some might be more naturally inclined to, but being logical has nothing to do with being good at conveying your point with tact and relevancy. I've met many very logical people who can't expand on their answers well or write super confusing documentation.

Collapse
 
therealkevinard profile image
Kevin Ard

Actually, being (overly) logical can harm communication. I'm PAINFULLY logical, and I've learned over the years to give myself a cool-down period to become human before expressing ideas to humans.

Like clockwork, when I'm still in logic/robot mode, the moral is either lost or completely mis-conveyed.

Thread Thread
 
elasticrash profile image
Stefanos Kouroupis

That is the reason I've added the idiot part in the sentence. No one likes being the idiot in the team. And from my point of view every developer pass through that phase during his career.

Communication and cooperation are life skills and not easy ones. Which means that they are not something that can be easily taught in a classroom. They can though be promoted and cultivated through education

Collapse
 
elasticrash profile image
Stefanos Kouroupis

I didn't intend to insult anyone ...and I didn't say it was easy. I personally suck at it. But it is not degree worthy in my eyes.

Collapse
 
axelledrouge profile image
AxelleDRouge • Edited

My degree is in Geography and Environmental Sciences with years lived in Architecture. Someone said building blocks? in Architecture, we are really building with blocks. The mental process for me is the same. Like with Geography, I am mostly a space thinker, I visualize in 3D. It's perfect to "see" the links, the connections, the networks of data.
Like it has been said before, I believe that the most important skill in software development is logical thinking, just before the ability to learn new skills quickly. Any classes could help with that.

Collapse
 
conw_y profile image
Jonathan • Edited

Agree with this, having done a short course on philosophy.

There are certain 'cults' in philosophy that give it a bad rap and make it seem impractical and useless. But amidst the 90% of garbage, I found that 10% of gold that genuinely improved my life and my work.

Practices like thinking abstractly, thinking deeply, reasoning, constructing logical arguments and synthesising knowledge from different fields have been very useful in my programming work and career.

Collapse
 
jess_ingrass profile image
dr. jess

My doctorate is in music education. I consistently find that my problem solving skills and willingness to attend to tedium help me in debugging. My knowledge of flexible structures through Jazz helps me with team leadership.

Collapse
 
iarehilton profile image
Hilton Meyer

I'd say any degree is useful in some way. Most degrees you only come out using a small percentage of the stuff that you learnt. The connections and techniques though are often the unspoken hero's of going to organized institutions.

Collapse
 
byrro profile image
Renato Byrro • Edited

I think it depends a lot on what you're looking to achieve in your career.

My degree is in Economics, a bit of Business as well.

The business & marketing side of it helped a lot with entrepreneurial initiatives, which is my main driver in tech.

The economics & statistics side of my course provided a basis for wrapping my head around machine learning.

Years ago I developed an autonomous software to track corporate investment announcements on the web. Kind of "Tesla is opening a new manufacturing facility in Germany". I extracted the data using NLP and organize info in a searchable database with company name, HQ address, target country, type of investment, etc. I sold this info to people interested in it.

Having an economics background was key to this experience. But it might be useless to most developers...

Collapse
 
jacqueskevin34 profile image
@Hernández

Knowledge is important. But there is human skill more valuable to get than a career filled with many recognizations. I'm android developer student and my knowledge is pretty good, but I have to learn a lot of conversation skills to share my opinions and the university has done a good job with me in this affaire.
Important subjects like programming languages should be valuable when you search for useful classes. Math is important, but I believe that Logic is more important than math.

Collapse
 
kylerconway profile image
Kyle R. Conway

Technology is something that spans all fields and can benefit from expertise of all types. I've found my theater experience to be extremely valuable, as well as philosophy and visual art.

Theater and visual art and in communicating and collaboration, while philosophy helps with what's important to communicate.

Collapse
 
lewiskori profile image
Lewis kori

Business skills coupled with strong communication rank high for me. Especially when you are freelancing. One more thing and it's not really a degree but a skill to master is tolerance and empathy. This comes in handy when dealing with difficult clients.

Collapse
 
xowap profile image
Rémy 🤖
  • Various electronic equations (filters, charge/discharge of capacities, etc)
  • Tons of math-y stuff
  • Markov chains (is it unrelated though?)
  • Signal theory
  • Intercultural communication
  • Project management
  • Game theory

To name a few

Collapse
 
ng_update profile image
Kieran

I earned a degree in journalism and am switching careers at 34 to web development after 20 years in sales/customer service. This has been extremely helpful, as journalism taught me how to ask the right questions and sales has taught me to be empathetic towards the customer/end-users needs. They both taught me how to communicate with people on many levels, as well as in technical and non-technical capacities. Also, I adapted to Google and dbs like Lexus-Nexus early on, so finding information on-line has long been second nature to me.

Collapse
 
cwreacejr profile image
Charles Reace

I have a Music Ed. degree. The person who sits next to me has a Music Composition degree. The company we work for has nothing to do with music. I'm not sure getting a music degree itself has any benefits, but there seem to be some common things between music and programming in terms of how your brain processes comparatively complex relationships, perhaps?

Collapse
 
itsasine profile image
ItsASine (Kayla)

I have a couple of math degrees and it's seemed to work out. I tended to focus electives towards proofs more than business, so there was a bunch of logic.

Since I don't have a CS degree, I can't tell you with words how that applies to theoretical computer stuff like optimizing algorithms, but I might be able to use words if I studied for a few weeks to tie together concepts :)

Collapse
 
niweera profile image
Nipuna Weerasekara

I am an undergrad in BSc. Information Systems (you guys might know it as Management Information Systems degree). The things I learnt so far is pretty much valuable for me being a web developer. We've studied about organizational behavior, human computer interaction and economics and I think these things are really important when thinking from the clients' side. As you know, thinking from the client's perspective is the most vital yet most hard thing to do it development...

Collapse
 
saichai profile image
Sai Chimata • Edited

Mathematics, Linguistics, and Logic provide the theoretical frameworks for Computer Science.

For instance, I didn't understand functional programming for the longest and had constantly tried to deal with React code with an OO mindset, until I learned that it was influenced by the mathematical concept of function composition. Having knowledge of mathematics beyond discrete math, stats, linear algebra, and calculus, which are usually prereqs in CS, it immediately clicked with me. Now, I can't get enough of using functional patterns in my work!

Collapse
 
albertomontalesi profile image
AlbertoM

I have a bachelor's of Law. I'm not sure which classes can be helpful for a software dev but I'm quite sure my bachelor helped me in nothing.

Collapse
 
thejoezack profile image
Joe Zack

Patience!

Collapse
 
rdelga80 profile image
Ricardo Delgado

Having a history degree actually has a lot of advantages.

  1. Know how to do a ton of research
  2. Solid writing skills
  3. Logical critical approach to hypothesis and issues
  4. Data analysis
Collapse
 
iangloude profile image
Ian Gloude

From my personal experience as a History major, I've absolutely benefited from learning both the ability to research efficiently, and to write concisely but descriptively.

Collapse
 
xbilek18 profile image
Jan Bílek

Linguistics! I was pretty surprised how programming languages principles are still the same principles found in natural languages. I’m talking about grammars, compilers and stuff..🤓

Collapse
 
rachelsoderberg profile image
Rachel Soderberg

Communication for sure!

Collapse
 
miku86 profile image
miku86

Psychology, Sociology: Most software is used & developed by people, so you should know how your users & your co-workers "work".

Collapse
 
tuwang profile image
TuWang

Math? Just by seeing the amount of math undergrads aiming for computer science graduate degree.

Collapse
 
dkassen profile image
Daniel Kassen

Electrical engineering has me thinking a lot about the efficiency of my code probably a lot more than I should. :p

Collapse
 
garrett profile image
Garrett / G66

Business and marketing will help. Even if you never have to do them, it will help with grocking the bigger picture.

Collapse
 
bosepchuk profile image
Blaine Osepchuk

I have a bachelor of commerce and it's been a real differentiator for me. I have training in marketing, finance, economics, management, accounting, business law, risk management, negotiating, HR, etc. I can fit in with both business types and the technical people (and translate seamlessly for each group).

Collapse
 
mwanahamuntu_ profile image
Stella Mwanahamuntu

Mathematics degree!!!!

Collapse
 
jaybaldha profile image
Jay Baldha

I don't know about degree much .But I think a person with good documentation skills can come in handy in software development.