Software engineering and independence

In summary, the conversation discusses the speaker's tendency to think independently and their aversion to authority in coding. They question if the software engineering field would be difficult for someone who prefers autonomy and ask for suggestions for computer science fields that allow for independent thinking. The response advises the speaker to learn to work within guidelines and consider the perspectives of others, while also recognizing the importance of being able to communicate effectively with others in a team setting. Finally, the conversation addresses the potential consequences of not being able to work within established guidelines and the importance of acknowledging and addressing one's own shortcomings.
  • #1
CyberShot
133
2
I tend to think very independently, often coming up with unconventional, sometimes unorthodox, ways of solving problems. I do not like to listen to authority such as having to code up software a certain way or following strict guidelines/formats.


Do you think the software engineering/development field would be very tough for someone like me who prefers autonomy? If not, what fields of computer science do allow for that?
 
Physics news on Phys.org
  • #2
CyberShot said:
following strict guidelines/formats.
If you work only by yourself (extremely unlikely) you can do it anyway you want. If you work for/with someone else, you'll have to follow the guidelines. Other people must be able to understand what you wrote. It's not a matter of authority, really. View it as simple politeness to others.

I'd say just learn to deal with it. You still have autonomy, but writing something that is completely incomprehensible to everyone else is not useful at all. What if you leave a project? Nobody will be able to take over.

This is going to be true for any field, btw.
 
  • #3
CyberShot said:
I tend to think very independently, often coming up with unconventional, sometimes unorthodox, ways of solving problems. I do not like to listen to authority such as having to code up software a certain way or following strict guidelines/formats.


Do you think the software engineering/development field would be very tough for someone like me who prefers autonomy? If not, what fields of computer science do allow for that?

If you are working in a team, you have to tone down the ego. My view is this:

If you have a better way of doing something and can constructively provide an argument why this is so, and your counterpart can not refute the argument then go ahead. If however they point out something that refutes your idea, then take on board what they said.

If someone has been doing something for many years and you haven't, chances are they will know more than you. As long as you are comfortable with this "law of averages" and willing to become better by listening to your peers, then I see no problem.

Sometimes your "expert" will get it wrong, and if you end up in this situation where they don't accept their shortcomings and act like an *******, then things like "office politics" may come into your decision (and unfortunately this kind of thing happens a lot).

People that see their shortcomings and act constructively to patch them up in my book command a lot of respect and subsequently earn it.
 
  • #4
Most successful large software projects are now done in a very highly structured fashion, so "not listening to authority such as having to code up software a certain way or following strict guidelines/formats." will get you nowhere, except unemployed.
 
  • #5
caffenta said:
If you work only by yourself (extremely unlikely) you can do it anyway you want.
chiro said:
If you have a better way of doing something and can constructively provide an argument why this is so, and your counterpart can not refute the argument then go ahead.
My understanding from another topic that he made is that "coming up with unconventional, sometimes unorthodox, ways of solving problems" means "my approach is so unconventional no compiler understands me".

So as people have already mentioned in that other thread, if you're going to keep telling yourself it's just that you have a different "approach", then you're going to be in a world of trouble very soon.
 

1. What is software engineering?

Software engineering is the process of designing, creating, and maintaining software systems. It involves using engineering principles and methods to develop high-quality, reliable, and efficient software that meets the needs of users.

2. Why is independence important in software engineering?

Independence is important in software engineering because it ensures that different parts of the software system do not rely on each other too heavily. This allows for easier maintenance, debugging, and scalability. It also promotes modularity and reduces the risk of system failure.

3. How does software engineering promote independence?

Software engineering promotes independence by using design principles such as encapsulation, abstraction, and modularity. These principles help to break the software system into smaller, self-contained components that can function independently. Additionally, software engineering practices like code reviews and testing also help to identify and resolve dependencies between different parts of the system.

4. What are the benefits of independence in software engineering?

Independence in software engineering has several benefits, including increased flexibility, easier maintenance, improved scalability, and reduced risk of system failure. It also allows for easier collaboration among team members, as different parts of the system can be worked on separately without causing conflicts or delays.

5. How can software engineers maintain independence in a team setting?

To maintain independence in a team setting, software engineers should follow established design principles and practices, such as encapsulation, abstraction, and modularity. They should also communicate effectively with their team members and conduct regular code reviews to identify and address any potential dependencies. Additionally, using version control systems and establishing clear coding standards can help to maintain independence and promote efficient collaboration within a team.

Similar threads

Replies
23
Views
3K
  • STEM Career Guidance
Replies
5
Views
681
  • STEM Career Guidance
Replies
2
Views
1K
  • STEM Career Guidance
Replies
1
Views
2K
Replies
13
Views
2K
  • STEM Career Guidance
Replies
1
Views
987
  • STEM Career Guidance
2
Replies
53
Views
6K
  • STEM Career Guidance
Replies
9
Views
2K
Replies
3
Views
119
  • STEM Career Guidance
Replies
3
Views
1K
Back
Top