Joel Gives College Advice For Programmers 808
An anonymous reader writes "Joel on Software explains what college students should do with their lives. Interesting to note is how he justifies such trivialties as GPA scores and well-roundedness, the very things comments here tend to think are overrated. In short, learn to write English, learn to write C, and don't worry about India!"
Good advice... (Score:5, Interesting)
I'm being a bit sarcastic here, but I've heard from too many people that punching out code all day at work makes them very hesitant to even touch a computer at home. For those who are currently computer programmers/engineers, would you say you really enjoy your job, or does it get extremely old and tedious after awhile?
Disagree on two points: (Score:5, Interesting)
* Stop worrying about all the jobs going to India.
First, I think it's also to learn macroeconomics, if you plan on becoming anything more than a cubicle-dwelling drone. If you want to take mattesr into your own hands, you have to have a good understanding of the big picture. As for India - which is related to my first point: it is important to look at all trends and act accordingly. If you ignore any large trend, movement, etc., you can very well be doomed to failure. When I say trend, don't misinterpret that as the equivalent of "fashion."
Just graduated (Score:2, Interesting)
Re:Slashdot anti-intellectualism (Score:3, Interesting)
When you see kids running around with books titled "How to get better grades", it's clear to me that school is nothing more than a holding ground for kids because there are no jobs for them.
School is NOT about learning, it's about fitting in a given society. You can learn FINE on your own. Books exist, libraries exist.
If anything, schools are anti-intellectual. When I was in school, I was always going off on tangents and exploring all kinds of fields on my own. Did I get *any* support or encoouragement? No. None. Zero.
Follow the group, don't go too fast, don't go too slow.
Non-CS Courses (Score:5, Interesting)
Non-math courses help develop a personality and there's no shortage of need in that department, where I've worked. Learn some general psychology, socialogy and language. A well exercised brain is more creative than one that only dwells on one aspect or type of challenge.
I found many formulas and ideas from classes outside CS contributed greatly to offering information and processes which normally may not have occured to me.
In short, you're in school, make understanding the concepts behind your classes your main focus, socializing and entertainment when you can fit it in, not the other way around.
Re:Slashdot anti-intellectualism (Score:3, Interesting)
I wasnt forced to conform in the slightest..
However, that is both good and bad..
True confessions... (Score:5, Interesting)
But what do I do at night? I go home and write code. Why? Because I get a blast out of it.
I think Joel's article is right on; especially the piece about learning C. I was taking an inventory of my skills (mostly with 4GLs and non-bare-metal languages, though I have written smatterings of C++ and S/390 Assembler) - and the one area that I'm really deficient in is C.
Since I'm also in school for an MS in Information Systems, it might take me a little more time than I thought... but It Will Be Done.
As far as my employer goes, they can promote the soft skills and the management skills all they want; I may even find my hair forming into the PHB hair style; but when I go home and close the door, they will take my laptop only if they pry my cold dead fingers from around it.
Re:Slashdot anti-intellectualism (Score:5, Interesting)
Also: Go to a better school then or get a better advisor. First of all the whole "you can learn it from a book just fine" is BS imho since unless you know which book to get you won't have a fun time. In addition, for many things the feedback you get on projects (or even just doing the thing assuming it's hard enough) is more valuable than anything else.
As for "tangents" let's see I'm a Junior now and I've taken courses in: Math, CS (including grad courses in AI, Robotics and Genomics), Statistics, Psychology, Philosophy (Bioethics, and now I know the main arguments for a dozen important issues), Physics, Biology, History, Writing and a few others. I learned something in all of them, I took classes much harder than what I should be taking and while I didn't get an A in them I learned much more than if I took a class where I did get an A easily
Re:Slashdot anti-intellectualism (Score:2, Interesting)
It's tempting to think that this is peculiar to the live-with-mom coding set, but it's no different than any other guild-like group of people with a particular set of relatively valuable skills. Say, sheet metal workers, or turbine mechanics. Those chores will not go away, and our economy will always support people skilled in those areas no matter how otherwise closed-in they might be within their own communities or industry cultures.
But there will always some folks that read enough (Neal Stephenson, not Robert Jordan) outside their comfort zone, or hung out with those know-nothing PhDs to become more valuable. They end up being the bosses that all us techs-in-the-trenches love to hate - but the really successful ones are in part successful because they care enough about communication skills, history, etc., to seem valuable to a wider swath of society.
But the systems engineers (who are happy directly in that role) will always be needed, and those more worldly techie-boss people will probably always prefer to have culturally similar, if slightly stunted, folks doing the heavy lifting for, and direct reporting to them.
Egads: I guess I'm saying that there's a place for all of us... but the cultural class tension will always be there too. Those that make it out of the tech ghetto, though, do feel the heat from below, I'm sure.
Good Internship (Score:3, Interesting)
Re:Slashdot anti-intellectualism (Score:2, Interesting)
I think you kind of missed what the original poster was saying. Sure you not a preppy person, you had neon spiked hair, or whatever your particular appearance choices were. However, how many people can honestly say they went to college to learn? I can't. I went to college so I would be able to get a good job. That's the "mold" he's referring to, not your appearance, speech patterns, etc. Higher education used to be for those wanting to learn or spend time doing research, not to train for careers.
That's not to say I don't want to learn. But at 17 (when I graduated from High School) the last thing I wanted to do was start into another school. I didn't have the desire to learn for the sake of learning. I wanted to have money in my pocket and hang out with friends. Now I'm 30 and am taking up a couple of new hobbies that have begun to interest me (woodwork and electronics). This is when learning (at least for me) really happens. I will probably look for community "learn to ..." courses that will help, but for now I'm just trying to get a basic understanding of electronics by putting together some basic circuits. A guided education helps, but I believe learning on your own is as important as learning via instruction. Neither one is perfect on its own.
Is a CS degree a requirement now? (Score:3, Interesting)
So a question for those just-graduated (or about to graduate): Does anyone hire "self-taught" programmers anymore?
Re:GPA useless??? (Score:4, Interesting)
I have a Master's Degree in Comp. Sci., and I did not graduate from my undergrade with a 4.0; it was around a 3.5. I had something like a 3.8 in major, but I preferred to challenge myself outside my major. (MSU made that easy with their "Honors College" program, which gets you out of the generic crap courses, provided you replace them with real classes. So, for instance, instead of the Generic Social Studies classes that you normally hear people bitching about, I took several real psychology classes; if you can't find something that you like, what the hell are you doing in college? (That program also got me into the hard math courses no questions asked, and I was able to make several other nice substitutions for harder courses that were actually easier for me in a way because I liked them.) In the event you recently started attending or are thinking of going to MSU, I highly recommend hooking up with them.)
I had an English History class that I got a hard-fought 2.0 in. While this is one of my weaker grades, I'm also proud of this one; it was solidly in the middle of the pack in that class, which was eight other history majors. (Woohoo, two hour essay tests with four questions, graded on grammar, spelling, and historical synthesis! Pity that class wasn't labelled as one of the "writing intensive" ones, it beat the snot out of the one I had that was actually labelled as such and I'dve preferred to spend those credits elsewhere.) I also took the advanced physics and never got a 4.0... but I understand it better than those who took the standard one. (Non-calculus based mechanics leaves you with a bit of an inferior understanding, but non-(multi-variate-)calculus electromagnetism is nearly a waste of time!)
So no, I didn't carry a 4.0, because I pushed myself as hard as I could. I, too, would be concerned about someone who got a pure 4.0 in undergrad, and would want to examine their transcript closely, to make sure it wasn't loaded with too many "basketweaving for jocks" equivalents. A pity there isn't a way to have a "difficulty adjustment" for GPAs; I know that my "grade performance average" would end up higher than quite a lot of the "grade point average" 4.0s.
As others have pointed out, college is what you make it. If you find that your classes are so easy you could just read the book, take harder classes. Self-fulfilling prophecies, anyone?
(I don't say this stuff to brag; frankly I don't give a shit what the average Slashdot denizen thinks of this. I don't much respect the majority of you anyways when it comes to things like this; quite a lot of you are spoiled little snots when it comes to academics. But if it helps even one person get something good out of college, it's worth it.)
Non-cubicle jobs (Score:2, Interesting)
Comments from a surfer newsgroup, on non-cubicle jobs:
Emphasis on a well-rounded education is the key (Score:5, Interesting)
My background is a B.S. in Mechanical Engineering where upon graduating in 1993 had the lovely firsthand experience of what was a recession in my field. I returned to do a second bachelor's in computer science.
I worked full-time at the campus IT Department while taking classes vastly ill-structured compared to my M.E. courseware. The options of languages to learn were behind the industry and this is a Pac-10 University I'm citing. Like almost all accredited programs they seem to be under the umbrella of Electrical Engineering. I ended up having to take several classes that I fulfilled in Mechanical Engineering for C.S. The smug remark was always the same, "I don't believe you guys covered this area with applied math in your EE class equivalent." My retort was always, "I don't believe you guys covered anything in your Statics/Dynamics cliff notes and Thermo for idiots equivalents but we don't make you waste time and money taking the full crap if you wanted to do a Masters in M.E."
Needless to say, I was looked upon as a "typical elitist Mechanical Engineer" within the department. I was only there to apply Finite Element Analysis, study Computer Modeling and hopefully get my ass back into a career I had just spent five years educating myself to do. To eliminate the boredom of the classes I made sure in both degrees to have a minor outside the range of technology that may expand my mind. I declared a minor in Anthropology.
Anthropology is where I rekindled my love of writing and love for what makes us tick inside. This diversion made studying science much more enjoyable.
However, it doesn't improve one's odds at retaining a career of their choosing. You garner such skills through Social Engineering--a nice label for Social Networking--where one learns to manage time, alcohol and communicating with the sexes over countless hours of downtime. This set of skills matched with one's professional skills are what land you the interviews and ultimately the ability to adapt into new careers thanks to the chaos known as the Real World. It doesn't guarantee one to always be ahead of the storm--that depends on whether one is constantly cautious and through pessimism looks for such pitfalls.
In short, expect several careers, various job titles that will most assuredly have nothing to do with your formal education and more to do with your social education and more importantly realize your needs fluctuate in life--the needs that we label as attributes to personal fulfillment.
Thanks to this lovely recession I'm currently focused on writing short stories, novels and verse to land me a new career, while simultaneously refreshing myself in Mechanical Engineering (I put that on hold while working in Silicon Valley and the Northwest for a decade) as well as make a conscientious effort to further my technical skills in Linux, OS X, C/ObjC and Java.
The moment you think you have learned enough to sustain a lifestyle of your choosing will be the moment you realize you've never had such a lifestyle afforded you. The promised land of telecommuting around the globe have yet to become the norm. Without this option one is always in debt upon entering the doors at the new job chosen by you which rarely is in the same town and most often requires you to relocate, at considerable expense, on your dime.
Welcome to the Belly of the Beast, where nothing is guaranteed nor afforded to you without a price. Sacrifice, patience and an unwavering desire to be adaptable to change is the only guarantees one has of never succumbing to the blackhole of has beens, contenders, or desperate souls who have given up on all their dreams. No longer vibrant and creative over a few beers while doing their studies they now just meander along in life with the highlights being Friday at the bars, Saturday with the woman and Sunday afternoon Football as their only reprieve from a thankless life of compromise.
The greatest falsehood in the Real World is that what was afforded to you
Re:GPA useless??? (Score:2, Interesting)
Oh yes, you are so the majority.
Sorry, this is a pet peeve of mine, people who seem to just mentally edit out qualifiers like "most" or "some" or "the majority" and automatically slam them to whichever absolute makes for the best rant. Unless you are convinced that you are an average case around here, I can still respect you, disrespect the majority, and leave you with no grounds to consider me a hypocrite. Try to be less touchy, OK?
And as I have said in the past, I do not do my best writing for slashdot. It's a waste of time, in more ways than one. (One subtle one is every second you waste reviewing, you're losing readers, and while I don't do this for readership it is pointless to waste my time if nobody is going to see it; this is the reason I never reply to threads from more than a day ago even if there is a raging argument.) You missed a few typos, if you're going to be an ass about it, I also added an "e" to "undergrad" right in the second paragraph. I'm sure that's not an exhaustive list.
Re:Anti-intellectualism is actually... (Score:2, Interesting)
stick with it, as it is far easier to answer that question of "do you have a degree?" with one word, "yes"; than a convoluted explanation of why you dont, and why it doesnt matter.
He had me til' the Bug tracker (Score:2, Interesting)
Re:Do you want to be Joel? (Score:1, Interesting)
The right:
The self promotion of himself as an expert software developer.
I don't know him personally and have not worked with him, so, I can't comment on the quality of his work. The only thing I can actually say about his self promotion is that it is working very well for him.
I don't think his products (like you said, there are many of the same and I don't see any major selling points on either of them) will make or break his company - His selling point is, really, his status in the development comunity and he will go back to Professional Services.
The iffy:
Some of his hiring practices are bit childish, I think, because of his elitists ideas - I don't know if Yale is a top CS school or not, but, it doesn't have the same clout as MIT or Berkley or many other CS-known institutions - So, the Yale name seems quite impressive for Law graduates, to me, it doesn't inspire the same for the sciences - However, a Yale degree is Yale degree and worth the $100,000.00+ for the brand.
The idea of putting a GPA as requirement seems to be a misguided attempt to hire only the best - I think he achieves hiring only the best ENTRY level engineers, as they are the ones heavely relying on GPA to get noticed. I think he's quite young, so he may want to keep the culture in his company "young." In the end, that strategy of only hiring fresh grads, will not flow with the maturity of the industry and his transformation to a Professional Services entity.
I do think that some of the advice is relevant to CS grads, but, I would take it with a grain of salt and only look at the advice as an another one of thousands who have an oppinion on software engineering.
His followers seem to be blinded by the MS experience (which is 3 years at major company working for the Excel team - It sounds impressive, but 3 years is not a lot of time) - Also, the quality of the posts in his boards has decreased quite considerably (One reason I don't visit as often as I did), so he is made by the clamour of his croud.
Anyway, the dude is successful at what he does and will be in the future - No doubt about that - He's a good marketer and a good summary maker of what others say in the field - Which, makes him attractive for book publishers as his readers are the target market - It's a good cycle to be in - Some of us struggle to generate so much pseudo-media attention (A bunch of interviews) - I assure you, it only helps in the end.
I say chill with the Excel glory and invent something new - Easier said than done - BTW, I'd suggest to keep writing and giving advice - Something is better than nothing and, in the end, promotes civil discutions - Even at
Re:Slashdot anti-intellectualism (Score:3, Interesting)
Absolutely true. I went to college straight from HS and I seriously believe that was a mistake. when I first got to college, my goal was to party unfettered by parental oversight. I did well at partying, lousy in school. It wasn't until mother passed away that I realized I had to actually become a self-reliant adult. Before this, my GPA was 1.99, after 3.88.
Thinking back on that time, I see now how incredibly immature I was. I would have been far better off I had been kicked out of the house and told to make it on my own for one year - no help at all. That year of scraping by would have been serious motivation to use my college time for learning.
Re:Slashdot anti-intellectualism (Score:2, Interesting)
There are only about two or three computer science professors I actually learned substantially from (as opposed to sitting in lecture listening to regurgitated facts that I either already knew or could look up as-needed). One of them retired the year after I took his class (on systems architecture), replaced with someone not nearly as competant. Two of the others I could easily have not taken any classes with at all. I was, as you say, lucky to be in the right place at the right time.
I learned vastly more during my internship (at a big-name embedded Linux shop) than during my formal education itself. I wouldn't have had that internship if I hadn't happened to meet and impress one of the near-ground-floor employees (who started out as employee #7, their first intern ever) at a LUG meeting. Right place, right time.
Yes, I did the formal education bit, and yes, it's done me a great deal of good -- certainly, it improves one's chances of being in the right place, unless one knows the right people to start off with (which I didn't).
In my experience, that kind of guidance is easier to get in a quality work environment than anywhere else. Getting to that quality work environment without formal education -- that's a bit harder, but it's doable. (One of my coworkers was a minor who had been hired as a full engineer before completing high school; he was also maintainer of the MIPS and SH Linux kernel ports. He'd initially learned C from another friend of mine, and was otherwise self-taught).
Re:YES (Score:3, Interesting)
Re:Slashdot anti-intellectualism (Score:3, Interesting)
You dont need a school or a grossly over-priced piece of paper for that. You need a brain and access to a library or the internet.
Well, thats nice and utopian and all, but without industry experience if you plan on getting a job that "grossly over-priced piece of paper" is going to be worth a lot more than all your self taught knowledge. When I'm planning to hire somebody I want to know that they know their stuff, and being that I don't know that person yet (since I would have probably just met them), I have no reason to trust them or their claim of how knowledgeable they are. In that case I would trust a university that says you know something more then I trust that person's opinion of themselves.
Yes some universities hand out diplomas like toilet paper, but for the most part good universities and departments have professors that are known and regarded. For instance if I know that someone went to a certain school and took classes from a certain professor, I might know that professor personally or have coworkers who know that professor. Those insights can say a lot about the education someone probably has.
Ultimately the interview determines it, but realistically to even get to the interview you either need experience or education.
Anybody who is worth their salt can guide themselves just as well as a professor with 200+ students to deal with.
This is simply not true. You are not going to become a brain surgeon by "guiding yourself". Nobody is going to hire a self-taught doctor - its laughable. I also can't imagine this working for many fields - lawyer, nurse, nuclear engineer, EE...
For only CS or mabye IT fields can I imagine this -might- work, but only because you can generate your own experience via open-source projects and such. And even then you will tend to run into the interview roadblock above...
Re:Slashdot anti-intellectualism (Score:3, Interesting)
That's no true. My program met every criterea laid out by the teacher. It just had a GUI that's all. The requirements never said "the program shall not have a GUI".
"It works like that in the real world too. Perhaps there was more than one lesson in there? "
NO it does not work like that in the real world. In the real world if you take the time to put a nice gui on programs people like it (as long as the core requirements are met). In the real world your boss appreciates you going the extra mile.
What Joel doesn't know about Logic... (Score:2, Interesting)
There is a lot Joel doesn't know.
Sure, bug tracking software doesn't need rigorous verification, but i wouldn't fly on any airplanes that Joel wrote the software for.
Re:Slashdot anti-intellectualism (Score:3, Interesting)
Not necessarily. If the GUI isn't very valuable in the given situation, and the time you spent on building it could have been spent building something else that is more valuable, then your boss is likely to be annoyed with you, and with some reason. You as a developer may not be in the best position to set development priorities on your own, and should be cautious about doing so.
That extra mile isn't yours to give, unless you built the GUI on your own time.