http://qs321.pair.com?node_id=331287

After being out of college for about 3 years, I figure I spend less than 15-20% of my time designing software and/or coding. Lots of things (email, paperwork, meetings, and jockeying the version control, defect software) seems to consume the rest. The coding I do isn't very innovative, since a lot of it is related to implementating various requirements -- we don't take evolutionary leaps.

I'm interested in hearing other monk's opinions on how much time they spend doing actually interesting computer stuff -- and what field/area/industry they are in. Essentially I'm wondering if certain industries allow programmers to spend more time embracing the field and less time embracing Corporate America. Currently in my spare time, I'm going deeper into things I'm interested in -- Perl, OpenGL, Linux stuff, etc -- and learning some new things I didn't pay too much attention to before -- CSS, functional programming, more AI, etc.

To me, "Computer Science" should still be about math and science and algorithms (not just business-oriented stack diagrams and UML -- though I understand those, they don't thrill anyone), to some extent, and I feel that staying attached to the same corporate machine for so long may be dulling my senses -- becoming a corporate drone rather than the shake-the-world-up kind of coder I want to be. Is it always the same wherever you go? Or do you just have to write open-source stuff on the side to have fun and advance your skills? As it stands, if I hear the word "middleware" or "enterprise software" one more time I may have to go medieval on someone :)

Reading some monks home-nodes, it appears some esteemed monks live rather normal lives, essentially Bruce Wayne turning into Batman except that Batman codes awesome Perl modules instead of fighting crime. Is that how I need to keep my sanity? If so, to the batcave!

  • Comment on Avoiding "brain drain" in the corporate realm

Replies are listed 'Best First'.
Re: Avoiding "brain drain" in the corporate realm
by perrin (Chancellor) on Feb 24, 2004 at 05:00 UTC
    It is still possible to take pride in your craft while writing business applications. The problems you work on may seem mundane to you compared to creating video codecs or something, but to your clients they are real world problems with real payoffs if they are solved. It doesn't take long to see that building software, even when it is software with zero new engineering challenges, is hard to do successfully. Most of your peers are failing at it to greater or lesser degrees most of the time.

    You can be better than that. You can apply your understanding of abstract systems and logic and try to solve the hard problems. The catch is, most of the hard problems are not pure engineering problems, but rather involve issues of user interaction, and coping with changes well. Any fool can write a simple web application, but writing one in a way that lasts, that is easy to maintain, that gives as much control as possible to your clients, and scales well when needed -- that's hard, and it takes some discipline.

    The reward is that most people are genuinely thrilled when you solve something for them that seemed difficult, especially if you can do it fast (perl), cheap (perl), and better than they were expecting (you).

    Sorry, I guess I'm getting a little preachy in my old age. If you really can't take pleasure in improving the way you do things at your job, maybe you can still have fun surprising them with a cool application of AI to a categorization task, or an OpenGL graph on their reports. But I think the craftsman approach has something to offer, and I look at it this way: if you have to spend all day making wooden chairs, you might as well make the best damn wooden chairs anyone has ever seen.

      I like that. My ironwood chairs shall have a built-in electric toaster standard in all models.
      "It is still possible to take pride in your craft while writing business applications"

      Here! Here! I'm an Oracle DBA/database designer by trade. I work with boring things - billing systems, data warehouses etc. Where do I get my job satisfaction? Taking poorly peforming databases and tuning them till they purr. Discovering a cool CPAN module that will make everyone's life easier. Even things that no one else will notice - rewriting my old Perl code, because I've discovered better ways to do it from Perlmonks, other web pages, books or whatever. If there's a new technical challenge every now and then, I don't really care what the end-business is, as long as I can deliver solutions that make my customers happy, and keep my brain from atrophying...
Re: Avoiding "brain drain" in the corporate realm
by AidanLee (Chaplain) on Feb 24, 2004 at 04:27 UTC

    Even when you're your own boss (as I am), you don't always get to do what you want. But I think the size of the firm you're with makes a large difference to the amount of time you have to be a developer versus whatever other hats you may end up wearing. I think this is largely just because having more people in the firm means more time spent communicating with those other people.

    I do believe I spend far more time being a developer doing at least semi-interesting stuff than many people in our field do. It isn't necessarily very 'Computer Science' by your definition, but it keeps me interested in my job (most of the time).

    As for the open source on the side deal, i'm really only just getting started in that area. It's kind of exciting though. Up till now i've been a pretty passive member of the Perl community, and it feels good to be taking a slightly more active role. And it gets me thinking about programming problems i wouldn't necessarily be tackling at work.

      Yep, I fit all sorts of hats! :) But maybe because the company is small (Engineering = 100 folks?) rather than large. You have to wear a lot of hats. However I have also worked in a large firm, and while you wear less hats, there is still overhead as you say.

      On the open-source front: well I'm *using* Open Source stuff now, I am completely neglient in giving back aside from filing one or two bug reports. I think contributing to CPAN is a start (provided I get some good ideas that someone has invented 90% of already), and I really need to persue one of my gaming projects all of the way through (I get tons of ideas and can't finish most of them because the new ones are more compelling) -- I'm pretty sure I can write some stuff folks will actually want to play. As I've said -- usually most of them get killed in the design and early-prototype phase.

      Anyhow, I feel that giving back is really important... but it's hard to feel like looking at a computer after doing it 8+ hours during the week, especially in good biking weather! Regardless of what goes on, though, I do feel my skills are a little sharper for screwing-around on my own time, though there has got to be a better way.

      How did you get to be "your own boss" in regards to (what I assume is) mostly Perl development? I think I would have excellent consulting (not to be confused with contractors that call themselves "consultants") and development skills, but to me, anyway, the hard part is finding clients and getting the business end straightened out. Admittedly, this is a long subject, and probably should be it's own meditation. Thanks for the input though. Good points.

        Heh, sense of scale. Your small company has 100 engineers. Our small company has less than 10 _people_.

        I got involved in what i'm doing now my senior year in college, and basically opted out of the post-graduation job hunt to start a business with the friends i was working with. Needless to say, it has had its ups and downs. Our first attempt crashed and burned as we came to understand the consequences of too many employees, not enough clients. Our second attempt is getting promising, but has been quite a struggle. After having barely survived a number of near death experiences (business wise) we're finally getting our business agenda straight. The great thing though is while I have to be involved in keeping the business running, the comany is small enough that it still leaves the majority of my time to pursue my primary mandate as product developer.

        Yep, I fit all sorts of hats! :) But maybe because the company is small (Engineering = 100 folks?) rather than large.

        100 *Engineers*? If there were 100 *employees*, I would consider that a medium-sized outfit. Small is like where I work -- I am *the* computer guy. The only staff person who makes regular use of copy and paste technology, that's me. If it has to do with computers, it's my job. Stuck printer? Get Nathan. Need a database? Talk to Nathan. Web browser stuck? Ask Nathan. Want to set up a cgi server? Nathan. NAT/Firewall stuff? Nathan. Windows needs a reboot? MacOS 9 is hung? Fetch Nathan.

        I used to spend almost all of my time troubleshooting. I've been gradually improving that situation.


        ;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}} split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print
Re: Avoiding "brain drain" in the corporate realm
by exussum0 (Vicar) on Feb 24, 2004 at 04:38 UTC
    I work for MarketAxess as a production support developer. I'm basically 3rd tier support plus the guy that builds systems when regular developers are allocated to anything else. Having said that, our internal staff, then production support (dealer support) and finally client services (client support) get decreasing amounts of software support.. so I am literally a go-to guy for any solution. I also get consulted a lot for dealing with public design (i.e. client a wants to do soap, dealer b wants to submit a file every other day).

    This leaves me in a really interesting position. I get to do Systems Analysis, figuring out what people need and what my resources are. I get to do systems design, as I get to solve problems in any way I particularly want... usually. Right now, I'm working on a program to do what our 'client support' version of our software doesn't do, which namely is, work properly :)

    Well, not so much that, but also there are last minute things, like, "we can't do this with a trade" or "we need to do this to monitor our systems from desktops."

    Your computer sciency things will come into play the more you program. Most common problems say, involving sorting and searching, are already built into perl, usually. But say, binary searching for instance is something that has come up. Some of the caching techniques i've learned in my master's classes i've implemented. I've built a finite state automata machine for some of the stateful things I need to write.

    I also practice offline writing opensource stuff, which I'll release once the company lawer gets back to me, (you hear me chuck?), which I will reintegrate into my solutions. I built a 2d ticker for instance, which is very customizable, which could be used for relaying messages company wide, or alert people when new data is available.

    I guess what I'm getting at is, it's not when is the soonest time you can use tools a-z, but knowing when you can implement any random tool at any time to improve a situation. You'll find tiem to do opengl stuff, or perl stuff when the time comes in. Heck, I could write expert systems to determine if a system is really down or it's just a network blip, right? It's about using your knowledge for the better and becoming wise.


    I used to be a funny character, now I'm just 4 bits.
Re: Avoiding "brain drain" in the corporate realm
by michaeld (Monk) on Feb 24, 2004 at 12:07 UTC
    ... And I thought I was the only one with this problem!

    After I graduated, I started working on mainframe (COBOL,...), after that on PC development (Notes/Domino),... always rather technical stuff.

    But as you grow older, people start noticing other qualities about you (communication skills, mgmt skills,...). Skills that only show up when you've been working for at least a couple of years

    So you get to do less and less hard-core technical stuff and more and more of the "soft" things: analysis, team leading, project mgmt....
    Alas... there's no stopping it... it only gets worse in my experience.

    So there's only one thing left to do: go with the flow and earn some money for your family (if you got one).
    I mean: face it, the hard-core academical programming is NOT going to pay your bills, is it? (Well... not where I live ,anyway...)

    (By the way: a big ++ to perrin for the last sentence in his/her reply - I think that sums it all up, really.)

    Cheers,
    MichaelD

Re: Avoiding "brain drain" in the corporate realm
by blue_cowdawg (Monsignor) on Feb 24, 2004 at 13:13 UTC

    I have always in my 23 years in the IT world found that things like "requirements" and "specifications" were like the lines in a coloring book. I still get to pick the crayons but I'm expected to color within the lines.

    Where I work we have a very regimented system whereby we have to ask "mother may I" before doing almost anything that I would consider System Administration 101. But that doesn't stop me from getting my job done. There are always creative ways to work within the system and still get your job done.

    I've worked for small companies (less than 50) and very large companies (IBM) and they each bring to the table advantages and disadvantages as far as working for them goes. One company that I worked for there was only 3 people between myself and the CEO and boy could I get work done in short order because I rarely had to get approvals to do anything unless I was spending money. If I was spending money I could get an answer and/or approvals within a couple of hours.

    That was OK when that company was small and there weren't many other people making changes in the data center. When the company grew a change management system was essential to maintain everyone's sanity and to prevent us hard charging IT folks from stepping on each other's toes. (example: "What do you mean you're putting that server on that shelf in that rack? I'm going to use that spot!")

    The moral of the story is: structure can be a good thing if it is not abused. As long as it doesn't prevent you from getting your job done. It may occasionally slow you down, but in the long run it is a good thing.


    Peter L. Berghold -- Unix Professional
    Peter at Berghold dot Net
       Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice.
Re: Avoiding "brain drain" in the corporate realm
by stvn (Monsignor) on Feb 24, 2004 at 14:58 UTC

    For 2 years now I have been very lucky. I have been working in a small consulting firm (5 developers including "executive" staff). We mostly do sub-contract work for corporate intranets. When I am coding, I code perl pretty much exclusively (except when I have to touch legacy VBScript code *yuk*). I am lucky too because my boss (he hates when i call him that) is a good friend, who i had known (and occasionally contracted out to) for almost 4 years prior. Then one day, the planets had aligned and the moon was in the correct phase, and whalla I joined his company.

    I actually have no official title (although I may soon cause we have to print up the new biz-cards) and being such a small company I wear a lot of hats all the time. Last week I set up the new CVS server, the week prior I was the project-manager/creative-director on our newly re-designed company website, this week who knows, its only tuesday morning here in EST. But aside from these more mundane tasks, I am also the R&D guy. Of course we don't have a "real" R&D budget, but when I am not doing something else, my job is to find and code cool new stuff. Again, I feel I am very lucky, and eternally grateful. But it hasn't always been like this.

    Prior to this job, I spent several long years working as a programmer in the advertising industry in NYC (through the dot.com boom too). Basically, imagine being surrounded by marketing people and MBAs (most of whom are educated way beyond their intelligence), and they always got the last word (but hey, thats advertising). I worked for some of the biggest too, talk about faceless, *sheesh*! But you know, it was good experience, and in the end I got some really nice names on my resume (although sometimes i think "at what price"). Hardly ever was this work challenging (except for some of the early DHTML stuff, cause browsers were so finiky back in '97/'98), and sure I wanted to shoot myself during many a meeting. But work is work, and living with a family in NYC is not cheap. I had to get through this to get to where I am today (living in the CT burbs, half-telecommuting to NYC and working for a great boss).

    A lot of times you have to slogg through the crap before you can get to the good stuff. Before I got into computer work, I was an art school dropout waiting tables and working countless sh*t jobs. I got tired of that (obviously), so I bought some CS textbooks and several long years later ...

    Your young, I assume you do not have a family, live you life, enjoy it, laugh at the corprate sheep "baaahhh"-ing in the cubicle next to you, read some good books, write some software in your spare time, and keep on truckin'. Eventually you will get to where you want to be.

    -stvn
      Well put. Thanks!
      write some software in your spare time, and keep on truckin
      I think you're right. I'll avoid the "Truckin'" in the Greatful Dead sense though. Mountain Dew addiction is enough. I need to convince myself to enjoy politics more since that is what I have here :)

        Yeah too much "Grateful Dead" Truckin' can lead to brain damage instead of brain drain ;-).

        I need to convince myself to enjoy politics more since that is what I have here :)

        Noooooooooo!!!!!!! Don't do it,.. don't give in to the dark side! Company politics are evil. It is one of the major reasons why I quit my last ad-agency job (and vowed to never go back). Politics will draw you down into the muk in a heartbeat (I am sure you know this already). It is excedingly hard to keep above them, but I highly recommend to try. My current company is too small to be political (and we are all long time friends too), but it did take me a while to break out of that mindset. Best to keep above it if you can, rather then get into it, in the end people will actually respect you more (at least the ones that count that is).

        -stvn
Re: Avoiding "brain drain" in the corporate realm
by delirium (Chaplain) on Feb 24, 2004 at 13:47 UTC
    Currently in my spare time, I'm going deeper into things I'm interested in -- Perl, OpenGL, Linux stuff, etc -- and learning some new things I didn't pay too much attention to before -- CSS, functional programming, more AI, etc.
    This is the same path I took, and it led to a job in a better environment (that includes a little perl coding). My bio has a brief description that sounds similar to what you just described. Doing extra techie stuff in your spare time can help keep you creative and interested in technology.

    Your experience working for a (faceless?) corporation may be valuable, though, so don't discount the things you learn by just being exposed to the business world. It may not be 100% tech, but it's still problem solving. Psychology, time management, peer relations, how to let a manager think he's managing you, etc. All valuable skills to take with you when you land the dream job down the road.

    Lastly, you shouldn't code 100% of the time anyway. I code like mad when I get inspiration, but go to all the meetings I can when I don't feel inspired. I don't think the human brain was designed to be creative 100% of the time. It's designed for about 20 years of figuring out how to sharpen a spear and where to find food. You can brain drain yourself by trying to squeeze too much coding into every single day.

      I guess what I'm saying is that, if I'm not careful, I'll be management in 3 years. I'm essentially pseudo-project management already. I have a technical title but I don't get to do anything even remotely interesting in the technical side (and it's a Java/C++ shop and our code is in stone with little changes). I'm awesome at this 'non-technical' stuff -- good leadership skills, great communication/planning skills, plenty of experience dealing with major OEM players, although siting on telecoms is leaving the analytical side of my brain turning to mush. You don't get to become a Damian or a Larry like this -- you get to become a drone. It seems "spare time" is the only way to keep the wheels turning -- it's going to be hard to find that anywhere. I don't care about salary -- I want to use my brain cells. That's why I went into what I did. Business-programming is not what is exciting about the field. That's usually just grunt-work which anyone can do. Innovation...where is that at? It's not nearly as common as it should be.

      Some time I want to give a talk to my old ACM chapter about what the real world is really like. To break up everyone's illusions :) Ok, not really, that would be cruel... but all the theory and fun and games isn't what you get to do "out there", regardless of whether you work for IBM (I have) or smaller shops (which I also have).

