What does a software engineer do?

What is it like being a software engineer?

  • Hi I am a Computer Science major and considering a Software Engineering concentration for my degree. I wanted to get some insight on what it is like to be a Software Engineer after college. 1. What is a typical workday like? 2. What are some beneficial skills to have that are sometimes overlooked? 3. Can you describe the workplace environment, is it informal, formal or a mix of both? 4. How important is documentation in your workplace? 5. Are skills and experience easily transferred between jobs in different companies? 6. What are some advantages/disadvantages of working as a Software Engineer? 7. Any other advice you would like to give me and others seeking to become a Software Engineer?

  • Answer:

    Software engineering is a very broad category that can safely encompass a variety of jobs in a plethora of industries. You could work in banking, technology, medicine, on web, mobile or desktop applications. That having been said, there are some things that nearly every software engineer will do at some point in their career and some patterns that exhibit themselves across these domains. Sync and review. Your day will almost always begin by syncing to the latest changes through whatever version control system you have. Typical software engineers do not work in isolated silos and as such version control systems help to coordinate the coding efforts of many engineers. By syncing to the latest changes and reviewing any potential conflicts or additions you can then begin to work on other things. Following this, you will likely use some asynchronous communication medium like email or chat to catch up on what is going on and get in touch with anyone you need to touch base with. Communicate. The previous point leads nicely into what I think one of the most beneficial skills for an engineer is that is often overlooked. The ability to effectively communicate your ideas will not only make you a better engineer to work with but will increase your value. Someone who can communicate well is able to rally the efforts of others, coordinate larger efforts and present information efficiently to audiences, these skills are vital for any software project involving more than one person. Initially you might think communication involves sit-down meetings, email and chat but it extends to other equally important mediums. Documentation is king. Almost equally important to well written code is the documentation surrounding it. This goes back to the fact that many people will be working on the same pieces of code. When I interface with someone else I want to be able to get a clear picture of what is going on without having to mentally compile code and complicate what should be a simple process. Good  documentation future proofs work that down the line might become unmaintainable due to lose of domain-specific expertise (i.e. that guy who wrote it left). So casual it hurts. Nearly every software engineering workplace will be casual. This is one of the things that nearly every employer recognizes among the basic perks of being a software engineer. While not every employer is a Google, giving free food and a plethora of fringe benefits, nearly every employer recognizes a relaxed dress code for their engineers. Narrow specialization. You will specialize in a relatively specific field if you are not working at a very small startup where you may need to take on wear hats. Due to this fact you will develop a rather narrow set of skills which is to say, unfortunately unless you are active in other areas you will not easily translate your skills to another domain. The beauty of computer science and engineering though is that a good foundation can be sufficient to jump into a new domain and quickly ramp up. Over time this process becomes easier. During your career it is good to think big picture and consider if what you are doing will help you later on. If it won't and that worries you simple talk to your boss and begin considering alternative options. Why software engineering? You can change the world. Literally. Software engineering is a field that will be here for a long time to come and the problems we are solving are big ones. In the near future our job will only become more important as advances in our field and technology in general call upon us to solve even more problems. Finding a job as a software engineer is relatively easy and you will command a decent salary, so job security is great. Intellectually it is stimulating because the challenges are going to be new most of the time and you will be asked to think on your feet and learn on a daily basis. Many companies offer great perks exclusively to their software engineers (Google, Microsoft, Facebook, etc.) which goes to show how valuable they believe you are.

Noah Jorgensen at Quora Visit the source

Was this solution helpful to you?

Other answers

What made you choose this career?   Someone booted me out of an AOL chatroom when I was 14-15.  I was both pissed and fascinated which lead me down the road of vengeance and self education. What school subjects did you enjoy most?   Math, Science, & Art class. What school subjects did you excel the most in?   Math, Science, & Art class What type of person with what personality type would be a good candidate for this career field?   Someone who does not crack under pressure.  You have to be quick on your feet and able to efficiently solve problems without losing momentum. What are the different sub-fields to your profession?   Design, Network/Hardware Support, and Mentor Do you have advice for someone interested in this profession?   You will mess up sometimes.  It is part of the trade.  Sometimes you will go down a path only to find out that it's either not going to work or the project spec has changed.  This can be frustrating and discouraging when you've spent so much time going in one direction.    No matter how good you think that you are; you are not invincible.  Your "value" is gauged on your employer's current state-of-mind.  He may decide he does not like you one day and then you will be gone.  He'll have someone in there soon after tearing through your code and doing your job while you're out talking to IT recruiters looking for work.      Office politics is not something you can hide from.  One way or another you will get presented with an opportunity to get involved... Do NOT get involved.  It does not matter how friendly a co-worker is... DO NOT GET INVOLVED.  These are co-workers; they are not your best friends.  Always draw the line and remember that it is there.  Go against this at your own peril. What is a typical work week/day like for you?   Wake up, go to work, pick up where I left off the day before, meeting at 10, continue writing tests/code, lunch, continue writing tests/code, maybe a meeting at 2, continue writing tests/code, write notes for myself so I do not forget anything for the following morning, go home.   Rinse and Repeat 5x a week.  Occasionally, there will be deployments and an off beat meeting here or there, but that is roughly it.

Chapley Watson

I'm not going to answer your question but give you some advice. Ask a couple of software engineers if you can shadow them for a day. Experience their day. You will learn far more than you would from Quora. I would recommend doing it with several people to get a real sample.

Jade Rubick

Interesting, all your questions presume the old school, institutional paradigm.  Discover the world of open source, bro.  Check into Test-Driven Development and Agile methodologies.

Mark Janssen

Every day I ride my unicorn over the rainbow and bathe in a pot of gold. Or that’s the myth anyway ;p.What’s it like? Well, if you love programming, it’s great. If you don’t, then it’s going to suck.

Jeremy Collake

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.