Which classes are most useful?
Degrees regarding knowledge on empathy, conversation & communication — They’re pillars for developers who want to excel at their job. Communication is simply so important!
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.
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.
I had an English major manager for a few years. He was great.
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.
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”
“If you can’t explain it simply, you don’t understand it well enough”
Any degree where you learned to handle frustration and suffering
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...
Fully agree with you, parenting should be seen as a plus on a dev resume.
Actually, if you or someone else feel like it, I would love to read such an article:
How parenting makes me a better programmer
That actually crossed my mind when I made the first comment, I can write one!
Philosophy major here. So far, it seems to have helped. You learn how to take a few steps back from a problem and view it with a different perspective. The degree also emphasizes logic and reasoning, the building blocks of anything you will find in computer science. The two complement each other nicely.
It's sort of funny. I remember working at this call center for the University back in the day, asking people for donations. I got this one guy on the phone and told him about my double major. He laughed and said "good luck with that philosophy and computers".
Financially, the joke is on him.
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.
I think I read somewhere that the average philosophy major makes $88K per year at the peak of their earning years. The stigma just doesn't match the data.
It isn't that college or the choosing of a major determines one's life course (entirely). I think certain majors tend to select for a certain kind of person and that biology does roughly half the work of shaping who you are.
You probably see more philosophy majors making more money because, as it turns out, critical thinking is a skill that makes you rich.
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.
Lighting... That's fascinating.
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.
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.
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.
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.
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.
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
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.
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.
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...
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!
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...
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.
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?
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.
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 :)
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.
To name a few
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.
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.
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.
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.
Having a history degree actually has a lot of advantages.
Communication for sure!
Electrical engineering has me thinking a lot about the efficiency of my code probably a lot more than I should. :p
Math? Just by seeing the amount of math undergrads aiming for computer science graduate degree.
Psychology, Sociology: Most software is used & developed by people, so you should know how your users & your co-workers "work".
Business and marketing will help. Even if you never have to do them, it will help with grocking the bigger picture.
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).
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.
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..🤓
I don't know about degree much .But I think a person with good documentation skills can come in handy in software development.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.