PDA

View Full Version : Calling all computer and software engineers




lewis82
Sep 25, 2010, 06:24 PM
I have about 6 months to choose my future job, as the university stops accepting candidates at march 1st.

I've narrowed my choice between computer engineering and software engineering. To my understanding, the computer engineer designs the hardware, while the software engineer (obviously) designs software. The thing is, I don't know what I would like the most.

I have alittle bit of knowledge in programming (some AppleScript, some VBA, a little C I learned by myself one summer). Enough at least to know I like it and do not find it very hard.

I heard by someone working in the computer field that there are the most future job opportunities in the networking field. According to him, job opportunities everywhere else are not as good. Is that true? Have you heard something like this?


Now I have several questions, and would be very grateful if some of you took the time to answer.

-What does your typical day at job consist of?

-To computer engineers: how much physics are involved in your job? how much programming is involved?

-To software engineers: do you actually program software or only design it, letting the programming task to other employees (programmers)?

-Are any of you using Macs at work? (This won't influence my decision at all, I'm just being curious :p)


I'm sure I'll have lots of other questions, but we'll start with these :)



kainjow
Sep 26, 2010, 12:14 AM
I've narrowed my choice between computer engineering and software engineering. To my understanding, the computer engineer designs the hardware, while the software engineer (obviously) designs software. The thing is, I don't know what I would like the most.

I have alittle bit of knowledge in programming (some AppleScript, some VBA, a little C I learned by myself one summer). Enough at least to know I like it and do not find it very hard.
If the actual degree choices you have are those specifically, then I'd go with computer engineering as it'll be more generic, will teach you more about electronics and give you a more well-rounded understanding of computers.

-What does your typical day at job consist of?
Right now, it's been researching and attempting to fix bugs, lots and lots of bugs. Fixing bugs involves reading and reviewing code all day long. It's a very repetitive, yet educational and rewarding experience. Occasionally I'll be on a new project, or a new feature of an existing project, and that will involve pounding out code all day long for weeks on end. One way or another, I'm staring at code :)

-To computer engineers: how much physics are involved in your job? how much programming is involved?
I don't use any physics for what I do.

-To software engineers: do you actually program software or only design it, letting the programming task to other employees (programmers)?
In the (small) company I work for, whoever designs the software also helps write it. I don't know how large companies do it, but I imagine it's similar.

-Are any of you using Macs at work? (This won't influence my decision at all, I'm just being curious :p)
Yep, that's all I use, but I work for a Mac software company ;)

Moving this thread to Mac Programming, you'll probably get more responses there.

lee1210
Sep 26, 2010, 01:02 AM
I've narrowed my choice between computer engineering and software engineering. To my understanding, the computer engineer designs the hardware, while the software engineer (obviously) designs software. The thing is, I don't know what I would like the most.


You will learn some software in CE. You will learn some hardware, and about the hardware/software interface in CS. You are basically deciding how much of each you want. Some jobs are going to require one or the other, so you may want to start thinking about where you want to end up. No, not spacefaring billionaire tycoon, rewind a bit from there. Do you want to spend your days (and sometimes nights) smashing your head against a piece of hardware that doesn't work or a piece of software?


I heard by someone working in the computer field that there are the most future job opportunities in the networking field. According to him, job opportunities everywhere else are not as good. Is that true? Have you heard something like this?


This person either has networking skills and believes their big break is right around the corner, or knows people that do that he or she is jealous of because of opportunities they have. I assume by "the networking field" they mean designing and implementing networks, not actually designing networking hardware or writing the next big routing algorithm. In any event, this seems like a subjective, biased opinion that can likely be summarily dismissed. Networks are important, but without hardware and software to build, manage, and actually do something on them they are a bunch of useless cables.


-What does your typical day at job consist of?

reading a lot of code. A lot. Sometimes writing a little code. Then reading a lot more code when it doesn't work. Sometimes, there are meetings. Very rarely, something new must be designed from scratch, so design and planning happens, then a bit more code is written than normal.


-To computer engineers: how much physics are involved in your job? how much programming is involved?

n/a (but none, beyond operating my body under the constraints of physics)


-To software engineers: do you actually program software or only design it, letting the programming task to other employees (programmers)?

There are likely people that only design software. They may write up some UML and stick it in a box, and someone else pulls it out and programs it. I have never met one of these people. Every programmer/software engineer/software architect I have ever known also writes some code. Our chief architect plans more and writes less these days, leaving more of the implementation to others, but most days he writes code.


-Are any of you using Macs at work? (This won't influence my decision at all, I'm just being curious :p)

My office desktops are windows-centric, our apps run on Linux. Most developers run Linux on their machine, though some only in a VM hosted on a windows machine. I have a desktop machine that runs Linux as the host, but really just serves 3-4 VMs (1 windows, a few Linux). I don't sit at this machine, and access the VMs from my MacBook Pro via RDC and SSH. I attach to an external display.

-Lee

chown33
Sep 26, 2010, 02:35 AM
-To computer engineers: how much physics are involved in your job? how much programming is involved?

Back when I worked for a company that designed and made both hardware and software, the hardware folks only dealt with physics when designing cooling systems. That includes conduction, such as heat-sinks, thermal conductivity of circuit-board materials, etc. It also includes air-flow, and mundane things like what happens when the fan on the back gets jammed too close to a wall under a desk. And obviously you'd have to know about power consumption by the circuits, and power dissipation per unit area or volume, so you know how much heat is being produced where. It's not just heat, it's hot spots.

Oh, and I guess case materials like sheet metal, plastic, etc. but they mostly relied on the manufacturing engineers for specifying what the minimum thickness was, what screws to use, what shapes to bend or cut, etc. And things like plastics was all left to the plastics manufacturer's engineers. We spec'ed it, they made it, we tested it to spec.

ShortCutMan
Sep 26, 2010, 04:15 AM
-What does your typical day at job consist of?Going through the bug list produced by the tester and fixing them primarily. I was lucky enough to work entirely on a new product all by myself when I first started this job, but that has taken a side step to producing a new version of a currently selling product. Given that all the new features have been implemented, its just a matter of making it all work properly.

-To computer engineers: how much physics are involved in your job? how much programming is involved?I'm not a computer engineer (software), but I did do electrical engineering for a little bit through uni, and I couldn't imagine as a computer engineer you'd do much in terms of 'electrical physics'. More work in organising digital systems most likely.


-To software engineers: do you actually program software or only design it, letting the programming task to other employees (programmers)?I work in a mid-size company, and inside that, within a team of 5 people. Between us, we run 3 main products. If by design you mean the internal structure, then yes we do that. Our manager does the bulk of it, but we do the micromanagement of it. In terms of the actual product then yes we also do that, as guided by the requirements dictated to us.

-Are any of you using Macs at work? (This won't influence my decision at all, I'm just being curious :p)I'm using Windows 7 to develop on. The company works in a cross platform environment, but that ends up just being between Linux and Windows. I use an apple keyboard at work because I'm more used to the key spacing. I also swapped the functionality of ctrl to the command key and it plays havoc with anyone that tries to use my computer. :)

talmy
Sep 26, 2010, 10:48 AM
When I got my degrees in the early 1970's there was no such thing as "Computer Engineer" or "Software Engineer". I was in the Electrical Engineering program and took as many Computer Science courses as possible because I wanted to be a Computer Engineer. I've been employed doing a mix of hardware and software design (I like that!) ever since -- 37 years, and full time employed for all but 5 months of that. (During those 5 months I was part time employed.) Being flexible is the most important thing to keeping employed.

I would say that if you have a degree as a Computer Engineer you would be expected to be competent as a hardware designer and as a software designer, with software design particularly low-level such as device drivers and embedded software as opposed to application programming.

The company I work for has been growing and only paused growth in the recent recession. About 200 employees, including manufacturing, and perhaps 20 or so engineers. We only consider job applicants with both hardware and software skills. The products in our group are environmental sensors (pressure, temperature, humidity, CO2, CO), virtually all have embedded microcontrollers. Our manufacturing line has custom testers that both verify functionality and do calibration. An engineer or pair of engineers (on bigger projects) carries a single design all the way through, from schematics, microcontroller firmware, to the test plan and tester design (and programming). Nothing exotic, but requires analog and digital hardware design, some mechanical design, some physics, some statistics, embedded C or in a few cases assembler programming, and Linux/Windows programming in C and C++ with several different window managers.

foidulus
Sep 26, 2010, 10:57 AM
What you do all day really depends on what job you work at. There are a lot of jobs that do almost nothing but programming, then there are jobs that do almost none.

I was sort of in the middle at my last job before I decided to go back to grad school, my job consisted of (roughly) equal parts coding, sysadmin, and interacting with the customer.

I wouldn't worry too much about which courses you end up taking, if your program is any good they should give you a really good background in the fundamentals and let you go from there.

I would actually recommend you take the minimum # of tech courses and take a lot of stuff from elsewhere at the university. That is really why you are there.

jpyc7
Sep 26, 2010, 11:29 AM
I heard by someone working in the computer field that there are the most future job opportunities in the networking field. According to him, job opportunities everywhere else are not as good. Is that true? Have you heard something like this?


I'll just add some comments about networking, although I am just speaking anecdotally based on my experience. I've worked for 2 internet service providers and also a couple of network equipment vendors in the US.

There is a perception that networking jobs in the US are generally not out-sourced to other countries. I think it depends on the job, but Network Operation Centers (NOCs) are generally in one location and can remotely operate equipment in many places. One can be a network technician and will based in the locations with the network equipment, but you don't need a degree for that. Such people will re-seat blades, move cables around, install rack equipment, etc. under the remote supervision of the NOC.

Working in a NOC often involves shifts for 24/7 availability. It requires network knowledge and trouble-shooting skills, but is basically just watching monitors for trouble. When trouble strikes, generally execute defined procedures to resolve them.

The next level is designing and testing networks. Many of these people at the companies I've worked at did not study networking in college, but I think that has a lot to do with the lack of degrees (at the time). They're smart people, but aren't designing protocols. They have knowledge on how changing protocol parameters affect the network traffic. They spend time trying things in a lab. They also end up being on-call when the NOC runs into a issue that the NOC does not know how to fix.

As for writing software for network equipment, it is like many other software engineering jobs. The amount of invention can be high or low, depending on your company. Most companies want to patent things, so if you have an aptitude for that, then great. Pretty much the software can be written in any location. The number of SW jobs keeps growing, just not necessarily in your location.

lewis82
Sep 26, 2010, 02:21 PM
Thanks everyone for the replies. I really appreciate it :)

From what I can read I think should choose computer engineering, as it would allow me to do more things (both software and hardware), to be more polyvalent.

I can also see most of you don't use physics. Good thing, since I don't like it a lot. I wouldn't mind having to use it a bit, but if someone told me the job consisted mostly in calculating values of transistor, at a molecular level, for example, I would have reconsidered my choice.

I would actually recommend you take the minimum # of tech courses and take a lot of stuff from elsewhere at the university. That is really why you are there.
By elsewhere, do you mean other programs? Any examples? (I don't know how it works in the US, but in Québec, we have a list of courses from which you have to choose a couple.)

lee1210
Sep 26, 2010, 03:04 PM
By elsewhere, do you mean other programs? Any examples? (I don't know how it works in the US, but in Québec, we have a list of courses from which you have to choose a couple.)
They mean from other schools or departments. Learn a new spoken language. Learn something about astronomy. Read some plays. Learn the history of a specific ethnic group or culture. You'll have access to a number of experts in your field throughout your career. You will likely not have access to experts in other areas, so now is a great chance to learn oddball things you are unlikely to pursue on your own later.

Basically take advantage of one of the things that differentiate a University from a trade school.

-Lee

talmy
Sep 26, 2010, 03:19 PM
Developing communication skills is important for any field. Speaking and writing skills are important.

lewis82
Sep 26, 2010, 03:33 PM
They mean from other schools or departments. Learn a new spoken language. Learn something about astronomy. Read some plays. Learn the history of a specific ethnic group or culture. You'll have access to a number of experts in your field throughout your career. You will likely not have access to experts in other areas, so now is a great chance to learn oddball things you are unlikely to pursue on your own later.

Basically take advantage of one of the things that differentiate a University from a trade school.

-Lee
I'll probably take german language courses. I'm obliged to take an english course (since I'm a native francophone), but I can replace it with any language I want if my level is sufficient.

I'll have to check for others. But basically, the principle is to take the least amount of tech courses as possible, and to use other stuff to getmy minimum number of credits (120)?

r1ch4rd
Sep 26, 2010, 04:41 PM
-What does your typical day at job consist of?

We're quite a small company, so I have a couple of roles. I am the lead for QAT and final release testing, but I also get involved in writing requirements and helping out with client implementations (usually only when something goes wrong).

-To computer engineers: how much physics are involved in your job? how much programming is involved?

We make business software, so no physics needed.

-To software engineers: do you actually program software or only design it, letting the programming task to other employees (programmers)?

In our company whoever writes the requirements (ie designs the functionality) has no say in the programming. In my mind, this is a bad thing, but that's how it is.

-Are any of you using Macs at work? (This won't influence my decision at all, I'm just being curious :p)

No, we only support Windows.

lee1210
Sep 26, 2010, 05:19 PM
I'll probably take german language courses. I'm obliged to take an english course (since I'm a native francophone), but I can replace it with any language I want if my level is sufficient.

I'll have to check for others. But basically, the principle is to take the least amount of tech courses as possible, and to use other stuff to getmy minimum number of credits (120)?

I took 28 hours of German (couldn't technically minor, and the major required a lot of classes unrelated to pursuit of the language) during my time at university. I did a BA in CS so I had flexibility in my electives, which sciences to take, and so on. I loved the CS program, but I wanted to spend some time outside of the CS department while I had access to experts in so many other fields. Some courses that really stand out are things like humanities, an ethics course, a history course re: Jewish immigration to America, and a German outreach program involving introducing German language to elementary and middle school students. These things probably didn't make me better at programming, but they taught me about thinking and learning, which I value very highly.

If there is a CS, CE, EE, etc. course that isn't required, but really interests you, by all means, take it. But if every single one of your classes are in one or two buildings that probably means you're missing out on a wealth of knowledge available in other subject areas. Do I regret not taking a parallel computing course? Absolutely. Would I give up having taken an astronomy course or advanced German grammar to have done so? Absolutely not. If it was up to me, I'd still be taking university courses full time. It was the most intellectually rewarding time of my life. My point is that you have limited time there, and while honing your skills in your major area of study is crucial, doing so to the point of ignoring all other areas would be a mistake.

-Lee

notjustjay
Sep 26, 2010, 11:52 PM
I can also see most of you don't use physics. Good thing, since I don't like it a lot. I wouldn't mind having to use it a bit, but if someone told me the job consisted mostly in calculating values of transistor, at a molecular level, for example, I would have reconsidered my choice.


Well, even if it did, you'd be using some sort of modelling and simulation program, not sitting down with a pencil and paper. Your work would involve interpreting the results of the simulations and calculations, not doing the actual math.

That applies to just about anyone (outside the academic world itself, of course). You need to have basic math skills to be a cashier, but you still use cash registers that do all the adding for you.

As for me, I took a program called Computer Systems Engineering which had what I felt was a good mix of all of the above. I learned high-level programming language techniques (in C++, Java), to OO design and notations, to database theory, operating systems, down a level to computer architectures, assembly language programming, down a level to digital logic circuits, gates, flip-flops, FPGAs, down a level to transistors, signal modulation and communications theory, electrical circuit theory, down a level to some basic quantum physics, chemistry, and, oh yes, calculus.

Basically a little bit of everything. Not enough to make you an expert in any one subject but enough of a starting point for pretty much any career in the field.

The point of university is to teach you to be teachable. It's not to insert a series of facts into your brain, but to train you to do your own research, and understand and learn on your own. Engineering, similarly, is about solving problems in a logical and disciplined way, and that sort of thought process is very transferable. I used to work with a guy who originally studied biomechanical engineering and was working with human leg joints before he took a job as a software engineer. He had never written a line of code in his life before, but after a couple of years, he not only fit right in, but he had a lot to teach others about good engineering design and style.

(marc)
Sep 27, 2010, 02:03 AM
I'll probably take german language courses.
[...]

Eine gute Wahl :)

lewis82
Sep 27, 2010, 05:40 PM
Eine gute Wahl :)

Ich spreche ein bisschen Deutsch, aber ich möchte ein lehrer/eine lehrerin haben. It would make everything easier, as I constantly fear I'm learning stuff that is incorrect.

lee1210
Sep 27, 2010, 08:16 PM
Ich spreche ein bisschen Deutsch, aber ich möchte ein lehrer/eine lehrerin haben. It would make everything easier, as I constantly fear I'm learning stuff that is incorrect.

*Lehrer/Lehrerin (all nouns are capitalized)
*you can just use masculine for an unknown gender (or just feminine, though this is less common like English)

It's good that you want instruction from someone fluent (hopefully native speaker). It makes a huge difference. In high school I started with a native speaker, but then had an American for two years. At University the majority of my professors were either native speakers or had years of fluency. Hearing real native accents (and varied, Bayerish sounds much different) also helps to understand the people you really want to speak to in German.

I suppose this is terribly off-topic. I'm not even going to try to salvage it.

-Lee

Rodimus Prime
Sep 27, 2010, 08:31 PM
If you are entering in to college as a freshman you have more than just 6 months to decide between the 2. My guess is you have about 2 or more years before you have to lock your self in. They have a lot of over lap in course work and since both have required electives you can easily buy the time by taking your electives in the others fielded.

Right now I am in CS but thinking about CompE. My CS electives will be all in CompE. Now my biggest deciding factor is if I have to retake PhysII. If I do not have to for CS and have to for CompE I am going to go CS then go back and get my masters in CompE. All my CS electives will be in CompE getting the missing pre recs for a masters.

lewis82
Sep 27, 2010, 08:46 PM
That's a good thing I can switch like that. By looking at the list of courses, I can see there are a lot of common ones. Of course I'd prefer not to have to ;)