Notice: Hacker Dojos Aren’t Factories for “Idea” People
By Daniel Miessler on February 19th, 2012: Tagged as Programming

For those not aware, Hacker Dojos are local groups found in high-tech areas that get many people together and have them code–or learn to code–together. The idea is that you describe your strengths and interests, and the organizer pairs people up to work on projects.
The problem is that some people are fundamentally confused about what this means. It does not mean, for example, that non-technical project managers can come in and find people to implement their ideas while they watch and give feedback on how it should be done.
People like this will face a very predictable situation: they’ll get some play from one or two people the first time they come, for a short amount of time each, and once the group figures out what they are they’ll be ostracized.
Let me clarify. If someone is a project manager who’s tired of needing coders and he comes in after studying the basics for a couple of weeks–with the intention of learning how to code his own app–then saddle up: that’s what these dojos are for.
But if that project manager has no interest whatsoever in becoming technical, and thinks he’s going to find some coder there to make his idea work, that’s going to be a, “No.”
Here’s an example: someone walks into the one I went to earlier and the following dialog ensues:
I have an XML template I want to convert to HTML 5.
What do you mean an XML template?
I don’t know. I think it’s Flash or something.
Cool, so do you have a development background at all?
No, I’m actually here from Hollywood and have some ideas that I need to get done by today, so I need to make some progress here.
Meaning, “I thought you’d be done with this by now. Why are we still talking about what I do and don’t know?”
This is not his fault. He wasn’t being malicious. This is on the organizer. The head of these dojos need to make it very clear that novice coders are more than welcome, but you have to be willing learn the basics before coming, and to plan on getting dirty.
Dojos are not places for “idea people” to come and assign work to hackers. If you’re an organizer, please make this distinction clear. And the next time you see this type of thing happening at a Dojo, take the time to educate the person who’s misguided.
Remember, they haven’t done anything wrong. Just make it clear that this is for people who want to spend weeks/months/years learning this beautiful craft, and that if that’s not their thing then they’re going to be better served by eLance.
::
Programming as a Life Skill
By Daniel Miessler on January 16th, 2012: Tagged as Culture | Programming

Perhaps the most obvious and powerful of changes in our world is the penetration of computers into our personal lives. This is penetration to the point of integration — to the point of augmentation. No surprise there; everyone’s talking about it.
One less obvious result of this monumental shift, however, is that the skill of programming will move from a field specialization to a life skill. It will become a method of optimizing and improving oneself, much like diet and exercise is today.
This will involve coding skills only incidentally. Even more important than prowess with a given language will be the ability to conceptualize a problem, break it into pieces, and design a solution. This ability is the true life skill worth having, and it will soon become the new literacy.
Just as the industrial revolution transformed fitness into a means of self-improvement for the masses, the integration of computers into our personal lives will do the same for programming.
Take advantage of being among the first to see this happen. Learn to code. Tell your friends. Teach your kids. Early.
::
At TrueCar
By Daniel Miessler on January 4th, 2012: Tagged as Programming
At TrueCar talking text editors. This is why I live in SF. ::
An HTML 5 Christmas
By Daniel Miessler on December 25th, 2011: Tagged as Programming | Web Development
It’s Christmas day and I just happened upon a post by the Google Webmaster team talking about removing the HTML, HEAD, and BODY tags from their code, as they are evidently no longer necessary.
I started looking at their code (particularly for their 404 pages), and it was very interesting.
It’s a few minutes later now and most of my site is now using HTML 5, sans the HTML, HEAD and BODY tags.
Now I need to hire a bunch of people to do this for all my static content…
Principle of Least Astonishment | Wikipedia
By Daniel Miessler on November 22nd, 2011: Tagged as Design | Programming
The principle of least astonishment (POLA/PLA) applies to user interface design, software design, and ergonomics. It is alternatively referred to as the rule or law of least astonishment, or the rule or principle of least surprise (POLS).
The POLA states that, when two elements of an interface conflict, or are ambiguous, the behaviour should be that which will least surprise the user; in particular a programmer should try to think of the behavior that will least surprise someone who uses the program, rather than that behavior that is natural from knowing the inner workings of the program.
Interesting.
How can I teach a bright person, with no programming experience, how to program? | Stack Exchange
By Daniel Miessler on November 6th, 2011: Tagged as Programming
I usually prescribe the same sequence for anyone who wants to learn programming. It’s very theoretical, but it lays a good foundation. It should take three or four months of fulltime study, but programming isn’t something you learn overnight.
If you can’t get through this sequence, you’re not going to be able to program, so you might as well give up now.
- Code, by Charles Petzold.
- The C Programming Language, K&R
- The Structure and Interpretation of Computer Programs, Abelson and Sussman.
My rule is: work your way through those three books by sheer force, if necessary. Ask any questions you have, but only after struggling to figure it out on your own. If you can make it through those three books, congratulations, you’re a programmer, now I can throw you PERL IN 15 MINUTES or whatever rubbish is at the bookstore in the Big Bookcase of Java and you will manage fine. If you can’t make it through those three books, give up, go home, you’re never going to get it.
I don’t think you need to learn C and Scheme, to be honest. They’re just a foundation for future learning. These two fairly simple books are both very simple on the surface (C and Scheme are super-easy languages) but they get very deep on the real art of programming without wasting time on confusing syntax, so they are excellent to start to re-wire your brain to be a good programmer.
Attempts to take a shortcut and go directly to learning the exact thing you want to learn right now (like starting with C# and ASP.NET) are doomed.
Goodbye World
By Daniel Miessler on October 13th, 2011: Tagged as Programming
Polygot Programmers
By Daniel Miessler on August 4th, 2011: Tagged as Programming
Programming enthusiast Joe is browsing Hacker News on a Saturday afternoon, and sees a story about Clojure, a Lisp-like programming language which he keeps hearing about. The comments on the story are filled with positive experiences reported by his peers, so he decides to spend a few hours checking it out.
Within thirty minutes, he’s installed the Clojure language runtime and tools; and downloaded the Peepcode screencast and Pragmatic Studio eBook. With a video describing the language’s core principles running in a background window, Joe tinkers with the basic syntax in the REPL. By the end of the afternoon, Joe has written some simple programs and has a familiarity with both the basic usage of the language, and some of its underlying principles.
From here, it’s a small step for Joe to use Clojure for his next hobby project. And that might lead to using it for a small tool or app at his programming day job, or at his next startup.
This is the future for top programmers. For the mid to lower levels I think the single language/platform paradigm will likely remain.
