|
Hmm. At the risk of being flamed, I'm going to comment here. I ran the traditional route. I majored in computer engineering at Wright State[^], graduating with a bachelor's degree in 1984. While I was a sophomore in early 1980, I started working as a part-time programmer. I also filled slots during that period as a system manager (VAXen) and as a technical writer.
In the ensuing 40 years I have worked with all kinds of folks with different backgrounds. One of the best programmers I ever worked for had a degree in physics. Another guy didn't have a degree but was a phenomenal embedded developer with a meticulous style that, ten years after he retired, makes his code still some of the easiest to maintain I've ever seen. I worked with a college-trained programmer who had enviable credentials, but wrote the sloppiest, most bug-ridden sh!t code I've ever seen. After he left, I spent over a year rewriting everything he wrote on my product, as I got tired and pissed off over the constant bug reports. Another college grad wrote decent code but was an elitist and couldn't be bothered to document it or make it easy to use.
Based on my experiences, I can make the following observations:
A college education does not guarantee that you'll be a great developer. What is does is give you a broader and deeper skill set than you're likely to have if you're self-trained. As an example, the fantastic embedded guy I mentioned? His only data structure was an array. He knew about linked lists, trees, and all sorts of other things, but they weren't tools he could use comfortably. College educated folks think that grants them a certain level of expertise, often over the self-trained developer, that may or may not be warranted.
Practical experience obtained through self-training is great, because you don't have preconceived notions about how something's going to go while you're learning it. Since you're self-motivated you tend to work harder when learning something new, and pay more attention to the nitty-gritty details. That said, it also means that there can be potholes in the road that you might know intuitively from the education that you'll miss entirely if your experience hasn't included it. Many self-trained folks also have a chip on their shoulder about it, and disparage the education as needless academic fluff.
My point is that both paths to expertise have value. Choosing one over the other is a mistake.
Software Zen: delete this;
|
|
|
|
|
What makes you think your post could get flamed? It was interesting to read about your experiences, and your observations make sense.
I would say that programming is always mostly self-taught. University can inform you of techniques (data structures, parsing, state machines...), but it's mostly a case of the more code you write, the better you get, so long as you strive to make your code easy to maintain and evolve instead of just dropping it once it works.
|
|
|
|
|
Greg Utas wrote: What makes you think your post could get flamed? My experience has been that some college-educated folks can be a little dismissive of the self-taught, and the self-taught are sometimes defensive as a result. Taking the middle ground means you disagree with most. Greg Utas wrote: the more code you write, the better you get Very true. You learn the "why" of writing code in a particular fashion, as expressed in the mental scar tissue from excruciating debug sessions.Greg Utas wrote: make your code easy to maintain and evolve instead of just dropping it once it works. That's been one of the great things about switching from defense contracting to commercial development. With defense contracting you wrote an application, delivered it, and you were done. I have commercial applications now that I've been developing, maintaining, and enhancing for 20 years. Going back to code you wrote 20 years ago can be a humbling experience .
Software Zen: delete this;
|
|
|
|
|
Gary R. Wheeler wrote: With defense contracting you wrote an application, delivered it, and you were done. I've never worked on defense contracts, but this still comes as a total shock. What customer who's happy with software never asks for another release with more features?! If these folks just issue an RFP to build the same thing again, with more features added, it would explain a lot about their budgets. Tell me I'm missing something here.
|
|
|
|
|
Greg Utas wrote: I've never worked on defense contracts, but this still comes as a total shock The last three years I worked as a contractor would appall you. One project, two years worth, developed a simulation that at completion was run for two weeks to accumulate some data and then shelved. A second project which took 18 months never ran at all, but delivery was accepted anyway. A third project I wrote a final report which was disseminated to interested parties and that ended it.
While commercial development has its downsides, at least my stuff now gets used.Greg Utas wrote: Tell me I'm missing something here. This was back in the 1980's so things may be different now. At the time though I read a report that claimed less than 2% of software created for the DoD (based on dollars spent for development) was still in active use 12 months later. Most of that was in deployed weapons systems and avionics. The rest of it was spent on hopeless MIS projects that tried to automate processes in a 'business' (e.g. defense) that deliberately let experienced employees leave, either at the 4 or 20 year mark.
My running joke at the time was "I may be a whore, but at least I ain't cheap."
Software Zen: delete this;
|
|
|
|
|
Nope, still the same. I worked in government contracting (DoD) on may projects. Most were to develop simulations and research software. Once the contract ended, the check cleared, the development was over and the software shelved. I got back into commercial, because I know that the software I write will evolve, or at least, dismantled and re-used in some other projects.
"When you are dead, you won't even know that you are dead. It's a pain only felt by others; same thing when you are stupid."
Ignorant - An individual without knowledge, but is willing to learn.
Stupid - An individual without knowledge and is incapable of learning.
Idiot - An individual without knowledge and allows social media to do the thinking for them.
modified 19-Nov-21 21:01pm.
|
|
|
|
|
The last time someone asked me to defend my lack of a degree was in an interview.
I asked him to defend him getting one, given the way IT is taught in uni.
Because it was at that point that I decided I really didn't want to work at Expedia.
Gee, glad I didn't. They don't exist anymore. And I'm okay with that.
When people have degrees, I am that much more careful about screening them for experience if I'm in charge of putting together a team, because I've had a lot problems with people coming straight out of college totally unprepared for working on a professional software team. They might know algorithms, but they don't necessarily understand all the coding techniques that you just pick up organically.
With the self taught ones, after a few questions, the only thing I had to worry about was if they could work on a team. Problem is, they usually couldn't, so it became a matter of how quickly they could learn.
Experience at the end of the day is what it all comes down to. Each path has its downsides, and I have my biases. I'm a black sheep developer. I'm creative, but not methodical. I'm not a math whiz, but I love language. I'm kinda a weirdo in any given dev house in terms of the sort of code I am good at and what sort of direction a project will take if I'm leading it. I like other black sheep. But there needs to be very few of them on a team for the team to be successful. The black sheep may or may not have went to school, but in terms of programming, they learned most of it themselves, and they don't do it like other people do.
I value the "white sheep" professionally, especially when I'm putting a team together because they work well on teams and their work is reliable and consistent. Their creations are more easily understood by others as well, but my heart is not with them, if I'm being honest. More of them I've found, have come up in CS through academia.
Now, those are just broadly general observations. People are complicated, and any attempt to boil them down is going to be silly on some level, but the above way of looking at things has served me professionally, so I stick with it.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: The last time someone asked me to defend my lack of a degree was in an interview. An interviewer who asked me to defend anything about my professional background would get to watch my ass sashay out the door. That's unprofessional in the least and possibly illegal depending upon how the question is phrased.honey the codewitch wrote: When people have degrees, I am that much more careful about screening them for experience We've had something of a hiring boom lately. After almost ten years of our team shrinking from 17 down to 5, we're finally starting to build back up. Our first hire was a graduate from 2018 with two years experience at a couple of jobs. We ignored it. Our interview was centered around the questions "was he teachable?" and "could we work with him?". The answer was yes to both. We've thrown him into the pool, and he's been given responsibility for a couple parts of the product, one simple, one fairly critical. The critical part he's taking over from a guy who's retiring in June, so there's some time for knowledge transfer. The youngster may be useful in six months or so.
We're also looking to hire someone as a backup for me, largely they can take some of my workload. I tend to be an easy choice for a lot of the oddball jobs, because everyone else is on a critical path item. While this makes me look oh so valuable it annoys the sh<nobr>it out of me because, like Harry Callahan, I get every dirty job that comes along. This person we'll look especially hard at the experience because we're looking for a skill set. Academic background for this is almost immaterial.
For the entry-level guy, the experience wasn't important because we assumed he wouldn't have any that was relevant. The academic background gave us a certain assurance that he/she was familiar with important concepts, but that was all. My backup guy on the other hand it's all experience. We're looking for certain skills, and those are only acquired by doing the job.
Technical hiring's a PITA. In my case we write job requirements, they get sent to an agency, they filter and send us resumes that match, we pick the ones that are interesting (if any), round and round we go. There's something of an art to specifying the requirements so that you're specific enough to get those that might be useful, but not so particular that there are never any matches. There's a company anecdote that one of our principle research folks, a guy with a PhD in engineering was laid off. They wrote the requirements for his replacement. His resume was the only one returned by the agency. After he was rehired, I asked Randy about the negotiation process. He asked me in turn "Did you ever see the movie Deliverance?" I said "Yeah..." He replied "I made the piggy squeal."
Software Zen: delete this;
modified 17-May-21 8:47am.
|
|
|
|
|
Wow the formatting on your message is broken. I had to read it through email.
I'm laughing at the last sentence though.
Real programmers use butterflies
|
|
|
|
|
Oops. Fixed. When I want to use a bad word, one that Chris' filter edits, I put a <nobr></nobr> in the middle. I forgot the closing tag.
It's tough being a salty old salt in these modern times .
Software Zen: delete this;
|
|
|
|
|
Yeah I'm not even trying to say my route was ideal. Hell, I don't even know if I could reproduce it if I had to do it over again.
It's just what I had in front of me. That's not to say that it's better than going to school.
Real programmers use butterflies
|
|
|
|
|
Gary R. Wheeler wrote: wrote the sloppiest, most bug-ridden sh!t code I've ever seen.
I once worked with a guy like that. He was otherwise brilliant. Fortunately, he knew his code was crap and would turn his proofs-of-concept-algorithms over to others to rewrite.
|
|
|
|
|
This guy was easy to get along with. Unfortunately, he really wanted to be doing Apple development, and we are a Windows house. I think he just didn't care.
Software Zen: delete this;
|
|
|
|
|
I have a similar background but not wired like you. What I mean by that is I understand that people who fancy writing compilers (parsers) are a special breed. I'm pin level hardware savvy and have done some assembly early on but when I read your tech posts my head just spins I have no idea where you've been.
That's a compliment.
I was the last of 5, punk ass lead guitarist that had electronics in high school but wanted to build flangers and delays more than motors and study diode drops.
My parents gave me 3 choices on day in my junior year A: Get your grades up.
B: Join the military or C: drop out of school and we'll set you up in an apartment and you an get a job and a roomie to pay for it all.
Duh.
So I got a job soldering for a waterbed heater company in So. Cal where we lived, then an data acquisition company where I started as a line inspector but once they got wind of my electronics knowledge (resistor color code memorization mostly) the put me in the test tech group. You job hopped for advancement then then the last stint was sr. engineering tech at Emulex when DEC roamed the earth.
All the while I was fascinated with coding but have never done it professionally. After Emulex my wife and I bugged out to Summit County Colorado to ski a lot but there is no real jobs to be had in the tech sector in a resort town at 9800 feet in the sky. So we opened a pc shop that went great guns but now just gets along. I do some personal life enhancing code that helps my wife with her new gig as a business consultant. She was a 4.0 student and is the real brains of the two of us but detests the idea of herself coding even though she can unravel the snarliest ms exchange issues, has had enough.
I'm doing an MVC AspNet POS program right now for a side job I fell into selling retail products. That keeps me entertained.
The tech sector is a great equalizer. Nerds arise!
|
|
|
|
|
Ron Anders wrote: when I read your tech posts my head just spins I have no idea where you've been
I take that as a challenge to become a better writer. I don't want my stuff to be arcane. I'd like to bring a little witchcraft to everyone.
So I'll keep trying, and maybe one of these days I'll figure out how to make my stuff accessible to most people.
Real programmers use butterflies
|
|
|
|
|
Praise You. Keep up the good work !
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
What's GED ?
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|
|
It's a high school equivalency "diploma" you can get via exam in lieu of finishing school.
Part of the problem with me staying in school is there was a truancy law on the books which would have landed me in juvenile detention a lot because I wasn't able to show up for all of my classes every day because I had to worry food and a place to sleep. So to avoid jail, I dropped out.
Basically it's a way to test out of high school so you're not quite as bad off as if you had just stopped going.
Real programmers use butterflies
|
|
|
|
|
Sounds like you had a tough time.
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|
|
Thank you for your post! It brought up such an interesting discussion and I feel truly humbled by the diversity of experiences that developers come from.
Compared to what some of you guys have been through, my life seems the pinnacle of boredom: saw a book about a new thing called "programming" when I was 15 and, for some strange reason, decided that's what I do in my life. Luckily I found some guys who would pay me a decent wage for doing that. Many years later I still don't know to do anything else. Talk about being monomaniacal .
Mircea
|
|
|
|
|
That's not that far off from how I picked it up, except i was a bit younger.
My parents bought an Apple ][gs in 1986 and it came with a programming manual for Applesoft BASIC.
I read it because I read while eating otherwise the act is boring. Not very mindful of me, but then I'm not a buddhist so it's fine.
It converged with my problem of circuit building. I took things apart and made things with them but to do anything serious in terms of building gadgets required money i didn't have at 6 and 7 so software allowed me to build things without continually shoveling more money at Radio Shack.
Real programmers use butterflies
|
|
|
|
|
I don't think you can go that route today, there is too much focus on qualifications and too many get rich quick brats.
I had a similar route except I am mentally eminently stable and grounded despite running away from a dysfunctional family at 15, working approx 20 different jobs till I discovered software in my 30s (in the late 80s). Worked as a consultant (quote, build and chase the invoices) till I worked out that contracting you did not have to do the f***ing paperwork involved in running your own business.
Ended my career as a highly paid and valued developer at one of Asia's top banks. Today that path is not possible.
Have not coded in 2 years, it turns out I was a tart (please forgive the gender reference), only into it for the money.
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
hah it's fine.
I'm not sure. The last four clients I've had didn't even ask for a resume.
One of them scouted me from my articles here.
Maybe I'm just being optimistic, but I think if you have talent and a little luck you can maybe still pull it off, even if the culture has changed. You may not be able to work at Microsoft anymore without a serious CV but I don't know - i'd like to think they'd still hire anyone that had the endurance for a 4 hour panel interview with whiteboarding. I've done that.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: i'd like to think they'd still hire anyone that had the endurance for a 4 hour panel interview with whiteboarding. I've done that.
The first time I read that I thought it said "waterboarding". Actually, having been through it, that's not too bad a comparison, especially if you are in an antihistamine fog during the interview.
|
|
|
|
|
My first software job was 40 years ago. Curiously, my take is that it's easier to get a job without "qualifications" these days, though there's a lot of "certification" horseshite. But in 1981, everyone expected a degree. It might not be in computer science, because there weren't enough of us. But engineering, mathematics, or physics would do, especially if you'd done a bit of programming. I used to say that the problem with our software was that we had too many straight engineers, and it was comparable to someone landing a job designing circuits because they'd played around building speaker systems in their garage.
modified 16-May-21 19:57pm.
|
|
|
|
|