Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Mobius
Sep 26, 2000
I recently made a shift away from IT towards development. I was in a technical systems analyst/support/DBA/product guru sort of role for about five years and gradually took on more development responsibilities. I left that company to pursue development full time. My title right now is technically "programmer," but I think I'd eventually like to be in a "software engineer" or "architect" type of role.

Basically, I love the whole process of software development, but I REALLY like the bigger picture side of identifying business needs and/or deficiencies in current systems, then determining how to re-engineer them or build new features and products to fill gaps.

I consider myself a competent, but not amazing coder. I don't have a CS degree. I see my current role as a chance to improve those skills, but I'm never going to be the guy that eeks the most out of every single CPU cycle, or busts out a brilliant algorithm in no time. That's just not where my interests lie.

Am I right in thinking that an engineering or architect position is where I should be aiming? If so, what steps can I take next to move into that kind of role? My current position has opportunities to move into a tech lead or management position, but there's nobody in an architect sort of role that guides the long-term vision of the product.

Adbot
ADBOT LOVES YOU

Mobius
Sep 26, 2000

Contra Duck posted:

It sounds to me like you'd rather be a business analyst. That's basically all about identifying requirements and designing solutions for them.

No, I really don't want to be a BA. I want to do the requirements and design AND coding. I like coding, I'm just more interested in solving problems with my code than writing "the best code ever." Hence why I don't think I want to be a pure coder.

Mobius
Sep 26, 2000

csammis posted:

I've found that doing all three of those things by yourself leads to (a) blind spots or (b) lack of attention to one or more of the three which leads to (c) crappy results. Gathering requirements especially should be done by someone who has a keen knowledge of the solution space but not necessarily the potential coding solutions (lest the gatherer [un]intentionally ask the customer leading questions).

Yeah, I certainly wouldn't expect to do all three in a vacuum on my own, but I would like a position that has ample opportunities to do each. The projects I've enjoyed the most are the ones where I got a few different experts together, I presented my ideas, and then we picked them apart from every angle to really hone the concept.


unixbeard posted:

You should check out this book

It's rare you get someone who is an architect who isn't really good at development, not like a whiz at computer science but someone who has a very good low level understanding of how all the technologies work. Someone who the powers that be trust and turn to when things get hard and can fix the problems.

If you're an architect, you effectively have a lot of power. You will set the technical direction based on where you think the industry as a whole is heading, do the high level design of all the components and how they fit together, and ensure that it is aligned with the long term strategy. If you get it wrong you will likely hose the project and all the man years of effort will be wasted.

Most people who need architects know how important a role it is. They are going to want the guy who's opinion they trust. Someone who has made a lot of good calls and has a track record of this. From what I have seen it is most common that the architects have risen from development roles. That way they really understand development and what can be done.

The other thing is the whole 1% inspiration and 99% perspiration. It doesn't take years to come up with a good architecture. You will still need to be involved with the project on a day to day basis, and if you feel development is not your forte, I would look at things like program management. That way, in theory, you could design a system, have a development team with perhaps a separate dev team lead, managing the day to day development stuff that arises. You want a really strong developer leading the developer team v:)v

But yeah, you need to be able to get people to understand why your ideas are good and for them to trust your judgement. You can work on that all the time.

This is helpful, thank you. Perhaps I'm underselling my development abilities and my interest in coding, though. I really do enjoy coding and definitely want to get better (it's why I took a full-time programming job) and fully expect to get better. I'm just more of a high-level systems thinker than something like a low-level performance guru. I expect it to take years to work towards that type of position, and just want to make sure I'm on the right path from the start!

Mobius
Sep 26, 2000

Jick Magger posted:

Here's a rather odd (to me) question.

I've got an interview this week for a position at a university, and they've asked me to "bring in between one line and one page of their favorite code to discuss. " It doesn't have to be code I've written, and it doesn't matter the language.

... So what on earth are they asking me for?

I don't really have any code that I've written that I think is worth showing off, and I can't think of anything I've read lately that was particularly clever. This is for a < 1 year experience position, so perhaps they're just wanting to make sure I'm not completely talking out my rear end?

Go to the Coding Horrors thread, pick out your favorite bad example, then use that. You can tell your interviewers you like it because it's a great example of how NOT to do something, you can explain what's wrong with it, then talk about how you would do it and why your way is better.

Mobius
Sep 26, 2000

Mobius posted:

I recently made a shift away from IT towards development. I was in a technical systems analyst/support/DBA/product guru sort of role for about five years and gradually took on more development responsibilities. I left that company to pursue development full time. My title right now is technically "programmer," but I think I'd eventually like to be in a "software engineer" or "architect" type of role.

Basically, I love the whole process of software development, but I REALLY like the bigger picture side of identifying business needs and/or deficiencies in current systems, then determining how to re-engineer them or build new features and products to fill gaps.

I consider myself a competent, but not amazing coder. I don't have a CS degree. I see my current role as a chance to improve those skills, but I'm never going to be the guy that eeks the most out of every single CPU cycle, or busts out a brilliant algorithm in no time. That's just not where my interests lie.

Am I right in thinking that an engineering or architect position is where I should be aiming? If so, what steps can I take next to move into that kind of role? My current position has opportunities to move into a tech lead or management position, but there's nobody in an architect sort of role that guides the long-term vision of the product.


I figured I would follow up on this from January... I think I may have been underestimating myself when I started this job. Seven months into my first full-time development job, using a language I hadn't touched in almost a decade (Java), my manager informed me yesterday they're making me a tech lead for a new customer. On top of development, I'll be responsible for system implementation over the next year. They're also going to bring in a couple other developers to help me. They won't report through me for HR purposes, but I'll be responsible for reviewing and approving their work.

I was hung up on the fact that I didn't have the CS background that a lot of people have and couldn't do things like immediately crank out a textbook example of an efficient search or sort algorithm. It turns out those things don't really matter that much in a lot of business apps. Here's what I've leared DOES matter:

1. Write code that works (and actually does what the customer needs).
2. Deliver on time.
3. Write code that's maintainable.
4. Write code that doesn't bring the system to its knees.
5. Build screens that are usable.
6. Document your code well.
7. Take on additional projects when things are slow.
8. Work well with others.
9. Learn new things without having your hand held.

A lot of people seem to struggle with #1 and #2, let alone the rest. I've managed to do these things, and I think that set me apart.

If you can manage to demonstrate through your resume and interview that you can accomplish these things, then a lot of people will be willing to take a chance on you, even if you don't have the exact technology background they're looking for.

Mobius fucked around with this message at 19:10 on May 14, 2011

Mobius
Sep 26, 2000

Mike1o1 posted:

Thanks for the follow-up, it gives me some inspiration that I can make a similar transition from BA to Developer.

Based on your previous post, you were in a technical/business analyst type role, which is something I was in as well. I did coding about 15% of the time, but it was only in VBA and Access as those were the only "development" tools we were allowed to have.

Just curious, how exactly did you demonstrate on your resume that you were able to do #1 and #2? I'm a decent coder, and do programming as a hobby using C#, but I don't have any finished projects just yet to demonstrate to a prospective employer.

I'm having a hard time getting my foot in the door for interviews, though I have one interview next week doing Classic ASP... :(

In my previous job, I worked with the team leads to become a part-time member of the development team. After a few years of that, I had several completed, released, projects that I could put on my resume and talk about during interviews. So yeah, just get some projects under your belt however you can.

Mobius
Sep 26, 2000

No Safe Word posted:

And don't be surprised if you hear "except singleton" for the design patterns question

Is that because they're so simple or because they're pointless? I had never used singletons before my current job, and I keep coming across them littered around various parts of our codebase. I get the point of a singleton is to restrict to a single instance of the class, but I just don't see how they're particularly useful. I especially don't see how our code benefits from them.

Mobius
Sep 26, 2000

pokeyman posted:

I give up. A train programmer?

C'mon, man, it's obviously trainer. Duh.

Mobius
Sep 26, 2000

NotHet posted:

I'm graduating in December, when should I start applying to jobs? Is there a good rule or is it more case by case?

You should have been applying already.

Mobius
Sep 26, 2000

Pweller posted:

Read this today

http://spectrum.ieee.org/tech-talk/at-work/tech-careers/noncompete-agreements-carry-high-cost-for-engineers

Talks about new hires getting blindsided by non-compete agreements.

I've signed these before, since I didn't feel I really had a choice...
What are your guys' thoughts/strategies here?
IP is such a shitstorm it makes me worry about getting sued if I ever were to start my own company (without basing it on any other company's work).

That hits close to home because I signed a non-compete in my first job out of college. I didn't really give it much thought at the time. I liked the offer/company, and signing it was a requirement for employment. Well, a few years later, it turns out that, due to the experience I picked up, I was EXTREMELY valuable on the market, either working for a customer or as a consultant. But I couldn't do anything about it, because I couldn't work for a customer in any capacity for one year, including as a consultant through a third party agency.

It was a very broad non-compete, and the general consensus was that it was unenforceable. But that didn't matter. The company also had customers and certified consulting agencies agree not to hire anyone that worked for them. So, basically, nobody wanted to get on their bad side and you were locked out, anyway.

It made job hunting a very frustrating experience because there were a plethora of open positions, all paying significantly more than I was making as an employee. In the end, the job turned pretty toxic and I needed out. I took a pay cut when I left because the better paying jobs were off limits.

Adbot
ADBOT LOVES YOU

Mobius
Sep 26, 2000
There are important psychological concepts behind good UI design that you'll never really get by just tinkering on your own. If your goal really is to go into front-end development, the HCC degree could be very helpful. Especially if it includes things like cognitive psychology in the curriculum.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply