• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Career path advice

I'm looking for some guidance on a career path. I hope this doesn't come off as too vague or wishy-washy, but here we go.

I'm close to graduating with a degree in CS and I'm very keen to get out into the workforce. The stuff I'm most interested in is the "big picture" software design area. I do love writing code and I'm good at it. However I really get off on designing software systems. Finding the 'perfect' solution to making a piece of software maximally flexible and decoupled is challenging and satisfying. Is this the kind of work I'm likely to be able to find straight out of university, or am I looking down the barrel of several years of just "doing what I'm told" before I get to make decisions of my own?

What I mean is, I've never actually worked in the industry. I have not been successful in getting internships while I've been at university, but I have written more code than most of my peers with personal projects and school projects. I have led two teams through group projects. But of course none of this kind of work compares to "real world" work in terms of large systems. Does the average new programmer get to suggest a cool design pattern to improve some piece of code, or does he just implement a class when he's told to?

I know these are stupid question but some helpful advice, guidance or just an eye-opener from those in the field would be appreciated. What can I do to ensure I'm in a place where I get to really think for myself and for a team when I get out there?

Thanks.
 
Honestly, you'll probably be lucky to find a place that is really doing design at that level. Most of corporate america and institutional IT can be ruled out almost up front. In most of these places development teams design as best they can amidst ephemeral requirements and artificial deadlines, and the quest for elegant solutions is rarely rewarded.

Academia, a start-up, a software OEM or service company, in some cases a small group within a large corporation... you're going to have to look deep and be selective.
 
Military R&D? In my limited experience, our R&D basically does everything in house, so even new employees (or co-op in my case) can have a hand in development and methods to get stuff done. We'd normally get together and discuss what the best course of action is, then divide up and do our thing.

My latest project, I was given a devboard and a sheet or two of requirements. Everything else was up to my discretion. My boss has given me help when I needed it, or suggested another way of doing something, but I've pretty much handled it myself.
 
You've got the right degree for it. Look for a software or hardware OEM doing work in areas you have some bona fides in, or pursue a doctorate and the academic path. Software design in support of any of the sciences could also be very rewarding in the way you describe, or at least I've always thought it would be.
 
Thanks, I'll look into options in that area. I don't think I want to go into the academic field, I really like the idea of solving real-world problems with software.

Off topic
Markbnj did I ever tell you the editor of that site in your sig was a professor of mine in my first-year philosophy course? He took a paper called Science: Good, Bad and Bogus which spurred my interest in the skeptical movement. He's a great lecturer and the paper was incredible.
 
Thanks, I'll look into options in that area. I don't think I want to go into the academic field, I really like the idea of solving real-world problems with software.

Off topic
Markbnj did I ever tell you the editor of that site in your sig was a professor of mine in my first-year philosophy course? He took a paper called Science: Good, Bad and Bogus which spurred my interest in the skeptical movement. He's a great lecturer and the paper was incredible.

I think you did mention it once, or at least I recall someone here having a connection to it. That's my go-to site when I need something interesting to read, and it always delivers 🙂.
 
I know where you're coming from. I'm a big picture kinda guy myself. My favorite part of software is scope documents and logic flowcharting. Most people think I'm nuts. 🙂 In my case just due to circumstances it led me out of programming and into management. I do miss the design now and then, but I can't really say I miss coding itself all that much.

I hate to say it, but you're probably going to have to do your time as a code monkey. I don't know how the NZ economy is, but in the US there are enough experienced people looking for work that someone fresh out of school is going to have a hard time getting an architecture position.

My suggestion is to be a consultant. You can work short stints a number of places, get a lot of different experience under your belt. Don't get into a rut at one job, try to take shorter contracts, 6 to 12 months. Because you move around so frequently as a consultant you may have the opportunity to get yourself in more of an architect role sooner than if you actually had to climb the corporate ladder. Tell your boss that architecture is what you really want to do and then work on getting positive feedback from the customer to prove your competence.
 
Hi again.Ive gone through your idea in theory, but wouldnt this solution result in a non-smooth jagged path for the bullets? Like this first example:
 
Do you think it matters if you get a MS right out of your bachelors or if you go back, or do you think it doesn't matter? I'm going to be starting my MS this fall in CompE right out of undergrad.

What matters is that you get some real-world experience. Internships are good for that. Full-time work is better, but if you're just starting out, I'd say go for the MS first. Its hard to transition from work to school.
 
What matters is that you get some real-world experience. Internships are good for that. Full-time work is better, but if you're just starting out, I'd say go for the MS first. Its hard to transition from work to school.

I've had a couple internships during my undergrad, but due to the area of the country that I live in, and the fact that I went to a local state school it's been hard to get internships that I would consider very valuable. My undergrad degree is EE, but I'm really interested in the CompE side of things (FPGAs, digital circuits, low level software, etc), but there's not much industry that specializes in that around here.

I'm going to be attending a more well known school for my MS, so I'm hoping I can get a good internship next Summer.
 
