Jump to content
  • Advertisement
Sign in to follow this  
JWalsh

C++ Workshop - Postmortem

This topic is 3274 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Greetings everyone! Introduction Nearly a year ago I had the idea of running a C++ Workshop here on GD.net, so that all those who were attempting to learn programming for the sake of creating games would have a place where they could go. A workshop is a team effort, between the instructor, the students, and those in charge of the workshop framework - to pass along knowledge to all those participating in the workshop. Often times there may even be a sort of a group discovery, where new knowledge is obtained in the process of passing along existing information. With the C++ Workshop there was a community of tutors, as well as "students", who were working together to ensure that all those participating learned something new. Although it was cut a bit short when interest fell off, I personally believe the workshop was a success. It's customary when doing a postmortem not to dwell too much on any particular facet of the project, so I will take the customary approach of presenting the good, the bad, and the ugly as best as I can in equal parts. The Good Today, nearly a year after the initial launch of the C++ Workshop there have been over 1,300 posts and approximately 85,000 views by tutors, staff members, and potential students within the C++ Workshop forums, in discussion of the C++ Programming Language. Although the number pales in comparison to some of the other forums within the community, this workshop was developed much more recently, and was much more focused in its goals, and as a result naturally drew a smaller crowd. As well, although the forum began a few months before any of the other existing workshops it's gathered almost 4x the number of posts, and roughly 80,000 more views. This, to me, suggests that we had built a community within the community of people who were actively engaged in teaching and learning. Another positive thing about the workshop was the respect the members showed each other and those who were doing their best to help others understand the material. Although there was no moderator assigned to the workshop (I know there were 'guest' moderators who were lending a hand), we managed to keep dozens if not 100+ people on point, always within the realm of topic, and managed to avoid any flamewars or debates about the quality of the C++ language or its fitness for a particular purpose. As well, the tutors, and students did a great job of posting [opinion] tags whenever the information being presented couldn't or hadn't been empirically proven as fact. As a result, I think those who came away from the C++ Workshop did so with the most relevant and trustworthy information, as well as a good appreciation for the variety of views that can still be taken in something as structured and objective (no pun intended) as a programming language. The success of the workshop is also apparent in the continuing support by many of the moderators, as well as by the members of the GD.net community. Even though the Workshop has been, more or less, finished since October when participation dwindled to only a few posts a week, there are still members who salute the other tutors and I for the effort we put into the workshop, and there are still moderators who will re-direct beginning C++ programmers to the workshop forum whenever they see relevant questions in the General Programming, Game Programming, or For Beginners Forums. This to me shows that there is a real appreciation by the community for the work and effort that we put into helping others learn. And finally, the success of the C++ Workshop is apparent in the spawning of other similar workshops. Not long after participation started to dwindle in the C++ workshop, then Oluseyi and Muhammad began their own workshops. As well, there is currently a cry by the community for a C# Workshop. This apparent interest in newer and revised Workshops speaks to the success of the Workshop in rallying the members of the GD.net community to have more of what they need most, a kind, and forgiving community of people lending a helping hand as they learn the ins and outs of game development. The Bad With any new endeavor there are always lessons to be learned. Although the workshop was more or less successful, there are a few things I would have, or would do differently in the future should I take the opportunity to do another workshop. Here they are, in no particular order. First, make sure you know your target audience. That is, make sure the information you're interested in presenting is complex enough that the members of the GD.net community would be interested in learning it, while being simple enough that it can be easily followed in a workshop-forum environment. With the C++ Workshop, those who come to the GD.net forums often already know C++, or haven't taken the time to learn it in the past for good reason. As a result, it was difficult making sure the information being presented was both easy enough to grasp, while being advanced enough to reach the majority of the people who check the GD.net forums regularly. We kept wanting to move faster, go more in-depth, while still having to cater to those people who the Workshop was directed towards...those in need of learning beginning C++. In general, just make sure that you know who's going to be participating. This segues nicely into my next topic, make sure to get a list of participants and some contact info. With the C++ Workshop we kept it anonymous. People were able to jump in and out at any time, with or without actually owning the textbook, and with or without letting us know whether they were still following. As a result, it often felt like we were teaching to the void. We were forced to assume their silence meant understanding, but when doing a volunteer project like this, one is inclined to feel that silence means no-one is interested or paying attention. It would have been nice to have email addresses of those who had "registered" as participating, so we could have sent periodic emails to make sure they were either still following, or were understanding the material. As for those who've "volunteered" to be tutors, don’t allow your tutors to "sign up." If you choose to have named tutors at all, first let people demonstrate their commitment to the workshop, then "promote" them to tutors. This prevents people from signing up, getting their bio posted, and then NEVER responding to a single question. On the subject of the textbook, I would have read the textbook ahead of time. Although I had been programming in C++ for oh...a long time, I hadn't read this particular textbook. It was decidedly the best beginning book on C++ for the price, but I didn’t begin reading it until the workshop began. As a result, I failed to catch many typos and inconsistencies which existed in the text. This lead to mild confusion during the workshop, though only limitedly so, as the community at large acted as volunteer editors. Also, make sure the textbook used is freely available. As much as I believe that buying a textbook for $35-50 was a good check on commitment, few people actually took the initiative to do so, which left us teaching a 12-16 week workshop to a dozen or so people. As well, make sure that there is exactly 1 version of the book that people are using. Because there was a freely available version of the textbook online, the less committed participants opted to use that version instead, in spite of urging by myself and others not to use the older, outdated version of the textbook. The end result was that changes from edition to edition caused some confusion. In terms of preparation, I encourage you to have made all the Chapter threads, exercises, and quizzes in advance. It's very easy if/when participation begins to fail to let other priorities come before the Workshop quizzes, etc... But this isn’t fair to the people who are actively following along. Should I take on another workshop, I would try and have half of the chapter threads, exercises, and project descriptions prepared even before the first chapter thread is posted. This would allow a more casual, and relaxed progression from week to week, while giving you plenty of time to get the remaining work done. And finally, make sure the workshop is no longer than 12-16 weeks long. Anything longer than that and people start to become disinterested and lose focus. The Ugly Unfortunately, the ugly comes from some of the GD.net staff themselves, both in the way of support, and in the technical help that was given. To begin with, it was like pulling teeth getting the workshop even began, as the majority of moderators and staff seemed to think that I would get 3 or 4 weeks into the workshop, and then let it idle and die. To be fair, such a thing is often a common occurrence among developers, so its completely understandable. However, the staff and moderators need to be aware that they are in some ways creating a self-fulfilling prophecy. Much of the reason I got tired and let the workshop idle after 16 weeks was due to technical limitations and obstacles which I had to go through, just to get a post put up on the forums. I'll explain in a moment. So, because people thought I would flake, and refused to offer me much technical support and advertising, I got tired of swimming against the tide, and thus, at 16 weeks I flaked. Had they just given me the support and time I needed, the workshop would have made it the full 21 weeks. In terms of advertising, the location of the workshop was not conducive to participation. Then, and still, the "Workshops" are located at the very bottom of a now very long list of forums, and are not sorted by topic. There are art workshops mixed in with engineering workshops, etc...Why is this a problem? Well, people never look down there. If they're looking for forums on technical details they would scroll down until they hit the "Technical Side" and they'd stop, never making it the rest of the way. The only reason the workshop got much traffic at all was the buildup I did for it ahead of time and the mirror thread located in For Beginners. I strongly feel that had the workshop been located at the bottom of the Technical Side and clearly marked as a "Workshop" participation would have been much higher, and thus the workshop would have been more successful. Even today there are questions asked in the FB forum about beginning C++ concepts and when I speak with them they either didn’t know the workshop exists, or just hadn't heard from other people and moderators that it was the place to go for beginning C++ questions. In the first part of the 'Ugly' section I spoke of technical problems. Let me clarify. Before the workshop began it was agreed that I would be made a moderator of the workshop. This would allow me to edit posts if there were invalid or misleading statements, move posts that were not relevant to the workshop, and delete posts which were posted by trolls or people attempting to start a flame war. However, this never came to pass. Ultimately, my being a moderator meant little in the course of the workshop because by-and-large everyone behaved themselves and there were no real flame wars or off-topic posts made. The real problem was that the C++ Workshop forum had been closed for posting from anyone accept moderators, so that I would be certain to be the only one posting chapter, review, and quiz threads. See the rub? I wasn’t a moderator so I couldn’t post threads. This meant that for 16 weeks I had to post messages in "For Beginners", PM Fruny, and then have him or another moderator move the thread I posted into the C++ Workshop forum. But this became even more difficult because we wanted it stickied in the C++ Workshop, but not in the For Beginners forum. Well, we wanted the most recent thread stickied in For Beginners, but none of the previous weeks. So there was some mirroring that needed to be done and moving back and forth as well. This meant the order that Fruny stickied/moved the threads over to the C++ Workshop was relevant, and occasionally it was done out of order, by no fault of his. This caused things either to NOT get stickied in the C++ Workshop, or it would cause the breadcrumbs at the top of the current thread to lead back to For Beginners rather than to the C++ Workshop. This became a difficult, and tiring endeavor and created a psychological barrier to updating the workshop content because I hated having to bother the moderators every time I wanted to post a new thread. It doesn’t seem like much, but it was a long, drawn out battle, and many times I had it in mind to post content aside from the chapter and review threads, but didn’t because it would have been too much effort. I approached the GD.net staff member in charge of the workshop several times about resolving this little issue, and the last time I was told by 'him', and this is a quote: "of all the unimportant stuff I need to take care of here at GD.net, your workshop is the least important." Conclusion All in all, the workshop was an enjoyable experience and I greatly appreciate the support I got from the students who were trying to learn C++, as well as those people such as Fruny, Emmanuel Deloget, Oluseyi, Sr_Guapo, Zahlman, and Deyja who did the majority of the work. Although I began the workshop, it was because of all the effort that these guys put into it that it was as successful as it was. When I began the C++ Workshop I had it in mind to follow it up with workshops on Networking, DirectX 10, Physics, writing add-ons for 3rd party modeling packages, and a whole slew of other ideas. But in truth, I had a hard time swallowing the fact that my workshop was the least important item of all the unimportant crap that the staff members of GD.net had to deal with, especially at the point where I was trying to make GD.net a better place for new programmers to learn C++, and veteran programmers to share their knowledge. As a result, I don’t see myself running any further workshops using the Workshop-forum framework I used before. But, because I really enjoy the community and the feeling of being able to help others learn how to get where I am, I'll continue to use my journal, and perhaps talk to those in charge about hosting a sub-domain, in order to continue to run various workshops, tutorials, and experiments here on GD.net. Hopefully soon there will be more of an effort put forth by certain staff members to make sure those who are running a workshop for GD.net get the support, resources, and advertising that they need, so they wont be put into the same situation as I was. To those people who do take on the task of running a Workshop-forum, feel free to PM me or email me for council, or for help in tutoring your own Workshop - assuming it's for a technology I understand, of course.

Share this post


Link to post
Share on other sites
Advertisement
Yes. I will be posting the remaining chapter threads tomorrow, and renaming the threads based on Chapter Content, rather than chapter number, for easier use.

Cheers!

Share this post


Link to post
Share on other sites
Although I already learned cpp (a long time ago, and I use it scarcely) I did want to refresh my memory and keep up with the project but I gotta say I was deterred by the use of a book that costs actual money...I have some books on cpp, but they just don't cut it, and buying another one was out of the question. But I did follow the project (though I didn't actually code it, I wanted to wait for the tricky bit :)) and it was quite good...

Also, considering your problem with the position of the workshops, maybe gd.net should put the main channels in a list in the beginning of the forums section, thus having a "Table of Content" before the actual forum list, thus allowing the visitor to look at the main subjects and jump to their specific sections?
Someone should suggest it :)

Mikle

Share this post


Link to post
Share on other sites
Quote:
Original post by Crazyfool
I'd like to thank you and all the names you listed :D


Well, many people were not listed, and they all deserve a big thank, including those who applied to learn C++ using the workshop. Ultimatelly, it's not the tutors that made this successfull, but the learners themselves.

Share this post


Link to post
Share on other sites
Quote:
Original post by Emmanuel Deloget
Quote:
Original post by Crazyfool
I'd like to thank you and all the names you listed :D


Well, many people were not listed, and they all deserve a big thank, including those who applied to learn C++ using the workshop. Ultimatelly, it's not the tutors that made this successfull, but the learners themselves.


Every single time I see you post you give more incite then I imagined, hehe ;D

Share this post


Link to post
Share on other sites
JWalsh, Can you post the remaining projects too? Although I missed the deadline I enjoy working on Project 2 and would like to start whatever you were thinking about doing for Project 3 some time in the future.

Share this post


Link to post
Share on other sites
Well, for what it's worth, I just bought the book and after I finish the C++ Game Programming book from Michael Dawson, I'll certainly will tackle your C++ Workshop !!!

Keep up the good work Jwalsh and all those who've helped and still are.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!