I'm currently an undergraduate student enrolled in a Bachelor's of Computer Science. I'm in my first year and have started my first semester. One of my units is a professional communication course where we basically learn about report writing, proper English and writing style, presentation skills and a lot of other stuff.

I find the course really boring and unnecessary for me to learn, as most of the content is basic and easy to complete. Despite this, I don't put my 100% effort into the course which has led me to get some bad grades (I skipped doing 1 assessment that was worth 20% of my final mark) and at this point, I'm just hoping to scrape by and get at least 50% to pass the unit from my other 2 assessment tasks. Luckily, this is the only humanities subject unit I have to take and I perform quite well in my other units.

Do software developers ever use any skills not relating to STEM (Science, technology, engineering, mathematics) subjects?

NOTE: I'm not saying humanity subjects are useless in general. I actually enjoy some humanity subjects, like foreign languages, history, English grammar. But I don't see how writing a report about a fake company or writing using active voice instead of the passive voice is going to help me in finding a job in the tech industry.

  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Neo
    Commented May 9, 2020 at 15:09
  • Most of the answers make the point "communication is important because.." which is obvious and correct. Is this really your question or are you saying the course is too basic and you don't really learn communication skills in the sense the answers talk about?
    – guest
    Commented May 10, 2020 at 19:05
  • 1
    @guest. The course is fine and structured with appropriate content. The answers given below make good points about why communication is important for IT jobs and hence why I should consider putting more effort into humanities subjects (which I have started doing). Problem is that I just can't find the effort to actually be interested in the unit. I think communication is more of a practical skill (the theory is still important though) and I'd be better off actually getting a job and communicating with others or applying for an interview, rather than taking the unit. Just my two cents though.
    – Dom Turner
    Commented May 11, 2020 at 1:22

19 Answers 19


In my professional experience as a software developer, if there is one skill I would say that is more useful than anything else, it is communication.

When you get into your career, you are going to have to work with other people, share your ideas, explain to your boss what you are doing, and convince others of your point of view. This means being able to understand what information other people want, and present your ideas in a way other people can understand. You need to be clear and concise. Technical skills are important, but honestly, the people I have seen go farthest in their careers weren't the best programmers. They are the people who know how to communicate with others.

It is unfortunate that you find your communications class so unengaging. It may very well be the most important course you take.

Addendum: Having read comments, other answers, and taking some time to think about this more, I wanted to make an attempt to answer this more broadly. Your title asks about humanities in general, and I think that is worth addressing.

In your career as a software developer (since I assume that is the path you are planning to take in studying computer science), you will work with people from many backgrounds, all with different areas of expertise. They will want you to create software for them, because they won't know how to do it themselves. It's why you will have a job. If you want to be successful at that, you will need to know how to understand their needs. I can tell you from experience that it will be rare treat to have a client that can tell you exactly what they want in language you understand. You will have to meet them on their level, understand the problem they need solved, and figure it out yourself. You will ultimately be judged not on how clever your algorithms are or how clean your code is. You will be judged on how useful your solutions are for people.

In order to do that, you will do well to absorb as many perspectives and points of view as you can. You need to understand how people think and what they want. The more you do to diversify your education, the better at that you will be.

when it comes down to it, technology is about people. Your job as a computer scientist actually isn't about writing code, or coming up with fancy algorithms, or even using computers. Those are just a means to an end. Your job is about solving people's problems. Whether you are making a basic automation script, creating yet another financial reporting system, or building the next killer app to revolutionize some industry, your goal is to make someone's life easier. If it doesn't, whatever you build, no one is going to use it. Your computer science education will teach you how to make good software, and that is important. But a solid humanities education will show you how to make something someone will want to use.

  • 7
    An easy trap to fall into is thinking a communication course has nothing of value to teach, because everyone already has some level of communicate ability, unlike technical fields which might be all-or-nothing (you can't "kind of" know how to take a derivative). It can be tempting to go through the motions of a communication course because you think your communication ability is already great, and come out the other side having learned nothing new. The course really is an opportunity to improve, though. Commented May 8, 2020 at 17:00
  • 28
    I have in the past worked with programmers who have bad communication skills, and once they get past junior level their lack hindered them greatly. Commented May 8, 2020 at 18:19
  • 4
    software engineer here to second this. I was never a fan of my communication courses (liberal arts degree), or really of any fields outside STEM, and for that reason, they were most useful to me before entering the workforce. You can have rough edges when it comes to communication, but you can't lack the basic skills entirely. The stuff you like is easy to learn, the stuff you don't want to learn is what will make you more rounded, and more easily liked by those around you. Secret: people/relationships are everything at the end of the day, even for those of us that like code > people.
    – TCooper
    Commented May 8, 2020 at 23:40
  • 4
    Software engineer here. I’d even say that many “tech interviews” care less about code and more about communication and reasoning.
    – Ryan
    Commented May 9, 2020 at 0:15
  • 2
    My last job I would say I got mostly through communications. And confidence. For doing the job, technical vs. communications is probably 80% to 20%. In other words, bad communications skill would make me 20% less effective, which is a lot.
    – gnasher729
    Commented May 9, 2020 at 12:36

I am afraid that when you get a job in IT you do spend quite a bit of time writing reports, doing presentations etc.

Therefore, this course will give you the tools necessary for working in IT. Please put more effort into it.

  • 17
    +1. Hate to break it to you but “incoherence in resume” will get you disqualified prior to interview by most hiring managers. Learn to write.
    – mxyzplk
    Commented May 8, 2020 at 13:38
  • 22
    You will also spend time doing tasks you find easy and boring. Sticking to them and completing them to a high standard is just as essential a skill as producing well written documentation and reports. Commented May 8, 2020 at 13:54
  • @PatriciaShanahan that should be 'the' answer Commented May 9, 2020 at 6:56
  • I don't quite understand your logic. Of course, people in IT need to communicate, but that doesn't mean that every communication course is useful. From OP's description, it seems the course is too basic. For an extreme example, say you have to take the exact same course 3 times. Why would it still be usefull the third time although too basic? Why should you still do all the tasks (they may be easy, but very time consuming) the third time just to get a good grade and learn nothing new?
    – guest
    Commented May 10, 2020 at 18:58
  • @PatrickTrentin I've been automating things that are easy and boring, and an entire career path sprung up in the last 5-6 years.
    – Nelson
    Commented May 11, 2020 at 6:55

College is not a vocational school. The expectation in higher learning is that your primary degree is not the end-all-be-all of a well rounded education. And yes, there are a lot of soft skills and ancillary knowledge that is important in a technology path because you will ultimately be dealing with people, and people are not machines.

Also keep in mind that this is a time you should be forming good habits on handling topics, assignments and investigations that you may not find interesting or useful. Your career will mirror this, and if you begin skipping assignments now you will pay for that behavior later when it affects a career.

The content of a course is not always its most instructional value. Also consider how you respond to the course and its material and how it affects your work productivity. For instance, you commented that the work was "basic and easy to complete", yet you did not complete it. If one of my employees said something of that nature to me about work assigned to them that they simply chose not to do, my response would be "Then why am I paying you?".

The things you learn at university don't always appear in the books and notes.

  • Your first sentence highlights a distinction that so many people miss. A trade school simply prepares you for a job, while a college/university provides a well-rounded education. If you don't want the courses "outside your major", go to a trade school.
    – bta
    Commented May 9, 2020 at 0:20
  • I really hate it when people compare college to vocational school. This comparison would make sense if top vocational schools offered the same level of education in their area of interest as top colleges do, but they obviously don't. Employers value college degrees because of the major, not because of all the fluff around. In most colleges around the world, the subjects outside of major are treated like they're insignificant not only by the students, but also by the faculty, so even if the subject (e.g. clearly communicating ideas) is important, the classes hardly ever help with it. Commented May 13, 2020 at 16:37
  • The comparison is apt, however. At the baccalaureate level the difference in capability is negligible, and often CS grads are less capable because they have the mistaken belief that they actually know much about the actual development of software. When it gets to the masters and doctorate levels, the difference is significant. You are not wrong that external subjects are seen as insignificant, and I think they aren't insignificant. They expand an individual's knowledge set and understanding. Commented May 13, 2020 at 17:37

I'm at the tail end of a 36 year career in programming. With the exception of two years as a group lead, I've been on the technical side the whole time. Easily a quarter of my work life has been spent writing and making presentations: status reports, progress reports, documentation, architecture proposals, responding to technical questions from users, code reviews, letters of reference, resumes, cover letters, blog posts, research proposals, training materials. Any time you spend learning to write and speak more clearly and persuasively is time very well spent.

I find the course really boring and unnecessary for me to learn, as most of the content is basic and easy to complete. Despite this, I don't put my 100% effort into the course which has led me to get some bad grades (I skipped doing 1 assessment that was worth 20% of my final mark)

Do not ignore work that bores you! I sympathize, and I've done the same thing at times, but it is a huge mistake. In school it will get you some bad grades and undercut your resume. If you pull that kind of thing at work it may get you laid off. Nobody wants an employee who's only willing to exert themselves on the tasks that interest them.

  • 4
    I am a retired software engineer and concur wholeheartedly with the bolded statement. Along those lines and based on my own industry experience, one piece of advice I give students and young engineers alike is that one "secret" ingredient of professional success is discipline.
    – njuffa
    Commented May 9, 2020 at 1:54

Do software developers ever use any skills not relating to STEM (Science, technology, engineering, mathematics) subjects?

You could also ask "Do people ever use any non-technical skills?"

The answer is always yes (with varying degree) unless you're the sole administrator of a Fallout bunker where no one but you is around. You do need to communicate with people in almost all software development jobs to

  1. convince them you know what you are talking about technically
  2. transfer technical knowledge, be it for your successor, for a client, for your manager, for the QA department, for a designer, for your colleagues that need to implement the algorithm you thought up (or the other way around),....
  3. sell whatever product you are producing
  4. order the right equipment, hardware, people, tools and clarify the actual requirements
  5. hire people (see 1. in opposed roles)
  6. pinpoint a bug efficiently together with customers/QA members
  7. Write/Present convincing grant applications that bring across the essentials in a concise convincing way
  8. (... I could go on, but this should give an idea...)

Soft skills like writing, speaking, presenting are exactly about that. Given a single course from all of university life (say beyond the basics of the first 3 semesters), just by itself, the one seminar that included proper presentation skill analysis had the most practical impact on my professional life. Not saying you don't need the others, but there are plenty of them and each contributes a bit to your technical knowledge. For soft skills the opportunities to train them during your academic career are typically sparse.

But this underestimation of soft skills is a common problem in software developers. Inherently software development with the exception of very small niches is a group endeavour that requires a substantial amount of communication/soft skills. I guess part of the reason why they are often underestimated is that everyone feels they already can communicate. Still, as with most other feats, there is quite a bit of difference between someone who knows the basics and someone that is really proficient.

Btw. in my last company that offered lots of options for training opportunities, the soft skill courses were the most overbooked ones. And interest only rose for people who had taken one (on average, there are always outliers^^). That being said, as all topics, such courses can be very well done or very poorly and boring.

  • communication is actually equally important for solo programmers as well, if you work on upwork, you may be working alone or in your personal capacity, but you still need to communicate effectively with your employer
    – Neil Meyer
    Commented May 10, 2020 at 9:23

Short answer:

There is a world of difference between KNOWING that you're right and SHOWING that you're right.

If you can't make a connection with people through your writing or your presentations, you're not going to get anywhere with your plans or ideas.

Humanities can teach you how to make that connection.


Are humanities subjects useless for computer science jobs?

Well, since you mention jobs, here’s what a guy named Steve Jobs had to say about applying things he learned as a college dropout still hanging around his old campus and following his curiosity in a seemingly aimless, “useless” fashion by taking random humanities classes:

Reed College at that time offered perhaps the best calligraphy instruction in the country. Throughout the campus every poster, every label on every drawer, was beautifully hand calligraphed. Because I had dropped out and didn’t have to take the normal classes, I decided to take a calligraphy class to learn how to do this. I learned about serif and sans serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. It was beautiful, historical, artistically subtle in a way that science can’t capture, and I found it fascinating.

None of this had even a hope of any practical application in my life. But 10 years later, when we were designing the first Macintosh computer, it all came back to me. And we designed it all into the Mac. It was the first computer with beautiful typography. If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts. And since Windows just copied the Mac, it’s likely that no personal computer would have them.


  • Macs always did strike me as weirdly aesthetically pleasing.
    – Neil Meyer
    Commented May 9, 2020 at 8:27
  • 1
    tl;dr If OP drops humanities, the future of computing will be ruined worldwide! Commented May 9, 2020 at 14:48

There are plenty of good answers already, but I will still add mine.

The first person I've ever fired as a manager was a very smart colleague, who however, would focus to a large extent on what he found interesting largely ignoring the rest. And what he found interesting was the technical/ mathematical aspect of his job. We worked in business, i.e. we didn't do theoretical math. We were paid to solve practical problems, which involved understanding what business wanted and finding practical solutions to their problems. Most IT jobs are like that. By focusing on the technical aspect only, he was useless to us.

I'm myself a person prone to hyperfocus on what I find interesting and to forget the whole world. The problem is, this doesn't work in business.

There are exceptions everywhere. If you're a genius who'll revolutionize some field with your technical knowledge, this can be less important. Maybe. Or you won't be able to ever start revolutionizing anything because you won't get anyone's attention in the first place.

Looking back at several years of career in tech, you will have extreme problems finding a job in which communication/ change management/ expression (writing, presenting) don't matter.

Communication as a university course is about the professional standards of communication, not about what you've being doing since you learnt to talk. If you think that's easy you simply don't grasp the complexity. Careers can be made or broken because of how good/bad someone is at it.

And that's even without mentioning that you seem to reject the courses as "easy" and then have difficulties passing them, which shows your lack of maturity. You should excel at the easy stuff, shouldn't you?

I've had to do with junior colleagues like that. They used to complain about basic tasks they did, such as data preparation, because they were "too well-educated" for that. When they were asked to do it anyway, their results were full of mistakes, for which their justification was: "It's just that I don't care enough".

Work in business isn't mostly rocket science and we can't delegate all basic tasks to interns. Also senior people have plenty of operational, boring tasks. I myself do plenty of tasks a monkey could do, but which can't be automated for some reason like compliance.

If I saw in an applicant's university record that they excelled in technical courses but struggled in humanities I would ask them why. If their answer was "these courses were too easy for me to devote them any attention" this would be a huge no-go for me. When employing people I'm looking for someone who will perform their tasks quickly and correctly without too much drama involved. Any sign they would be reluctant to do some part of those tasks because of their ego is a huge red flag.


Do software developers ever use any skills not relating to STEM (Science, technology, engineering, mathematics) subjects?


I'm not even a developer but combining software development with Linguistics got me an audience with a King, made me around 50K and currently has my software in 11 govt departments and every school in a country.

The more strings you have to your bow the better. Many breakthroughs and inventions come from combining disparate disciplines. At the very least it trains you to look at issues from multiple perspectives.

  • 2
    Exactly what I came here to say. I'm a developer who came from a non-Comp Sci background initially (I studied Cog and Soc Psy in college). Multidisciplinary stuff is where a lot of inventions come from - like you, I also have something in linguistics I'm releasing soon with a potential startup incubator interested. I also created a molecular weight analysis library that is now acknowledged in multiple published papers and was talked up in Beijing. The more things you are capable of doing and understanding, the more you can do. Humanities absolutely contributes to that.
    – Joe Smentz
    Commented May 9, 2020 at 5:33

There is a decent chance that some non-technical will have influence over your career.

All that non-technical will see are your presentations, your emails, your reports, and maybe some bits of the frontend. I have friends who admit they can't code their way out of a paper bag and copy/paste off Stack Overflow who work as software engineers simply because the people who manage them don't code, so only have nice "what I did this week" sheets to go off of or nice frontends in sprint planning.

That is an extreme case, but my point is made. There are plenty of jobs where you can be incompetent and survive or even get promoted by focusing on the comms side.

Another case of this was back in university for my capstone project. My team was struggling as the professor and the industry client couldn't agree on what the project was about, so one or the other kept marking us down. We eventually stopped doing any real research beyond Wikipedia citations and focused on making it merely sound authoritative. That made everyone happier.


I'm an Internet Development Consultant (upper-level programmer) at a Fortune 100 Company. My degree was philosophy. I never took a computer science course in my life. Without question, my humanities background has helped me excel in the field of IT, especially now that I'm working on AI.

Remember, computers were invented by a philosopher.

  • In which department is logic formally studied?
    – Neil Meyer
    Commented May 9, 2020 at 10:13
  • @NeilMeyer - All the logic classes I took were in under Philosophy --and they were great prep for programming. Of course, that was a long time ago. I don't know what department logic would be considered now. Commented May 9, 2020 at 11:46
  • 1
    In which department is the philosophy of science studied or questions in regards to epistemology which is the intellectual framework that underpins all intellectual inquiry? Science without philosophy is empty, but tbh this whole question stinks of humanity bashing, which seems rather common in scientists today.
    – Neil Meyer
    Commented May 9, 2020 at 13:13
  • If the scientist is concerned with the ethical implications of his work in which sphere of inquiry is his ethical questions going to be discussed?
    – Neil Meyer
    Commented May 9, 2020 at 13:15
  • If the website designer wants to discuss the aesthetics of his website design, he is doing a humanities subject, ui design is philosophy.
    – Neil Meyer
    Commented May 9, 2020 at 13:18

The question reads as if you were hoping to find some justification for slacking off the courses you don't like.  Sorry to disappoint you!

As just about all the other answers say, communication is really important in a technical career.  You'll need to communicate with at least some of: bosses, team leads, technical colleagues, non-technical colleagues, HR, users, clients, suppliers, regulators, investors, interviewers, interviewees, and many more.  You'll need to be able to produce (and use) most of: code comments, internal documentation, external documentation, support tickets, technical reports, technology reviews, bug reports, code reviews, presentations, mentoring or teaching sessions, and countless emails, instant messages, meetings, and phone calls.  (Not to mention a CV/résumé.)

Everyone thinks they can do these, but most of us aren't as good as we assume.  Yet in a technical career, communicating technical details clearly, simply, and accurately is probably more important than in any other type.  There are difficult concepts and fine details that we need other people to understand (and to understand ourselves), and so communicating effectively is vital.

The reason I'm posting another answer, though, is to include a very relevant quote.  Eric Raymond wrote a guide called How To Ask Questions The Smart Way.  (It dates from before this site was founded, but most of its advice applies very well to asking questions here!)  And in a section headed ‘Write in clear, grammatical, correctly-spelled language’, he writes:

We've found by experience that people who are careless and sloppy writers are usually also careless and sloppy at thinking and coding (often enough to bet on, anyway).

(That's my experience, too.)

So if you're thinking that communication is somehow separate from technical ability, that it doesn't apply to coding and a career in computer science and doesn't deserve care and effort, think again: they're all part of the same package, and your bad grades may be a sign that you need to improve technically as well as linguistically.


I work as IT Consultant. In my company, new hires get courses on communication, body language, presentation, etc. We also train interviewing, because that's what gets us new projects.

Of course, all these skill are icing on the solid knowledge cake.

So it is understandable that you want to focus on the fundamentals of your subject. But later in life, having those other skills will make a huge difference in your job. Are you able to persuade other people in the project? One well written email can influence the course of months to come.

One well held presentation can have a lot of influence on your coworkers and may be the difference between your nagging "X is a good idea, we should try it" and other people actually giving it a try.

There are people, who all talk, no work. And there are people who are all work, no talk (the stereotype nerd cliche). Gaving a healthy balance between those two gets you further!

TLDR: Yes, we do use skills beside STEM.


Not only do IT jobs require communication (as others have indicated), non-technical skills emotional intelligence (self-awareness, emotion management, etc.), reading comprehension, business knowledge, etc. are very important.

Quite simply, if you don't understand what you're working on, the quality of your work will suffer. This often requires domain knowledge or understanding that is beyond core technology skills. It's also very difficult to anticipate what this'll be in advance.

Taking coursework in humanities and other non-STEM areas prepares you to be able to learn these subjects and to interact with people well.


Do software developers ever use any skills not relating to STEM (Science, technology, engineering, mathematics) subjects?

Based on long-time experience as a software engineer in Silicon Valley who advanced in the technical track and retired some years ago, I previously identified the following non-STEM specific skills in an answer on Computer Science Educators Stack Exchange, roughly in decreasing order of importance for someone in that line of work:

  1. Writing skills: clearly communicate problems and solutions to colleagues and customers
  2. Interpersonal communication skills: build productive relationships with colleagues and customers
  3. Time management skills: deliver products to market-driven deadlines for maximum profit
  4. Foreign-language and cultural adaptation skills: move to a different country to further your career; work with collaborators and customers in a global economy with a minimum of friction
  5. Research skills: assess the state of the art; avoid re-inventing the wheel and repeating other people's mistakes; identify new opportunities for innovation

Most of what you learn in school, especially undergrad, has very tenuous relevance to your day to day work. There are many reasons for this: Lecture format is not suited to teaching many things well, classes are poorly designed, instructors are out of touch and don't have real investment in training you properly, we could go on. The point is, it is extremely rare to encounter a moment where you would think "Oh, because I have learned this in undergrad my task will be super easy!"

That's not to say you should stop going to class and drop out. Challenging, philosophically meaty classes can augment your self-learning in many ways. They expose you to crucial context that you wouldn't pick up on your own, train your intellectual skills so you can think on your feet effectively, and generally make you better at thinking and learning. But there will always be a long causal chain going from that to concrete day to day benefits, with many other incidental factors.

Because of this there is no point in asking "How will X course help me in Y job?". You should take courses on the basis of whether they serve your own intellectual goals. By that I mean not things you want to learn to tick an employer's checkbox, but things which you consider worth learning. Obviously you have to have some sort intellectual goal for any of this to apply, and you must have some philosophy with regards to what is actually worth learning. Developing this sort of sense is arguably a priority for a college student.

Humanities as a subject is not counterproductive or useless for a programmer. Like much knowledge work, programming heavily relies on analytical skill, problem solving ability, logic and being able to quickly pick up new technical concepts. Humanities can be very effective in developing these. Sometimes they can be more effective, because they can have latitude in eschewing technical matters and focus purely on the intellectual aspects (eg. philosophy). They can also teach you intellectual techniques (as in ways of reasoning effectively) that you cannot really learn anywhere else. Subjects like literature can impart a perspective and grounding.

Almost all humanities courses place a heavy emphasis on effective communication. In fact as an undergrad it is hard to find a more rigorous training in communication anywhere else. As others point out, communication is a crucial skill and also a highly sought one by employers. So you do get that "concrete benefit", if you will.

But generally, you will not learn anything in a humanities course that you could directly apply to anything at your job (this largely applies to your computer science courses as well). However, having learned the humanities, you will most likely find like countless other people that you become better at your job. This is because you become better at finding the things to apply, and better at applying them.

All of this is also predicated on the assumption that the courses you take are high quality. I would go as far as to argue that you should always take the highest quality course available (that appeals to you), no matter the area. Because college instructors are rarely well-incentivized to provide quality instruction (they are rather incentivized to bring fame and monies to the college through their scholarship) you will often find many low quality courses, even at elite institutions. By low quality, I mean courses which fail the task of intellectually challenging students and promoting their growth. Such courses are a waste of time regardless of their field.

I find the course really boring and unnecessary for me to learn, as most of the content is basic and easy to complete. Despite this, I don't put my 100% effort into the course which has led me to get some bad grades (I skipped doing 1 assessment that was worth 20% of my final mark) and at this point, I'm just hoping to scrape by and get at least 50% to pass the unit from my other 2 assessment tasks.

If it is truly basic and fails to spark your curiosity, then it is a waste of time and you shouldn't bother. However, it's also important to be honest with yourself. When you say it's boring and basic, is that a fair and objective judgement of the course? Or are you just saying that to rationalize your own negative emotions? If it was really was so easy to complete, one imagines that you could put in 20% of your effort and still get a high grade. Not to say there are no classes that require a lot of effort and still are useless, but that doesn't sound like it is the case here. Logically, either the course is easy and you get your easy A that at least brings your GPA up, or it's a hard course that teaches things you don't know. Whether you care to learn those is another matter.

Luckily, this is the only humanities subject unit I have to take (thank god) and I perform quite well in my other units.

Often the mandatory electives are the worst quality courses, for obvious reasons. But it's also irrelevant whether they're helpful in your career, given that you have no choice but to take them. In the situation that elective you can pick seem to teach you nothing interesting, you should pick the elective that allows you to get the best grade with the least effort. But usually you can talk to your advisor and get permission to take another elective that IS interesting, and this is almost always the better option.


Science and philosophy (a humanities subject) interact all the time without anyone even really realising it. If you are a Web dev, you are going to spend a decent amount of your time concerned about how websites look. Google fonts is a service almost entirely committed to improving the aesthetics of websites.

To be honest, if you really wanted to be a world-renowned figure in ui design, I would go as far to say a PhD in philosophy, specialising in aesthetics would be a better spend of your time than a cs degree.

Also, after WW2 questions of bio-ethics became vital. Nazi Germany, was very hi-tech, but by most standards completely immoral. The world's scientists realised that science does not operate in a moral vacuum, the things scientists do, can be very positive, but it has the real possibility to interact with non-scientists in a way they may not understand. Nazi doctors and especially the work of Joseph Mengele, shocked the world's doctors. Never before had a person who did take doctors oath, commit such horrors. How could a trained doctor do such things in the name of science and progress? Tbh an immoral / unethical scientist can end this world. That is not me being hyperbolic.

I myself find web design very creatively stimulating, yes you have the programming side that is more of a science, but no real website is function without any form. I like web design because the technical side is approachable and the creative side does also exist.

I also did realise it but my years spending teaching children the G Major scale has taught me enough social skills that if I become a good enough programmer I would be able to discuss web design with non technical people in a way they understand, while still having lots of things to say about broodwar build orders and Wow lore when talking with nerds.

So yes, your college has a better understanding of the job requirements of a programmer than you give them credit for.


There are a lot of good answers about how important communication is in tech and how some other humanities fields actually do have direct applications in STEM. I want to give a more general answer that expands upon a point that someone else touched upon.

I feel that the question "When will I use this?" is usually asked by people who focus on the content and disregard the methods. Humanities classes are valuable for STEM people (and STEM classes are valuable for humanities people) not necessarily because you'll need to recite some fact you learned about the English language later on, but because these classes expose you to different ways of looking at the world. (Or at least, that's the idea behind it. You may have to do that on your own for the classes that suffered from bad bureaucracy or planning.)

One example of this is looking at things holistically (as a whole) vs. looking at things analytically (as parts). To give a very broad generalization, you look at things analytically in STEM but holistically in the humanities. Sometimes I think some tech companies look at things too analytically and fail to see a holistic picture when the whole is greater than the sum of the parts--well, I guess it's really that the intensity of the whole is more intense than the sum of the intensities of the parts (very basic example: privacy--splitting up and anonymizing individual bits of data doesn't mean that conclusions can't be drawn about people when the data is put together).

Disclaimer: I'm a traditionally-aged undergraduate student (in the US) who has only held a teaching assistant job. This answer probably sounds very idealistic. But I think it's good enough because just because something is a pipe dream doesn't mean we should totally disregard it. I believe striving to embrace many ways of looking at the world makes us all better people, so if nothing else, I guess this answer is about personal/internal development.


It's about the methods, not the content. It helps you to be flexible.


Software Development Engineer here working at Amazon Web Services. Couple years ago I was considered for promotion but passed specifically because while I am considered a high-performance developer with a slew of complex projects delivered, my communication skills were not good enough for me to exert influence on other developers on the level sufficient for promotion to Senior SDE, and even my visibility to the management was the result of a series of lucky accidents rather than my ability to present myself and my work.

Consider this: your technical skills are your raw performance, but your communication skills are your I/O capabilities. If you're into computer history at all (and you really should, if you chose computing as your main area of expertise - history helps us understand the present much better), then you should know the history of the very first electronic computer, ENIAC. In April 1948 ENIAC was modified into a stored-program computer: "This modification reduced the speed of ENIAC by a factor of 6 and eliminated the ability of parallel computation, but as it also reduced the reprogramming time to hours instead of days, it was considered well worth the loss of performance. Also analysis had shown that due to differences between the electronic speed of computation and the electromechanical speed of input/output, almost any real-world problem was completely I/O bound, even without making use of the original machine's parallelism. Most computations would still be I/O bound, even after the speed reduction imposed by this modification." Even today most computations are still I/O bound, limited more not by CPU speed, but by RAM, even more by storage, and even more by network, and even more yet by the computer/human boundary throughput and latency. Heck, I've been chasing ever faster computers for years, only to find that nowadays for most of my tasks a 2019 PineBook Pro unit with paltry hexacore ARM CPU (that has performance scores similar to a Core 2 Duo from 2006) doesn't really slow me down compared to my latest ThinkPad P53. Humans usually can think faster than they can type, and if you take into account all the procedures around communication, all the social conventions around just going and talking to someone, and making sure they have time for you, and then they're also willing to listen to you, or that they even understand the language you're using... And then at some point you come to realize that even though your work is the most significant time-wise part of your life, it's not the most important value-wise part of it, there are things like family and friends, that at the end of the day define your life even more than your work, and that you have to communicate with all those people, and that certain principles of communication apply not only in your professional life or only in your private life...

Our human lives are VERY HEAVILY I/O bound, they are all about communication. And when you convince yourself otherwise your life will simply beat that misconception out of you the hard way.

Not the answer you're looking for? Browse other questions tagged .