Slashdot Mirror


How To Behave At a Software Company?

dawilcox writes "I'm a recent grad and am going to begin work at a software company. I want to make a good impression on my boss and coworkers. I know that performance is usually tracked, but there are also innate personality traits of good software developers that bosses just want to have around. What are those personality traits? What should I be trying to do in order to make a good impression on the people at my work?" (Appropriate side question: What behavior traits would you like your co-workers to exhibit?)

26 of 842 comments (clear)

  1. Good hygiene, don't be a know it all. by Anonymous Coward · · Score: 5, Insightful

    Good hygiene and refraining from acting like a know-it-all are my two best pieces of advice. Nerd types are often (myself included) poor at those two things.

    1. Re:Good hygiene, don't be a know it all. by jetole · · Score: 5, Insightful

      Buy a book on corporate ethics. Read it twice and abide. Also buy a few Dilbert books and read them twice as many times as the corporate ethics books. If your not sure what decision to make in a situation, side with what the Dilbert books suggest over the corporate ethics books.

    2. Re:Good hygiene, don't be a know it all. by jetole · · Score: 5, Insightful

      See? You're already half way there.

    3. Re:Good hygiene, don't be a know it all. by Yvanhoe · · Score: 4, Insightful

      Knowing a lot is very different from being a jackass, which is what is implied in the GP's answer.

      That's actually a very good way to spot knowledgeable people. When you discuss something they don't know very well, they will ask you a lot of questions and not fear looking ignorant. You can bet that these types of profile know a lot more than others.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    4. Re:Good hygiene, don't be a know it all. by shiftless · · Score: 4, Insightful

      The end result of this is that I give him very quick, superficial advice, so that he, and the pen, will go away.

      A better idea would be to tell him to quit clicking the goddamn pen.

    5. Re:Good hygiene, don't be a know it all. by Tack · · Score: 4, Insightful

      +1. I've noticed that the people I respect the most are those who will honestly say "I don't know" when they actually don't. Generally the more intelligent and rational people will start dropping qualifiers left and right when talking about something they're not deeply familiar with.

  2. Re:Advice, Dawg by Culture20 · · Score: 5, Insightful

    Eat lunch by yourself so that you won't be obligated to reveal personal information.

    Quickest way to alienate yourself and become first on the chopping block. If everyone eats lunch in, bring your lunch too. If everyone eats lunch out, go with them. If you can't afford to eat out, make an effort; suggest Taco Bell, letting the gang know you're strapped for cash but trying to be part of the group. You're not obligated to reveal personal information at lunch, but in my experience, people who ignore any and all lunches with coworkers are viewed as snobbish loners, and their work ethic seems to be the same (they are the people that ignore meetings, ignore policies, etc).

  3. Woah by Puff_Of_Hot_Air · · Score: 4, Insightful

    Am I glad that I don't work with you! "I'm here to work, not talk". Ever hear of the concept of colaboration? You know, working together as a team to achieve a common goal? Normally involves this thing I like to call "communication", you do it with your mouth. The advise on avoiding gossip is good, but the rest of your post smacks of some severe personality problems. Many of my co-workers are now friends, and this is a good thing! Lifes too short to be the "lone wolf". As another counter-point, you will never get anywhere if you don't socialize. It's half gaining peoples respect for your technical ability, and half gaining their trust because they know you. Get your head out of your arse, and join in!

    1. Re:Woah by Anonymous Coward · · Score: 5, Insightful

      If the "talk" is about work the "talk" is work. If the "talk" is about bullshit the "talk" is talk.

      "Lifes too short to be the "lone wolf"."

      Lifes too short to listen to bullshit.

    2. Re:Woah by amRadioHed · · Score: 5, Insightful

      Completely right. You can socialize with your coworkers without engaging in gossip and other destructive stuff.

      The concept of keeping your work separate from your life is BS. Your work is a big part of your life. You spend more time with your coworkers than with your family and significant others so you're just setting yourself up to hate your job if you avoid building relationships. I've had some annoying coworkers and I've had some great coworkers that have become good friends both inside and outside of the office. If you're office discourages you from having some fun during the day with your coworkers then I'd look for another place to work before you burn out.

      The important thing is that while you can control who you hang out with after work, you don't get to control who you work with. Show the annoying guys in the office the same respect you give the coworkers who you are good friends with.

      --
      We hope your rules and wisdom choke you / Now we are one in everlasting peace
  4. Even balanced by HTMLSpinnr · · Score: 5, Insightful

    Some random thoughts - I'm a Systems Admin/Engineer by trade, but have spent some time in the Manager's chair as well. Here's some thoughts that would have helped me for my first real job (i.e. why didn't someone tell me):

    Don't act like a know-it-all, but don't be afraid to offer a concise answer if solicited. Us nerds tend to LOVE to elaborate to "make an impression". The only impression is "Thanks, now how do I shut this guy up?".

    Don't be afraid to challenge your peers when your approach may be better, but know when to back down when you're out-numbered.

    In a cubical farm, your voice or other odd noises carry much further than you think. Same applies for the office restroom.

    Speakerphone is a privilege reserved those with an office and a closed door. (Ab)using speakerphone (esp. loudly) in a cubicle will earn many more enemies than friends. Consider a headset if you're going to be on the phone a lot and need to type or do other things with your hands.

    Learn and understand your company's core values. Chances are, you hold some of these yourself or you wouldn't have been hired (at least by any competent manager). These values will help guide your management team's decisions, just in case you question their motives.

    If you lied on your interview, you'll be quickly found out the moment you submit your first program. If it's a serious lie that you can't lie your way out of again, don't even bother showing up for your first day.

    Learn how to comment your code, but don't do it so much that stripping them out strips 75% of the file.

    Use sane variables that someone else can maintain. "a, b, foo and bar" are not sane.

    Be willing to learn - always. This may involve learning OUTSIDE of your job as well.

    You will be required to understand the business to a degree that helps you develop useful code. Don't be surprised if your first few weeks on the job involve training that seems initially pointless (stocking shelves, packing boxes, etc.). It will all make sense in the end, and may even help start the creative flow of "I could do that better".

    Innovate or get out of the way. Complacency often gets you fired.

    For some companies, continuous improvement is expected. For others, they prefer the tried and true. Don't be afraid to ride the middle if you aren't sure which one you're dealing with at first. Someone will set you straight.

    Make sure your line of communication with your manager is wide open. Understand his/her expectations and deliver on what's asked. However, if the expectations are completely unreasonable, have a backbone and ensure they know why you can't rewrite Linux in a day.

    This is hard at first, but employees who perform well need little management. Those who don't can expect constant management. Then again, some managers like to micro-manage anyway, especially their under-performers.

    --
    $ man woman *
    -bash: /usr/bin/man: Argument list too long
  5. A lot of common sense by Anrego · · Score: 5, Insightful

    There is such a wide variety of office "culture" that general advice is hard. I think a lot of it is trial an error.. you're going to at some point piss someone off or at least do something/say something and hate yourself for it. When you do, just try and learn from it and minimize the damage as best you can.

    I guess one thing I'd recommend though is that while you (being fresh out of school) probably have all kinds of great ideas on how you're going to revolutionize everything, you have to accept that companies can't just change their process with ever new graduating class. Not saying you shouldn't try to bring in new ideas.. but don't be "that guy" who spends every meeting talking about how the way things are being done is totally wrong and how pair programming and executable UML would be perfect. The guys with 20+ years of experience may be set in their ways.. but they also (probably) have a lot of experience seeing projects succeed and fail.. having some new kid throwing ideas from a textbook at them can ruffle some feathers.

    1. Re:A lot of common sense by coryking · · Score: 4, Insightful

      It isn't they are set in their ways. It is that they've seen shit fail and know the warning signs. Your totally awesome idea about pair programming (hey, it says right in the XP book, they can't lie) might not be appropriate because XYZ. Your rad idea of cloud computing might be friggen awesome (everybody is doing it, you stone age losers) because I don't know, gee, you might have these pesky HIPAA regulations, whatever those are. Your idea of rewriting the codebase because the code is U.G.L.Y. might be totally awesome because you can totally do it in a week, but gee, the shit we have now works and it would take way longer than you estimate because, gee, that code has been around for *years*. Lord knows what kind of shit when into it to make it work--that code has history man.

      Bottom line is, the most important thing is to admit you do not know jack shit. Better to admit you don't know anything because, brother, we all don't know shit--even people who have been there, done that. The people that truly do not know anything tend to be the ones that always brag about knowing everything. I have yet to meet a person who brags about knowing stuff that actually knows stuff.

  6. Re:Advice, Dawg by CyberSnyder · · Score: 4, Insightful

    Good way to network. Learn to network, it's as important of a skill as your technical expertise.

  7. Re:Advice, Dawg by Skreems · · Score: 4, Insightful

    As far as I've seen that kind of behavior will only get you so far. At some point you have to be able to voice an opinion, publicly, and then follow through on it. Otherwise you're going to top out at some point. Even if you limit that advice to just the social stuff, workers who act as a social nexus for a team are valuable in a completely different sense than skilled engineers. I don't know why you'd intentionally go out of your way to avoid all aspects of that role.

    The best advice I can give is, ask questions. Ask everything you can think of. It doesn't matter if it's something you need to understand to do your work for the next two weeks, if somebody who's been around longer than you is willing to explain something to you, take as much of their time as they're willing to give. Some people avoid asking questions because they think it makes them look weak. It doesn't. It just makes you look stubborn, and you're going to get passed right and left by people who aren't afraid to admit they don't know things.

    Once you understand enough start proposing fixes, and follow through on them. Don't be an ass about it, but make sure you keep the work you're doing as an active part of the conversation from day to day. It helps you because people will notice the things you fix, and it's a good way to get other people to chip in on parts of the fixes as well. If you can demonstrate that you're able to help steer the group in a positive direction, even in just one aspect of many, it'll go a long way. Remember you're here to build stuff, and that includes the team and the process, not just sitting in a corner turning out your coding assignments on time.

    --
    Slashdot needs a "-1, Wrong" moderation option.
    The Urban Hippie
  8. wtf by LBt1st · · Score: 4, Insightful

    Be yourself, otherwise you'll come off as fake and no one will like you.

  9. Re:Advice, Dawg by edivad · · Score: 5, Insightful

    If you are a software engineer, and you can't afford going out for lunch, you might consider the chance of having been screwed during the salary negotiation.

  10. Re:Advice, Dawg by mmmmbeer · · Score: 5, Insightful

    I agree. At one company that I worked for, there was one programmer who just never joined the group. He was a good programmer, and a decent enough guy, but he just didn't socialize. When the company started going under, and layoffs started, he was the first to go. I'm certain it was because the Powers That Were felt (correctly) that would have the least impact on morale, compared to firing any of the rest of us.

  11. +1 what the others said, and my two cents worth by TheGrumpster · · Score: 5, Insightful

    Lots of great stuff here already, but as a corporate executive in charge of R&D, I'll put in my additional two cents worth... The first rule of business: don't take it personally. It isn't all fun and games. You're not there to make friends or have fun - you're there to do a job. Yes, ideally, on the whole, you should enjoy it - if not, you're in the wrong line of work; but there will be times that the job sucks ass no matter where you work. There will be assholes that rip on you, rightly or wrongly. Don't take it personally. Keep your spirits up and focus on the work at hand. This will get you way ahead of the rest of the crowd. Act as though time is of the essence - it is. You'll be amazed at how quickly you go from being a green kid out of college to being an old geezer like me. Don't waste your time on piddly bullshit. Work your ass off at all times - not for the company's sake, but for yours. Your life is ticking away by the minute - the only reason it doesn't seem that way is because you are young. Youth is wasted on the young - the sooner you understand why, the better off you'll be. Don't be afraid to make mistakes. Take on the hardest work you can handle, then ask for something even harder. You don't grow by taking it easy; strength comes from adversity, not comfort. If you're comfortable, you're dead. Ask for help when you need it - there is no shame in admitting that one is in way over one's head; real achievers always are. Good luck!

  12. Re:Advice, Dawg by scotch · · Score: 5, Insightful

    Ironically, since he was the first to go, he probably got the best severance deal and a chance to look for a job before the rest of you guys flooded the market with your down-with-a-sinking-ship stench.

    --
    XML causes global warming.
  13. A few thoughts by MichaelSmith · · Score: 5, Insightful

    I have been a team leader at different times so maybe I can give the bosses perspective:

    • Show up. If you get in late, then leave late. I never expected people to work extra hours but it is good to know when to expect a person in the office.
    • Be a "can do" guy. Don't say "no, I can't do that" when asked to do a task. If you have to research something then say so. If the place is well organised there might be resources you can use anyway.
    • Develop your skills. Its good to see people improve. Nobody has all the knowledge. If you are working on stuff outside work like OSS software then talk about it with your co-workers.
    • Display an interest in technology. If you are in a technical field you should have an interest in technology, as opposed to jumping up in to management at the first opportunity.

    There is a lot of overlap in the above. It comes down to "don't be a dope". Posting here suggests to me that your biggest problem is a lack of self confidence. Work on that by being open with people. Maybe by telling them you were the guy who posted "How to behave in a software company" on slashdot. That'l get some laughs.

    The only other thing is to look out for sociopaths. Don't assume everybody you work with has a perfect personality. In practice a great many do not. I can't help you deal with these people. Sometimes they are hard to spot. A good skill it to learn not to reply to trolls. Don't let people wind you up. Getting somebody angry is a great way to beat them at something. If you are good at something you will likely get picked out for treatment early on if this kind of person is around.

  14. Re:Advice, Dawg by kjart · · Score: 4, Insightful

    So, your advice is to be a quiet, passive-aggressive loner that keeps themselves apart from the group? Please do your coworkers a favor and quit now.

    Seriously, though, the cynical answer is always that you aren't at work to make friends, but in my experience work is so much better when your coworkers are indeed friends. I worked several years in tech support while in university and the only thing that made it bearable was the people I worked with. Obviously, you can go too far - you don't want to spend all day talking to people and not get your job done - but the idea that you shouldn't be friendly since you're at work is absurd.

  15. Re:easy. by sonamchauhan · · Score: 4, Insightful

    Someone mark this funny please, not interesting

    To answer: if expected to work weekends or evenings also expect time in lieu when things are slow. If this is not a given, raise it with the boss, but privately. Also, convey the impression you are happy to work overtime, but for important stuff - not a presentation the boss must make to his boss the next morning, but didn't plan for. Play this by ear, but convey the general idea so they are respectful in their demands on your time.

    Plan on starting your own little business on the side (that does not impinge on your company's turf or time). Contribute to open source projects, keep your resume updated. Spend money on upgrading your own skills - buy books, sit for certifications, and if possible get your company to front up money. SAVE MONEY!! Once you can afford to, buy a house. Marry someone sensible and like yourself.

  16. Re:Advice, Dawg by im_thatoneguy · · Score: 4, Insightful

    Lesson 1 in networking: make everyone look good. You don't have to do it at your own expense but when people are thinking about who they want to work with who are they going to pick the guy who always takes all the credit or the guy who makes them look great in front of their bosses?

    We're all geeks here: look at it like statistics. Advancement is as much luck as it is talent. If you are in 8 people's favor the chances of one of them getting into a position to return the favor is far greater than you yourself getting noticed.

    As to the original question it's pretty simple for me:
    1) Be competent. Nothing annoys me more than someone who doesn't know how to do their job and is a waste of space.
    2) Do your fair share.
    3) Be appreciative. If someone does something for you and you take it for granted, you probably won't see a lot of effort in the future on anyone's part.
    4) Be helpful. If someone is struggling due to no fault of their own, stop and offer assistance. If someone feels like they're drowning and nobody helps they will get resentful.
    5) Be pro-active. If there is something to be done. Do it. Keeping someone busy can easily become a full time job for a manager. If they're spending all day finding things for you to do then you're a burden. Don't be a burden.
    6) Be friendly. If you're a loner and don't participate then people will be far less likely to overlook #1-5. People always give their friends the benefit of the doubt.

    And of course Always Try To Make Everyone Look Good. Nothing will make you look better.

  17. Re:easy. by Skal+Tura · · Score: 4, Insightful

    Working 60hour weeks for 40hour salary? You got to be insane.
    That only helps create environment for abuse of the greatest asset a software company has. In my experience how much you work means shit, infact if you work longer hours you will have LESS respect from management, even if you are not a push over and get paid +50% extra hourly salary for those hours.

    IT employees are probably the most abused, neglected bunch of employees in the world just because of that kind of an attitude. Good coders are actually highly creative, yet engineer like while sometimes code is just as much art as engineering, if not even more about art than engineering to create that very simplified, easy to maintain system. Simple code pretty much is an art, to see the connections and make it so simple. To be creative you need good environment, but promoting abusive behavior like working 50% more for the same salary is going to just make things worse, it's like saying "It's ok to whip my back bloody to get more productivity out of me, and ruin my personal life".

  18. Re:easy. by cas2000 · · Score: 4, Insightful

    IT employees are probably the most abused, neglected bunch of employees in the world just because of that kind of an attitude.

    yep, they certainly are... ...right after factory workers, checkout chicks, shop assistants, office clerks, [...], third world sweat shop laborers, and pretty much everyone else in the world below middle and senior management in large corporations.

    sure, IT workers get shafted by their employers making unreasonable demands. but there's a huge difference between someone making 60-90K per year for physically undemanding work who has the skills to get a similar or better job pretty nearly whenever they want, and someone working a physically demanding minimum-wage (or lower if they're in a seriously exploitable category like "immigrant" or "stupid") shit job that barely pays enough to live on, let alone save anything to improve their situation. or worse, someone working for a $1 a day to make t-shirts and other stuff that rich western programmers pay $40 or more for.

    so, while i know from personal experience just how much IT workers get taken for granted and ripped off, we're still MUCH better off than most.

    BTW, this is absolutely *NOT* saying "just put up with it and stop whinging" (i'm way too much of a socialist to ever think that exploitation of any worker is acceptable). it's saying "being outraged by it is sensible, but get a sense of proportion and lose the ridiculous exaggeration".