• 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

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.
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.

Small note, while I am still in university, you want to be careful with HOW small the company is 🙂.

I worked a summer for a 4-5 person sized company... Yeah. It was a father and son thing, with the father as the head programmer and the son as the salesman. The father wrote some of the worst code I've seen in my life, and he was in charge of pretty much the whole business background.

If you are going to work for a company that small, I would almost suggest starting your own. It is a fresh type of hell when you get the assignment to finish something written so poorly that it was literally faster to rewrite. (which is what I did, I got the same functionality, and clean code in under a day. It would have taken months if I had to tried to use the original. Oh, and I improved the speed of the program by about 1000x.)
 
I work at a corporate office for a retail company and we submit many requests to our Point of Sale software vendor for custom mods to the product. Based on promos, loyalty programs, etc. You may want to look there. The company we use is based in CAN though.
 
It really depends on the company and the leadership that is in place on the project you work on. However, I have found that, in my experience, the first year or so they expect you to do what you are told and get a feel of a real-world development cycle.

As far as software design...even if you have a good idea of design patterns and the appropriate application of them, it helps to have actual experience in development to know what works in what situation. I have seen many times where designs were implemented that did make sense or things were over-engineered because the designers were:

a. Not strong enough developers to understand the impacts of their choices.
b. Were not really technical to begin with.
c. Could not balance real-world feasibility with idealistic design principles.
 
Like the OP, I too am completing a degree in CS, should be done in a little over a year. I would eventually like to work in the design and architecture end of software development. From what I have read that is more feasible after getting some experience following school (I am unable to participate in an internship). My question is related somewhat to the OP, however, I am requesting some input regarding course selection.

In my degree program 2 elective groups must be selected from which the student takes 2 classes from each group. Given my career goals I had originally chosen one to be Software Engineering. With the possibility of a design position coming after time in the field, is it worthwhile to take what I had planned (one course in Software Engineering, the other in Design Patterns and Architecture)? I have already had an Object Oriented System Design course, so I'm concerned the Software Engineering one may be a superfluous. Having said that, the professor for the SE course assigns a challenging group project I think would give some nice hands-on experience short of doing an internship. I realize I could get involved in an open source project, and I am loathe to take a class simply because of a specific assignment, but when left to my own devices I need the structure of grades and due dates, which I would not necessarily get going through source forge or coming up with something on my own.

Anyway, input from those of you working in the field would be appreciated in regard to my current course choices. Were I not to continue with the Software Engineering electives I would likely choose a System Software group, which includes courses covering distributed systems, advanced operating systems concepts, networks, network security and embedded systems.

Thanks in advance.
 
Last edited:
Back
Top