Settings

Theme

Bitlean: Learn to code fast by competing against other developers

bitlean.com

51 points by CeRRuTiTo 11 years ago · 40 comments

Reader

markbnj 11 years ago

I'd like to see a competition called "Learn to Code Slow" that encourages people to think and design good solutions and then implement them robustly.

  • nnoitra 11 years ago

    Thinking is not important just press those keys as fast as you can.

  • gravity13 11 years ago

    And perhaps the winner is decided after the fact by a vote, based on metrics of efficiency, elegance, etc...

    I'd love to see a more natural, bite-sizable, exposure to other programming languages and/or paradigms in this way.

    • FeymanFan78 11 years ago

      I like this idea. That doesn't devalue the idea of being able to efficiently solve relatively simple programming challenges

JustSomeNobody 11 years ago

Just had an Eats, shoots & leaves moment with that title. I was thinking, why does anyone need to learn to code fast?

  • CeRRuTiToOP 11 years ago

    Well, learning a programming language is slow process, our idea is to make it faster and help the skills to stick better. I can't remember all the cases in which I learned something and had to relearn it again after that - only if my process of learning was better, it might have sticked from the first time. :)

    That's what we are trying to do. I don't know if we will succeed or not, but we are going to at least try.

    • gravity13 11 years ago

      That makes sense from a pedagogical perspective. It's a lot like exercise though, if you're Arnold Schwarzenegger, you are not going to make sweet gains from writing a for loop.

      You'll need to find people at your skill level to go against and this presents a barrier for a lot of us at step one.

      • CeRRuTiToOP 11 years ago

        My intention is the application to provide developers with the possibility to go on a higher level. For example:

        - Level 1: Beginners (really basic concepts, just explanation of the syntax) - Level 2: Intermediate (more complex tasks, that would require developers to combine several basic concepts) - Level 3: Master (where developers will have to be really skillful and the tasts would be much more complicated)

        My idea is when someone is just starting to make him fail fast so gets over the fear of failure and just starts writing code and learning from others.

    • glxybstr 11 years ago

      I think the parent comment's referring to the ability to write code quickly. At least, that was my first impression.

    • JustSomeNobody 11 years ago

      Edit: Rewritten to try and be more clear.

      I initially read it as learning to code fast, as in how quickly someone can actually develop an app and not how quickly someone can learn to program.

    • CeRRuTiToOP 11 years ago

      Yes, know I saw what I wrote.. My mistake for hurrying to post it and not being careful :D I hope after people see the site will understand what I meant.

keldaris 11 years ago

The idea itself seems nice, but it remains to be seen how useful it will be beyond learning basic language concepts and syntax.

However, I would like to compliment your website. I run an extremely restricted browser that blocks most JS, cookies, XSS, etc. by default and most new project announcements I see on HN I close immediately because they haven't demonstrated enough value for me to bother unblocking the ungodly mess of JS on their sites. Your site isn't just well designed, concise and readable, it actually works out of the box (the only thing I blocked were the social buttons), barely uses any resources and looks lovely. I wish more web developers thought this way.

  • wongarsu 11 years ago

    Having all fancy Javascript enabled I found the navigation of the page cumbersome. The only way I found to progress to the next slide (of what is essentially a fancy slideshow) was to click on the three lines to open the menu and then click on the next menu item. That's not fun at all.

    • CeRRuTiToOP 11 years ago

      Hey, I am sorry for you bad experience, but I guess you have seen the site through mobile. Unfortunately, our intention is for it to be seen on desktop (the system, when ready will be used on desktop as well).

      • wongarsu 11 years ago

        No, I have seen the site on a 1080p monitor, on my desktop (Firefox on Linux). That's how it looks for me: http://imgur.com/aL1KxqZ

        Edit: to be sure I just tested it with Chromium. It looks the same, but most animations aren't even fluent (about 5fps), making the whole thing worse. And this is by no means a slow computer.

      • CeRRuTiToOP 11 years ago

        Thank you for pointing this out! It's good to have that kind of feedback, so I can check it and fix it :)

  • CeRRuTiToOP 11 years ago

    Thank you very much for your kind comment!

    Our intention is actually that there would be different levels of difficulty, but for the purpose of showing only the main idea we skipped all additional features. But it really remains to see if this kind of learning would be appropriate and functional.

FeymanFan78 11 years ago

It seems like a cool concept. However I would like to see it have some type of functionality. Am I missing something. This appears to be a demo to me. As such I feel a little bit duped that it doesn't make it abundantly clear that it is just a demo.

If I was a VC I would be frustrated that this does not at least have some type of simulation even if you don't have the multi-user competition working yet. At least coding against a clock or virtual opponents would be a nice touch. To me this is not proof of concept but just a story board if you will, good marketing. I am sorry to be harsh but I hate going somewhere with the promise or implication of one thing and then getting something different.

  • CeRRuTiToOP 11 years ago

    I am sorry you were disappointed in what you saw in comparison to what you expected. But I think it's very important to get feedback in such an early stage of development, even for a storyboard explaining the idea. This post proved really useful for us.

    Either way, thank you for the honest comment :)

    • FeymanFan78 11 years ago

      Cool. Thank you for your reply. On the layout etc. I think it is great work. I was just ready to test my skills or lack thereof, lol. You know if the synchronous competition proves to be tough you could log metrics for certain exercises and use statistics like standard deviation etc. so people can now how they stack up to everyone else. This may also shed some light on the relative difficulty of certain exercises for the population as a whole.

      • FeymanFan78 11 years ago

        Ex. large standard deviation wide bell curve would mean there is a major disparity among the understanding of a concept for developers that use the site. A small standard deviation and tight bell curve would represent a more consistent understanding level among the sample population. I am assuming time being the main metric. You could also use the code quality as a metric also.

josephschmoe 11 years ago

So, there's two major things I would suggest changing:

1. Easy answers keep users from developing Google-fu. Competitors answers should be sufficient. If they aren't, make a separate doc and have it be easily Googleable from a hint. This keeps them from developing a dependency on that "Answer" button that would show up on the end.

2. The big problem with currently existing tools for this is that they haven't come up with a gameified way to give -structure- to a program. Which is a problem because for a real program structure is the very first thing you do.

zalmoxes 11 years ago

Two white guys at the top. Black guy in third place. Woman is last.

Maybe not the best way to represent progress in the demo...

  • wongarsu 11 years ago

    I would have called that guy middle eastern, not black.

    With every order somebody will be able to construct it as offensive to someone, but putting the woman that far behind the rest is indeed asking for trouble. If her position was swapped with that of the second-place white guy people would be much less likely to be offended.

  • learnstats2 11 years ago

    First, I very much agree with your point. The demo results could easily be randomly assigned per view instead and Bitlean should fix this.

    But, let's not be too harsh. For much of the tech industry, 1/4 women is good representation. It is positive that they made some effort towards inclusiveness and diversity (at least in their marketing material).

  • teamhappy 11 years ago

    They could put Steve Buscemi at the top to stop people from interpreting contrived examples.

amitport 11 years ago

Can you tell us more about you and about the user experience? how are you planning to evaluate a participants current progress? who is going to write the content? (best practices and exercises)

Disclaimer: I've created CardForest.com (in-progress), which is possibly targeting a similar audience.

  • CeRRuTiToOP 11 years ago

    Hi, I am glad you are creating such application, it seems really interesting. Here is more info about the app, we are about to build:

    - the evaluation of the progress is going to happen by running it against tests written in advance and against tools that evaluate code quality. The algorithm that is going to calculate the exact percent is yet to be created.

    - user experience is the most important thing for me, if it is good and not intruding, it will help developers to stick in the application longer and learn more things (I guess)

    - my hope is that the content (best practices and exercises) will be constantly updated and written by the best developers in the field or by authors that will be specifically chosen for that purpose

ky3 11 years ago

I'd like to see a competition that figures out who makes others look best. Coding is collaborative, no-one's a Pulitzer-prize author working out of a cave. The best coders make whoever has to maintain the code after them look stunningly heroic.

wongarsu 11 years ago

I like the idea, it looks promising. I think seeing all the different possible solutions also helps a lot to open eyes about the possible approaches to a problem.

mlmonkey 11 years ago

Isn't this what TopCoder is all about?

  • jjoonathan 11 years ago

    Yes, but bitlearn claims to focus on "real-world code problems," so I would assume they trade away some of the focus on algorithms.

cyanfrog 11 years ago

Animations on the site work very slow on my office PC. Maybe velocity.js will help :)

  • CeRRuTiToOP 11 years ago

    Hey, the choice was between transit.js and velocity.js. I don't think we made the wrong choice to go with transit.js, but next time we will definitely try velocity.js :D

coldnebo 11 years ago

Two things:

1) The grammar and writing style has some problems with run on sentence fragments. Perhaps this is not the OP's main focus, but learning to code well is similar to learning to write well (in fact there was an article about this posted to HN a few days ago).

2) By focusing on the idea of 'the best' code, the OP implies some kind of fitness function, but is pretty vague about what that might be. The most obvious fitness function in this context would be that the code works and was written faster than anyone else. Why talk about best-practice and industry standards if your fitness function is speed of writing and correctness?

Experienced programmers don't talk about the "best" code in general, but rather the best code for a given purpose. Code clarity, speed of execution, elegance, reuse, size in memory... these are all different fitness objectives that have various trade-offs... even saying "yeah, I want ALL of those!" implies trade-offs.

It's like saying you want a D&D character with all max attributes... it doesn't work that way.

But there's also a problem with this model of learning. The fastest coders are going to likely be the coders who already know what they are doing, or who work out cheesy ways to game the system. Likely, their incentive for playing will be showing off, not genuinely helping others learn.

Meanwhile, coders who are learning will always be slower. Yes, they will see a lot of other possible solutions, but without critically understanding the differences between code examples, it all becomes a sea of noise. Stack Overflow is already like this in places -- many answers don't demonstrate an expert analysis of a problem, they simply devolve into: "I tried this", "I reinstalled", "Yeah, it works!", "I'm still having issues".

Now, if bitlean's 'tail' in the game was a nice social community built around commenting and critiquing code AFTER it was written and judging its fitness for various stated purposes -- then I could see that really building a community of value for learning programming similar to the ways that we learn critical reasoning in writing courses by contributing to critique and discussion.

'Fast' has its purposes. For example, in Shamus Culhane's book "Animation: from Script to Screen", he talks about the advantages of sketching fast without critical interruption to maintain creative flow. He was adamant about not even erasing one wrong pencil line because it brought critical analysis into the process and disrupted the flow. However, after the sketches capture an idea, that work was always followed by extensive analysis and critique to see where ideas and execution could be improved.

graycat 11 years ago

This whole thread totally loses me: I don't get it. Here's why: To me, the coding is and for decades has always been fast, fun, and easy. Similarly for the design or architecture for projects up to, say, 50,000 lines of code and several servers sharing in the work and sharding, etc.

Piece of cake. Simple. No issues.

But there are issues, huge, humongous issues: The main issue is just and simply making use of the documentation, and object oriented classes, and other software developed by others. E.g., I've gotten -- found, downloaded, categorized, indexed, and abstracted -- well over 5000 Web pages of relevant documentation. At 10 a day, that's a lot of days.

E.g., learning SQL was easy, piece of cake, obviously built a lot on set theory in pure math (which I know pretty well and have used a lot), and I learned SQL reading Ullman's book over dinner at the Mount Kisco Diner during about two weeks. No problem. How the log file works? Fine. Entity, attribute, relationship design -- sure, easy.

Then the real problems: I tried to install SQL Server. What a mess. Maybe it got installed. Someone sent me a database, and I wanted SQL Server to recognize it. Nope, we're talking high end, world-shaking research here, unsolved problems of the universe, much like dark energy. As I recall, my little effort ruined the SQL Server installation.

So, I make some progress doing some simple things and then go for an update (general rule: never update unless totally necessary). The install asked a lot of questions with no explanations or references to what the heck might be the appropriate answers. Somehow I got two installs, using Microsoft's side by side (I've written lots of programs and they all run side by side as far as I can tell -- what's the issue here?), and the install ruined my system. SQL Server uninstall wouldn't. System repair wouldn't. So, the SQL Server install broke my installation of Windows. I reinstalled Windows and all my software to a freshly formatted hard disk partition. Then I tried again. Eventually I got the SQL Server install to work -- eventually. The mud wrestling went on this way.

Ullman's book, SQL, etc. were easy. Getting a good install was a barbed wire enema with an unanesthetized upper molar root canal procedure while being poked with a dozen red hot branding irons.

Then came time for the code of my Web pages to connect with SQL Server. So, I need a connection string. Yup, we're looking at a challenge at least 1/3rd of a Nobel prize in physics. It took a week, a solid week just to get a connection string that worked. Why it works, I still don't know.

Due to the times installs ruined my boot partition, I wanted to backup the partition so that I could quickly return to a good system after some install had ruined it.

So, I used NTBACKUP. It asked if I wanted to save "system state" but had no explanation of what was meant by that. They are talking about my options for Outlook? For the fonts on my text windows? Well, after reinstalling all my software several more times, I finally got good notes and experience with both saving a boot partition and being able to do a restore that would boot and be good. Hint: Yes, very much do save "system state" or the saved copy, restored, won't boot. Yes, that NTBACKUP does a volume shadow copy, that is, saves a boot partition while that partition runs, is super nice, but writing documentation on "system state" was too difficult for Microsoft.

Net, the coding is fast, fun, and easy. The difficulty is the documentation and workings of other code that needs to be used. And now we have to use a lot of such documentation and code.

Anyone have a way around the problem of such documentation and code?

"Learn to code fast"? That's less than 5% of the work. The other 95% is mud wrestling with bad documentation.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection