Fog Creek Software
Discussion Board




are other areas of programming as lame as this one

Hi,
Random biz programming seems prettly lame and I don't see it getting better in my lifetime. Please no pep talks about how "I" can make it better because I just don't give enough of a shit to worry about how XML/SOAP/.NET will increase some megacorp's ROI BLA BLA BLA.

Anyway, rather than the standard long boring rant about how life sucks, I'll admit I'm still attracted to techy style work, and I'm wondering if other forms of programming are as harrowing and ultimately boring as building "CRM" systems for random companies.

Does anyone have experience working in the following fields, and if so, what is it like? Fun, boring, lucrative, etc?

GIS/GPS - uh...like working on arcview...i guess? I suppose there are a bunch of "telemetry" style startups now that might be in vogue...or did that pass already?

Games - i've heard various reports...the most common one is that it is really hard with serious death march style schedules, and only 1 guy in the company is really making more than $50,000 a year.

Graphics -  vizualisation jobs... do those exist? when I was at uni those programs were all the vogue...but...it is unclear as to who employs those people

Embedded Systems - palm programming, digital camera OS hacking, etc. I know next to nothing about this field.

tired
Saturday, April 27, 2002

is it just me or are all of those things also for corporations that are, at the end of the day, looking to turn a profit? my theory is that as long as you're working for someone else, there's on a certain level of personal gratification you can expect from your work. something like 3 to 7 on a scale of 1 to 10 with 1 being slavery and 10 being an artist who's lucky enough to shit gold every time he does something and is praised in his lifetime for his work.

There's this story of an art dealer who bought a Picasso. He brought it to Pablo Picasso to see if it was authentic. Picasso took one look at it and said "It's a fake." A few months later the art dealer bought another Picasso, and again brought it to Picasso. "It's a fake" he said again. The art dealer said "But I saw you painting this not more than a year ago." Picaso replied, "Yes, I often paint fakes."

I'm not sure what you're expecting to get from programming, sounds like you're looking for 'Do what you love, get paid.' That's a wide open topic open to much debate and interpretation.

MarkTAW
Sunday, April 28, 2002

true. I am looking to do what I love, and get paid. My mom tells me that too. However I don't have the heart to tell her that what I truly love is eating ice cream and having sex, and it is hard to get paid doing those things.

Like (I think) many people in this field, I just sort of fell into it. I had a math degree from a relatively lousy university, and needed to pay back my student loan. Programming looked a lot better than being a high school math teacher. And for the most part, I think it is...but that's a digression.

What I didn't really think about at the time, was that a doctor can order some Java books from amazon, and become a computer programmer. However, a computer programmer can't order some books from amazon, and become a doctor. Or a nurse. Or a paramedic. Or...much of anything.

So, before I give up and apply to starbucks, I'd like to investigate other programming realms. It isn't even very easy to move from "oracle application architect" to "embedded systems design" but it seems more probable than moving from "oracle application architect" to "millionaire NBA superstar". Thus, I thought I'd see if programmers in other problem domains liked their jobs, or if everyone is just lookign to get out...

tired
Sunday, April 28, 2002

> I'm wondering if other forms of programming are as harrowing and ultimately boring as building "CRM" systems for random companies.

I do telecommunications systems and protocols. There must be "a million" programmers doing stuff like this (telco is huge, though in recession at the moment) but I enjoy it. It's broadly called "systems programming" which means approximately anything that doesn't have much GUI, for example OS, compiler, protocol, database, device driver, tools and utilities...

> What I didn't really think about at the time, was that a doctor can order some Java books from amazon, and become a computer programmer.

One of the programmers I worked with used to be a pediatrician/microbiologist... he gave that up to become a programmer. Programming can be hard enough and deep enough (requiring deep as well as wide knowledge: problem domain (vast), languages (many), machines and OSes (diverse), design (huge), maintenance (staggering), development process, self and people issues) that though a person can begin to do it part-time, I wouldn't feel threatened that a person can adequately displace me if they're not doing it full-time.

> because I just don't give enough of a shit to worry

Maybe it would help to find something that you do give a big shit about, and turn your attention to some programming in that domain.

> the most common one is that it is really hard with serious death march style schedules

That may be a *potential* problem anywhere (in any s/w development industry)... it is (again, IMO) a big difference between an experienced and a non-experienced developer (or preferably company), that they have some experience with dealing with that.

Christopher Wells
Sunday, April 28, 2002

"before I give up and apply to starbucks"

Ahhh sbux baristas, so full of love!

There's only so many ways to skin a cat.  Eventually you
will master your domain whether we're talking bizapps
or graphics programming or whatever.  You can either
succumb to the humdrum or join the debate on MBA versus
MSCS. ;)

Actually, I'm sure doctors get tired of hearing "it only hurts
when I go like this" and accountants get tired of filling out
1040s.  You sure you wouldn't rather be a teacher? At
least its socially redeemable. :)

somebody loves me
Sunday, April 28, 2002

> Like (I think) many people in this field, I just sort of fell into it. I had a math degree

Me too. When I was young, I liked the deterministic nature of programming, that it was unequivocably 'right' or 'wrong' (unlike, say, English Literature). Also it (programming) was my first experience of a 'professional' work-place, and of contributing something instead of being spoon-fed as a student. So, I kind of like programming itself.

> [...] but I enjoy it.

Beware, that could be "just me"; for example, among the things I've enjoyed about programming are: its being tolerable when the rest of my life was hell; its being tolerable while the rest of my life was great; being the only person working on something; working with and respecting the other people who are working on something with me; meeting a deadline; being justified in not meeting a deadline; not having a deadline; ...

Christopher Wells
Sunday, April 28, 2002

I've had some employment with that you mentioned was Graphics/Viz, there are plenty of those jobs available, especially right now -- government subcontracting. 

But, the industry I have far more experience in is games.  I've worked for three game companies, from tiny to megacorporate (EA) and most people's stereotypes of the game industry are pretty far off.

Yes, crunch time exists.  Yes, death projects exist.  However, I think you're fooling yourself if you think that's a game industry issue... it happens everywhere.  You're still making software, and you're still subject to poor planning, featuritis, and bad marketing decisions.  Your crunch time will largely be determined by how well your project is planned.  There is *nothing* special about the game industry in that respect.  I have seen several games shipped with little to no crunch time, and I have heard tales of games that went for 1.5 years on crunch time.  However, a stroll through "Rapid Development" makes the game industry sound pretty normal. 

Salary?  It depends.  You can get paid as much as you do in other industries, but some game companies do pay less.  Honestly, I think you'll find just as much variance as the rest of the industry.  Right now the game industry is really understaffed... they have a ton of applicants, but they can't find *good* solid people.  Salaries adjust according to demand, just like everywhere else.  Some companies try to take advantage of the fact that people love their jobs making games, and try to underpay accordingly, but those companies won't keep people for long. 

But really, the reason I'm doing it and the reason almost everyone else in the game industry is there is because we *do* love what we do.  At the end of the day, I might write nearly the same code as someone in another industry (compression, UI), but I loved every second of it because I was making something fun, something that my friends would want to play.  As a bonus, when you work at a company where fun is a priority, you get friendly, interesting coworkers, relaxed environments. 

From a programming standpoint it's a great job, there are opportunities to delve into any number of topics - networking, sound, architecture, graphics, processor optimization, i/o, artificial intelligence.  There is also a huge creativity aspect.  You get to meld your programming talents with incredibly talented and creative artists, and at the end of the day you're judged on whether or not you made something fun.  Sure, there's money issues and marketing and all those other fun evils of software, but it's just fun. 

I don't want to paint too rosy of a picture of the game industry, but it is fun.  You have to deal with just as much crap as elsewhere in the software world. 

Dan Dunham
Sunday, April 28, 2002

One solution to your probem is to get married and have kids.  That way, you'll have no choice but to go to work, whether it fulfills you or not. 

Bella
Sunday, April 28, 2002

thanks for the replies. In response to Christopher Wells, when I made the comments about the physician picking up a book and becoming a programmer, I wasn't worried about health care professionals coming in and taking jobs.

I was trying (poorly) to illustrate that it is far easier to move from some other occupation to computer programming than it is to move from computer programming to some non-computer related occupation. For a doctor to make $50K as a .NET programmer he needs about 6 months of serious .NET training. For me to make $50K as a nurse requires about 6 years (master's) of nursing school and 3 years of experience.

However, thanks for the insight on other techie occupations. Games do seem like they would be a lot of fun to make. However, I've never really been into _playing_ computer games , so I'm not sure the field is for me. 

I guess practically, what I am really interested in learning, are there programming fields where the norm is to work really hard on a project, then when the project "ships," that's it...project is done.  I think the main problem I have with "bizapps" is that I don't mind building out the initial project, but when i get to the end of the first rev, I'm not so interested in adding new features, maintenance programming, etc. I want to find another, more challenging project to move on to. It seems like for instance, console games...like for the PS2...when you are "Done" with the project, it ships out the door, and I'm "done". Are there other programming areas where the work schedule is similar to that?

tired
Sunday, April 28, 2002

Device drivers require the least maintenance of any project in my experience.

Christopher Wells
Sunday, April 28, 2002

Tired said: "Anyway, rather than the standard long boring rant about how life sucks, I'll admit I'm still attracted to techy style work, and I'm wondering if other forms of programming are as harrowing and ultimately boring as building "CRM" systems for random companies.

Does anyone have experience working in the following fields, and if so, what is it like? Fun, boring, lucrative, etc?"

Sorry to say this, but I'd say you're likely have the same problem no matter what you do:  whatever you do will end up "as harrowing and ultimately boring".   

All work, no matter how glamorous and exciting initially, is going to become drudgery unless you've got the right attitude towards it.  And I'm afraid you don't. 

But it sounds like you're young, you may be able to get it.    You're not going to magically get the right attitude just from reading and agreeing with my advice (which is unlikely to happen anyway; when I was in your same position years ago it would just have pissed me off a bit).  But you may get it by having the same experience time after time and starting to wonder what it is that's causing the problem.  The answer won't come from changing your work.  It will only come from changing yourself.

Herbert Sitz
Sunday, April 28, 2002

You're not supposed to like these business companies.  They exist only to make money, and that's how you must approach them.

I worked in the games industry during the boom.  The main thing to learn is that like creating a genius you need two things:  a smart kid and reasonable parenting.  If you want to be creative and have a lot of latitude to do what you want, you should be smart and find a good company.  One sign of a good company is if it has a good "about us" page on the website.  (Of course, you get the best view when you interview with them.)  With a good company, you're only doing death-march style things because you personally totally blundered somewhere.  Otherwise, people only work long hours because they're inspired to.

red
Sunday, April 28, 2002

Hi,
In response to Herbert Sitz,

When I washed dishes one summer in high school, my friends and I actually had a great time doing totally crappy work. We goofed off, told jokes, maintained a positive attitude, etc. However, as soon as the opportunity for something even remotely better came about, each dishwasher and my self jumped ship.

I suppose I could whistle while I work, dope myself with prozac, read oprah self help books and whatnot, and eventually learn to love enterprise programming again. However, I'm not stuck in my current position due to debt, family, or other obligations, so I'm putting out feelers to see if it is worth looking into changing my programming focus, or give up entirely and work at starbucks. I never hear anyone with a resounding "yes, I love writing NT device drivers" or similar sentiment, so I'm beginning to think maybe starbucks might be the way to go... 

I'm not really expecting any ridiculously positive responses, but overall the best I've heard from anyone (not just on this bboard thread) is that their work is "tolerable."

tired
Sunday, April 28, 2002

> When I washed dishes one summer in high school, my friends and I actually had a great time doing totally crappy work.

The jobs I've enjoyed best were being a hopital porter, and a courier (freedom to move). The job I've enjoyed least was sorting tax forms (sitting, and unable to think).

> "yes, I love writing NT device drivers"

I found it challenging; frustrating when it didn't work or I couldn't understand the documents, and a relief to finish it. <g>

Christopher Wells
Sunday, April 28, 2002

I think MarkTAW may be on to something.  Is there
redemption in programming for a non-profit?

somebody loves me
Sunday, April 28, 2002

Well, looks like I wasted my time posting here.  What do _you_ think would be fun in programming?  If you want to goof off with friends, Starbucks is a better choice for you.  Or start your own company with some friends.  Because in programming you spend a lot of time on the machine alone.  Them's the breaks.

red
Sunday, April 28, 2002

The trouble with biz-aps (and probably most apps) is that the job is never done: new products, new pricing, new services, accounting rule changes, governement regulations, mergers and acquisition -- it never ends and your boring cost accounting application must go on and on.

If you like payroll, for example, and if you are good, you'll quickly learn more about doing payroll than anyone in the company.  You can camp out there for a long time and raise your family.

tk
Sunday, April 28, 2002

The grass is always greener, however, if you are developing internal ulcers or something due to negative feelings about work I advise at the very least a long break. Then think about it. Its not easy to get into the perfect career, and its Ok to question every now and again your current predicament.

Tony
Sunday, April 28, 2002

Yes, I suggest you quit and take a break.  You never know what you have till its gone.  This can help in adjusting your attitude

Bella
Sunday, April 28, 2002

Thanks for the advice. I think TK hit the nail on the head with my main problem with "the industry."  -- it never ends.

In response to red - *I* think stuff like GIS/GPS, building palm apps, scientific vizualization apps, games, the stuff mentioned in my original post...sound fun. Or at least more fun than what I'm doing now. I just really don't know anyone involved in those industries, so was wondering if other people here might be, and if they have a good time with work.

Ultimately I am planning on taking some time off, as some suggested, but in order to do so, I need to save up a bit of money. Thus I'm looking around to see if there is any type of programming that is a bit more fun which I could start doing for a year or two whilst saving up for a backpacking trip, or something like that.

tired
Sunday, April 28, 2002

Take time off! That's why I work!  I write shitty little applications which I'm never happy with and then get loaded with stupid Excel spreadsheets because I'm the one who's good with them... (being the only dev here)

I hate Excel... no, really, hate it, bugs me senseless, but I love to code. When coding I can blow away days staring at the screen, unable to put together the simplest of sentences to interact with those around me. Infact, they tend to make comments that I have "gone away" when ever I'm in the zone, and generally don't bug me while I'm there :P

Now, I love my job (when I'm coding) but having said that, if I had _nothing_ to do and no one to do it with I'd rather be doing that than working.

There are two reasons why being in IT is your best choice: 1. Even schmucks get paid well (well being relative).
2. They hire schmucks all over the world.

I've worked in NZ, Australia, Malaysia and the UK. I love seeing different places. I work in a place for a year or two, then move on.  Same old job, different view.  Try it, you might like it.

Jack of all(?), master of none
Monday, April 29, 2002

"For a doctor to make $50K as a .NET programmer he needs about 6 months of serious .NET training. For me to make $50K as a nurse requires about 6 years (master's) of nursing school and 3 years of experience. "

This is "merely" because software engineering is one of the most disrespected professions on the planet. As a software engineer, my considered professional judgement is worth less than that of someone who just walked in the door and can operate Microsoft Project.

The basic result of this sort of thing is that developers aren't considered as professionals by other people. When things go wrong in the medical world the GMC turn up and ask awkward questions. They ask things like "Did your manager overrule you on medical matters" and things like that. In the software world, we get asked our opinion, it's routinely ignored as inconvenient, and then management make a decision they don't understand based on no information at all. And when things go wrong managers point at committees and at each other and nothing is ever learned.

For some reason we keep tolerating this behaviour, and yes, as a result, six months worth of playing with computers puts you in a position where you too can have your opinions overruled. My other half phrased this as having "no accountability and no authority".  By contrast, Doctors are handed immense authority and are expected to have accountability for that.

That's part of why it takes a long time to become a doctor and a book to become a "software engineer"...

It's one of the few professions where havnig studied it, having degrees in it and having experience in it is considered COMPLETELY IRRELEVANT by it's management.

No-one would hire an accountant, a barrister, an engineer or an architect who didn't have any qualifications in the subject but had read a couple of books in his spare time and hold them in equal esteem with everyone else in their profession.

Katie Lucas
Monday, April 29, 2002

> This is "merely" because software engineering is one of the most disrespected professions on the planet.


I TOTALLY disagree.  First, money talks, and we get paid damn well compared to MOST other professions.  Name another field where someone with a couple of years experience can earn in the 6 figures? 

IT has been the  media darling for years now, and has HANDS DOWN been the hottest, sexiest profession out there.    Until recently, youd be hard pressed to find a "top 5 careers" list that didnt include technology. 

Bella
Monday, April 29, 2002

Disrespect?  Wow, I must go on....

Name another field that (had) such a shortage, that people:
* were allowed to bring pets to work,
* had 10 standing job offers at any given time,
* had their answering machines CLOGGED with recruiter calls,
* got BMW leases and other gimmicky perks to hire them
* got signing bonuses.
* are given generous flextime and telecommute options


If that's what you call disrespect,  please,  walk all over me !!

Bella
Monday, April 29, 2002

actually Jack of all trades,
I have been able to move around. I've worked in all the good cities in the USA as well as south africa and japan.
I've seen the open-plan cubicle farms of the world! woo!

just kidding...sort of.
It was fun visiting these other places, but certainly the work wasn't much fun. Especially in Japan...ouch. On the other hand, moving around is a real burden on one's personal relationships. Significant others tend to not want to date someone who is going to disappear in 6 months.

in response to bella, I think that experience is atypical of most software engineers. even during "the boom".  most programmers were making about $80K with 1-hour commute each way and a crappy $1850/m apartment.  The whole BMW/Signing Bonus/Dog in the office phenomena lasted about 18 months and was constrained to a select bunch of ridiculous dot coms.

i think katie is right, software engineers are not well respected. however, i'm not sure we should be, either. most software engineers do a bad job and require far too much "special needs child" style pampering.  thus, management tends to view us as labor, and tries to minimize costs accordingly.

tired
Monday, April 29, 2002

"* were allowed to bring pets to work,
* had 10 standing job offers at any given time,
* had their answering machines CLOGGED with recruiter calls,
* got BMW leases and other gimmicky perks to hire them
* got signing bonuses.
* are given generous flextime and telecommute options"

1. I've never been anywhere that allowed me to bring pets to work. I wouldn't be able to work anywhere that did because I'm allergic to cats&dogs. I'm not entirely sure how taking your cat with you counts as being professional. Doctors don't take their cats to work with them.

2. I have an answerphone full of "job offers". Which aren't. What they are are demands for Linus Torvalds, as long as he's willing to work for a fiver an hour in central London.

3. I've joined a half-dozen companies. None of them gave me a BMW, or a signing bonus. I have no idea if doctors get BMWs or not. They don't seem to need to be given them.

4. Telecommute?!?!? Hahahahahahahahahahahahaha. Maybe in the US it's different, but here in twee old England, if your bum isn't on the seat at 8:30, eyes down for a 12-hourer, you "aren't a team player". Doctors don't get to telecommute either.

How exactly do pets & bribes constitute professional respect?

Katie Lucas
Monday, April 29, 2002

tired, i think one of the reasons s/ware people have "special needs" (that's an excellent one, thanks, i will save it up for future use) is that we do need a certain type of working environment to be productive. if mgmt doesn't want to provide it then fine, either we go elsewhere or we become a liability. as regards most eng's doing a bad job, you could well be right. i'm going to go back to trying to work out exactly how the fsck i am supposed to use this 2000 line class i have been provided with. comments? what fucking comments?

nope
Monday, April 29, 2002

in response to katie, I think maybe you have had a string of bad luck. I know a lot (well, maybe 5) people in the UK who telecommute and don't seem to have had as bad an experience as the tone of your posts have suggested.

Also, in terms of "respect" , I could give a shit about respect, I just want to work on interesting stuff and make a decent amount of money.

to bring this thread back to the original topic, ME, ;-)
I don't really care about the work environment issues, this has been discussed 100s of times before... I was more interested in if different forms of programming (embedded, graphics, etc) are actually more fun, and worth pursuing. A leased BMW and free caviar isn't going to make building an inventory management system much more exciting...

tired
Monday, April 29, 2002

OK, embedded is worth it if you like a challenge - I used to write video card drivers for embedded systems at one point and I have to say, for pure out and out "battering something into life", that's pretty good going. On the other hand, my other half is in a world of hurt trying to reverse engineer the spec for phone-routing software at the moment. The designs for the hardware and software for which seem not to have been done before shipping to kit to the customer for installation all over the country... embedded systems aren't the pleasantest things in the world: the tools are often a bit primitive for example.

The games industry is fun, except it's run by children: working code seems to be regarded as an occaisional accidental outcome. There are more prima-donnas per square foot in the games industry than anywhere else. It would really benefit from reading some software engineering textbooks, but unfortunately all the companies seem to be owned by people who made their money by writing 48k of self-modifying assembler on the Spectrum and think modern software is just the same. 10,000 times larger doesn't mean 10,000 times better techniques, just more all-nighters. On the other hand; you do get this feeling of acheivement watching people having fun with something you made, and making someone elses life happier for a period of time is worth quite a lot.

Graphics. Graphics will make your head hurt. Friend of mine is doing cutting edge volume reconstruction stuff and it's distressingly mathematical. But the kick from getting it working is like doing drugs but legal.

Military stuff is, frankly, long periods of tedium, interspersed with panic. They spend ten years faffing about with the spelling of the section names in the spec and then it needs delivering tomorrow... oh, and governments are really hard to get money out of. Threatening them doesn't work because they have more tanks than you do.

Financial software...well.. has cool things. (Except talking to dealers. Dealers are the rudest people on the planet. They're like SlashDot kiddies but they actually have the Ferarris and hence even less reason to be pleasant to anyone.) But writing code that runs billions of pounds of trading platform is kind of cool. The problem I've found is that the management are always more interested in the money side of things than the development side of things. Look out for your manager to change every three weeks as a new organisational structure turns up. They do tend to be reasonable places to work for, because, when the sun sets on the day, the code does have to move those billions of pounds, and it really oughtent to lose many. There is a cool factor in looking at something and going - that's actually /MONEY/. Accounting systems just count it - these things actually DO the money. When you add to one store and subtract from another, for a brief instant there actually is more actual money in the world...

Research tools. I used to work for a company doing microscopy tools. The customers are doing insane stuff involving testing how drugs work on cells and things. Fulfilment factors: 1. The customers are BRIGHT PEOPLE and very interesting to talk to, 2. The software you write helps them find cures for things. That's kind of neat. They're also nice companies to work for - they're often run by fairly passionate people who care about the product.

I'd pick the last lot to work for if I had the choice.

Katie Lucas
Monday, April 29, 2002

I was in a similar situation as you are (tired).

The problem was that I had so much experience in a particular Telco application I couldn't be moved off of the project.  After 3 1/2 years, I became depressed as the new technologies that I wanted to work with were passing me by.

It wasn't until my employer found out that I was taking the maximum medically allowed quantity of Serzone (anti-depressant) that they clued in.  I was moved to a new project in a different field (e-commerce) and things soon turned around.

For my next project will be doing GIS work.  I have no experience in it, otehr than having taken a physical geography course in high school, but it is new and will be a learning experieince.

Basicaly you need to add some variety to your career before you burn out. 

Teach yourself a new language, or perhaps look into a different area of the IT world...what do you do for hobbies?  Could you write some sort of software on the side that would help with your hobby?

I've been developing software professionally for 14 years, and while I enjoy it most of the time, I can't see myself doing this much longer.  I'll probably end up becoming a system administrator.

Brad Clarke
Monday, April 29, 2002

> i'm going to go back to trying to work out exactly how the fsck i am supposed to use this 2000 line class i have been provided with.


Just curious, what are you doing poking your nose into the code?  You shouldn't care if its 10 lines long or 50000.  This is one of the tenets of OO.....encapsulation.  Unless you've been assigned to debug the class you're carping about, you should only be concerned with the *interface* and call the appropriate methods. 

Bella
Monday, April 29, 2002

I can't speak for any of the others, but I think embedded development is pretty nice. If you are actually interested in computers, it is the way to go.
My problem with business applications is you get to far from the hardware. You have the OS, and Java doing garbage collection, who cares about the hardware? I realize that is a good thing for business, but it is not interesting to me.
The first time you get the light to blink on a brand new piece of hardware is very cool. The tools can be primitive, which can be fun. You have to learn new things and improvise. I think many CS grads are interested in computers, and then wind up doing VB script for a web page. You never worry over the bits and bytes which was what you found interesting in the first place.
There is still bad management and stupid schedules; you will see that in everything.
If you are burned out, change. The grass is always greener, and a change just to change is worth it. You will get experience in something new, and it will take you a few years to learn enough to get bored. Even better, look for a small company or a startup. If it takes off, you can do very well. If not, you will have more understanding of business, entrepreneurship, and technical stuff than you will ever get in a big faceless corp.

Doug Withau
Monday, April 29, 2002

Thanks! Katies responses were very helpful.
Also, thanks Brad. I do think I have done the same thing for too long. I've basically been building the same type of app for about 5 years. I too have considered becoming a sysadmin. I mean, that is essentially what Steve Wozinak has been up to for the past 10 years, and he was one of the best software (and hardware) engineers around.

tired
Monday, April 29, 2002

Ah, I bet the interface is counterintuitive and not documented either. Hence, you have to look at the class internals. I know it sucks, but welcome to the real world...

Marat Zborovskiy
Monday, April 29, 2002

"The tools can be primitive, which can be fun. "

I think you've hit on something here.

Todays tools are designed for productivity, and "dumb down" the development process IMO.

Back in the DOS days (or even when coding on UNIX with VI), you had IDE's but you had to really know the language you were working with.

Today, you can get by without fully knowing the language inside out. 

Type a keyword followed by a period, and code-completion gives you a drop down list of all methods, etc associated to that class/object.

Brad Clarke
Monday, April 29, 2002

practically speaking,

What is the best way to learn how to do "embedded systems" stuff, if most of my background is in "enterprise applications."  I have a math undergrad degree and am reasonably proficient in C, however have mostly done databases + java/python/etc the last few years. I (embarrassingly) am an expert unix systems administrator also. :-)

Should I get a PIC hobbyists kit? try to write a device driver for my powerbook? all of the above? something else?

Thanks!

tired
Monday, April 29, 2002


In response to the original post... I find the automation/control thing very attractive. It's nice to create a program, then press a button and see how some 10 ton machine start to move.

Cool.

Leonardo Herrera
Monday, April 29, 2002

If the class is 2000 lines long, chances are it is also not very well designed.

Now If you have to figure out the interaction of 10 different classes, with a total line count of 2000, your chances are probably better of them being well desinged. 

Butno guarentees.

Adam
Monday, April 29, 2002

Learning embedded: you could...

Write some Linux device drivers (actually this is a field with a lot of employment attached. Lots of places have cheap hardware stuff, want to sell it without paying windows tax on every box - they want to port to linux, but they have to get the device drivers coded...)

You could play with mindstorms... it's accessible, has some fairly decent development languages these days AND it's an excuse to spend tons in ToysRUs. It would certainly give you a basis in control systems. Read the O'Reilly "clockwork rabbit" book about it - don't use the toy language they suplpy, you can get a proper C for it these days.

An easy thing to do would be to grab the hardware info for your video card and have a play at talking to the bios on it: the horrors that make up the interface on SVGA cards should provide some acclimatisation to the environment.

Once you've done that sort of thing and decided if you like it or not, it's a matter of talking yourself into a job doing it...

{This always used to be much easier - people learned assembler on 8bit micros - people seem to omit that stage these days.}

Katie Lucas
Tuesday, April 30, 2002

bella - what Marat Zborovskiy said. plus: a) it does not do exactly what i want and i cannot simply inherit from it to make it do exactly what i want, so ideally i want to use old school reuse and copy what relevant code there is; and b) there are no "instructions for use" printed on the packet (class interface).

regarding (b), i have now found them, in a text file tucked away on the intranet. the code is also there. but of course not the latest version. that would be way too easy. so the instructions may or may not relate to the changes that have been made between then and now. it is a great life if you don't weaken. apparently.

nope
Tuesday, April 30, 2002

""The tools can be primitive, which can be fun. "

I think you've hit on something here."

yes, but was he being serious about the "fun" bit or sarcastic? embedded development is often done on a pc, maybe in a simulation environment, and then you have to try and find out why what you coded does not behave exactly the way you expected on the target. fun? maybe, if you enjoy banging your head against whatever device it is you are programming for :-) (seriously, it can be fun and it can be hell. one upside is that i write better code now than before i did embedded stuff. oh, and you may well get to hand optmise code, which _is_ a lot of fun!)

(btw, the answer to why your code doesn't behave properly is because the simulation/emulation of the environment is not complete, and i guess that in almost all cases this will be so.)

nope
Tuesday, April 30, 2002

>>>"Disrespect? Wow, I must go on....

Name another field that (had) such a shortage, that people:
* were allowed to bring pets to work,
* had 10 standing job offers at any given time,
[...] <<<

I sometimes wonder if these stories are true somewhere out there, or if they are rumors that have grown with retelling.

There is some truth to them.  Before the bubble burst my previous employer was hiring at a furious rate.  There were bonuses to employees for each new employee they referred, and contests for the most.

But as the hiring frenzy grew, these valuable engineers were treated more and more like commodities.  The goal was just to have a lot of bodies on the payroll.  An environment that had been exceptionally good for software development got to the point where people were assigned to a project, but provided with neither desk nor computer (let alone an office) for doing their work.  They would come in and wander the halls until they found a desk and PC that wasn't in use.  After a while they could get assigned a desk in the hallway.

Being an expensive commodity is not evidence of being a respected professional.

mackinac
Tuesday, April 30, 2002

My current project is an embedded system.  That term can be applied to quite a range of systems.  From a programming point of view this one is barely distinguishable from a general purpose computer: a 32 bit processor and 32MB RAM with a multitasking OS (VxWorks).  But we do cross-system development, the target hardware is in racks in a lab area with oscilloscopes and logic analyzers attached.  And we're trying to do software development with a changing hardware platform.

Interesting technology to work with, but the project has some of the work environment problems that any other project could have.  Office space is overcrowded and noisy (but I have been in worse).  The project started out  with poorly written requirements.  The company doing the work doesn't do well at keeping people, but the complexity of the project requires people that are familiar with the system.  The project is currently entering the fourth year of its two year schedule.

I prefer this closer to the hardware type of development over business applications.  But what I'd really like is a good development environment no matter what the application.

mackinac
Tuesday, April 30, 2002

"Being an expensive commodity is not evidence of being a respected professional"

I totally agree.
I sit in a shoebox office with 5 other developers, the spot where my PC sits is formed by the intersection of a round table with a square one. The two tables differ in height by about 1 inch. There is a gap which my mobile phone and pens etc fall into occasionally. Outside of our office all other employees have boringly uniform, but tidy, functional office space.

I charge $95 per hour, some of the others out there would be on less than $20. In fact, our office costs the company almost $500 per hour and its a mess.

Are we being treated like professionals? No? Are we respected? No. Will anybody do anything if we complain? No. Its probably the money we get paid that stops us complaining because we dont want to rock the boat.

What does this mean? I wish I knew.

Tony
Tuesday, April 30, 2002

"But what I'd really like is a good development environment "

Amen to that.  I actually discovered a (semi) cmm level 2
shop.  Unfortunately, all the developers worked in an open
room.  A small one at that.  I have to believe there's
something out there.

somebody loves me
Tuesday, April 30, 2002

hey, mackinac. what sort of background do you have?
how did you get into that job? That sounds sort of like what I would want to get into.  I have a math degree, and have been doing typical e-commerce stuff (unix/oracle/web) for awhile. In a previous life I did 3-D graphics in grad school.

tired
Tuesday, April 30, 2002

>>> "hey, mackinac. what sort of background do you have? how did you get into that job? " <<<

Hmmmm, how did this happen?

Was a basic nerd back in high school, getting in to amateur radio and tinkering with radios.  Then got BS and MS in physics.  Why not EE?  I don't know, kind of thought about it.  Might have tried for math, liked that but wasn't quite good enough.

Did some science applications programming for NASA, then joined a contractor and eventually ended up with this project.  I have gotten all of my jobs through personal contacts, sometimes rather indirectly.  Don't know what I'd do if I had to start checking the newspapers every Sunday.

It seems like a math degree could get you in to science applications or graphics programming.  You might consider going for an MS in EE or CS.  Many universities have evening programs for working students.

mackinac
Wednesday, May 01, 2002

"But what I'd really like is a good development environment "

"Amen to that. I actually discovered a (semi) cmm level 2
shop. "

I work in an SEI/CMM Level 2 (soon to be 3) shop (also ISO9001 certified) and it's no bed of roses.

The processes get in the way of the progress as far as I'm concerned.

Brad Clarke
Wednesday, May 01, 2002

"The processes get in the way of the progress as far as I'm concerned"


It doesn't really matter what you or I think, the stats
say it all.  Code-and-fix shops suffer from abysmal success
rates while high level CMM shops enjoy phenomenal rates.

Maybe we should differentiate b/w software engineering
and product research.  Research doesn't need a process
per se.  Software engineering does.

somebody loves me
Wednesday, May 01, 2002

"It doesn't really matter what you or I think, the stats
say it all. Code-and-fix shops suffer from abysmal success
rates while high level CMM shops enjoy phenomenal rates."

Yes, that is definitley true.

Our unit was evaluated last year via the # of bugs per 1000 lines of code method.  According to the results, we produce some of the most bugfree code in North America.

Brad Clarke
Wednesday, May 01, 2002

tired, you need to move to another company and job ASAP.

Business development can be challenging and interesting. Go and find a company with a good environment. The Programmers Guild has an interesting spiel on the subject:

http://www.programmersguild.org/Guild/howto.htm

Apart from business development, the other areas you mention - graphics and embedded - are great.  You obviously have an interest in them. Research them and move into those areas. Embedded is a huge growth area, with robotics being one application.

Hugh Wells
Wednesday, May 01, 2002

tired, answers to your specific questions:

GIS/GPS - GIS can involve good mathematics. Users and application developers deal with the well known packages, but product developers work with 2D maths. Markets concentrate in government, defence and utilities.

Games / visualisation - games companies are tight with starting salaries, but become generous once you have a record. The development culture intimately depends on the founders. Find a good one; stay away from the: "I've got a brilliant idea; all I need is a 3D engine" types.

Embedded - look at the web sites in these areas. This field is really moving now. If you're a Windows person, look at Pocket PC. Otherwise Palm. There is a premium on good C/C++ skills.

Hugh Wells
Wednesday, May 01, 2002

thanks hugh your advice was very thoughtful.
i'm not so concerned about work environment, as what really eats at me is the work itself. i just can't seem to inspire myself to get really worked up about "corporate" style computing.

that said, your link about the list of traits that indicate a bad company is golden. I believe my first job during college...i could tick off about 20 of the numbers on that list!!!  And, just to let folks know, that company is consistently featured in "Top 10 US companies to work for" lists in Forbes, etc. (apparently the survey didn't extend to the software engineering department ;-))

in any case as soon as I can find something better I will probably switch career paths.

This is sort of what happened to me: i wanted to do things like medical imaging, then I did a graduate project, and it seemed like medical imaging was very hard and time consuming and my fate was to make about $12.50 an hour and perpetually be surrounded by graduate students. my friends doing consulting stuff were making 6 figures so I thought "hmm, I would probably rather have some money than hang out with these weird guys in the basement of the hospital" thus i got into the business world. it seems however that I really would rather hang out with the weird guys in the basement of the hospital! 

now i have realized that one can also make zero dollars an hour doing boring corporate work, and that if I position myself correctly i can make a lot of money doing science-y stuff. the money thing is more a factor of business savvy than it is technical skillset.

tired
Wednesday, May 01, 2002

tired, Go for it. There are good and bad companies in corporate development. Yours must be a very bad one for you to hate the work.

There's also an important principle called Standing in the Market, which means working out what you do and how much you want, then going out and offering those services at that price.

Obviously, the price can't be ridiculous, but the market range is about three times. Importantly, you need to reject work that doesn't meet your requirements, for otherwise it will stop you getting work that does.

If I was you, I would madly learn about embedded ( better than graphics for the next few years ) and meantime have fun with the jerks that stuff you around at work ( if that's correct.) If they bug you all the time, go bug them back. If they give you dumb deadlines, make dumb demands on them. Have fun.

Hugh Wells
Wednesday, May 01, 2002

Another suggestion. Read Steve McConnell's book: "Software Project Survival Guide," which recounts the wisdom of a former Microsoft staffer and first rate software engineer.

Then, go and see your manager/s at work and tell them things are not good; that they need better systems. Explain how their current systems don't work, with reference to McConnell's book. ( I assume with 100 percent confidence that they don't work.)

The worst they can do is sack you, but I don't know why. The best is they might let you improve things. The mid step is they might see you differently and let you work better.

Hugh Wells
Wednesday, May 01, 2002

And ... medical imaging is impressive, good fun and has great prospects. Plus it's socially useful. Even if you wanted a job at a games company, that would be valuable.

You should find all the research groups and startups doing medical imaging and go see them. Even overseas if you want to travel. This a great field, and your colleagues and managers will be intelligent.

There are plenty of good startups and funded research groups active in this area. You can get good work and good pay together.

Hugh Wells
Thursday, May 02, 2002

> the money thing is more a factor of business savvy than it is technical skillset.

Tired,  great point.

Bella
Thursday, May 02, 2002

*  Recent Topics

*  Fog Creek Home