views:

369

answers:

9

Hi All,

I recently graduated with a B.S. in Electrical Engineering and gained a lot of interest in embedded systems in both hardware and software. When I got out of school I got a job as an entry level Software Engineer in embedded systems. Having experience with robot projects and several internships helped prove I was not entirely new to SW.

I'm curious how many other people have either degrees or work experience in other fields and switched to software and what resources you have used to "catch up"? Did you read more SW introduction books, get another degree in CS or related field? I'm thinking about starting in a masters program and tossing up either Computer Engineering or Computer Science.

Thanks for your input!

+4  A: 

My education was in Philosophy and Linguistics. I became a developer in 1994 when the Web was starting to emerge. I saw an opportunity to apply some of the concepts of my studies with my love of technology, and worked toward accomplishing the goal of getting a job as a professional developer.

I was working at a mortgage company entering data in Lotus 1-2-3 (I did say Philosophy, right?) and I realized I could write macros to accomplish some neat things. So I wrote a few 1-2-3 macros that did stuff like beep when the values in a cell range were updated. Around that time I heard about a tool called Visual Basic that would let me write macros in Excel and write applcations for Windows 3.1.

I went to Waldenbooks at the mall and bought Visual Basic 3 for Dummies. I didn't own a computer, so I memorized the code in the book. I got fired from the mortgage company (someone thought my beeping macros were games) and went to work for an engineering firm. They used Excel, I wrote a ton of VBA macros using the memorized code from the VB book, and someone gave me a shot at a real developer gig.

Back then I wrote form1.Visible = True and form1.Visible = False for form control because the book didn't cover form1.Show and .Hide. But I got better.

Looking back, my education in Philosophy has helped me understand logic fairly well. And while Heidegger doesn't have much to do with my C# code, the formal study of thought has greatly influenced the kind of person and programmer I am. Ditto for linguistics, which taught me a great deal about syntax and semantics, the very basis for languages of all types.

Robert S.
Wow, very inspiring. Remembering the code without a computer is truly remarkable. Thanks!
Sean
+1. I have a degree in Philosophy and Computer Science
BobbyShaftoe
+1  A: 

I have a BS in Industrial Engineering (IE). I was taught in school to compose software to help solve IE issues. I enjoyed the coding and spent a lot of my electives on computer science (CS) classes.

My first job was creating a custom logistics system (my IE side) by writing software (my CS side). It never stopped. I have diversified my IE side from just logistics to include electronic commerce but it is all about composing software.

Now I graduated in 1983 (shortly after the earth cooled), so the world of software development was much less diverse. As the software industry grew, I grew, so that it was not catching up as much as staying up with the waves of change.

dacracot
A: 

Most software shops have to train developers on whatever field their software exists in. I wouldn't think it would be any great big deal to go the other direction. If you have the experience in the field you want to develop in and have done something developer-ish (macros, scripting, etc) then training to the development side may be reasonable.

tloach
+1  A: 

I have a B.Sc. and Masters in Chemical Engineering, but I worked entirely in the IT field. In almost 30 years, I've been involved in almost every aspect of IT, but I still prefer programming.

A few years ago I decided to try for a "Software Engineering" grad degree; took all the courses and had my research ready to go - then life got in the way (as it often does for mature students).

I've been teaching since 1990, and absolutely love that.

As for formal training in Comp. Science - I have almost none. Mostly I just read voraciously - comp. sci books, fiction, history, etc. The best IT people are those who have a great set of skills and knowledge to draw upon, plus a broad world outlook (i.e. can talk to the CEO or VP and not just other IT people). Be willing to teach, give talks, write articles - anything that "stretches" you as a person. Be willing to fail. Be willing to take risks.

Set yourself a multi-year plan by saying "what do I really want to be doing when I'm 50?".

Cheers,

-R

Huntrods
A: 

By training I was an Avionics technician working on electronic warfare systems and autopilots (military and commercial). Today I write application programs for industrial robots. My only degree is a AAS from the Community College of the Air Force. I spend my time learning new technologies and occasionally new languages, but I mainly use a language called VAL3 which is dedicated to our industrial robots. If I were to go back to school it would be for either computer engineering or Mechtronics.

Jim C
+1  A: 

I have a Bachelor of Computer Science. In some ways I wish I had gone the engineering route. With an Engineering degree you can easily go into programming as far as you like. The opposite is not true. I'm very interested in lower level implementations and hardware design and integration. For this I need to get a Masters in Electrical in order to move in the direction in my career.

If you choose to do more education, go with the Computer Engineering over Computer Science. Moving from Engineering to Software development is natural and easy if you're so inclined, but movement in the opposite direction is difficult.

Kieveli
A: 

Did a BE in Electrical Eng (HW + SW + Integrated Circuits). Then did an ME in Nanotech (Nano Imprint Lithography). Interesting work, but got seriously bored tending expensive pieces of machinery during incredibly time consuming tasks.

After finishing the masters went out into the real world and straight into my current embedded SW job.

Wairapeti
+1  A: 

I did Electronic Engineering for 5 years after I got my BSEE. Then I was assigned a project writing assembly for a DSP to do some of the first packet transmission across T1 lines. Wrote packet queing and serving code for a few years just before the internet took off. Decided that SW was the way to go as its much more creative and I didn't have to worry about the price of resistors. Since I was interested in Audio and C++ had just been created I taught myself C++ writing an Audio Editor for Windows 3.1 (with "multimedia extensions"). I sold a few copies of the editor, but it then won first place in a shareware contest ($5000 worth of computer peripherals and SW). I choose a domain to learn and teach myself the SW tools necessary. Been like that ever since.

humble_guru
A: 

I did my BTech degree in Instrumentation and Control. As part of course we studied about Sensors, Control Systems along with Electrical Circuits and Computer Science courses which gave me holistic perspective system design. After completing I joined Semiconductor company in Software side (Embedded domain).

Initially things were new, and had to do lot of catch up with peers. But my good knowledge of C language, Computer architecture helped immensely. My work involved mostly debugging, thus not much of coding skill required.

Even I am considering to go for MS, and I think mix of courses in Electrical and Computer engineering would be good.

Chintan