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: 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.

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (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) Subscriber Badge 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) Subscriber Badge 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) Subscriber Badge 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.