Re: Avoiding "brain drain" in the corporate realm
by Grygonos (Chaplain) on Feb 24, 2004 at 18:03 UTC

    I am one year out of school (12/2002) and I already am experiencing some of the problems you are mentioning. I couldn't get a "coding" job because of my location (Louisville, Kentucky) and its somewhat narrow-minded view of what skills are important (win2k admin, asp.net, vb.net, MCSE) I started applying for jobs that had any kind of technical pre-reqs.

    Long story short, I end up at an insurance coordination firm(where if someone is covered by more than one policy, we make sure the primary policy was the primary payer) in R&D. This is a privately owned company and their business is still evolving so I can kinda push some things through. I started coding perl as I saw the need. I didn't neccessarily say... let me find something to do w/ perl.

    I end up working around the IT department(VB.NET, ASP.NET MSCE Win2k) and writing something that saves our department a great deal of time in daily operations. They were apalled because it wasn't "theirs" and they accused me of not testing my code at all. So to me it's a constant battle of avoiding the "evil grip" of the MCSE's and VB programmers, and getting my work done in the most efficient manner ( which happens to be in perl most of the time).

    Another subject that I haven't seen anyone touch on... what if you can't afford (time-wise) to make serious contributions to CPAN and/or code some serious projects of your own?. This may sound odd.. but my wife doesn't understand how I can code/work all day and come home to sit in front of the computer rather than spend time w/ her. She has a valid point.. it's not healthy to spend all your life in front of your PC chasing the dream of that one big dev job. For me as a married,disgruntled coder it's hard to find a balance between furthering my chances at getting out of said "current shithole" and maintaining a healthy relationship w/ my wife.

    Forgive any verbal diarrhea present in the above <p>'s

    Grygonos
      I end up working around the IT department

      Funny, thats our business model too. We get called in as sub-contractors all the time when the in-house teams are too busy/slow/stubborn/stupid. And sure enough sometimes they try real hard to discredit us and our work too. Professional jealously is (unfortunatly) sometimes a big problem in the computer industry, I wouldn't sweat it to much.

      Another subject that I haven't seen anyone touch on... what if you can't afford (time-wise) to make serious contributions to CPAN and/or code some serious projects of your own?. This may sound odd.. but my wife doesn't understand how I can code/work all day and come home to sit in front of the computer rather than spend time w/ her. She has a valid point.. it's not healthy to spend all your life in front of your PC chasing the dream of that one big dev job. For me as a married,disgruntled coder it's hard to find a balance between furthering my chances at getting out of said "current shithole" and maintaining a healthy relationship w/ my wife.

      Okay as a married man, with a 7 year old daughter and 2 year old twins, I feel I am qualified to answer this (and then I really gotta do some work today).

      Insomnia. Its the only way really. I go to work, then come home, spend time with the wife and kids, put the kids to bed, spend time with the wife, put the wife to bed, spend time with my computer. When I feel my eyes start to sting or my code start slip, I go to bed. Rinse and repeat.

      -stvn
      "...but my wife doesn't understand how I can code/work all day and come home to sit in front of the computer rather than spend time w/ her. She has a valid point...

      Quite so. You wife/husband/partner/... is a lot more important than chasing that dream IMHO.

      Cheers,
      MichaelD

Re: Avoiding "brain drain" in the corporate realm
by jackdied (Monk) on Feb 25, 2004 at 19:57 UTC
    I'd like to say something that will make me zero friends.

    Being a good programmer is being able to do the boring work. Every time. I have my own company (two man outfit) and I partly agree with the above posters that you will do more interesting stuff at smaller companies, but it doesn't change the math. 90% of everything is boring crap. But it needs to be done.

    A good company will spread the interesting work around, a place I worked recently had a rule that the same person couldn't do new dev (whole cloth projects) twice in a row. And they made sure there were enough new dev projects in the pipeline everyone got one occasionally (that was a larger shop, about 50 employees w/ 10 engineers).

    Great programmers have done something before, so they can do it well when asked to at this job and for this particular problem space. It isn't exciting, but they will also do it just because it is their job. period.

    I get to do stuff I find interesting frequently but I'm OK with the fact it won't be most or even much of what I do. If you can find a job that involves more interesting things than what you are doing currently, go for it. But there will always be the boring stuff. Starting open source projects or doing other personal stuff is a good way to have fun, but it is called a hobby because no one is willing to pay you for it (conversely, this is why they call a job "work").

    -jackdied

Re: Avoiding "brain drain" in the corporate realm
by johndageek (Hermit) on Feb 26, 2004 at 01:22 UTC
    sigh. The joys of corporate America. The opinion of those who have no creative juices, is that if we standardize, documentize, bounderitize and quantitize all aspects of creativity, anyone can be creative. While in reality all that has been done is that the creative person is unable to create because all of the above itizing has made change very difficult, so the creative person spends more time fighting for the right to do something new, then spends more time proving that the newness will provide a measurable benefit (as well as all tools necessery to metricize the project). . . 'Nuff said.

    Now, how can one be creative and avoid all the itizing above? Play by the rules for the corporate sponsored stuff, but do a little renegade stuf that adds value to someone's (or a bunch of someone'ss') life. That is how I started out many years ago. My ability to provide solutions outside the box got me a reputation of being a problem solver, so I became a "goto" guy. In my last position I got all the hard problems (read that as fun), when management was told by the experts that something could not be done, or would be wildly expensive, their answer became "let's ask John". Very cool position, I enjoyed it a lot. My current position is for a much larger Corporation (13000 employees). I started in an IT, DBA position, then began finding and solving problems (generally with technology) as a an aside to my main job. Over the years (note some patience is required) my position has changed several times, all technically involved, turning down promotions, because management is too political for me, and I would rather solve problems. In a meeting with upper management, my boss explained to them that we have a couple of project numbers to give John cover so he can go out, find problems and solve them. What is even better is that they aggreed!

    Do I spend some time doing boring, paperwork? You bet! But while the paper is being shuffled, I am looking for the next cool thing to do.

    My philosophy is that if I can save 50 Professionals 10 minutes a day with a tool set, I have paid my salary for as long as that tool is in place. Overlap that a few times and management smiles and gives more freedom.

    Sound good? If this is what you want to do, all you have to do is work harder than expected doing what others think can not be done and making mundane tasks easier for others to do.

    little hint - If you think of your job as boring and repressive, it will be, if you look at your job as a chance to do somethng fun to make others lives easier (and make the company more money), it will be. If not, there are other jobs.

    On and on he rambles, but hopefully you enjoy the story!

    Enjoy!
    Dageek
Re: Avoiding "brain drain" in the corporate realm
by jdvernon1976 (Novice) on Feb 24, 2004 at 19:09 UTC
    I'm an Oracle DBA at a relatively small company (healthcare ASP - give or take 50 employees)

    One of the things that I've found is that as long as I can justify doing what I want to do, they let me do whatever.

    For example, I'm in the process of teaching myself Perl. I originally picked it up to re-write a login process for our customers - original screen was crashing under load.

    I've also expanded my (very!) limited Perl boundaries by creating database reporting scripts, maintenance tools, and I'm currently working on a report gatekeeper to help increase security for our reports (got a question out there if anyone minds taking a look...)

    So - long story short - if I can justify my intended/expected end-result, and it's not something with a nasty deadline, I've got a significant amount of latitude regarding how I do it...and there's no reason NOT to learn a new language or OS along the way....
Re: Avoiding "brain drain" in the corporate realm
by zakzebrowski (Curate) on Feb 24, 2004 at 20:22 UTC
    Coding is only about 50% of the problem. The rest is getting people to understand and solve the problem as a group. I recall when I was in college I used to detest group projects, because the quality of the group you got to work in varried greatly. At work, likewise, espeically as the project gets larger and more complex, the more time you will have to spend communicating your ideas, and learn how to effectively navigate human interaction problems. If you can't explain to other people the scope of the project you're working on and why it's important, don't expect project managers to gleefully say 'go forth and conquer', until you have the paper trail to back your idea up...


    ----
    Zak - the office
      Ah, I was just the opposite. I ended up leading our Software Engineering team of 12 people quite by accident. I'm drawn to this. Yes, we had some bad apples, but we dealt with it. Senior Design was more collaborative, as was another Design Project...pretty much leaderless infrastructure, but it still worked. In industry, I've found working as a group is actually harder than in college. People have more to gain/lose, and it gets personal -- it shouldn't.
Re: Avoiding "brain drain" in the corporate realm
by toma (Vicar) on Feb 25, 2004 at 09:09 UTC
    To get interesting work, it helps to work for a company that has interesting products. Or at least work in an interesting department.

    To get the really fun work, it helps to be technically ahead of the pack. This is where the hobbies come in. I try to make my hobby as different from my work as possible, and yet it seems like almost everything I learn as a hobby eventually gets used on the job.

    When I spend more than 50% of my time doing 'real work', I fell that I am doing very well. I have a really cool job now which involves writing perl, often more than a few hours a day. I sharpened my perl skills here, strictly as a hobby.

    Make your career wishes known. This needs to be done in a way that emphasizes the long term and fits into the overall business plan of your company. Be realistic and figure out a role that almost everyone agrees is valuable and is a good match for your skills.

    If you propose a new project, propose something that you really think you want to do! Some people are disappointed when they finally get their way and find out that fulfilling their vision is less fun than they thought it would be.

    Going into management too early in your career can be a big mistake. It can harm your technical development. You should feel your mind getting much stronger as you do the heavy-lifting of intense intellectual work. This can be done as a hobby, but it is time-consuming. Management roles are also time-consuming and interfere with hobbies.

    It helps to work in a department that is relatively well-managed, so you don't end up taking over the defacto management responsibility just to prevent a disaster.

    It should work perfectly the first time! - toma
Re: Avoiding "brain drain" in the corporate realm
by CloneArmyCommander (Friar) on Feb 26, 2004 at 18:51 UTC
    I'm only a college student, but either way I've had close to the same problem, not quite the amount of codingtime as I would like :). What I do is I join organizations at the college, I'm in the student government at this point in time, and I make friends withing that organization and slowly persuade them that they need something that requires my skills, and they turn around and tell the higher authorities of the organization "their" good idea and let them appoint me the head of the project :). That way it looks like I am doing them a favor, when in reality they are doing me a favor. It's a win win situation, they get things websites, scripts, all that good stuff that they never had before and allow them to run more efficiently, and I get to do all of the nead coding stuff :). But, of coarse, I take things one step at a time and make sure that my project is something that will benefit the organization and not be a fun waste of time.
Re: Avoiding "brain drain" in the corporate realm
by mattr (Curate) on Feb 26, 2004 at 07:53 UTC
    Split long jobs into many small functional goals so that once each tests correctly you can leap off the chair, punch the sky, and yell "Whoo!". This will let your bosses know that you have just successfully diced some pretty sweet code and you LIKE the stuff! They don't know any better, they think they are being nice by giving you more responsibilities.

    Okay, you want to keep your job? Right, only punch the sky a few times a day during heavy deadlines, and consider some of the following ideas..

    Keep a personal devnotes notebook in a file or ten, if you are like me you will want to upload or search them periodically so you always know where they are. Unlike rabbit spawn pellets, these gems are more valuable when gathered and smelled from time to time.

    Think about a problem before sleeping, and then when you wake up if you had a good dream enter it in the notebook you keep by your bedside. You have to go to sleep before 12 to get lucid dreams I think, that part is hard.

    Use the notebook (maybe several thin notebooks and text files/folders like me) to keep all your project outlines, code snippets, interface ideas, study urls, etc. You can then go back over it another time. Some can be your own, some things you want to propose in-house later.

    Also think of how to make the facetime as streamlined as possible and how to get the grunt work done quickly. I usually figure out what time of day I am most creative coding (late afternoon-evening) and do the business stuff earlier. Maybe you can do triage on it so you can be sure to have a big block of coding time every day?

    When all else fails, decorate your cubicle. I recommend escher, star fields, code snippets, and pictures of monks (explain what is a perl monk to all who ask). Especially Paul Haeberli's Graphica Obscura site, maybe some definitions from cyc.org. It may speak eloquently to your interests even when you are chilling out on the veranda.

Re: Avoiding "brain drain" in the corporate realm
by bluto (Curate) on Feb 27, 2004 at 19:52 UTC
    In the long run you'll want to make sure your job remains enjoyable. One problem with getting older is that you tend to have less time/endurance to pursue spare time programming.

    I found that I had to plan very well, about 3 years, to get where I wanted to be. After being stuck in a small business for about 6 years, I found, not surprisingly, no place would hire me for technical, non-business programming anymore. I went back to school for an MSCS, learning newer concepts (e.g. threads, concurrent programming, etc). I now work at a large science lab (1000s of people), so there is plenty of room to move around. I have had to avoid business programming, management positions, and dead-end technologies, but that's not unexpected. It has worked pretty well for the last 10 years.

    bluto