views:

3661

answers:

25

I did not study CS in college and have been working with a company for almost five years. During this time I have worked closely with our development team, and have realized I enjoy software development work and coding. For about three years, I have profusely studied from books: mostly programming languages (C#, Python, and Java) and SQL, but as time and money allow I plan to work into SICP and eventually Knuth.

I have recently joined the company's development team and want to do my best to obtain their respect, which I feel is lacking, since I come from a non-development background. How can I do this most effectively?

Thanks.

+2  A: 

By programming well.

Jay Riggs
+19  A: 

There's only one way to do this: do your job. Do it well. That includes asking good questions, and demonstrating that you understand the answers. It won't take long for you to gain their respect.

One of my favorite colleagues in recent years is a young woman who came out of the QA organization. We were all skeptical at first: until she showed us we were wrong.

Now, she's "just one of the boys".

John Saunders
What's the story with the downvote? What didn't you like? "one of the boys?"
John Saunders
I didn't down vote it. I thought your response was very helpful. It must have been someone else.
ecounysis
@ecounysis: Sorry, I didn't think it was you. Someone who doesn't want to explain his reasons, no doubt.
John Saunders
"And most importantly, never seek to earn respect for the sake of earning respect" -- gold.
jonathanconway
+13  A: 

Write good code. :) Honestly, there isn't much else you can do. Be a good programmer.

musicfreak
+3  A: 

Don't be impatient. It's not out of the ordinary for the new guy to have to prove his/her chops. The best way IMHO to gain respect is be a consistent contributor of very solid work and help others when you can. Nothing gains cred like helping a guy solve an issue that he's been pulling his hair out over for hours. The best developer I know has an applied mathematics degree (and 30 years of experience :)

JP Alioto
+3  A: 

Beat up a CS major?

I dunno I don't know any developers that were CS majors. Many of the developers I know are just self-taught, highly intelligent people that just really love the work and would do it even if they weren't getting paid for it.

Josh Einstein
+2  A: 

Respect comes with time and experience. All the books in the world won't do a bit of good until you start digging into the code and programming. Be willing to make some mistakes, but make sure you learn from them. Be humble and ask your fellow team's opinions and help. Draw from their experience. Be okay with being a noob with no respect for a while. In time it will come the more you learn to program well.

DoxaLogos
+8  A: 

Be humble. Be thorough. Be right. Be quiet.

By "quiet" I mean it is much easier to learn when listening than talking.

Bubbafat
This makes you a good programmer.But you won't get ahead in business if you don't stand up for what you do understand. And active listeners who ask questions will learn much more IMHO.
Spence
You are right - asking (appropriate) questions (at appropriate times) is, and should always be, welcomed and encouraged. That wasn't the behaior I was specifically talking about. Having and defending good ideas is a critical part of making the transition from a junior to mid to senior levels (and is a critical part of "being right"). But I believe that one common mistake new/young programmers (probably any field) is not knowing what battles are worth fighting and how to fight them.
Bubbafat
+2  A: 

I agree with the others, get things done and done well. Also understand that there is a learning curve and asking questions is important, but always investigate before asking. You can make an impression by asking an educated question, but asking questions where some research would have given you a head start will make a stronger negative impression.

akf
+1  A: 

As far as the other developers are concerned, if you have genuine skill, it will show. You'll be discussing things as a team and it will be obvious that you have solid domain knowledge.

Impressing management is a whole other ball-game that usually involves demonstrating commitment, work ethic and business knowledge, and occasionally politics.

jonathanconway
+1  A: 

Every group is different, but usually respect is not granted by decree or degree, but earned by demonstration of your excellence in programming and commitment to your team.

You got your foot in the door without the CS degree, I'd say that's the hardest part. Now that you're in, you need to write good code. That doesn't happen overnight, so when you get stuck, try to solve your problem by reading documentation, Googling, Stack Overflowing, etc before asking your teammates. If you've put in that effort before asking a question, chances are your questions will sound smart, and therefore interesting. And like the other people here have said, be patient.

John Hann
+2  A: 

start an open source project... you will learn a lot and people will appreciate you...

erdogany
+38  A: 

Do your job well. You can increase your odds of doing your job well by trying to do the following:

  • Be passionate about your job and art (making software)

  • Always continue improving yourself by reading books, attending conferences and trying out new technology as they become available

  • Write some useful stuff and offer it as open source (Larry Wall and Tim Berners-Lee, both CS outsiders but look at what they did; respect)

  • Never think your lack of formal qualification in the field as a disadvantage but instead as an advantage by simultaneously being both an insider and outsider.

  • Join a professional body such as IEEE or ACM to show that you're serious about your profession.

  • Listen to Jeff and Joel (Ignore this one, just kidding, LOL)

  • And most importantly, never seek to earn respect for the sake of earning respect, lest people should think you are insecure or worst misinterpret you as a showoff or a suck-upper. If you do that, you'll lose both respect and credibility.

That's my two cents. ;-)

GeneQ
+1  A: 

Keep an open mind, welcome criticism and take it constructively. work with passion, lastly start reading Books!

Manohar
+1  A: 

Remember one thing...quite a good part of the good code you see in this world has been written by non CS people..

Arkid
+1  A: 

No good work happens without communication. Mediocre people can shine through good communication; experts appear incompetent with bad communication. Despite this, there are still colleges where communication skills aren't even considered important for CS (not that they'd admit it, of course). If your background puts you a step ahead of the pack in communication skills, count that as a huge plus. Exploit that.

No work is successful unless it is meeting real needs. So you must commit yourself to "making the customer happy," and be aware that few of your colleagues really approach their work that way. Your manager (typically) has been burned many times by project managers who refuse to embrace the true need and prefer rather to construct a cool concept. (Of course such a project manager also adopts a glib explanation of why the app was never fully implemented.)

If you can work intentionally to meet the project's real need, AND communicate well (which you clearly can do) to achieve the best understanding, realization and promotion of the project, then You Will Go Far.

Smandoli
+1  A: 

Ask good questions of your fellow developers. The ideal question is one from which they learn something. This is second only to producing good results.

Novelocrat
+2  A: 

My career started very similar to yours. I did not have a CS degree when I started work. I was in my early 20's, and the only female on a team of older, somewhat hostile developers. I felt out of place from my first day. Some of the things I did to survive -

I was quiet and humble. I never assumed that my point of view was right until I was absolutely sure.

I got a mentor at my company that I was comfortable with and could ask questions without feeling stupid.

I never let myself be excluded from development meetings. Even if you're not working on the task that the meeting is about, don't get left out. The more knowledge you have about the project, the better your position will be in the future when your coworkers move on to other projects. If the other developers are too busy to work on something, you will be able to step in and take over.

Find your niche. Don't try to be an expert on everything. If you are really good at something that other people won't touch, you will become the "go to" person for that skill and you will become invaluable.

Take advantage if your company offers tuition reimbursement or training classes. This is how I eventually ended up with a CS degree.

And remember - everyone, no matter how much experience they have, is capable of making dumb mistakes and being wrong. There is a lot of code written by senior staff that just plain sucks. They may turn on you because you're new, but in my experience they'll also turn on each other in a heartbeat. So don't take it too seriously if someone talks down to you.

Good luck!

tessa
+1  A: 

I have a CS degree but I work with so many people who do not, that I am surprised when I come across another.

I don't go around telling fellow programmers that I did Computer Science, and if I worked with someone who did I'd know I'm dealing with an insecure or arrogant prat.

It's interesting that you equate a programers credibility based on whether they have a CS degree or not. To me credibility has got nothing to do with a qualification and everything to do with how well you do the job on a day to day basis.

Ash