SQL Clone
SQLServerCentral is supported by Redgate
 
Log in  ::  Register  ::  Not logged in
 
 
 


Better Training


Better Training

Author
Message
davie 47400
davie 47400
Grasshopper
Grasshopper (10 reputation)Grasshopper (10 reputation)Grasshopper (10 reputation)Grasshopper (10 reputation)Grasshopper (10 reputation)Grasshopper (10 reputation)Grasshopper (10 reputation)Grasshopper (10 reputation)

Group: General Forum Members
Points: 10 Visits: 69
Interesting subject, I wrote an article lest week about developers and lack of security education leading to security flaws in web applications: http://www.thatcoderguy.co.uk/2014/05/06/the-hacking-will-continue-until-web-developer-education-improves/
LightVader
LightVader
Ten Centuries
Ten Centuries (1.2K reputation)Ten Centuries (1.2K reputation)Ten Centuries (1.2K reputation)Ten Centuries (1.2K reputation)Ten Centuries (1.2K reputation)Ten Centuries (1.2K reputation)Ten Centuries (1.2K reputation)Ten Centuries (1.2K reputation)

Group: General Forum Members
Points: 1249 Visits: 3038
rodney.hardrick (5/13/2014)
...
However, I found that when I got to the real world I needed more experience with software development methodologies, software project planning (e.g. providing a true time estimate based on other workloads) and software testing principles and strategies (i.e. writing an effective test plan, unit tests and using software testing metrics when needed).


Amen to that. I recently ran into that one the hard. I'm coming to the end of the first major project that I'm managing and there are quite a few things I wish I had known going into it. Hopefully I've learned enough that the next one will go much more smoothly.



The opinions expressed herein are strictly personal and do not necessarily reflect the views or policies of my employer.
Jennifer Levy
Jennifer Levy
Old Hand
Old Hand (346 reputation)Old Hand (346 reputation)Old Hand (346 reputation)Old Hand (346 reputation)Old Hand (346 reputation)Old Hand (346 reputation)Old Hand (346 reputation)Old Hand (346 reputation)

Group: General Forum Members
Points: 346 Visits: 550
Computer science degree from a liberal arts school here. Our major started with programming, the "weed-out" course (Assembly Language) was a 200-level one, as were the hard theory required courses. I do think that learning the theory behind what you're doing is a good thing as it explains why systems work better when you do things a certain way. And getting exposure to different languages helps you figure out how you learn best, which is always helpful given changes in technology and the job market.

One thing that the core classes, required or not, helped greatly with is communication. It doesn't matter what part of IT you're in, you need to be able to communicate with users and with management and executives just as much as you need to be able to communicate with your teammates. Attempting to explain why a "real quick change" is going to take 40 hours of work without making the requestor's eyes glaze over or breaking their brain is an asset.

That being said though, I do wish that I'd had more opportunities to learn in real world situations before getting let loose into the "real" world. Going back now and talking with the professors I learned from and worked with makes me realize how very different academic computing is from the corporate world. And while team projects are helpful to some extent in figuring out project management, some kind of internship in a corporate setting would have been extremely helpful for seeing how things work outside academia as well as figuring out where I wanted to focus in the classroom and how it related to my future career.

Jennifer Levy (@iffermonster)
Nevyn
Nevyn
Hall of Fame
Hall of Fame (3.6K reputation)Hall of Fame (3.6K reputation)Hall of Fame (3.6K reputation)Hall of Fame (3.6K reputation)Hall of Fame (3.6K reputation)Hall of Fame (3.6K reputation)Hall of Fame (3.6K reputation)Hall of Fame (3.6K reputation)

Group: General Forum Members
Points: 3566 Visits: 3149
Aside from the (very interesting) theory vs practical discussion, the other issue with a comp sci education can be that it is broad based, but there is little room to develop expertise in any one area (such as ... gasp ... databases).

My program at the time had two database courses. Even if you took both, not only were you nowhere near a professional knowledge of even the course's database (it was DB2 at the time .... useful). Worse, it didn't even provide a sense whether a profession in databases is something you would enjoy doing.

