Slashdot Mirror


The Site That Teaches You To Code Well Enough To Get a Job

HughPickens.com writes Wanna be a programmer? Klint Finley reports that software developer Katrina Owen has created a site called Exercism.io where students can learn to craft code that's both clear and efficient and get a lot of feedback on what they're doing right and what they're doing wrong. Exercism is updated every day with programming exercises in a variety of different languages. First, you download these exercises using a special software client, and once you've completed one, you upload it back to the site, where other coders from around the world will give you feedback. Then you can take what you've learned and try the exercise again. The idea was to have students not only complete the exercises, but get feedback. Exercism.io now has over 6,000 users who have submitted code or comments, and hundreds of volunteers submit new exercises or translate existing ones into new programming languages. But even Owen admits that the site is a bit lacking in the usability department. "It's hard to tell what it is just by looking at it," she says. "It's remarkable to me that people have figured out how to use it."

25 of 131 comments (clear)

  1. Yep, ready for a job in coding by xxxJonBoyxxx · · Score: 4, Funny

    >> the site is a bit lacking in the usability department

    Yep, that'll get 'em ready for a job in coding. You really don't need any of that new-fangled usability crap to win customers or support people anyway - if it was hard to write, it oughta be hard to use.

    1. Re:Yep, ready for a job in coding by amicusNYCL · · Score: 4, Insightful

      I like this quote:

      "It's remarkable to me that people have figured out how to use it."

      That is a truly self-aware software developer saying that. Sometimes I feel the same way, I'll design something that will work really well, but once I put it in front of people I realize it doesn't make a lot of sense. But still, there are people who can dive in and pick it up from the start. It's remarkable to me as well when people can figure out how to use my software.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
  2. How is that supposed to work? by 0xdeadbeef · · Score: 3, Interesting

    Who is giving away their time to code review the work of thousands of neophyte programmers?

    Sounds to me more like the blind leading the blind.

    1. Re:How is that supposed to work? by scourfish · · Score: 2

      That's the dark nature of capitalism. If your job becomes redundant, you have to evolve or find another line of work.

    2. Re:How is that supposed to work? by oodaloop · · Score: 3, Insightful

      If all that's keeping your salary high is that people haven't gotten minimal training off a website, maybe your salary is too high.

      --
      Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
    3. Re:How is that supposed to work? by gstoddart · · Score: 4, Insightful

      LOL ... the hacker nature which can be taught is not the true hacker nature.

      --
      Lost at C:>. Found at C.
    4. Re:How is that supposed to work? by amicusNYCL · · Score: 5, Insightful

      Who is giving away their time to code review the work of thousands of neophyte programmers?

      Probably exactly the same kind of people who answer questions on Stack Overflow or any of the other multitude of programming fora. Believe it or not, but some people like to help just because they enjoy it. I do it because answering random questions can be a nice break in the middle of work and it keeps me thinking about programming (especially problems that I wouldn't encounter in my normal work flow). It helps keep me sharp instead of only ever thinking about what I'm working on.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    5. Re:How is that supposed to work? by Archangel+Michael · · Score: 4, Insightful

      The hacker nature starts when a kid is six years old and takes apart a bicycle (or whatever). This is where the dad takes the kid and makes him put it back together. And then takes the bike apart, and does it again, only this time, letting the kid "modify" the bike. Hacker Nature is often drilled out (WTF are you doing, hope your happy, have fun not riding your bike because I am not helping you fix it) of kids by parents who are too busy to encourage it. I've seen plenty of parents ruin their kids with attitudes of "no".

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
    6. Re:How is that supposed to work? by meta-monkey · · Score: 4, Insightful

      My salary probably is too high. But don't tell my boss.

      It's really easy to say "Oh, that'll never be a threat to me, because I'm so skilled!" Do I think some website is going to turn out good coders? No, but I think that combined with the other 1500 "teach kids to code" initiatives it'll produce enough "good enough" to be death by 1,000 cuts.

      My wife is a photographer. A really good one...degree in photojournalism, been all over the world with the Army covering stories for them, then got into weddings and portraits, has a studio, is a PPA Master Photographer and Photographic Craftsman. Digital came out and it looked "easy" and every 23 year old girl with a camera and a dream suddenly wanted to "follow her passion" and be a photographer. And entire industry sprang up to take these girls' money and teach them photography, but mainly sell them cameras and photoshop actions and cute camera bags etc etc. Well all the old school photographers looked at this and laughed. "The work they do is terrible! The people teaching them are terrible!" Very true. It's like 98% garbage from any kind of a technical standpoint. But there's a ton of them. And they're cheap. And it's "good enough." And the photo industry has been just destroyed (I mean the part that sells pictures to clients. The part that sells shit to photographers is doing great). There used to be 10 full-time studios in my town. Now there's 2 full-timers left and 30 part-timers. The average quality of work has gone way down. But it's cheap, there's lots of it, and it's good enough. And the death of photojournalism has been covered many times on Slashdot, with what magazines are left using cellphone pictures because they're "good enough."

      Companies still outsource work to India and we know what the quality of code that comes out of there is like. But they do it because it's cheap. Now imagine they can get cheap, "good enough" code without having to deal with the language, culture and timezone problems?

      --
      We don't have a state-run media we have a media-run state.
    7. Re:How is that supposed to work? by afgun · · Score: 2

      "Good enough" is the current megatrend. Look at everything: cheap throwaway widgets (cheaper to replace than repair) rather than ones that will last for 20+ years. Things that work rather than work well. Multi-function devices (look at your phone) that do a bunch of things OK rather than one thing GREAT. As a society we want it cheap and we want it now. Most people these days aren't willing to pay for quality. They're barely willing to pay. Thank you wal-mart.

    8. Re:How is that supposed to work? by meta-monkey · · Score: 4, Interesting

      Also, people are grasping at straws. People want to get into coding because they heard it's good money, and nobody else is hiring. They don't necessarily want to be a developer or have a real interest in computing...they're just hungry and looking for a paycheck.

      It's the gold rush. And you know who made money in the gold rush? Dudes selling the picks and axes. You want to make money in this bold new era where everybody codes? Make shit like "a website that teaches you to code well enough to get a job." That's where the money is. Devs are just going to find themselves in a race to bottom, just like every other profession. It's foolish to think this is the one career that's immune.

      --
      We don't have a state-run media we have a media-run state.
    9. Re:How is that supposed to work? by SuricouRaven · · Score: 2

      Which can mean wasting decades of training and experience.

    10. Re:How is that supposed to work? by thesandtiger · · Score: 2

      Because there's no value in overengineering things that are easy to replace and where the consequences of failure are trivial. Further, most people only need the features of their phones to be "OK" rather than "GREAT" and would rather carry one device rather than 10.

      For some things - such as clothing or furniture, or items where there have literally been no earth shattering developments in the last 100 years (like, I dunno, silverware), it's okay to overengineer because doing so is actually efficient. I have a coat and a pair of boots that have lasted me 20+ years, some silverware that's maybe 200 years old, and the average of most of the "important" furniture in my home is over 75 years.

      But my phone? I'm not a professional photographer. I'm not even an amateur photographer. I just want pictures I took of people and things and events I found worth photographing that are "good enough." I'm not doing professional video editing, so I just want a video cam that's good enough I can take footage of my dogs doing goofy stuff that I can send to my family. If I'm in a place where I'm watching movies or TV on my phone, it means I'm traveling and therefore unlikely to give much of a shit if the screen doesn't have perfect color fidelity or whatever because, well, there's a bunch of shit going on around me anyway. Ditto for music - why would I aim for some kind of audiophile's wet dream when likely the only time I'll be using my phone for music is when I'm out and about in situations where music quality isn't terribly relevant? Etc. and so on.

      It's not that we don't value quality - I think we DO value quality very, very much - it's just that we can recognize that it's kind of stupid to waste time and money and effort on overengineering things that will be hopelessly outclassed in a few scant years.

      Buy quality where it matters, buy cheap and replaceable where it doesn't.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    11. Re:How is that supposed to work? by meta-monkey · · Score: 4, Interesting

      You are exactly right.

      Starting about 10 years ago. There's a guy named Dane Sanders, who is a miserably bad "photographer," and he wrote a book called "Fast Track Photographer," which is basically a manual on how to be a con artist in photography. Dress well, act confident, "live your brand" all that bullshit. And then he dazzles them with the idea that they can charge $10,000 for a wedding and get flown off to exotic locations to shoot fabulous destination weddings. It's complete crap. There are a few extremely talented (or extremely well-marketed) people who can do that, but for the vast bulk of these girls living in Buttfuck, Alabama, that ain't happening.

      He teams up with a guy named David Jay who makes slideshow software and websites for photographers, and they create this girl named Jasmine Star. Pretty (by some standards), exuberant, blogs prolifically about her *AMAZING* photographer lifestyle. They each post all over the internet about how AMAZING the other two are, creating a cyclone of bullshit. You too can have this *AMAZING* lifestyle...if you buy David's software, and come to Jasmine's workshop, and buy Dane's book...

      This whole spiel is then copied by dozens of other hucksters who want in on the action, too.

      Combine this with the for-profit trade organization, WPPI, publisher of Rangefinder magazine, who wants lots of people to attend their conventions, and the camera and equipment makers themselves, and it's just a feeding frenzy. How many dumb young girls can we sell on the idea that, without any real talent or experience, they can live this amazing lifestyle that, ya know, speaks to their soul and their passion. Every girl you can sell this to, you suck her into the industry and she's going to spend $30k on gear and seminars and shit in her first two years in business.

      Then of course they never actually make any money, and get bitter and disillusioned. They either quit and go back to working at Denny's, or they realize the con and start their own series of workshops where, for the low-low price of $899 for a two-day course they can teach YOU how to live the awesome rockstar photographer lifestyle! In this world there is no place for the actual masters of the craft who try to tell people the truth, that it takes years of training and experience to make good images and that succeeding in this business is HARD. Nobody wants to buy that. They wanna be fabulous and get rich quick.

      So, yeah that's pretty much the entire industry now. It's a pyramid scheme with the camera makers at the top, then the trade organizations and labs/album makers, then the workshop speakers, and then as many dumb young girls as they can suck up at the bottom.

      The same thing is going to happen with programming. We're already seeing the advent of "rockstar programmers" who have blogs and webisodes about language features and concepts, code academy, this website here. The gold rush will be in training new coders who are super-stoked to score those $100,000/year jobs without having to get a degree or any real certification (not that I'm saying a good coder needs those things, I'm just saying the fact you don't need one is a nice selling point to people who want to get rich quick). Of course these people will mostly flood the app store with a bunch of shitty apps, but the better ones will take the low-hanging fruit jobs, flood the industry and drive down wages. In the end, the winners will be bosses who get cheap, good enough code and the people running the "how to code" websites. The losers will be...everybody who wants to make a living writing software.

      --
      We don't have a state-run media we have a media-run state.
  3. special software client by frovingslosh · · Score: 2

    using a special software client

    Doesn't anyone else find this suspicious? Why in the world do I need to install a special client just to download an assignment? Why would anyone who knows anything about computers agree to this? How long before we start reading the stories about what this special client was doing behind users backs, that supposedly no one suspected?

    --
    I'm an American. I love this country and the freedoms that we used to have.
  4. Re:PHP would be nice... by __aaclcg7560 · · Score: 3, Informative

    If you have the discipline to write good code, you can write good code in PHP.

  5. Re: Couldn't Get A Job After Getting A.S. Degreete by jdigriz · · Score: 2

    Recruiters are idiots. You're going to have to do some coding for free to prove your mettle. Open source projects are always looking for coders if you can't think of anything that you'd like to write. Something like http://code.google.com/p/kerne...

  6. Coding isn't the problem... by ndykman · · Score: 3, Insightful

    Sure, it looks like it, and there are plenty of people with jobs out there that can lash something together. I worked with somebody at a startup would was struggling to get a web page working. After a few minutes, I realized the problem. She had no idea that you could loop through an array backwards.

    We don't need more "coders". We need more software engineers and computer scientists.

    Actually, maybe not. Maybe we need a workforce that is organized and that would stand against employers who insist on completely devaluing our field in a search for easy money, tossing aside qualified people in search for exploitable labor. That's the problem. I think we should be defending our industry and those that have the proper skills to do it well. Just because the latest, most visible trend is to hack together a mobile application or web site for a quick buck doesn't change the need for fundamentals.

    Things like data structures, algorithms, discrete mathematics, computer architecture, etc. do matter. Not having a basic understanding of computers and computation leads to an astonishing amount of bugs, security holes and wasted effort. Some people have just accepted this as the cost of business. I say it's past time that we really stood up and say, no, things should be better. But since we can't collectively bargain, we are stuck.

    I know, who cares, the money is awesome. It'll be like that forever, right? What does it matter that nobody can count on having a career after ten years because they are seen as too old with an outdated skill set.

    This isn't about school, although I think a proper CS education is still the best way to learn this stuff. But you can get it with diligent self study and experience as well. In the end, real programmers have the conceptual understanding to adapt and excel in the long term. That's what we need more of. Real careers, not just jobs.

  7. Face Palm by lsllll · · Score: 3, Informative

    Looking at their example conversation, I had no choice but to face palm. Having never looked at Ruby code before, I was able to deduce perfectly well what the first iteration was doing. Do we really need to expand a function that can accomplish its task in one line into a function that may be a little more readable?

    I wonder how today's programmers would make do with resources that were available in the early days of computing, or even when the IBM PC came out. Having to deal with small amounts of RAM caused programmers to be extremely creative in their programming. Granted that we do not have to go to such extremes today to write programs, reading about such practices is still very inspiring.

    --
    Is that a roll of dimes in your pocket or are you happy to see me?
  8. Yep, ready for a job in coding by Anonymous Coward · · Score: 2, Interesting

    I can't see a button to reply to the article as AC so I'll just reply here.

    "Yep, ready for a job in coding"
    - It would be more convincing (for a job, atleast if I was hiring) if the exercises were along the lines where you'd really need one of deques, ring buffers, sliding windows, tries, classification/sorting/statistics on streaming data. Because atleast personally I find those really important/widely useful yet rather tricky to get right. So for my own projects I'm shamelessly borrowing known working code. But if I was hiring I'd be more impressed if the candidate atleast had some experience using these.

  9. Re:Couldn't Get A Job After Getting A.S. Degree by RavenLrD20k · · Score: 2

    I've done my stint as a "Staffing Coordinator" for a temp agency, and I learned the most about how to apply for jobs at that position. What mythosaz said is absolutely correct. For the longest time I was doing it wrong. Worked in a Toy Store and as a data entry clerk for a medical office while I was going for my computer science degree before I transitioned over to a Networking Specialist degree and got a job in a computer shop. I made the mistake of focusing mostly on my employment in my resume and not enough on what I actually knew.

    This is the mistake most people make. So many applications came across my desk where the resume had the same employment history information as the application, with possibly a couple more bullet points for additional irrelevant details, and that was it. When you fill out your application for what you hope will be your career, you need to bring three things:

    • 1) A cover letter custom written for the company and position you're applying for that, if possible, is addressed to a specific person such as a department director, manager, or someone else specific to the position you're trying for. NOT THE HIRING MANAGER or anyone else in HR, unless you're going for an HR position! Yes this person may never get it or read it until the interview, but this shows that you've done your research into the company and know who you will ultimately be answering to.
    • 2) Your resume focusing primarily and specifically on your skills of what you know how to work with; let your application handle your work history and general duties. Again, tailor this to the position you're applying for. If you know your way around a Mainframe and the job you're applying for is a Mainframe Programmer, you better make sure that EVERYTHING you know about Mainframe work is in that resume.
    • 3) A list of contact information for all people that have agreed to be your reference. If you've done independent computer work, make sure the clients who have sung your praises to your face are on this list. Also, if anyone provided you with letters of reference or recommendation, you will want to turn that in as part of your application bundle.

    Finally, when you do get called for an interview or interview series make sure you have several copies of each item above with you that you can hand out to everyone who will be conducting the interview. My last interview series I went through, I kept 10 copies of each. I wound up with one to spare after everything was done.

    Try these techniques and at the very least you should get more interest and call backs. If you go into the interview with everything prepared and in order with confidence in your posture and tone, not only will you be getting the interest, but it will also help improve your standing in the salary negotiations.

  10. Re:coding is easy, implementing seems mysterious by Anonymous Coward · · Score: 2, Informative

    You're not a coder at all. And there's nothing wrong with that, you just need to start at the absolute beginning. Start by learning some algorithms in pseudocode (Quicksort, trees, linked lists, graphs, etc.) so that you become familiar with the programming mindset (logic and visualization).

    Then pick a language that you can starting implementing them in (Python, done). All you'll need is Linux distro like Ubuntu and Ctrl-Alt-T to get a bash shell and vim. Or a Mac since it's BSD-based. No Windows.

    Once you've broken through the mental wall you're currently stuck behind, then start reading more detailed articles around that single language. In parallel, read and practice the bash command line and develop an understanding of the underlying OS.

    Don't get overwhelmed by the huge number of frameworks, libraries and languages out there, getting your arms around them comes with time. The point is that everything blossoms from building up from a solid base, and if you're truly motivated to stick with it.

    But most important of all...don't just read. You must type, run and debug constantly. There are way too many hipsters that call themselves programmers because they read some Ruby articles on the interwebs. Don't be one of them.

    Best of luck.

  11. ZERO feedback by Anonymous Coward · · Score: 2, Insightful

    I'm an experienced programmer (for almost 30 years). I first read about the site about four months ago. I like Ruby a lot, but haven't used it as much as I'd like, so I thought that exercism.io would be a fun place to get some feedback. I submitted my first program that very first day. Today, four months later, my submission has two views and zero comments. Wow, that's going to help a lot. I guess there has to be some minimal mass of developers to actually look at the code and make comments. But for now, the site is far, FAR, from being anything close to helpful to teach you to code.

  12. Re:*blood boiling* by narcc · · Score: 2

    Really, learning to code real things well takes a gift and at the very least several years of experience.

    Go ahead and say whatever you need to believe to maintain your ego. You're only deluding yourself.

    Here in reality, it's nothing special.

  13. Software is not Photography by Slashdot+Parent · · Score: 2

    Maybe this will change in the future, but for now, low-quality software is generally not "good enough". If your website is vulnerable to SQL-injection, you're going to find out, and the results will be catastrophic. If your UI looks like it was designed by a chimpanzee on LSD, it is not going to pass muster. And if your developer doesn't understand complexity theory very well, the software will quickly become unusable from a performance standpoint.

    Photography is fundamentally different, due to digital photography, but not in the way that you mentioned. Let's rate photos on a scale from 1-10, and let's assume that the photos taken by an experienced professional like your wife are going to average a 9. Let's further assume that the photos taken by our chimpanzee on LSD are going to average about a 4. In the days of film, each time you pressed the shutter button, it cost you money. For a pro who bought and processed film in bulk, it might have been $0.20/frame. For an amateur, it might have been $0.50/frame. Given the costs involved, it was important to be taking 9s and not be taking 4s! But with digital, our chimpanzee can easily take 1000 photos of a wedding, at a marginal cost of zero per frame!

    Now of those 1000 photos, most of them will be trash, but you really only need 30 or so frames to make an album. What do you want to bet that 30 of those 1000 will be 7s or above? I'd say it's highly likely, and that's why your wife isn't getting as many calls as she otherwise would have. Digital has changed the game. An amateur really can achieve acceptable results by brute force!

    The software equivalent is to keep writing more and more code until the system works. I'm sure you've seen systems that fell victim to that paradigm. Sure, release 1.0 may work acceptably well, but release 2.0 will never happen, because nobody can so much as breathe wrong on the codebase without breaking something.

    --
    They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock