views:

909

answers:

23

I just got hired as a web developer for a marketing company (though they do lots of things, development is the bread and butter).

I'm a self taught developer with zero experience as a programmer other than my own freelance stuff. I've always been in the sales/consulting side of business, never been paid for being a geek really. And so I'm unfamiliar with the office environment of being a programer. What kinds of things are frowned upon? Encouraged? etc.

I hope some of these answers can be helpful to others in my shoes later, so I've marked it as a community wiki.

+16  A: 

Do follow the code conventions of your peers. Use the same formatting, variable names, indentation, etc., even if their style clashes with your personal style. It should not be possible to tell which code is yours just by visual inspection.

John Kugelman
umm... vote rigging anyone? i mean, conventionally john should have posted all his answers as one thing. doing it this way and he is getting too many upvotes.
larson4
Much better to post each idea separately, then the best ideas can float to the top, and the worst drop down - it also stops bad ideas gaining ground with good ones. I think this is the right way (also it is Community Wiki - no points)
RodeoClown
ah, yes, community wiki... got it. will undownvote.
larson4
A: 

Congrats on the job. It really depends on the office you work in, but I've found that most programmers are pretty relaxed. Look around, soak in what the other developers are doing and I'm sure you'll be able to fit right in.

Jeff Storey
+16  A: 

Do use version control to manage your source code, HTML files, images, and so on. Please enter meaningful comments when checking in changes and check in regularly. Do not check in broken code.

John Kugelman
+49  A: 

Do not perform SQL queries directly on the production database server! You only have to forget the WHERE clause on a DELETE statement once...

John Kugelman
I wish I could upvote this one three times.
mmc
Or accidentally write a tautological where clause, the odds of which go up tremendously when you involve nested subqueries.
sblom
begin tran; delete from ImportantTable where 1=1; rollback tran; ... solved.
Justice
Do you know this from experience, John? :)
Robert Harvey
this takes me back... +1 for making me remember this
Colin
+1. That was a rough day.
ojrac
You know, if you leave off the WHERE a confirmation keyword should be required: "DELETE ALL FROM users". That would save, like, billions of dollars a year.
John Kugelman
+6  A: 

Lets see:

  • Figure out who the programmers are who are respected that are also friendly/receptive. Don't brown nose them or crowd them, but give them lots of respect and find ways to get teamed up with them
  • Try to be realistic about your abilities when asked to do things, while at the same time showing a can-do attitude
  • Work the hours that seem to be expected, no matter how ridiculous, until you get the cred needed to stand up for yourself when expectations are unreasonable
  • If people appear to be grumpy or in lock down mode, leave them alone-- unless you really really need them, in which case, be firm and sure about the fact that you need them while asking for help
larson4
+3  A: 

Setup your work environment as allows you to be as much productive as possible. If the company refuses to provide you the needed tools, buy them yourself.

I refuse to do anything without a double screen. My employer did not buy me a decent screen, so I bought it myself. You work 8 hours a day (in my case, 14 a day), you must be confortable in what you do.

Stefano Borini
15 inch macbook pro :P couldn't be happier.
rpflo
+20  A: 

Don't get caught trying to up your reputation on SO instead of working.

jjclarkson
The important part here is "Don't __get caught__" :)
Lucas Jones
In the office 2 days a week, the rest of the time I'm at home, so no worries here :)
rpflo
A: 

Don't ask "where's my desk?" - you may be disappointed.

anon
A: 

I begun my first programming job about a month ago. Here have been my experiences:

Mine is a diverse work environment - we have people of all ages, races, and backgrounds. That said, nobody cares what I wear, sound or look like. As a programmer, your peers will judge you based on your code. If your code is good, they will like you. If your code is bad/broken/uncommented/buggy, people will notice.

So, as John said, try to follow the local coding style ("When in Rome..."), do your thing, and don't be afraid to ask questions. My experience has been that everyone is willing to help me as long as I have done the work to come up with the proper questions. This means doing a bit of Googling to narrow down the exact problem area, so that I can ask a short question and get a short answer, and we can both get back to work.

muusbolla
+4  A: 

See also Tips for Junior Programmers.

ChrisW
+3  A: 

Having watching some new programmers start at our company, here's some things that I can pass on:

  • take time to learn the codebase (if applicable). Don't be afraid to ask questions, but make sure they're good ones! Odds are that your team is busy.
  • learn how things 'flow' in your organization (technology and otherwise), and follow that structure. If you think you know a better way, don't bother making suggestions yet - you'll just piss people off.
  • If your organization has bad processes (or none at all) try using your own (keep bugs in a spreadsheet, use to-do lists, set up your own repository, etc). If you can show results with your processes, perhaps you'll be able to formalize them across the company.
  • Let the quality of your work speak for you - you have to earn your props!
ScottE
+13  A: 

Don't get into long discussions with other developers about refactoring, good vs bad code, test-driven development, and other buzzwords. Do some work first, and take your time to get to know people. There'll be time for such discussions later.

Kyralessa
+15  A: 

Don't work unreasonable hours at the beginning - it sets a precedent, and makes it really hard to cut back later. Don't slack off, but don't let yourself be bullied into extremely long hours.

RodeoClown
+5  A: 

Apply basic people skills. Some people seem to think that just because you are working around engineers all social skills no longer matter. If you ask those around you polite questions and then show a genuine, inquisitive interest in their responses, you'll be surprised how much they might appreciate you for that.

Don't be the new guy coming in all up on yourself. If somebody wants to know, they'll ask you. Make it a key priority to get to know everyone else first.

Oh, and have a sense of humor. It helps not only yourself but those around you.

James
+3  A: 

Don't promise anything to users with-out talking to other developers first. Don't be afraid to say "I don't know, but I will try to find out.". Ask for help or ask questions before doing anything.

eschneider
ask smart questions. If the answer can be found on Google, people will think you are wasting their time.
MedicineMan
Good stuff, since I've got a software implementation consultin background this ought to come naturally (hopefully).
rpflo
+2  A: 

Since you have no professional experience, your reputation is everything.

*Work hard to establish your reputation as a superstar.
*Get things done fast, on time, and with high quality.

*Make sure every line of code that you check in is production ready, even if it means you have to stay late and work weekends.
*Be receptive to bug reports, sit down and listen to your customers and allow them to demonstrate the bugs. Don't blow off "the idiot user".

How bad do you really want it?

MedicineMan
+100: Make sure every line of code that you check in is production ready
John Kugelman
+1  A: 

Some personal tips for you:

  • Dont get caught playing flash games like Sagrario's Room Escape while working!
  • Dont get caught working on your own private projects.
  • Dont get caught on social networking sites.
  • Dont get caught poking around your companies network servers.
  • Dont get caught pen testing your companies network.
  • Dont get caught reading web comics.
  • Dont get caught building a tower out of soda cans.
Secko
Soda can towers are fun tho :(
Rev316
Pizza box pyramid to!
Secko
A: 

Try no to guess about what you think is happening or what went wrong.

If you say "I'm not sure; It might be that the widgets are crinkled, but I need a bit longer to find out."

What the PHB hears "It's definitely the widgets, they're crinkled."

This could be a problem if the PHB then goes and spends the rest of the budget on new widgets.

If you don't know, be sure and emphasize it, and carefully omit any other information.

TokenMacGuy
+1  A: 

Don't flip the bozo bit on anyone. Don't dismiss anyone's contribution until you have a good deal of experience working with them.

Karl Anderson
+1  A: 

Do NOT diss any programming language, platform, framework, operating system, etc on your first day of work. Programmers/Developers grow emotionally attached to these things.

Oh, there is one exception though... If you're a web developer, it's o.k to throw a couple of jabs @ IE6, but that's it!

sjobe
A: 

Make sure that you familiarize yourself with the test environment for any of the systems on which you will be working on. Although you may become more of a daredevil later on it is imperative that you are able to familiarize yourself with the systems you will be working on in a controlled environment.

ojblass
A: 

Setup the dev-box if it is not set up yet. Know who is your Tech lead, Project Manager Know what the work is being done as part of your project.

+1  A: 

A few things that I've learned over the years:

1) Make sure that basic employment items are done. Does the employer do direct deposit? Are there forms for benefits? Are there time sheets to complete as a way of showing hours worked? Are there specific hours that you are expected to be in the office? Is there a dress code? Is there a general orientation program for you to get to know the company and corporate culture?

2) Discuss with your manager on which projects you will work, their current status, who are the team members of the project, etc. Also in here get the basics of the environment like what IDE is used, version control, common developer scripts that may be useful to know what they do like a nAnt script for example.

3) Map out the first week in terms of work items and initial objectives. There may be little to this but this is where you have those first impressions that can potentially be something you will live with for the rest of your life there.

JB King