Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Can a software engineer help change the world?
32 points by noobie on June 8, 2015 | hide | past | favorite | 53 comments
I am sorry for the weirdness of the question but I am relatively young and want to make an actual impact on the world, something science/tech related one day. Will becoming a software engineer be a step in the right direction?


> want to make an actual impact on the world

So in your view, there's this mass of people who accomplish nothing useful and then a few who change the world?

> Will becoming a software engineer be a step in the right direction?

You need to realize that every single one of us who works, regardless of profession, changes the world. Even the guy flipping burgers at McDonalds.

If the guy wasn't flipping burgers, you'd be hungry and you wouldn't be able to do your super duper important job. Every single person in the economy contributes and shares in the accomplishment of everyone else. It's a large machine and every piece is important. Every piece, every person, makes a contribution and has an actual impact on the world.

Don't choose your profession based on some pre-conceived notion of how important a job is. That's just a cover for where on the social ladder a job falls. Yes, if you're a lawyer or a doctor, you'll be more respected than a burger flipper. Better paid too. But that's all it is, social perception and its consequences.

Choose a profession based on your ability and your capacity to engulf yourself in the work. If you have the capacity to be a software engineer, you enjoy the work, and you can make beautiful things with your skill-set ... by all means. But leave the pretentious bullshit of "making a difference" behind. We all make a difference, regardless of the profession.


I hate to admit this as an engineer, but the people who make a difference are working at the strategy level and not the implementation level, which is where most of us engineers spend our time. No world-changing startup ever failed because "we couldn't get the code right" -- they fail because they build things the world doesn't want, or they fail to market the things they build to people who want them.

The second difficult-to-admit thing is that software is only good at solving problems where analyzing information and manipulating data are the solution. Mobile banking apps are doing tremendous good in developing countries -- but the benefits of things like mosquito nets, water purification, and vaccination are not software problems. I'm pretty doubtful that apps will do much to alleviate poverty, although I'm excited and encouraging of the people who are trying.


I think you're a bit off base about the implementation level not making much of a difference compared to the strategy level. Have you never seen engineers essentially fail at building a spec because they couldn't implement something well enough? I've seen a team of full stack developers build an ambitious web UI with lots of complicated data visualizations/animations/interactions/etc. There were tons of performance issues because they did not understand the browser/javascript/css well enough to optimize things. A front end pro needed to go in and salvage the whole thing because it was not usable.

Another anecdote I personally have is a friend who is obsessed with being an entrepreneur. He keeps coming up with these ideas that are actually pretty decent, but he tries to build them himself (he's self taught but still doesn't really know what he's doing) and what he ends up with are things no one would ever, ever use twice.

Strategy is nothing without good implementation, and implementation is nothing without good strategy.


> Have you never seen engineers essentially fail at building a spec because they couldn't implement something well enough?

I've seen engineers fail at a task. I've never seen an entire startup fail because of bad engineering -- they fail because they don't have paying customers, and the lack of paying customers is usually not because "our app doesn't work just right." Users will keep using clunky apps that solve a real problem for them, but they abandon apps that don't solve a real problem.

> He keeps coming up with these ideas that are actually pretty decent, but he tries to build them himself (he's self taught but still doesn't really know what he's doing) and what he ends up with are things no one would ever, ever use twice.

That seems beside the point, doesn't it? We're not talking about whether implementation is completely unimportant, merely that the biggest lever is strategy (the idea itself, the marketing, the leadership that makes decisions about how to reach product-market fit) and not implementation. Let's say your friend is actually a semi-decent engineer. Would his app be 10% better if he were a 10% better engineer? Probably not. Yelp is ugly as sin but people keep using it because it solves a real problem. Tinder chat is broken beyond belief but people keep using it because it solves a real problem. Those companies have reached success through strategy and not implementation. You could make Yelp or Tinder 10% better from an engineering perspective, but that's not going to produce a 10% increase in users... I'd be surprised if it produced any growth in users at all actually.


Not necessarily disagreeing, but I'd like to point out that you your logic is based largely off of survivor bias. You've never seen an entire startup fail because of bad engineering probably because they never get to the point of relevance necessary for you to have heard of them.

To use your example of yelp - it might not be a feat of engineering, but it's well engineered enough to not get in the way of the problem it solves.


Wrong. Plenty of engineers can strategize and implement. Both skills utilized in harmony are required to change the world. If you manage nothing you gain nothing, just like if you direct your work randomly without any strategic planning, you also gain nothing. This does not mean you need one person for each role.

Just note two things:

Strategizing is usually easier then implementation. It is by far easier to Imagine something then it is to make that imagination real.

The people who strategize will usually, unjustly get more credit then the people who implement. This applies both to failure and success.


While what you are saying isn't entirely without merit, isn't that like saying that the success of the Apollo missions lie with the bureaucrats rather than the engineers and astronauts?


I'm saying that man wouldn't have set foot on the moon without John F. Kennedy declaring it would be so, but man would probably still have walked on the moon if the Apollo engineering team were slightly less skilled. (Probably would have taken longer and had more deadly failures, so thank God for the highly-skilled people who worked together to make it all possible, but engineering skill adds incremental improvement because efficacy becomes more dispersed the further down the pyramid you go -- that's just the nature of human organizations, the implementers are fungible.)


You don't think a bunch of astronaut deaths and costly mission failures would've eventually eroded public will?


A bunch of astronauts did die at the very beginning: Apollo 1 blew up on the launch pad. There was outrage in Congress but it died down because LBJ (a huge NASA supporter) used his (in)famous strong-arm political leadership to push forward. Again: strategy and leadership were more important than implementation. LBJ was more important for pushing Apollo forward than NASA's engineering success (or lack thereof).

http://en.wikipedia.org/wiki/Apollo_1#Political_fallout


Depends on the mix. As long as there are some spectacular successes, there will be interest.


There is a very strong case for that line of thinking. The bureaucrats and politicians created an environment where society valued the work on Apollo as well as a very significant budget.

Without the politics, the Apollo missions wouldn't have happened.


Sure many individual engineers are remembered, such as Margaret Hamilton: https://medium.com/@3fingeredfox/margaret-hamilton-lead-soft...

But nowadays projects are built by hundreds if not thousands of engineers. They are all necessary but no individual engineer is irreplaceable or particularly important.


Well one big exception being Bitcoin, for some values of "change the world". Without BTC, maybe dark markets wouldn't have taken off, and who knows how many people would go without access to medicines, or deal with quality/legal/violence issues.

People thought of digital money before, but Bitcoin's implementation set it apart, no?

Perhaps the same can be said for Tor, as well.


I've never seen a legal use of Tor in a Western country.


1. Don't try to boil the ocean. You can't change the whole world at once, you can only affect your sphere of influence. You first need to expand your sphere of influence.

2. The easiest way to do that is money. (ex: Bill Gates, Elon Musk) Barring that, you need to write an awesome book, or have something published (Stephen Hawking, Albert Einstein), or get elected (Barack Obama). Chances are, those will lead to increased wealth also.

3. Use that to introduce the change you want in the world.

The thing is, the most difficult part is expanding that sphere. You're one person of 7 billion. That's not even a one in a million chance of impacting the world. The odds are against you. That said, you can make a change in your community, maybe even your city. The key is, you have to start right where you are and impact what you can.

If Albert Einstein had asked 'should I become a patent clerk if I want to make an actual impact on the world?' people would have flat out said NO. The thing is, it did give him steady income and time to think, and thinking is what he did best.

Now of course you can shortcut those steps by being a martyr for whatever cause you want (Nathan Hale, Mahatma Gandhi), but then if you have to ask, you're already doing it wrong.


Whatever your career, if you earn money then effective altruism is an evidence-based approach to improving the world:

http://en.wikipedia.org/wiki/Effective_altruism https://centreforeffectivealtruism.org/

I suspect this isn't what you were thinking of - but it's something you can do that doesn't prevent you improving the world directly through the software you make.


Yes. Effective altruism is the right answer.

This EA organization seems especially relevant to OP's question: http://en.wikipedia.org/wiki/80,000_Hours


I'm going to say no. It isn't because software engineering is unimportant. It is because you don't know what impact you wish to make. You asked the wrong question. You ask "Can a software engineer help change the world?" when the question is really "How useful is software engineering to a person who will change the world?" Perhaps you can see the difference.

The people who stand upon the ends of our levers are there because they have already decided the direction in which they wish to push.

You cannot guarantee that any skill will help you until after you have decided what you want the world to do for you. Once you have decided upon your end, the means to it should become more clear.


My take on this: it's already hard enough not to screw the world any more that it already is. My favorite example: adding "[this project] shall be used for Good, not Evil" to your code will bring infinite arguing back and forth[1].

I try to focus on the small things. There are alternatives to owning the Bill & Melinda Gates Foundation. Choosing not to work for Zynga, or refusing to help the NSA's data collection is more than enough for a start. Write an app that makes life in the 3rd world easier, and you are already ahead of the curve.

[1] https://news.ycombinator.com/item?id=5138866


>I try to focus on the small things

Great attitude. I feel the same way too. There is a line[1] in "Hey Jude" (a popular Beatles song) that I quite like:-

"Don't carry the world upon your shoulders"

No one can change the world all by himself but little things go a long way.


I think as an engineer, you'll learn to 'learn how to build'. Then you can learn to build software, or hardware, or anything.

Then as a software engineer, you'll earn a decent amount of money. And money is what you will need to sponsor your dreams of changing the world. And getting started in software isn't too hard, you just need a computer and internet. Worst case, you can always fail and start again (minus health). So out of any career, I think a Software Engineer one is a pretty good bet. You will at least get a pretty good set of tools to help you out. Then it's up to you and your determination.

All that said, I don't think there's a single 'career' that will make you change the world. Nothing and nobody will make you change the world, it will come from you.


I think that depends on what you mean by "actual impact on the world."

Some people might advise you that you can't do much, but that's not true.

Some people might advise you to try to do something uber-ambitious, but most uber-ambitious projects fail.

Some people point out that almost whatever you do, your labor contributes to society as a whole. That's very true.

I want to add: change the world into what? In what direction? Your question is like asking, "Can I travel far away by train or automobile?" Depends where! Are there roads or tracks? Do you intend to construct roads or tracks? Why are you picking out some destination in particular?


I think it's inevitable that you will need software if you're going to use science/tech.

Software did change the world and is continuously doing that. The jump from even 30 years ago is spectacular.

This trend will continue in the foreseeable future.

But notice that there's a slight difference between 'changing' the world and 'making the world better'.

The first means doing thing differently, which doesn't necessarily mean that it is in everyone's best interest. Change can also be a bad thing. The second means giving humanity tools which they can use themselves to solve some of their existential problems.

When you solve one of these problems you can either: profit immensely from it by being a monopoly (change the world) or share your solution with the world and contribute to everyone (make the world better).

Then there's you very personal desire to 'make an actual impact'. You have to very carefully examine why you want it to be you and not someone else. If you're looking to get rich, you can do it in a lot of other ways. If you want a place in history, you can also do it by going into politics or science or art. If you want to improve the condition of the human race, then ask yourself - are you willing to still do it even if you get no reward or recognition for it ?

I guess that's more than you asked for, but I think it's important to consider these things early as they will haunt you for the rest of your journey. Good luck.


"Make an impact", "change the world".

You can certainly do that working at NSA (or FSB).

If you want to do good, then becoming a software developer (or accountant, or statistician) is not enough in itself.

It is what you then choose to do with your knowledge that determines that. And luck.

However, beware [1].

[1] http://en.wikipedia.org/wiki/The_road_to_hell_is_paved_with_...


Sometimes I think we software engineers are really arrogant. Can a plumber change the world? Can a teacher? Can an architect? Can a civil engineer change the world? Yes they all can, but you'll only hear a software engineer ask a question like that.

Anytime I see an article saying something along the lines of "Big data can cure cancer," I just laugh. All occupations help the world in their own way. Software just happens to be really trendy right now.


This is a legitimate question because, as opposed to other professions such as the ones you mentioned, software engineers very often do not change the world at all. A lot of software projects fail, have a very short lifetime, replicate something that already exist or do something that may not seem very useful (eg. the plethora of "social" apps). In all these cases, the impact of software engineering is actually rather negative: wasted natural resources, wasted time, etc. Even when the software is innovative and has users, we can often question its usefulness for humanity. For example, high-frequency trading or mass destruction weaponry are fields where the question of meaning may arise. I think the question of meaning is important to software engineers because it's not obvious at all that what they do is meaningful.


I think you illustrated the reality of software engineering, not the perception. The perception is that all these startup entrepreneurs and software engineers are ninjas and rockstars. Software Engineers are curing cancer and ending terrorism with big data, all while becoming millionaires over night.

I believe the reason this question is asked, is not because of the stark reality of software engineering, but because of the perception.


You have to look at this in a different light. Making a difference as Software Engineer is possible. But digging deeper into the root of how its possible is not a career related move. Many people make tremendous contributions everyday (i.e. See Github) in many fields everyday. However, your determination and drive as an individual will deter your actual affect on the world. To put it simply:

We choose to become leaders. We choose to change the world. No one is born* into it*

In the massive wealth of technology and information we have today, it is very much possible to become successful as an engineer. But much too often do people outweigh the failures of the many with the successes of the few. Think of how many startups have failed before one actually succeeded. It is ungodly and daunting to look at the statistics but that should never stop someone. It should drive you as a professional in not becoming one of the many and deciding to fight to become one of the few.

TL:DR; I do not believe that being a software engineer alone gives us all the capability of changing the world. It must be coupled with drive and determination before it becomes an option


I'm an engineer working for Change Heroes (www.changeheroes.com). Every Sunday night all I can think about is how excited I am to work on the product the next week. I've never felt this way before.

Change Heroes helps raise money for charities and non profits. Our impact includes 217 funded projects so far including schools, wells, and aid packages. Yes, as an engineer, you can make a huge impact on the world.


Here's an opportunity to make an impact using software development [0]:

> International Development Design Summits (IDDS) Lahore is a hands-on design experiences that brings together people from all walks of life to create low-cost, practical innovations to improve the lives of people living in poverty.

(you can apply before July 1st, and participate in Lahore, Pakistan).

The impact may be small, but certainly significant for many (things that have come out of these summits are water purification and monitoring technologies, sanitation technologies, healthcare information through SMS, and many more)

[0] http://www.idds-lahore.com/


You won't be able to have a large impact as just a software engineer, but you can do a little bit. If you really want to change the world in a big way, you have to be a businessman and leverage the power of others' efforts.


This 'Google Ideas' post from the front page appears to be an example of what you're talking about.

https://www.google.com/ideas/


Anything changes the world, some inconsequential, some not, some for better, some for worse, some neutral. If you mean make a positive impact on the world though:

Probably one of the most direct ways to help is to work for a company whose impact you believe will help change the world in a positive way.

E.g. online learning, green tech, or whatever you personally are passionate about.

Another example: in the last 5-10 years there's been a lot of work done in helping consumers understand their power and water usage. This lets us make smarter choices and reduce our energy and water usage.


As a software engineer, you might not be able to change the world, but you'll at least get to rebuild it ... everyday, when you come in the morning and git pull latest.


The boring answer is that as long as you are making money, you can donate some to charity.

Making lots of money and donating it to an effective charity is usually a more efficient way to change the world for the better than choosing a sub-optimal career trying to change the world by yourself.

If you think you can be a good software engineer, you should go for it.


Not sure why this is getting down voted. Software engineers have high earning potential and can have more impact by donating part of their salary instead of volunteering or doing non-profit work. Plus, software seems to be a good industry to be in for getting a shot at making ridiculous amounts of money which can eventually be donated (e.g. Bill Gates).

This is indeed a boring answer but a realistic one, especially given how vague "an actual impact on the world" is.


> Making lots of money and donating it to an effective charity is usually a more efficient way to change the world for the better than choosing a sub-optimal career trying to change the world by yourself.

Been thinking about this as well, would love to hear any further thoughts on this.

Following that same strain of logic, if I want to build a successful business, why not choose an optimal career and then hire someone to build the business for me?


> if I want to build a successful business, why not choose an optimal career and then hire someone to build the business for me?

That's what angel investors do, right? First they make lots of money and then they invest on other people's business.


Yes. I feel software engineers at drchrono make a difference every day by giving amazing software to doctors who use it to treat more patients and make more money doing it (which will keep them from rage quitting medicine after using other EMR software which is just terrible.)


Here is a (hardware engineering) example of how a group of volunteers are helping make the world a better place:

    http://www.unite-to-light.org/
(developed lights with solar-powered storage for students without access to electricity).


I didn't used to think so.

I'm less cynical now.

It all depends on where you want to work, and what you want to do.


AI research/implementation -> AI -> Better AI -> Cataclysm or utopia.

Either way the world is changed.

Just an example.


No, problem solvers that can implement solutions can change the world.


Certainly, if you use your skills to make an actual impact.


Asking this unironically, and seeing unironic answers, is painful...painful to read.


Why is that?


C'mon dude, look at the site you're on.


Can you elaborate? I don't have the slightest idea what you are trying to imply and it seems I'm not alone.


I agree with you. Typical for HN that you get downvoted.


sarcasm, my dear friend, should not be used on HN these days.

HN is filled of brogrammers these days, the ones who will change the world, and are reading HN to know, how to do it.


Of course you can! It'll all depend on what career choices you make. If you become a software engineer to then go develop corporate Java software for Big Corporation Inc, then you won't have much of an impact. Join a startup with a valuable vision and a good product and you definitely will.


I don't get why my answer is being downvoted. I guess I didn't write a super philosophical, clever reply that'd "change this 'ere lad's life forever". I wasn't going for that either.

I just wanted to give my perspective, as someone who's done both, regarding 'working for a product you love' and 'working for a big company because you get paid well'.

If anyone got personally offended because they think they can be a corporate Java developer and change the world by contributing to a charity... well, I guess it's pretty clear the OP wasn't asking about that. Anyone can do that, no need to be a software engineer.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: