views:

414

answers:

5

I've been in the engineering world for over 15 years. I have experience in the corporate world as well as small mom & pop companies. In my previous jobs, one of my tasks was to write software apps and do some project-specific database development (project tracking, record data from scientific analysis, GIS stuff, etc.) using VBA, vb.net, c#, VB6, and even some AutoLISP.

Now, I decided to switch gears and do software development as my career instead of the occassional task. I recently picked up a .NET development degree from a local tech college to prove I was at least a little bit more than just some hack that cobbled together a few programs for my boss.

What TECHNICAL skills does a software company expect from someone like me, in my first development job? I assume the basics like create classes, do some CRUD stuff, and how to debug. What else?

EDIT: My biggest concern is since I have not been a "real" developer before I may be missing some key technical skills. All the dev work I have done so far has been initiated by me to help me and/or the rest of my team do their jobs more efficiently. I have, for example, minimal exposure to build management and source control (subversion, git, etc). I don't know what I don't know, but should know. I'm very confident in my skills on the engineering side and what I've done there but some of what I feel may be lack of confidence in this field due to being a newbie.

+3  A: 

I would say basic knowledge of OO concepts and whatever is required to get through the interview process. Language familiarity doesn't really matter, what matters is that you can grasp and apply new concepts quickly and have a desire to educate yourself and figure things out. Also the normal things like communication, planning, working with others, etc.

Jon Erickson
+6  A: 

Given the fact that you already have a programming background, I think most employers would expect you to perform as at least a mid-level developer. You should be able to:

  • Work independently
  • Develop to a specification
  • Contribute to design discussions
  • Help with build management and other supporting functions
Dave Swersky
+1  A: 

Despite no presumed prior knowledge I would expect new developers to be actively involved in;

  • Using Source Control
  • Estimating Tasks
  • Reviewing Specifications
  • Articulating Designs

I don't expect them to be able to do this unsupervised immediately but that is the ultimate aim.

Dave Anderson
+1  A: 

SDLC understanding may be another element expected. Since you do mention some database stuff, some basic SQL syntax may also be expected if the job involves working with DBs.

The ability to absorb concepts quickly may be another skill, though this may be seen as a non-technical skill. An example would be learning what development methodology is used and what special changes are done in that particular company's procedures for developing software. Software testing may be another subject to research as well as ask any software company how they do their tests. I don't think design patterns would be assumed but it would be something to pick up, kind of like refactoring for another concept.

JB King
A: 

In addition to other items already mentioned, any larger shop will expect to to know how to work with other programmers (source control, following local standards, etc.).

The ability to communicate clearly is invaluable.

A good knowledge of the fundamentals is always good: coupling and cohesion, abstraction, DRY, etc. If you haven't already, read Code Complete and pick up a few of the recommended books from its recommended reading list.

Chris Judge