For more in-depth database training, you usually either learn by starting as an accidental database developer/dba and/or through proprietary training and certification programs from different vendors (or SQL saturdays, sites like this, and other self directed learning).

Now, I've been out of school 15 years and it may have gotten better in the interim. But based on the database work I see from most programmers, I rather doubt it. Another area where it would helpful to be "out in the world" figuring out what work interests you, and then having much more focused training thereafter.
Gary Varga
Gary Varga
One Orange Chip
One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)

Group: General Forum Members
Points: 27434 Visits: 6550
Do not fool yourselves into how only woefully unprepared graduate DBAs are. The same is true for developers. It's just that graduate developers generally have delusions of adequacy!!!

Gaz

-- Stop your grinnin' and drop your linen...they're everywhere!!!
Koen Verbeeck
Koen Verbeeck
SSC Guru
SSC Guru (63K reputation)SSC Guru (63K reputation)SSC Guru (63K reputation)SSC Guru (63K reputation)SSC Guru (63K reputation)SSC Guru (63K reputation)SSC Guru (63K reputation)SSC Guru (63K reputation)

Group: General Forum Members
Points: 63526 Visits: 13298
Gary Varga (5/13/2014)
Do not fool yourselves into how only woefully unprepared graduate DBAs are. The same is true for developers. It's just that graduate developers generally have delusions of adequacy!!!


Not me! When I graduated, I knew I couldn't program at all :-D


How to post forum questions.
Need an answer? No, you need a question.
What’s the deal with Excel & SSIS?
My blog at SQLKover.

MCSE Business Intelligence - Microsoft Data Platform MVP
Ed Salva
Ed Salva
SSC-Enthusiastic
SSC-Enthusiastic (110 reputation)SSC-Enthusiastic (110 reputation)SSC-Enthusiastic (110 reputation)SSC-Enthusiastic (110 reputation)SSC-Enthusiastic (110 reputation)SSC-Enthusiastic (110 reputation)SSC-Enthusiastic (110 reputation)SSC-Enthusiastic (110 reputation)

Group: General Forum Members
Points: 110 Visits: 311
I remember our computer science degree was more like a software engineering lite. The Department head was not only a doctor of computer science, but also worked in the industry several years and did his undergraduate work in English (so your documentation had to be spot on as well). Combined with that, I was fortunate in that I was able to do some practical work for some engineers at the same manufacturing company during my college breaks and 1st few years of work life. And during the school year, I had a part time job in the colleges IT dept, doing data entry and other house keeping.

Had I not had the math and theory or even just had a business background, I do not think I would have been able to accomplish the things I did at that manufacturing company.

I wonder if it is not just the combination of school, and practice, but also a good mentor as well.

-- Optimist with experience and still learning
call.copse
call.copse
SSCertifiable
SSCertifiable (5.7K reputation)SSCertifiable (5.7K reputation)SSCertifiable (5.7K reputation)SSCertifiable (5.7K reputation)SSCertifiable (5.7K reputation)SSCertifiable (5.7K reputation)SSCertifiable (5.7K reputation)SSCertifiable (5.7K reputation)

Group: General Forum Members
Points: 5658 Visits: 2011
Steve Jones - SSC Editor (5/13/2014)
call.copse (5/13/2014)
I do think there should be a safe environment where students can learn the theory without being overly concerned about practicalities - this could be the first year of the degree. More practical exposure after that would ensure that students are not intimidated by real things and doing real work - while the theory continues.

I guess here there is a problem with what the practical stuff might be - Java, .Net, T-SQL, Ruby on Rails, something less directly practical? My understanding is that Java is most common on undergrad courses, .Net is felt to be more sullied and 'vocational'. Still, as long as they stay away from PHP and Perl...


That's interesting. however, do we want the first or last year? When I started in CS, the first year was hard, really hard with theory and it weeded out people quickly. Seemed like a good way to raise quality.

However since then, I've thought that there are people that can learn to program and do well, but don't need the theory on how a quicksort works.


Having worked with a fair variety of programming types I can say weeding is a good plan - unfortunately there are not enough programmers with the right skills here right now. I'm trying to train up as many as I can but it's not quick work. Thing is even the best of programmers with the best of intentions can seem to leave behind code that is a little incoherent.

Of course there are a variety of roles to fill - I don't really even know how to categorise UI programmers who need to produce quite complicated code, but such types may well not really need sorting algorithms in their box of tricks. We are using a fair few more design oriented types who can do various types of fluid (responsive) layout. I think this is a relatively new role between design and back end programmer if you like, I'm sure there are numerous other types emerging. No mould will fit all cases I guess.
vliet
vliet
SSC-Addicted
SSC-Addicted (493 reputation)SSC-Addicted (493 reputation)SSC-Addicted (493 reputation)SSC-Addicted (493 reputation)SSC-Addicted (493 reputation)SSC-Addicted (493 reputation)SSC-Addicted (493 reputation)SSC-Addicted (493 reputation)

Group: General Forum Members
Points: 493 Visits: 773
It depends on the exact profession but in my opinion nothing can replace a solid theoretical background. Especially with databases, because thinking in sets instead of records requires a mind shift that needs a whole new approach, and mister Edgar Codd gave us a perfect way to establish that solid background. Knowing when to use a LEFT OUTER JOIN or even a FULL OUTER JOIN instead of an INNER JOIN to get the correct results depends highly on your understanding of the model behind the data. In my years as DBA I had to correct so many subtle errors caused by lack of understanding the relational model, too often from people who learned how to spell SELECT from books that only address toy systems. If you do not learn the theory ahead of any practice, you probably never will, because you will have other priorities once you start to use it out there in the wild. Programmers have their own paradigms to deal with, like problem domains, inversion of control, unit of work and lots of patterns that you need to have in your backpack before you write the first letter of actual code.

Apart from teaching students theory and involving them in real world projects, there should also be some room for stuff that makes IT a little bit more attractive. Start a socker match between robots build by students, for example.
Gary Varga
Gary Varga
One Orange Chip
One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)One Orange Chip (27K reputation)

Group: General Forum Members
Points: 27434 Visits: 6550
My early learning of programming (including database programming) used an iterative approach.

  • First you would be taught the very basics i.e. theory of syntax (at such a simple level that just says everything you type matters).

  • Next you would be shown a simple example of syntax; for programming something like output to console, for databases a SELECT statement.

  • Then you would do an exercise on it in order to demonstrate ones understanding.

  • Next you would be taught something further like the basics of relational theory and the associated syntax.

  • Then you would do an exercise on simple joins using foreign keys i.e. INNER JOIN.


  • Obviously, the lecturers gauged what they could group together in order to ensure that appropriate use of classrooms and labs were used.

    Unfortunately, most books are light on the theory as (to quote Koen) "it's boring". What the book purchasers like are the results on screen but they are unaware that they have been cheated from gaining true knowledge and understanding.

    Gaz

    -- Stop your grinnin' and drop your linen...they're everywhere!!!
    Go


    Permissions

    You can't post new topics.
    You can't post topic replies.
    You can't post new polls.
    You can't post replies to polls.
    You can't edit your own topics.
    You can't delete your own topics.
    You can't edit other topics.
    You can't delete other topics.
    You can't edit your own posts.
    You can't edit other posts.
    You can't delete your own posts.
    You can't delete other posts.
    You can't post events.
    You can't edit your own events.
    You can't edit other events.
    You can't delete your own events.
    You can't delete other events.
    You can't send private messages.
    You can't send emails.
    You can read topics.
    You can't vote in polls.
    You can't upload attachments.
    You can download attachments.
    You can't post HTML code.
    You can't edit HTML code.
    You can't post IFCode.
    You can't post JavaScript.
    You can post emoticons.
    You can't post or upload images.

    Select a forum

































































































































































    SQLServerCentral


    Search