The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
1. The lounge is for the CodeProject community to discuss things of interest to the community, and as a place for the whole community to participate. It is, first and foremost, a respectful meeting and discussion area for those wishing to discuss the life of a Software developer.
The #1 rule is: Be respectful of others, of the site, and of the community as a whole.
2. Technical discussions are welcome, but if you need specific programming question answered please use Quick Answers[^], or to discussion your programming problem in depth use the programming forums[^]. We encourage technical discussion, but this is a general discussion forum, not a programming Q&A forum. Posts will be moved or deleted if they fit better elsewhere.
4. No politics (including enviro-politics[^]), no sex, no religion. This is a community for software development. There are plenty of other sites that are far more appropriate for these discussions.
5. Nothing Not Safe For Work, nothing you would not want your wife/husband, your girlfriend/boyfriend, your mother or your kid sister seeing on your screen.
6. Any personal attacks, any spam, any advertising, any trolling, or any abuse of the rules will result in your account being removed.
7. Not everyone's first language is English. Be understanding.
Please respect the community and respect each other. We are of many cultures so remember that. Don't assume others understand you are joking, don't belittle anyone for taking offense or being thin skinned.
We are a community for software developers. Leave the egos at the door.
I grew up kinda hard, with untreated mental illness and spent some time on the streets as a homeless teen, got my GED as a result and never went to college.
But I had hacked around on computers, programming since I was 8 years old.
When I was 18 I went from being homeless to moving in with my b/f in seattle and from there straight to Microsoft.
I started taking senior and lead positions before I was 20.
Outside of software development, for example when I moved from Seattle to rural Washington state where there were not development jobs I drove a cab, jockeyed cash registers, and even worked on a farm.
I'm not qualified to do anything skilled but write software.
I can't tell you how grateful I am that this industry values talent over credentials.
I'd be in a very different position today if it weren't for that. I have a friend I grew up with who never launched into a software career despite us programming together but his primary interest is language so I guess I understand - I learned C++, he learned Latin. I have another friend who I came up with together and helped him get into development, and then he moved to NYC and got rich, and he has a similar background as me, except not crazy. None of these people have degrees. Both are ridiculously intelligent. But it makes me think, you know?
I count myself fortunate, and I am grateful not just for me, but for anyone like me who found their way despite lack of opportunities and access to "white collar" work generally.
I think having worked on a farm is an important skill!
Any industry with common sense values talent over credentials. The ones that don't are typically licensed or unionized, which is primarily a way to reduce competition and make it more lucrative for those who are allowed in.
I was way too ... gender non-conforming and clearly gay to be in the military. I'm pretty sure the recruitment office would have opened fire on me if I got within 300 yards of them.
My brother is military. So was my stepfather. It was never in the cards for me.
I'm glad though. I think if I had gone in I probably would have washed out anyway, but even if I didn't I don't think it would have put me on the career path I had. I never would have worked for Everdev (which I loved) just for example.
Yes different times indeed. Turns out that a couple of guys in my unit were gay, one highly decorated and even wrote a book. I was totally unaware he was gay, it would not have made a difference to me but at the time the military was very anal about such things and he probably would have been ostracized and booted out?
I'm glad it worked out for you in the end. Elephant knows it didn't for so many.
That war was just.. SMDH
I don't know whether to say sorry or thank you. I have ... feelings about vietnam vets that sets them apart for me from other war vets. I won't get into it for risk of making this thread political, but you (and if not you then or at least many like you - i don't want to speak for you) deserved better.
I had a great childhood, good school, University, and everything, just never schooled in IT.
Yet here I am!
I was recently discussing this with someone and I told him any idiot can call himself a programmer, there's no entry barrier to the field.
I also pointed out that around 90% of the programmers I've met are absolute bunglers who couldn't tell good code from bad code.
He was flabbergasted!
If you want to be a doctor, lawyer or accountant, you need expensive degrees*.
However, if you're writing business critical software that enables thousands of people to do their jobs and generate a revenue of millions a day... You need only a computer.
A lot of untrained and often unskilled programmers work for local companies, enterprises, the government, non-profits, they're everywhere.
There are IT companies who gladly hire a rookie fresh from college and sell them as sr. expert consultant for €100+ an hour**
It gives people like you and I an easy chance to start over in a profitable field.
The flipside of the coin is not so great, I'm afraid...
Let's put it this way, failing IT projects really aren't always the manager's fault.
* Which still doesn't mean anything, there are terrible doctors, lawyers and accountants too!
** I have a cousin who is sold as an AWS solution's architect with two to three years of experience and some certificates. When asked what types of databases I could get in AWS I got blank stares... "What do you mean?"
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.
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.
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 .
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.
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."
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.
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 shit 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."
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.
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!