views:

94

answers:

5

I got a degree in Chemical Engineering but held a part time job as a PHP programmer the whole time. This has developed into a full-time job. I was wondering how having a Chem-e degree instead of a CS one will affect me progressing further in this career. Does anyone have experience with this and maybe some hints?

A: 

Don't forget that software development and engineering share many things. Development to an interface, application of Lean principles are two examples that spring to mind. There's no substitute for experience, so if you're already doing it, then there should be no real obstacle to you, and anywhere that puts obstacles up on this basis - well, you probably don't want to work there anyway.

FWIW, my first degree was in Engineering, and it hasn't held me back...

David M
+2  A: 

I practiced as a mechanical engineer for 16 years before becoming a full-time software professional. I've been doing it for fifteen years and counting.

The plus side is that switching kept me in learning mode for a long time and gave me the chance to work with some terrific, smart young people.

The minus side is that I've had to stay on the learning treadmill and continue to upgrade my skills every day.

I always worry about all the fundamentals that I missed out on. Undergraduate computer science students were studying data structures and other fundamentals when I was learning thermodynamics and mechanics. I went back to school and took courses in some of those fundamentals, but I still have to work to shore up those deficiencies.

I picked up two Java certifications early on, but neither has been much help beyond what I learned about Java while preparing. No employer has ever asked about them. I don't list them on my resume anymore.

I'd recommend branching out beyond PHP. You've got to get past web programming; I fear that it's becoming a commodity. Learn some other languages and leverage your math background to expand your expertise in another domain would be my recommendation.

UPDATE: MATLAB is a terrific tool to know, but I would go beyond that. If you intend to continue with web development, you need to know HTML, CSS, JavaScript, jQuery, XML and Flex very well. You can't go wrong with a good working knowledge of relational databases and SQL.

I haven't even started on a server-side language. Java's my choice, but C#, Python, Ruby might be other good alternatives.

Best of luck.

duffymo
And your SO reputation says it all how you've been doing so far! :)
this. __curious_geek
@Geek, sorry I don't quite get you. Is my reputation a good thing or a bad thing? 200 doesn't seem like a lot compared to most people here. @duffymo, any advice for other languages? I know they were really pushing C in college. Does MATLAB count as a language?
Brian
I don't know about web programming becoming a commodity but I would say you need to go with more languages. If web programming is what you like stick with it but learn all of the stack. It helps to know how DNS and caching works when figuring out problems. You have to learn JavaScript and the DOM.
Jeff Beck
@Brian: I think he was talking to duffymo.
Callum Rogers
A: 

Its always your choice. If you wish to be a programmer then your chem-e degree won't be a hurdle. But you will have to put more efforts in programming, thankfully there are many good places to learn. It will also help you to go for some programming certifications.

Ravi Gupta
Thanks, any advice for certifications?
Brian
I cannot speak intelligently on PHP certifications as I am a java programmer.
Ravi Gupta
+1  A: 

Hi

I'd suggest that you look hard at how you can use your background to get in to domain-specific (in your case Chemical Engineering) software development. The market for general-purpose programmers is huge and there will always be someone to undercut you on price, or have more up-to-date knowledge of the latest ephemeral software package. Major on your chem eng and you will be in a much smaller pool of specialists, able to command a higher price, and with much larger barriers to entry.

Figure out what software skills are most in demand in the chemical engineering and start transitioning now. As you do so concentrate on learning some key software engineering skills and practices including, but not limited to:

-- professional s/w devt: version control, autobuilding, testing, team-working, code reviews,

-- fundamentals of data structures and algorithms, complexity, enough discrete maths to get by (you engineers often only study the classical maths of calculus, don't learn about graphs and lists and things);

-- domain-specifics: what packages do chemical engineers use ? Do you want to work for the users of such packages, or their creators /

Lots more, good luck

Mark

High Performance Mark
+1  A: 

My first degree was in Physics, I've been programming and doing protocol specifications since well before I finished my degree. Science is science, math is math, programming is just an area of applied math, so you can do it. The thing is, you need more and better languages. PHP is only one category of language, and while it's practical, there are things you can't do with it, and if it's the only language you have, you can't think outside its box.

Learn, at least, C or C++, Lisp (or Scheme), Haskell (brainteaser, but you will think differently about code... it's like learning category theory in math, everything is different afterwards), and Python. SQL is nice to have too. Read the key bits of an operating system kernel.

You have a much stronger math background than most CS graduates. Use it.

Andrew McGregor