My personal philosophy is that if you are reasonably intelligent and motivated, you can start ANYWHERE and be successful.

Following that logic, get your foot in the door anywhere and then dominate them with your brilliance.
 
I've had a couple internships during my undergrad, but due to the area of the country that I live in, and the fact that I went to a local state school it's been hard to get internships that I would consider very valuable. My undergrad degree is EE, but I'm really interested in the CompE side of things (FPGAs, digital circuits, low level software, etc), but there's not much industry that specializes in that around here.

I'm going to be attending a more well known school for my MS, so I'm hoping I can get a good internship next Summer.

Sounds good to me. As you start your MS your advisor may have valuable contacts for you to leverage. I advise you to show a little interest in a PhD too, even if you're not feeling it, because advisors would rather spend their time on longer-term students... you can always bail out later if you don't solidly commit. And then again, you may even decide to do the PhD.
 
Sounds good to me. As you start your MS your advisor may have valuable contacts for you to leverage. I advise you to show a little interest in a PhD too, even if you're not feeling it, because advisors would rather spend their time on longer-term students... you can always bail out later if you don't solidly commit. And then again, you may even decide to do the PhD.

Thanks for the tip. I'm not against the idea of eventually getting a PhD, but I'll probably have to work after my MS to pay down loans from my time doing BE/MS, and I know that a lot of people find it hard to go back to school after working. So I'm pretty much taking things one step at a time.
 
Thanks for the tip. I'm not against the idea of eventually getting a PhD, but I'll probably have to work after my MS to pay down loans from my time doing BE/MS, and I know that a lot of people find it hard to go back to school after working. So I'm pretty much taking things one step at a time.

It depends on the loans, the school, and the student. Most school loans that I'm familiar with require no payments until you're done with school. Many (or most) CS/ECE graduate students receive tuition remission as part of an RA or TA package, along with a stipend.
 
It depends on the loans, the school, and the student. Most school loans that I'm familiar with require no payments until you're done with school. Many (or most) CS/ECE graduate students receive tuition remission as part of an RA or TA package, along with a stipend.

You can get Stafford loan that have interest subsidized by the government while your're going to school, however there are limits to how much you can take out in these loans (roughly 8k / year). You can get other loans that don't require interest payments while attending school but interest will still accrue.

It's all details I'll have to look at when the time rolls around to worry about it.
 
I know two people (one where I work that left to a high paying gig at Pfizer and one a friend of a friend of a friend .... of the family). My advice, get a job doing software. But keep current with all technolgies. By current, I don't mean that you need to know how to write code in language X but you need to know how the technolgies work together at a high level. That's how you get a high ranking job.
 
i know one guy that went straight into system architecture design type stuff, but i would say that was a big fluke

your best bet is to take a development position and prove yourself. once people know your capabilities, they will let you pretty much choose what you want to do and you can start focusing more on the higher level stuff. of course this assumes you will excel at it. if you can't then you should just be happy getting a paycheck 😀

the kind of work you are looking for is usually reserved for more senior people, gotta earn your stripes first
 
Honestly, you'll probably be lucky to find a place that is really doing design at that level. Most of corporate america and institutional IT can be ruled out almost up front. In most of these places development teams design as best they can amidst ephemeral requirements and artificial deadlines, and the quest for elegant solutions is rarely rewarded.

Academia, a start-up, a software OEM or service company, in some cases a small group within a large corporation... you're going to have to look deep and be selective.

I'll agree that the focus in corporate America is on getting things done quickly, rather than elegantly. But that doesn't mean you can't do design. I think the key is to find a position in a small development group, where there are only a few people doing the actual software development.

My first job out of school was working for Kodak, but I was at one of their manufacturing facilities and our IT department was fairly isolated from corporate IT. So even though I worked for a large corporation, we essentially had an IT group that consisted of a sys admin, a network admin, a DBA, 2 support techs, and 2 developers. From my first day on the job, I was involved in every aspect of development, including analysing requirements and designing the solutions.

If I had worked for a large software company, I think it's much more likely that I would have spent the first year or two of my career doing nothing but writing code based on someone else's design.
 
Your best bet is to work in a small company. If you go to work for Big Software Co, you're likely to end up on a large team, responsible for some small aspect of their enterprise-y solution. Smaller companies tend to have more of a "we need stuff done" mindset, and you're more likely to get a project where you have more power over your own work.

After university, I didn't even bother applying to large companies (even though I had an internship at RIM), and I've been pretty happy with the ~150 person company I ended up working at. Two highlights/examples:

-Built a new CMS that works much differently than anything I've seen out there: Easy to use for writers, very developer-friendly, uses git as a backend, produces highly optimized code.

-made a Android Forex trading app (http://www.appbrain.com/app/com.oanda.fxtrade), where I had total control over the code and tons of input into the usability/flow of the app.


But yeah, try going for a smallish, consumer-oriented tech company and you're more likely to get lucky in your job search.
 
Back
Top