ID:1240123
 
http://www.daedtech.com/ how-developers-stop-learning-rise-of-the-expert-beginner

http://www.daedtech.com/ how-software-groups-rot-legacy-of-the-expert-beginner

I feel this is particularly pertinent to us here at BYOND, as a development community. I'm not sure if this problem has cropped up among out artists, could some artists have a read and let us know? You guys seem to be better about referring to actual expert tutorials over at pixeljoint etc, which possibly helps avoid this?

But without a shadow of a doubt, this is a problem for programmers, and undoubtedly also in our game design. Because we think of DM as isolated, we don't accept new ideas or practices into our DM programming, and so it seems even "expert" people are capped in terms of ability here at BYOND, stopping us making better quality games. I shall elaborate on my thoughts in this area once I've allowed them to settle and form a bit more, to provide BYOND specific examples of where we have very bad cases of "Expert Beginnerism" within programming, and a little bit of game design also.

How we apply those last points about avoiding such issues, I'm not sure. But I am interested to find out.
Before reading the entirety of the first article, I was concerned it might apply to me, but that's impossible.

I'm an expert.
You are so witty, sir.
It's probably worth noting that their definition of expert is really not our definition, theirs is a lot stronger and more meaningful (and importantly, not time-based!). This is precisely the kind of thing that leads me to believe that BYOND developers have, in the main, an expert beginner problem.

I've met say ... 100? Java developers in industry. I've met .... 2? expert Java developers. Most of the 100 developers have been working full-time in industry for 5 or so years on a bunch of complex projects. Time logged does not make one an expert, it is, surprise surprise, expertise and knowledge of the language AND the associated skills (profiling, debugging, architectural design, writing for robustness, testability etc etc).

A Java expert, to my mind, has a fairly intimate knowledge of how the JVM works internally and consequently knows good and bad points of performance of the JVM, and can explain, at the JVM level, why these things perform well / badly. Note, they can do this despite the Oracle JVM being closed source, like BYOND. So lack of source code to read from doesn't inhibit having this knowledge.

As an addendum, Java experts also tend to not think too hard about the JVM unless there is a problem of performance seen in the real world. If they did think in JVM terms and performance all the time, they'd never get anything done! The knowledge, not the practice, is what defines their expertise.
Yut Put wrote:
I tend to compare myself to the best that I know of. So it's more of a cycle of learn -> learn -> learn -> become really confident -> see someone who is much better than you -> go back to the drawing board -> learn(etc)

This is the iconic example because it has the fewest barriers to Expert Beginnerism: success is simple, standards are low, actual experts are absent, competition is non-existent, and external interaction is not a given.

Good lord.
That guy described the status of the majority of our development community in less than a single paragraph.

Good read, Stephen. We should get more people to read it.
Quite so. But imagine, if you will, that you go a long while without seeing someone much better, because they don't happen to come by where you do your art / programming. You get complacent, newer people come along and see your way, copying it and reinforcing the idea that your ability is fantastic, when in actuality it's just the best of that particular group.

This is the case many of us are in, on BYOND, and it leads us to resist changes to the way we work. We then support each other in that resistance, and essentially self-limit, being expert beginners.

The nice thing you have going on I think is both an implicit understanding that there are much better people out there, and you seem to come across these people with enough frequency.
Quite possibly, yes. It's pretty much how Art degrees in the UK operate, where they'll take on students who are strong in different areas, and bring in professors for the odd week from other universities to make sure the students study new things.

Generally for BYONDers, a natural way to up their programming game would be a dabble in other languages, or at the least exposing themselves to videos and learning materials for different languages.
I may be a bit late to post this, but I had just read this and think it's a wonderful thread. Gooseheaded and I were talking (roughly) about this subject tonight. Many people end up in a way of:

"I found the methods that work and I'm going to stick to them."

The problem therein is exactly that. They close themselves up and don't keep on learning. An example we used was my brother and League of Legends. He a good player, yes, but he doesn't really improve. He doesn't look at what he's doing and compare himself to someone (or someone's methods) better. He sticks to his guns and digs himself into the rut, so to speak.

This is an exact example and point to the descriptions of the Model of Skill Acquisition. There is a stopping point because of the methods he is using. To improve a person must 1.) Want to improve, 2) Realize their own methods, and 3) Look are other methods and options around them. I agree completely with Stephen in the idea that Byonders should explose themselves to other languages. It doesn't only show how different languages work, but you'd also pick up on how to program in different manners.

One thought I've always had about Byond is that it's too easy of a language. People pick it up and quickly get into the flow of things (for better or worse in their programming syntax practices) and once they're good and set with their knowledge of DM they go to try another language and BAM. This new stuff is hard! It then discourages them. Mind you, there's always people that I know (and talk to) that have pushed past such a barrier. This is all just an opinion though.

While programming is different for everyone (I've always found that it's one of it's beautiful points. Everyone's coding is a form of themselves.) there are proven methods and ways to do certain things. As long as you keep your eyes open and consistently judge your own work properly, and keep open to new ways then you'll always improve. As for the article, I've read through and thought that it's an excellent eye opener and an even better read.