"The Real World" vs "School"...what I've learned...



  • I'm pretty much self-taught, and on-the-job learned a lot of what I know regarding computer programming and software engineering.

    A couple of years back, though, I thought it might be beneficial to get a degree (since I don't have one).

    Unless I'm mistaken, there are a few things that "the real world" teaches you that you can't (and usually don't) learn in a classroom.

    Things like refactoring, design patterns, unit testing, and so forth. A lot of those things aren't learned in the "classroom" as far as I can tell.

    Of course, I'm early in my school work, but so far I think my knowledge that I've gained on the job surpasses what I have learned in the classroom to this point.

    But unfortunately, a lot of schools don't accept "work experience" for credit.


  • Discourse touched me in a no-no place

    @John2 said:

    Things like refactoring, design patterns, unit testing

    ... how to use a debugger (or even that such things exist), profiling ...


  • FoxDev

    @PJH said:

    @John2 said:
    Things like refactoring, design patterns, unit testing

    ... how to use a debugger (or even that such things exist), profiling ...

    …source control, issue tracking, requirements gathering…


  • FoxDev

    @PJH said:

    ... how to use a debugger (or even that such things exist), profiling ...

    ...Database design, and why 3NF is sometimes the wrong choice...

    ...Why choosing the shiny new fancy technology isn't always the best choice...

    ... How to think critically about a problem....



  • You guys are NAILING all the other things, too...


  • ♿ (Parody)

    @accalia said:

    ... How to think critically about a problem....

    "The Real World" doesn't seem to teach this either. I'm not sure how it's taught or if it's even generally possible.


  • FoxDev

    @accalia said:

    Database design

    Actually, I did that as part of my degree 😛

    OK, it was an option, but still…


  • FoxDev

    @boomzilla said:

    "The Real World" doesn't seem to teach this either.

    granted. granted. but that's a think that schooling should teach you, no?



  • This is the thing about being a polyglot. Sometimes you have to pick the right tool for the right job.



  • About the only thing I learned in school that I wouldn't have learned in the real world is proper 3NF database design. That's literally it.


  • FoxDev

    @RaceProUK said:

    Actually, I did that as part of my degree

    as did I, and then i got to the real world and learned how little i actually knew about it, and how much the database engine affects your design choices, and why 3NF is anti-performance and a billion and one other things. ;-)



  • @John2 said:

    I think my knowledge that I've gained on the job surpasses what I have learned in the classroom to this point.

    This is precisely why most companies value work experience over education.



  • One of the schools I'm considering transferring credits to has a course on DB design. I think that's pretty standard.

    Though I've read some pretty good books on DB design, also. Usually written by people "in the industry".


  • I survived the hour long Uno hand

    @John2 said:

    design patterns

    @RaceProUK said:

    requirements gathering

    @accalia said:

    Database design

    I did all those in school.


  • ♿ (Parody)

    @John2 said:

    You guys are NAILING all the other things, too...

    :giggity:

    @accalia said:

    granted. granted. but that's a think that schooling should teach you, no?

    Eh...yeah, also something your parents should teach you. Also something that you should just figure out, which seems to be how most people who ever get there come to it. Well, maybe parents were influential there. I think mine were, and I think I'm getting through a bit to my kids.


  • FoxDev

    @John2 said:

    Sometimes you have to pick the right tool for the right job.

    the real trick is knowing how to find the right tool.

    you don't always need a hammer, sometimes a rock will do the job just as well. ;-)


  • Discourse touched me in a no-no place

    @John2 said:

    Things like refactoring, design patterns, unit testing, and so forth. A lot of those things aren't learned in the "classroom" as far as I can tell.

    Are you doing CS or SE? A CS programme might not cover such things, but a SE program should. Maybe not straight away though.


  • ♿ (Parody)

    @accalia said:

    you don't always need a hammer, sometimes a rock will do the job just as well.

    LOL...was watching an episode of America's Funniest Videos last night, and a guy took out an overcooked cake (looked like brownies to me, but he called it "cake") from the pan and used it to hammer a nail into the door jamb.



  • Unfortunately, I see a lot of companies that want either a 4 year or Masters degree.

    Sometimes they say "or equivalent experience".

    And they all want skills I'm working on obtaining. I've had positions in the past that didn't use them, and I got behind the curve a little. I'm self-learning jQuery, AngularJS, knockoutjs, WPF, and ASP.NET MVC.


  • FoxDev

    @accalia said:

    you don't always need a hammer

    …but… I like using hammers…



  • From what I've found, a lot of schools offer CS as an undergrad, and SE as a Masters program. I've found a few schools like that.


  • FoxDev

    @John2 said:

    Unfortunately, I see a lot of companies that want either a 4 year or Masters degree.

    They don't really, but they have to put something to scare the no-hopers away. Doesn't always work, but yeah, that's what it's there for.


  • FoxDev

    @boomzilla said:

    Eh...yeah, also something your parents should teach you.

    yes. this too.

    @boomzilla said:

    Also something that you should just figure out,

    sometimes, but it helps if your environment encourages critical thinking and inquiry. and our school systems do a terrible job of that, and i see too many parents who don't interact with their children, prefering to have them sit in front of the television playing their xboxes and playstations... THAT's NOT PREPARING YOUR KIDS FOR LIFE!!!!!!1!!!! </rant>


  • Discourse touched me in a no-no place

    @mott555 said:

    About the only thing I learned in school that I wouldn't have learned in the real world is proper 3NF database design. That's literally it.

    Ditto. What mine didn't cover, however, was denormalization (how/why etc.)


  • FoxDev

    @RaceProUK said:

    …but… I like using hammers…

    that's okay. so long as you know that you don't always need to use the hammer.

    sometimes a 2x4 works just as well.



  • @PJH said:

    Ditto. What mine didn't cover, however, was denormalization (how/why etc.)

    We got that in the second database course, which was about data warehousing techniques. And Oracle. I still have nightmares about being forced to run Oracle 10g on an 800 MHz Celeron laptop with 512 MB RAM for that class.


  • ♿ (Parody)

    @accalia said:

    and our school systems do a terrible job of that

    I'm not totally convinced of this. I found lots of places in school to think critically. I went to a relatively shitty to mediocre high school. Most kids just don't give enough of a shit (or aren't capable of it, etc) to even try.

    Let's be honest and admit that the Idiocracy meme of mostly stupid people reproducing isn't anything new, but we're now putting more people into an environment that requires abstract thought. I think a lot of those folks do fine in other circumstances (I've certainly observed plenty) and show plenty of ability to think about things, but most people just aren't motivated enough to apply that very frequently and especially not about more concrete stuff.


  • I survived the hour long Uno hand

    A professor I had for a C course couldn't even teach functions correctly. Some of those engineering students would go on and write projects consisting of nothing but 3000+ line main() loops for years afterwards. That's a staggering amount of :WTF: on both sides.


  • BINNED

    @accalia said:

    ...Database design, and why 3NF is sometimes the wrong choice...

    They teach it. Except for the "3NF, ALWAYS, BLAURGH!" bit.

    Of course, when they start teaching you 1NF and 2NF they always give the most retarded examples imaginable, so they hammer the point home.

    My university didn't have an OOP class. Well, there was an electoral Java class. Which assumed you know OOP...



  • @John2 said:

    Unfortunately, I see a lot of companies that want either a 4 year or Masters degree.

    Sometimes they say "or equivalent experience".

    Unfortunately, there are companies that won't hire if you don't have the degree, so getting one does make sense. In most cases though, if a company sees a candidate with years (usually more than 5) of experience, they could care less about the degree.


  • ♿ (Parody)

    @mott555 said:

    I still have nightmares about being forced to run Oracle 10g on an 800 MHz Celeron laptop with 512 MB RAM for that class.

    Phhhhhbhbbbbbbbttt....Oracle 8i on a P2 233MHz 64MB machine.


    Filed Under: Two Yorkshiremen so far


  • ♿ (Parody)

    @Onyx said:

    Well, there was an electoral Java class

    I, for one, welcome our new coffee overlords.


  • Discourse touched me in a no-no place

    @boomzilla said:

    Phhhhhbhbbbbbbbttt....Oracle 8i on a P2 233MHz 64MB machine.

    You're a young whippersnapper! In my day, we had to make whatever we were running fit into 640kB because working with high memory was so awful.



  • Yeah?

    When I started we only had 1's and 0's...and sometimes we didn't even have that!

    ;-)



  • @boomzilla said:

    I'm not totally convinced of this. I found lots of places in school to think critically. I went to a relatively shitty to mediocre high school. Most kids just don't give enough of a shit (or aren't capable of it, etc) to even try.

    My kids' schools are all about trying to get the kids to think critically...
    they learn three or four different ways to approximate their arithmetic, but never got drilled on multiplication tables.

    Sometimes you just need some baseline facts right in your hand.

    @boomzilla said:

    accalia:
    ... How to think critically about a problem....

    "The Real World" doesn't seem to teach this either. I'm not sure how it's taught or if it's even generally possible.

    <takes out belt onion> ... I've found a lot folks are silo'd in their thinking... DBA's , SE's, and OR types can all look "critically" at something and come to oddly different conclusions...

    I think most folks have different propensities for different specific areas...

    And my auto mechanic runs circles around me in that his own arena...
    IJ: "running poorly... misfiring maybe... new spark plug cables?"
    AM: "... you don't even have spark plug cables..."
    IJ: :facepalm:


  • FoxDev

    @ijij said:

    And my auto mechanic runs circles around me in <s>that</s> his own arena...
    IJ: "running poorly... misfiring maybe... new spark plug cables?"
    AM: "... you don't even have spark plug cables..."
    IJ: :facepalm:

    …diesel engine?


  • ♿ (Parody)

    @ijij said:

    I've found a lot folks are silo'd in their thinking... DBA's , SE's, and OR types can all look "critically" at something and come to oddly different conclusions..

    Very true. Any of those is still better than the guy who just shrugs and ignores it.



  • @RaceProUK said:

    …diesel engine?

    All The Things™ are duplicated for each cylinder... apparently.

    Fortunately "tune-ups" are few and far between - I've had one, at 140K miles - because you replace 4 x All The Things at ~$300 a pop IIRC.


  • FoxDev

    I was asking if it's a diesel, because they have glowplugs, not spark plugs 😛
    Anyway, having four of whatever-it-is doesn't surprise me; it'll be one cable per plug, one plug per cylinder ;)



  • I was taught most of this in skool. Notably missing issue tracking, but that's not huge. Also didn't take databases, which was a poor decision, but that has AFAIK now swapped with Computer Graphics from elective to required course.



  • ... usability testing, unless you defect to the Psychology department.



  • @RaceProUK said:

    I was asking if it's a diesel, because they have glowplugs, not spark plugs 😛

    I actually knew that and figured that's what you meant...

    Also ultra-small-displacement engines use glow-plugs as well...e.g. R/C planes. But I'm in no position to pedantically argue for their diesel-ness.

    @RaceProUK said:

    Anyway, having four of whatever-it-is doesn't surprise me; it'll be one cable per plug, one plug per cylinder ;)

    They replicate the whole electronic ignition package four times - a rude awaking when you go in expecting a $100 tune-up (points and plugs and maybe replacing a bad wire or two) and leave $1200 poorer.



  • @PJH said:

    ... how to use a debugger (or even that such things exist), profiling ...
    I think debuggers get covered in our intro class.

    @RaceProUK said:

    source control
    This needs to be covered better (e.g. in the intro class), but I'm pretty sure most students get exposure to it before graduation.

    OTOH, I can name a bunch of things that I got from school that are very helpful, but I'm somewhat of a weird case I think.



  • ...how the languages you're using actually work...

    To be fair, that was a relative forcing me to read the C# language spec, but that alone was more beneficial than my university, apart from one thing: Degrees keep you from being filtered out by HR.


  • Java Dev

    I seem to recall actually getting a denormalization-can-be-good example in a 1st year database course - addresses are internally redundant but all went into one record anyway. Dunno how detailed they went into that though, it's been 12 years or so.



  • @RaceProUK said:

    @PJH said:
    @John2 said:
    Things like refactoring, design patterns, unit testing

    ... how to use a debugger (or even that such things exist), profiling ...

    …source control, issue tracking, requirements gathering…

    Handling yourself so you don't shoot a client, a coworker or your boss... actually, that's probably taught in Psychology school.



  • I actually don't believe in denormalization. I think it's done FAR too often on dubious (if any!) measurements.

    I'm sure there are cases where it's beneficial. I'm also sure they're a LOT rarer than people seem to think.


  • Java Dev

    Premature optimization is unfortunately quite common. And I agree it's likely common in this area, as people tend to avoid large database schema changes.


  • I survived the hour long Uno hand

    @blakeyrat said:

    usability testing

    I actually had a course that touched on this as well. It was called Human-Computer Interaction, and it was a fascinating subject taught by a terrible professor.



  • What textbook did it use?


Log in to reply