Stories
Slash Boxes
Comments

SoylentNews is people

posted by LaminatorX on Wednesday October 15 2014, @03:06PM   Printer-friendly
from the considered-harmful dept.

The New York Times has coverage on the phenomenon of Developer Bootcamps, that claim to do in a matter of a couple of months what used to take at least a couple of years for an associate's degree. These cram courses are apparently getting about a 75% job placement rate.

Have any Soylentils either gone through these programs, or worked with others who have? If so, what are your experiences?

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 5, Insightful) by Tramii on Wednesday October 15 2014, @03:27PM

    by Tramii (920) on Wednesday October 15 2014, @03:27PM (#106283)

    I seem to remember a lot of similar programs popping up during the Dot-com bubble that were promising to teach people how develop websites...

    Seriously though, there's no way you can realistically cram 2+ years of training into a few months. (Honestly, it's hard to find a good dev job with just a 2 year degree.) I could understand if you were already a programmer in one language and wanted to learn another in an accelerated fashion. That I could see working. But if you are starting from scratch, there's not many companies looking to hire people with only a few months training and no real world experience.

    Any position that can be filled by random people off the street with two months training will be quickly filled and over-saturated. Soon after that it will be a race to the bottom on who will be willing to put up with the most crap and take the least amount of money. Eventually a few people will rise to the top and the rest will soon be out of a job and looking for the next quick/easy thing to jump on to.

    • (Score: 3, Interesting) by Sir Garlon on Wednesday October 15 2014, @05:30PM

      by Sir Garlon (1264) on Wednesday October 15 2014, @05:30PM (#106329)

      Any position that can be filled by random people off the street with two months training will be quickly filled and over-saturated.

      That is a fair description of truck driving, and I wouldn't say it's over-saturated, mostly because working conditions are so poor. (Not everyone wants to live out of a truck 5-6 days a week for $50K.) But you're right, the ease of entry into truck driving is what keeps the downward pressure on wages.

      --
      [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
  • (Score: 2) by TrumpetPower! on Wednesday October 15 2014, @04:01PM

    by TrumpetPower! (590) <ben@trumpetpower.com> on Wednesday October 15 2014, @04:01PM (#106295) Homepage

    Even if you could handwave away the impossibility for most people of learning modal logic and set theory and the rest (which is all that programming is, even if it's termed differently) in that short amount of time, so what? To actually put that skill to any sort of use, you still need a solid liberal arts grounding so you can understand what real-world systems you're trying to model.

    Suggesting you can become a developer in a few months is no different from suggesting that you can become a master mechanic in a few months, or an airline pilot, or an electrical engineer. Sure, maybe you can get to the point where you're probably not going to hurt people most of the time, but how many of those would you trust to work unsupervised or in critical functions?

    Something like this would probably be fantastic as an apprenticeship program; after you've got your degree, spend the next few months in "bootcamp" and then transition to an apprentice-style position under a senior developer for the next year or three. But if you come out of "bootcamp" thinking you have any business going near the production payroll system, or, indeed, as anything other than cannon fodder....

    Cheers,

    b&

    --
    All but God can prove this sentence true.
    • (Score: 2) by Alfred on Wednesday October 15 2014, @04:08PM

      by Alfred (4006) on Wednesday October 15 2014, @04:08PM (#106299) Journal

      you still need a solid liberal arts grounding

      What kind of liberal arts are you referring to? Art and psychology have not helped me code anything. If you mean the sciences part of liberal arts & sciences then I agree. I always thought it sad that things like math and physics had to be lumped under the same college as things like sociology. Maybe it is to raise the average pay and placement rate of the college.

      • (Score: 2) by TrumpetPower! on Wednesday October 15 2014, @04:17PM

        by TrumpetPower! (590) <ben@trumpetpower.com> on Wednesday October 15 2014, @04:17PM (#106301) Homepage

        Just to pick your example of psychology and my example of payroll systems...how do you expect to understand the purpose of the various validation / audit reports unless you've got some sort of understanding of the ways that things go worng, intentionally or otherwise?

        That certainly doesn't require a degree in psychology, and it might not even necessarily require an introductory course on the subject...but somebody who has a firm grasp of cognitive dissonance theory, even if more informally and intuitively than academically, is going to do a much better job creating that type of system than some code monkey who mindlessly and slavishly transforms poorly-written specifications into code.

        b&

        --
        All but God can prove this sentence true.
        • (Score: 1) by khallow on Wednesday October 15 2014, @08:39PM

          by khallow (3766) Subscriber Badge on Wednesday October 15 2014, @08:39PM (#106393) Journal

          how do you expect to understand the purpose of the various validation / audit reports unless you've got some sort of understanding of the ways that things go worng, intentionally or otherwise?

          You'll still need some experience with the phenomena, say three months of accounting/auditing or the like. And given the observable, rather high cognitive dissonance of a lot of new college graduates, having a college education, even a liberal arts one, may make the problem somewhat worse not better - at least till they get some real world experience.

      • (Score: 3, Insightful) by MrGuy on Wednesday October 15 2014, @04:18PM

        by MrGuy (1007) on Wednesday October 15 2014, @04:18PM (#106302)

        Art and psychology have not helped me code anything.

        Really? These are the two MOST useful liberal arts I find for programming.

        If you're making anything with a graphical element, having some appreciation for art is a must. Color theory. Composition. How to draw the eye to certain elements and away from others. What flows, what looks jarring. How different visual styles work. Sure, knowing the names of the key artists of the Dadaist movement is less useful, but having a grounding in the key concepts of visual style is huge.

        And psychology? If you're designing software for anyone other than you, you need empathy with the users. What are they trying to do? How might they react to certain things? What will someone expect, and what will confuse them? What logical leaps are people likely to make (even if the text of the thing tells them something else)? Read "The Design Of Everyday Things" (originally titled "The Psychology of Everyday Things") or "Don't Make Me Think!" and tell me psychology isn't useful for programmers.

        • (Score: 3, Interesting) by RaffArundel on Wednesday October 15 2014, @05:42PM

          by RaffArundel (3108) on Wednesday October 15 2014, @05:42PM (#106331) Homepage

          I suppose if you only do process automation you could get away with weaknesses in those areas. However, everything I have done as a professional coder started with business requirements. Without a doubt the liberal arts of communication and psychology helps a great deal in making sure both sides understand. Any decent art class (even the easy one for engineers) should cover visual space and interpretation, a boon to understand how to present and model anything that is going to be consumed by a customer. Critical thinking and general problem statement/solving came more from the liberal arts side rather than the College of Engineering, which seemed focused on specific problem solving.

          I moonlighted as an adjunct professor at the local community college and taught an "intro to programming class" over a decade ago to people who probably wouldn't go on to be career programmers, or if they did they would move on to other courses. I had 16 weeks and it was a 4 credit course (3 classroom, 1 lab) and here is what I covered:
          1. Syntax. I started with "this is a line of code", "this is how you terminate", "this is how you display", "this is a method/function/procedure" (and discussed why you would use one), "this is flow control" (if/then/else, loops)
          2. Build. This happens around the previous terminate and display, so we can do the epic HELLO WORLD. The student learns about headers/imports and depending on the language mandated by the curriculum, syntax checking and debugging compiler flags and how to deal with problems.
          3. Patterns. These are the closet thing we can do for "experience" that they simply won't have. Yes, it is very amusing to just tell them to create a program to sort something, but I suspect nowadays they would just Stack the assignment. I walk them through common tasks and have them extend it to a specific case. Some discussion about design patterns, but mostly so they know they exist instead of jumping into a lot of detail.
          4. Each week they would have a lab assignment, and once we were into ~3rd-4th week it would be building components for the final project. This allowed me to touch on application architecture, but not in any great detail.

          The class was hands on, and they spent more than that "1 hour" in the lab. End result - unless they were already at least a hobbyist programmer already there was no way I would call them a programmer. I would not call any of them a developer. Doubling the amount of time probably wouldn't help, because you need a lot of experience to go with that training for it to click. So, my (formerly) professional verdict - nope. If I saw a resume with just Bootcamp training, I would assume the next two years of education is on me and my company - probably directly, every frickin' day at work.

          Bringing this full circle, if you have no secondary education then I am going to additionally assume (right or wrong) that I am going to have a hard time educating you and there are other candidates without that risk. If you want to go the bootcamp route, might I recommend getting experience contributing to an open source project? That would tell me you can work in a team and maybe you can code.

          • (Score: 2) by maxwell demon on Wednesday October 15 2014, @06:05PM

            by maxwell demon (1608) on Wednesday October 15 2014, @06:05PM (#106339) Journal

            Yes, it is very amusing to just tell them to create a program to sort something, but I suspect nowadays they would just Stack the assignment.

            You don't teach sorting so that people know how to sort (or at least you shouldn't). You teach sorting so people

            • get to understand recursion in an example where it is useful, and
            • get a basic understanding of complexity, so they don't write code that looks fine on small samples, but simply doesn't scale.

            Similarly you don't teach linked list so people learn to implement linked lists. You teach linked list so people learn about handling pointers, and about how data structures affect the efficiency of different operations.

            Design patterns are no replacement for this. Or at least I know of no design patterns which use pointers or recursion. No, there's nothing wrong with teaching design patterns. It's just wrong to think that's sufficient.

            --
            The Tao of math: The numbers you can count are not the real numbers.
            • (Score: 1) by linuxrocks123 on Wednesday October 15 2014, @07:03PM

              by linuxrocks123 (2557) on Wednesday October 15 2014, @07:03PM (#106358) Journal

              I totally and completely agree with you in general, but I would replace the reason for sorting as general algorithms rather than recursion in specific. The only recursive sort I know off the top of my head is mergesort.

              • (Score: 2) by No.Limit on Wednesday October 15 2014, @07:28PM

                by No.Limit (1965) on Wednesday October 15 2014, @07:28PM (#106368)

                heapsort (for the heap structure)
                quicksort
                radix sort

                but then you probably wouldn't use recursion for bubble sort, insertion sort, selection sort (ofc you're always free to do loops with recursion, but unless you're coding in a functional language that'd be quite forced).

                Though I think sorting isn't really taught for recursion, but rather for complexity theory and also because it's one of the most important problems to solve. Being able to decide which sorting algorithm is good for which situation can be very useful in many situations.

                I believe some C/++ libraries use quick sort for their sorting which is worst case O(n^2), which is way worse than e.g. merge sorts worst case O(n*log(n)). But quick sort is still really good because it's in-situ and average O(n*log(n))

                Recursion can be taught very well with tree structures (binary trees, balanced trees, abstract syntax trees etc) or simply with functional languages.

                • (Score: 1) by ld a, b on Wednesday October 15 2014, @09:58PM

                  by ld a, b (2414) on Wednesday October 15 2014, @09:58PM (#106426)

                  Complexity theory is undermined by sorting algorithms.
                  In the beginning, we had a O(n) algorithm, then we found out a way of sorting in O(n log n) time, finally, we all settled for an O(n^2) algorithm because it is wipes the floor with everything else on average.
                  Sounds convincing.

                  --
                  10 little-endian boys went out to dine, a big-endian carp ate one, and then there were -246.
                  • (Score: 2) by maxwell demon on Thursday October 16 2014, @07:00AM

                    by maxwell demon (1608) on Thursday October 16 2014, @07:00AM (#106549) Journal

                    The current state of the art is Introsort. Almost the same speed as Quicksort, but complexity O(n log n).

                    Anyway, Quicksort teaches an important lesson about complexity theory as well: Worst case complexity is not the only consideration you should take into account.

                    Oh, and what is the O(n) algorithm you are speaking about?

                    --
                    The Tao of math: The numbers you can count are not the real numbers.
                    • (Score: 1) by ld a, b on Thursday October 16 2014, @11:34AM

                      by ld a, b (2414) on Thursday October 16 2014, @11:34AM (#106577)

                      Sorry to disappoint you if you were hoping for something else, but the answer is radix sort which was developed to sort US census data back when tabulating machines were the bleeding edge.

                      --
                      10 little-endian boys went out to dine, a big-endian carp ate one, and then there were -246.
                      • (Score: 2) by No.Limit on Thursday October 16 2014, @07:13PM

                        by No.Limit (1965) on Thursday October 16 2014, @07:13PM (#106768)

                        Radix's sort O(n) runtime is quite controversial as it's actually O(n*log(k)) where you can have at most k different elements that must all have a binary representation.

                        More on this here [stackoverflow.com]

                        For comparison only sorting algorithms (much smaller constraint) O(n*log(n)) is proven to be the best worst case running time.

            • (Score: 2) by RaffArundel on Wednesday October 15 2014, @09:18PM

              by RaffArundel (3108) on Wednesday October 15 2014, @09:18PM (#106410) Homepage

              You don't teach sorting so that people know how to sort (or at least you shouldn't). You teach sorting so people...

              Correct, and you apparently misunderstand my point. I am saying that sorting is an excellent programming teaching opportunity, because it is inherently unintuitive to write an efficient sort. In fact, you have them try it, so you can walk them through the concept of an algorithm and breaking down the problem into units. I've done it and it is very successful to get some basic points across. However, now they would just look up their assignment on-line and I'd get the same half-assed quicksort which would be obviously cribbed from the web. I was bemoaning the state of students nowadays!

              Design patterns are no replacement for this.

              Replacement for what? I didn't say that, did I? I said patterns (not Design Patterns, patterns in general) are replacements for experience, basically allowing them not to make those rookie mistakes everyone tends to do when starting out. Patterns like limiting scope of variables, creating methods from duplicate lines of code, etc. Those kinds of patterns. Recursion is a pattern: repeatable technique that's repeatable, pun intended. I mentioned Design Patterns so the students know there are some "best practices" out there. I did do some pretty heavy MVC discussion for the other class but that was web programming. For the beginners it was only a taste.

              I can see me trying to edit my post down for length may have impacted the clarity!

        • (Score: 2) by Thexalon on Wednesday October 15 2014, @06:11PM

          by Thexalon (636) on Wednesday October 15 2014, @06:11PM (#106342)

          Sure, knowing the names of the key artists of the Dadaist movement is less useful

          Well, the names of the key artists don't help, but knowing about the Dadaist embrace of chaos and irrationality certainly helps in understanding most organizations!

          --
          The only thing that stops a bad guy with a compiler is a good guy with a compiler.
      • (Score: 2) by Phoenix666 on Thursday October 16 2014, @03:25AM

        by Phoenix666 (552) on Thursday October 16 2014, @03:25AM (#106520) Journal

        I always thought it sad that things like math and physics had to be lumped under the same college as things like sociology.

        That implies the social sciences are not as rigorous as "real" science. They employ the same quantitative tools as the "hard" sciences (at least, they did at my alma mater the University of Chicago), but their task is arguably much harder because your subjects are sentient beings who are always deciding to fuck with your model because that's just what homo sapiens do. So designing experiments that have explanatory and predictive power is incredibly harder than poking frogs in the same place who will always jump because that's what frogs do. That's why Milgram was so famous (the Six Degrees of Separation guy) because he kind of stands alone as a brilliant social scientific experimentalist.

        But there is an attitude among acolytes of the "hard" sciences that their social science peers aren't good at math or are somehow intellectually lesser, and it's not true.

        --
        Washington DC delenda est.
    • (Score: 1) by Horse With Stripes on Wednesday October 15 2014, @04:46PM

      by Horse With Stripes (577) on Wednesday October 15 2014, @04:46PM (#106313)

      Suggesting you can become a developer in a few months is no different from suggesting that you can become a master mechanic in a few months, or an airline pilot, or an electrical engineer. Sure, maybe you can get to the point where you're probably not going to hurt people most of the time, but how many of those would you trust to work unsupervised or in critical functions?

      So you're saying I could get my MacGyver degree in about year? WooHoo!

  • (Score: 2) by PizzaRollPlinkett on Wednesday October 15 2014, @04:22PM

    by PizzaRollPlinkett (4512) on Wednesday October 15 2014, @04:22PM (#106303)

    Yeah, all that matters is cheap. Quality doesn't matter. Experience doesn't matter. Careers are becoming impossible. Just churn out as many barely-functional "coders" to make unmaintainable code that will have to be rewritten to be improved in the future. No one cares about anything but getting sloppy, barely-functioning code working as cheaply as possible. Really sad, because I've basically devoted my working life to writing solid, maintainable, robust, well-designed code that can be extended and built upon. And that's basically worthless these days. It's getting to where a career isn't possible in software development, because no one wants experience. All that matters is cheap. Do it cheap today, and rewrite it cheap tomorrow if changes are needed. "Coders" are not professionals with careers, they're people who have minimal training and are used and discarded by companies. How many of these bootcamp people will be around in a few years? Probably none. But there will be a new batch going through these bootcamps, taking free online courses, and so on. I never thought I would see the software development career field turn into this.

    --
    (E-mail me if you want a pizza roll!)
    • (Score: 0) by Anonymous Coward on Wednesday October 15 2014, @04:30PM

      by Anonymous Coward on Wednesday October 15 2014, @04:30PM (#106307)

      and what exactly is the problem with this?

      We real world developers are just getting more job security.
      Who else is going to fix all the fuckups?

      • (Score: 0) by Anonymous Coward on Wednesday October 15 2014, @05:27PM

        by Anonymous Coward on Wednesday October 15 2014, @05:27PM (#106327)

        Who else is going to fix all the fuckups?
        The consulting group in india. They have years of experience doing exactly that. They just dont tell you they have no one that has years of experience doing it but the company does!

        I did not know how bad it was until I had to 'mange a group from india'. We hired 5 people for 20k. Out of that 5 maybe 1 or 2 were any good. I could flip out the crappy ones for better ones until I had a decent crew. 20K... That is what you are competing against.

    • (Score: 2) by Sir Garlon on Wednesday October 15 2014, @05:48PM

      by Sir Garlon (1264) on Wednesday October 15 2014, @05:48PM (#106334)

      I remain convinced that software is the critical infrastructure of modern society and there will always be a place for professionals who can design and implement reliable software. It's just that there is also a place for slapdash "coders" who throw together crappy Web apps or iPhone apps and then move on to the next thing.

      To draw an analogy with the building trades, I see a lot of builders who do cheap work on houses hiring low-skilled crews who can't (or don't) make the floors level and the walls plumb. Those contractors are not the same contractors who do heavy construction: bridges, dams, large buildings. The fact that a lot of houses are thrown together as cheaply as possible does not threaten the careers of the civil engineers and licensed welders and architects and electricians who work on the big projects.

      If you are an engineer or a craftsman who finds himself working for a fly-by-night company, then your only problem is that you have to move to somewhere that will respect your professionalism. But that's in your best interest anyway.

      --
      [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
    • (Score: 1) by ghost on Wednesday October 15 2014, @07:14PM

      by ghost (4467) on Wednesday October 15 2014, @07:14PM (#106360) Journal
      A 75% placement rate where? bay area startups which will be bankrupt in 6 months?
      • (Score: 2) by VLM on Wednesday October 15 2014, @11:59PM

        by VLM (445) on Wednesday October 15 2014, @11:59PM (#106463)

        Exactly.

        claim to do in a matter of a couple of months what used to take at least a couple of years for an associate's degree.

        I don't live in the bay area and my associates wasn't / isn't worth toilet paper. (What it was worth was 56 of the cheapest transfer credits I ever earned toward the eventual BSCS but thats another topic)

        Even worse I don't think the bubble has the half year left that it would take to get the piece of toilet paper.

  • (Score: 2, Interesting) by zugedneb on Wednesday October 15 2014, @04:46PM

    by zugedneb (4556) on Wednesday October 15 2014, @04:46PM (#106312)

    There seems to be a misunderstanding here about what programming is.

    Let me give an anecdote: once I took a computer Graphics course. We used the book by Edward Angel, in that version he had Opengl and C. The teacher was a local hotshot (derogatory) in functional programming, and instead of using C and the actual opengl commands, he wrote some scary shit in python, that was used as material for labs. Not many liked his code at all.
    But here is the fun thing: first week there was 1 phd helping out, second week 2 of them, and guess what, third week the professor himself came down to the computer hall to help out...
    I was angry and tired, because I had some other, actually difficult, stuff to do, so I wanted to mock him, so I asked him if it was the success of his code that brought him down.
    Since this guy is an FP person, sarcasm was completely lost on him, instead his said this:
    There seems to be 2 groups of people: one that understands liner algebra and opengl in general, the theory so to speak, but do not care very much for the actual coding - they coerce the phd's to fill in the gaps =) , and the other group who seems to do animations and other kinds of "magic" with the code, but don't actually understand a shit - the artists...

    This made me, after some years of thinking (I am slow wtf) realise that, me, as an EE, do not use my LANGUAGE skill when I program, instead I think in the same way as when I solve electronics or automatic control problems: I stare into my head, and can kind of see the object with "the inner EYE"... (as Simmons says in his book on topology and analysis, you have top learn to see with the eye of the mind)

    Then there is the second kind of coder: the one who relies on the linguistic skill of the brain - there is really not much I can say about this type, except that they like to float around on "higher level" programming languages, and they tend not to know a lot of math or hardware.

    I would not be amazed, if it is this second type of people who find liberal arts and crash courses useful... Neither do they, likely, understand the kind of complexity code that lives near the hardware or near math requires, but they have an easy time grasping the complexity of human interaction, or so it seems...

    Fill in the gaps, pls pls pls...

    --
    old saying: "a troll is a window into the soul of humanity" + also: https://en.wikipedia.org/wiki/Operation_Ajax
    • (Score: 0) by Anonymous Coward on Wednesday October 15 2014, @05:26PM

      by Anonymous Coward on Wednesday October 15 2014, @05:26PM (#106326)

      Functional languages are not linguistics. Quite the opposite: They tend to reduce the linguistic element to the absolutely required minimum. There's more linguistics in your typical OOP language, or even in standard procedural languages, than in pure functional languages. Indeed, what people tend to hate most about the prototypical functional language, Lisp, is the absolutely syntax. Which for almost everything is: Open parenthesis, sequence of Lisp objects, close parenthesis.

      • (Score: 1) by zugedneb on Wednesday October 15 2014, @08:56PM

        by zugedneb (4556) on Wednesday October 15 2014, @08:56PM (#106403)

        If you do not have an internal "model", that is, you do not understand how some thing work or is made, but you are able to "use" it, than that is language.
        You formulate a sequence of operations on a set of objects to achieve a goal that is composed by those objects. Yepp, that is language.

        The issue here is context: there were some people who had no problem using code that was untyped and nonlinear to make things happen. They did not give a damn how things were typed, what was in the dictionaries and tuples... They did not give a damn in that when you looked at a function, you could not tell, by the declaration, what type of objects it took. They learned to mimic the thought process of the teacher and made things happen. The problem was that they did not have to understand the theory behind it to make it work.
        They learned to speak the "language" of the teacher.

        --
        old saying: "a troll is a window into the soul of humanity" + also: https://en.wikipedia.org/wiki/Operation_Ajax
  • (Score: 1) by lizardloop on Wednesday October 15 2014, @04:47PM

    by lizardloop (4716) on Wednesday October 15 2014, @04:47PM (#106315) Journal

    From my own experience most of my academic learning was utterly useless when it came to being a professional programmer. All the main disciplines of writing good code in a professional environment were learnt over my first few jobs and continue to be learnt every project I work on. All the lecturers at university had never really worked in a real company and had spent their whole lives tinkering with whatever their pet field of research was.

    This year I have taken on an 18 year old with no academic experience of programming. It has taken nearly six months but he is now able to carry out basic programming tasks with a little guidance and a good specification to work to. No he won't ever build his own compiler or create a better database. But if you need someone to "move box A from this screen to some other screen and change the validation" then he can do that. Quite a lot cheaper than most other programmers as well.

    • (Score: 2) by strattitarius on Wednesday October 15 2014, @07:50PM

      by strattitarius (3191) on Wednesday October 15 2014, @07:50PM (#106375) Journal
      This. I did the same, but it was with our Network/System Admin. We would sit in the conference room about once a week and work on a bug or feature together and then I would send him off to finish up. He usually came back with a few questions, but was able to complete the task. This carried on for a year or so and he is at a point where he could maintain some of my code. He has a long way to go, but he is headed in the right direction. Also he would now be an amazing hire for a sys admin. His increased knowledge of code and how the computer works has surely made him a better administrator.
      --
      Slashdot Beta Sucks. Soylent Alpha Rules. News at 11.
    • (Score: 0) by Anonymous Coward on Wednesday October 15 2014, @08:51PM

      by Anonymous Coward on Wednesday October 15 2014, @08:51PM (#106400)

      The problem is that they teach computer _science_ and then you work in computer software _engineering_. That's like studying physics and then working as an engineer. And from my professional experience as a structural engineer - this doesn't work. Physicists may be smart but they simply aren't engineers and they don't have the requisite skills - physics theories and building codes are miles apart even if they are based on the same basic science. Getting the theoretically perfect answer and getting a cost-effective solution are two different things as well.

      When I switched to computer consulting after a big slump in my engineering field, I saw the same problem. Kids who were knowledgeable in computer theory couldn't solve simple problems in the real world. What the computer field needs is software engineering instruction - largely absent in the real world (most of what passes for "engineering" in software is a pathetic joke.)

      What is also needed is professional standards. you need to be in the College of Physicians to be a doctor, a member of the bar to be a lawyer, a registered professional engineer to practice engineering, etc. If you know how to fart, you can call yourself a programmer.

      • (Score: 2) by clone141166 on Thursday October 16 2014, @12:30AM

        by clone141166 (59) on Thursday October 16 2014, @12:30AM (#106475)

        There are some of us who took our software engineering education seriously and actually tried to go above and beyond just passing the courses. But you are right, with universities handing out degrees like candy there really needs to be a proper professional accreditation body similar to what most medical disciplines have. And the bar for being accredited as a programmer needs to be set MUCH higher.

        With the entire world basically run by computers, it is extremely worrying that there aren't more stringent qualification standards placed on programmers as a profession.

        • (Score: 0) by Anonymous Coward on Thursday October 16 2014, @03:32AM

          by Anonymous Coward on Thursday October 16 2014, @03:32AM (#106521)

          It goes beyond what the universities teach. Companies are willing to hire without regard for education. Furthermore, open source products are ubiquitous and no validation of credentials is required for contributors. While some projects have some minimum standards and are verified, there are others that are put together by hacks. I know of one where the lead (paid) programmer openly criticized the technology chosen for the project, yet had the final say on what was accepted. The result is that there is as much spaghetti code in that project as in any I have seen.

          Given that trillions if dollars of wealth is tied up in the world-wide computer networks, the inconsistent standards make the thing something of a house of cards.

          Heartbleed was estimated to have cost a half billion dollars ( at 500,000 servers worldwide, that's only $1000 per server to fix - nt an unreasonable estimate). That due to one line of code that was sloppily written and not properly verified.

    • (Score: 2) by clone141166 on Thursday October 16 2014, @12:44AM

      by clone141166 (59) on Thursday October 16 2014, @12:44AM (#106482)

      I think both education AND experience are necessary to be truly great at anything.

      I've heard a lot of people claim that degrees are useless and that they were educated by the "school of the world" or some rubbish. There are certainly a lot of holes in the current tertiary education system, and I'm sure there are some very motivated people who can just pick things up very quickly without much formal education. But for 99% of humanity, to be good at anything you need to learn about it first and then experience it.

      Degrees expose you to a lot of great ideas and ways of thinkings that you may not otherwise ever encounter. But at the same time they can be filled with a lot of junk that you will never use ever again. On the other hand just working a job really only gives you a very narrow perspective. You might become exceedingly good at your particular specialised field of work, but without a formal education I think you would really miss out on a lot of opportunities to apply knowledge and ideas from other areas to your particular specialisation.

  • (Score: 2) by velex on Wednesday October 15 2014, @05:40PM

    by velex (2068) on Wednesday October 15 2014, @05:40PM (#106330) Journal

    Two months! Wow!

    Here's the problem. If you take somebody with no talent, you're not going to get anywhere.

    However, I have been blessed with an apprentice who has shown great talent and sort of confirmed a long-standing conjecture I've had. This person is an English major. I've often thought that those who fail at human language are doomed to fail at computer language. Failure to understand the parts of speech, syntax, etymology, and such predicts a failure to appreciate the punctuation in computer languages and why misplacing a comma or using a comma where a semicolon would be appropriate—a common mistake in grammar—will cause compilation to blow up.

    I was able to bring this person to a point where she could practice basic programming logic in the space of roughly two months. So, it's possible.

    However, it requires disciplined thinking. Perhaps that's what comes from obtaining an English degree. My conclusion is that you can't take a tabula rasa and wind up with a programmer in 2 months. You can, however, take an individual who thinks deep thoughts and has a deep understanding of the logic of language and turn her into a programmer in 2 months.

    My other observation from my recent experience is that this person was lightning quick to pick up on the mathematics of programming. Perhaps she should have chosen a different degree, but as I've said before, I'm an individual and so is she. That's the path she choose, but, nonetheless, it clearly didn't hamper her at least.

    There's clearly more at work than "all men" and the "patriarchy" when it comes to the reason cisgendered women don't pursue STEM degrees. But that's probably a digression.

    • (Score: 1, Insightful) by Anonymous Coward on Wednesday October 15 2014, @06:46PM

      by Anonymous Coward on Wednesday October 15 2014, @06:46PM (#106351)

      I have had similar experience. However it was with someone who had a phd in nuclear physics.

      The problem I ended up with is I ended up with a competent (not great) programmer. But one who had no idea why things went to crap because she had no grounding in picking good algs up front. Why one solution was better than another. That took 2 more years. I have done this 3-4 times now with different people from different backgrounds.

      If they can follow simple instructions and make them they can at least be competent. To be great you need to know why a variable is filled in what did it and why. If you do not do that you end up with tons of 'debug' code everywhere. I usually recommend the book debugging by David J. Agans. It lays out how to find issues and how to learn how to fix them.

      These days I do not have much opportunity to do it anymore. I have been relegated to writing loops over and over and people who 'are smarter than me' decide what loops to write. I can usually point at their code and find out why it is wrong. They do not even begin to understand why. As they have no concept of what the hardware/compiler/interpreter is doing to their software.

    • (Score: 2) by strattitarius on Wednesday October 15 2014, @08:02PM

      by strattitarius (3191) on Wednesday October 15 2014, @08:02PM (#106377) Journal

      This person is an English major. I've often thought that those who fail at human language are doomed to fail at computer language.

      I, disagree completely, because the English language, a kludge it is. Perhaps being able, and knowing when, to ignore errors, in language, that is, is more an indication, at least in my opinion, of programming ability.

      But seriously, I am not sure that is necessarily true. English is a kludge. It has so many exceptions that making rules is useless (i before e for example). Not to mention doing well in English means using and/or identifying personification, foreshadowing, and those type of things. I apparently suck at story telling, so I wasn't the best in English classes.

      --
      Slashdot Beta Sucks. Soylent Alpha Rules. News at 11.
      • (Score: 3, Interesting) by strattitarius on Wednesday October 15 2014, @08:32PM

        by strattitarius (3191) on Wednesday October 15 2014, @08:32PM (#106388) Journal
        To add to my comment, I completely suck at spelling. If not for spell check, people would probably assume I was completely uneducated, and perhaps half retarded. But again that is because there is little logic to how things are spelled (some at least). conchense? conchence? conchance? Conscience? Really?
        --
        Slashdot Beta Sucks. Soylent Alpha Rules. News at 11.
        • (Score: 1) by khedoros on Wednesday October 15 2014, @09:39PM

          by khedoros (2921) on Wednesday October 15 2014, @09:39PM (#106415)
          I think the other commenter's use of "English" as an example might have caused you to miss the point.

          This person is a [language] major. I've often thought that those who fail at human language are doomed to fail at computer language. Failure to understand the parts of speech, syntax, etymology, and such predicts a failure to appreciate the punctuation in computer languages and why misplacing a comma or using a comma where a semicolon would be appropriate—a common mistake in grammar—will cause compilation to blow up.

          The point is that every language has a structure, and an appreciation for that structure, and for the history of the language, bodes well for the ability to understand other languages.

          As an example, in Lisp, "car" and "cdr" don't make logical sense *unless* you know the history behind them, and the connection to assembly language macros on the IBM 704. One might expect those functions to be called "first" and "rest", or something similar. Similarly, the spelling of "conscience" only makes sense when you look at its history, with its construction in Latin via translation from a Greek phrase, its inclusion in French, and the interactions between France and England that allowed its entry into English.

          The point is: programming languages are collections of arbitrary rules of grammar and vocabulary, which must be strictly adhered to to communicate your intentions to a computer. Humans have a heuristics and probability-based "compiler" for understanding language, but we aren't so lucky with computers (since no one has figured out how to program human intuition into one). A person who knows how to communicate clearly by following and understanding established conventions in human language will be well-equipped to do the same thing with machine language, including handling all the arbitrary crap that a lot of languages have. You want inconsistent and arbitrary? Try Perl. Or Javascript. They'll give English a run for its money.

          • (Score: 2) by strattitarius on Thursday October 16 2014, @01:54AM

            by strattitarius (3191) on Thursday October 16 2014, @01:54AM (#106500) Journal
            That is interesting. But by that standard, wouldn't you expect those that do well with foreign languages would do really well with programming? Or vice-versa? But I have never noticed a very strong correlation between those two. It certainly doesn't exist for me.

            What's your take on ability/proficiency of learning foreign languages and programming?
            --
            Slashdot Beta Sucks. Soylent Alpha Rules. News at 11.
            • (Score: 1) by khedoros on Thursday October 16 2014, @03:08AM

              by khedoros (2921) on Thursday October 16 2014, @03:08AM (#106516)
              My take is that someone with an aptitude for understanding the structure of language (whether foreign or not) would be more likely to also have an aptitude for programming. That doesn't mean that this theoretical person would have an interest in both pursuits, and I think that that's an important part of what makes someone successful at something. Either here or on the green site, there was a recent article about how curiosity aids learning. So often, programming is considered in its relation to math, and languages are considered in their relations to softer studies. I'd posit that the lack of correlation between aptitude that you've observed is more due to social factors than to a lack of a relationship between them.
      • (Score: 2) by Fnord666 on Wednesday October 15 2014, @10:12PM

        by Fnord666 (652) on Wednesday October 15 2014, @10:12PM (#106438) Homepage

        But seriously, I am not sure that is necessarily true. English is a kludge. It has so many exceptions that making rules is useless (i before e for example). Not to mention doing well in English means using and/or identifying personification, foreshadowing, and those type of things. I apparently suck at story telling, so I wasn't the best in English classes.

        So you're saying that people who understand English well should also be well suited to picking up Perl?

        • (Score: 2) by velex on Thursday October 16 2014, @12:24AM

          by velex (2068) on Thursday October 16 2014, @12:24AM (#106472) Journal

          Haha, who knows?

          I used a subset of Ruby to teach primary concepts (we did not get into the lambda-specific kind of iteration in Ruby and instead used very non-Ruby-ish iteration by incrementation) and warned her that should she have a problem and decide a regular expression would be the solution, then she'd have two problems!

          But then my own documentation is filled with regular expressions to input to Vim to massage data files… lol

  • (Score: 1) by jorl17 on Wednesday October 15 2014, @10:36PM

    by jorl17 (3747) on Wednesday October 15 2014, @10:36PM (#106445)

    I'm now teaching a course which aims to turn people with high mathematical and logical skills into programmers. Several factors were taken into account and it was concluded that to create highly competent programmers (and, do note, nothing beyond "just" a programmer) they would have to have these skills and need at least a year. It's intensive work throughout around 8 months, 10 hours a day. Last year's edition was met with great success, and the companies which partly funded this are already finding these programmers to be highly valuable (there was a high need for programmers, not engineers, in these companies).
     
    My opinion is that 2 months is impossible. Just outright ridiculous to think that good programmers are actually being made. Sure maybe they'll be able to build this particular thing, or that specific thing, but they will lack a much needed deeper understanding of some concepts..

    • (Score: 2) by jackb_guppy on Wednesday October 15 2014, @11:06PM

      by jackb_guppy (3560) on Wednesday October 15 2014, @11:06PM (#106454)

      A year does not cover it either.

      There are two needs both are independent of each other.

      1) What is ... What is name? A date? A time? An address? -- hence asking questions and understanding the world as whole. Think of the kid that takes part watch and puts it back together. Understanding the relationships and how the sum of the parts are greater than whole.

      2) How to do ... How to code a loop. How to layout program for clear and efficient design and understanding for the next person.

      These traits are needed to be programmer. Not a coder, a programmer.

      Anyone can write code. Excel VBA is coding. Through sh*t against the wall and see if it sticks. Seen some great project with cr*p code in the bowels, no one said "Enough!"

      • (Score: 1) by jorl17 on Thursday October 16 2014, @09:56PM

        by jorl17 (3747) on Thursday October 16 2014, @09:56PM (#106815)

        You might be right. But do understand that, as I said, these people aren't meant to be asking that many questions. They'll mostly just act as tools to get the job done. They have to be given very specific orders and not have that many architectural decisions going on. The entities that funded this program know this, and they've been thrilled with last year's outcome because of that. Do note, however, that these people aren't the "average Joe". They're highly skilled people in maths, logics, etc who are harding a hard time finding a job here (Portugal). Some of them have PhDs!

        But yeah, of course a year doesn't cut it either, except for very specific scenarios.

        Actually, you are right. It's just semantics. They are coders, not programmers, nor engineers. They might become one or the other if they keep investing in their studies, but right now they're just coders.