It's about time I write to you guys what's been on my mind for a while about this whole Absolute N00b Spoonfeed project. This will be a bit of background, a bit of a FAQ, a bit of plans for the future, and a bit of a poll for your feedback. Consider me drunk while I was typing all this though, so please forgive all the ranting and whacky hard-truth stuff
Now without further ado, sit back, relax, and be informed.
1. Why
Why in flying spaghetti monsters am I making video tutorials about programming in C++?
Well, I have 2 answers for that.
1. I have a big confession to make to you all; If you believe that i'm some C++ expert programmer worthy of teaching the n00b masses how to program, you have been terribly mislead. I'm just a n00b myself! A dumb stupid newbish clueless n00b like any other. I've got lots of unfocused will and motivation to MAEK AWESUM PROGRAM THINGZ!!!11, and my brain is exploding with ideas close to a point of schizophrenia. I never took a single class on computers, IT, programming, or anything the like. Just a n00bish n00b.
And thus I began my journey to start figuring out how to realize my dreams of programming awesome stuff. I began reading online tutorials, getting myself a book or 2, subscribing to forums and chatrooms, and ended up after a while being half pleased half disillusioned. Pleased because I loved the awesome power that programming offers, the fact that you can program anything you'd like, even invent your own operating system like windows! (alright alright i know its not that simple... but I digress). And yet I was disillusioned because it was sooooo sooooo hard to figure out and learn programming. Tutorials and books were talking gibberish all the time, assuming I understand everything they're babbling about. All back-cover promises that the book is "For the absolute beginner - No previous knowledge required" were disappointingly lies and deception. I wanted to go over to the writer and point out thousands of phrases in his book and say "How the heck did you expect someone with no previous knowledge to understand what you were talking about there?? Shame on you!"
But I never got around doing that
To my shock and horror, the "humans who already made sense out of it all" were in no mood to share their findings. I was taunted and scolded and made a fool out of. They kept throwing "RTFM" and "google it" at me like it was all they knew to type. They kept saying how I'm a lazy dumb student who wants others to do my homework for me. They said nobody wants to help me because I'm not helping myself, they even kicked me out of their forums and chatrooms for "being a jerk", "asking stupid questions", and "trolling".
Only after many months of cracking my skull against a brick wall did I figure out how the basics of the n00b-asking-pro relationship works and how to behave when asking them questions. (This would be altogether another thread i'd need to write, about correct netiquette and prerequisits when asking programming (and such) questions in a public forum/chatroom).
But back in those dark days I really did not appreciate the attitude the pros were having towards me and other n00bs in my same situation. Even though most of their arguments are true (about RTFMing and googling and trying to help myself instead of "running to ask dad" for every little question/doubt, etc etc etc) and yes I understand that they aren't getting paid by the hour to answer all my questions. But it seemed like they have this vendetta against n00bs, to be rude to them and make fun of their ignorance. While 'RTFM' is true, it was also their way of saying "get out of here you dumb n00b, we're not interested in helping you". I totally disagreed with this attitude and perception of theirs that n00bs are morons and no one should bother helping them. I argued that pros should help out n00bs and be nice, or at most remain silent and not harass them. I was strongly anti-RTFM. Well, not really, 'cuz RTFM is true. But the dismissive "you can't be helped 'cuz your stupid" attitude that came along with it was just wrong.
So- why am I making C++ programming tutorials? To show those kind of guys that yes you can be nice and explain things to n00bs. This is how I hoped someone could help me out, with a clear explained tutorial like the vids I made. Back then I promised myself that unlike these other obnoxious pros out there, when I get to the top - I won't forget the n00b I once was, and I'd actually help 'em out.
***
2. After learning and fooling around with code for a couple of years I thought it was maybe time to begin exploring one of my grand dreams: 3D Video game programming! Yessss!!!
Once again I started reading online tutorials about 3D programming, getting hold of some books, and asking (wiser) questions on forums and chatrooms. once again, everything was going really slowwwww... It was all soooo hard to learn and figure out, I was almost totally disillusioned and many times considered just giving up.
I was reminded of the days I wished there were extremely-comprehensive tutorials on C++, and now i was wishing there were such tutorials on game design and game programming. But there were none to be found, except for some more books/tutorials who fail at being very comprehensive.
I told the big void "Look, what I mean is basically a tutorial something like this:" and I went ahead and made the first couple of C++ tutorials of the Absolute n00b spoonfeed, with intentions that one day I'll tell the big void "See? that's what i'm talking about, that's what I mean by comprehensive tutorial ok? good. Now, I brought all the n00bs up to where my knowledge reaches. Can someone take it from here and teach me (and everyone else) from this point onward? 'cuz I can't figure it out anymore".
By that time though...
2. Disclaimers
1. DONT LEARN MY TUTORIALS!!! XD
I respect those pros on the forums/chatrooms. After all they are actual real-world programmers who have years of experience in the field and they actually learned what they know by going to good classes and working hard R-ing TFM. I take anything they tell me as an important lesson to be learned.
Some stuff they say are quite outrageous. Like "Most college/university professors who get paid to teach C++ are really bad at it and you shouldn't learn your C++ from them", or "Microsoft should be burned alive for making certain changes to the C++ Standard in Visual C++", and much more. But like I said, I believe them, and I suggest you do too.
Here's one very important thing i'd like to discuss now;
The pros claim that "The internet and bookshelves are full of tutorials, books, example code, and programming guidelines that are very misinformed and downright mistaken. Grasping C++ is complex enough, making a tutorial/book to explain C++ is definitely prone to error. Don't learn from noobs, don't copy/paste any random C++ code you find online and dont learn any lessons from random code you find online. Consult the good books from pros only and refer to the C++ Standard often. Ignoring all this will result in you picking up bad habits and horrible coding styles that are abominations to the world of programming and are extremely hard to get un-used to and eventually become the source of unreadable rotten code full of ugly bugs."
Although it seems quite harsh but I learned that it's true. There are more ways you can go wrong with C++ than ways you can go right. Be extremely wary of material written by noobs, lest you learn their bad habits and get used to them yourself.
Yes - the pros will definitely recommend you should NOT learn C++ from my tutorials!
This is my official disclaimer: I am just a noob like any other who thinks he can teach everyone how to program in C++. The pros advise you to stay away. You've been warned!
For starters, the proper way of learning programming is to learn programming concepts, software design, the founding blocks of being a good software developer. These foundations can then be applied to any programming language you want! The actual syntax and programming language you choose is a secondary thing compared to knowing well how to think about programming and solving real world problems with software development.
But instead, I just teach you guys C++, and I even excused my way out of teaching Design in one of the videos!
Bad boy that I am! Don't listen to me! Don't learn my tutorials!
***
2. The extent of my n00b-friendly'ness
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook
If that's true about software, how much more so in the realm of learning how to program (take me for example - the universe's latest release of Big-Better-Idiot version 72356.0
There are millions of levels in n00bs. Those that are sincerely trying and may make it one day but are just clueless, those that could make it but are too lazy and would like others to spoonfeed everything to them, and those that are just meant to be truck drivers, not software developers.
And anything in between.
Each level of n00b needs a whole new set of books and tutorials to teach him stuff at his level. If you're higher up you probably can understand things quicker so you need less explanation. Lower down may need to be spoken to like a 3 year old child with colored illustrations and lots of repetition.
The pros will hear none of helping out n00bs. Even the topmost n00b will have a real hard time getting accustomed to the real world of programming and programmers. Only smart people who speak real good english and listened well in math classes are worthy of being helped, by writing documents and books for their level.
I - with the whole n00b spoonfeed project - propose that we should "lower the bar" much more to allow n00bs into the circle of those who deserve being helped, making much more elaborate tutorials for lower levels of n00b (thus much more explanation and illustration needed).
BUT!
I have bad news for y'all: My patience for n00bs is not unlimited!!...
I'm friendly and anti-RTFM for many many more levels of n00b than whats usually tolerated in the pros circles. But my patience ends at some point.
I bring this up because of the really low-level n00bs that ask questions both here and on the youtube channel. Questions that are helplessly beyond answering due to thier epic n00bish nature, or questions which are answered in the videos themselves (!!). Here in the antiRTFM community, I hearby invent a new acronym: WTFV you moron!
What, after watching the video you still didn't get it? Well then, either 1) Go be a truck driver, it doesn't pay so bad. 2) Watch the video again, this time pay attention 3) Wait for the next generation of antiWTFV to come out where they'll implant brains into your skull with C++ knowledge already installed. Sorry dude, I usually cannot explain things any better than what I explain in the vids.
And about what I said earlier that I do agree with 'RTFM'; I was planning to make a wrap video one day about how to efficiently RTFM. How to efficiently google for answers to your C++ questions, how to lookup your compiler error codes and figure out what they mean, good websites where to solicit help and documentation, how to read and make sense of cryptic-sounding documentation-- what do you think I do when you guys ask me questions? I google it, RTFM it, look it up, and ask the pros!
Here are a few more kinds of questions I'll most probably ignore:
* Questions about code or programming guidelines you found in sources other than the n00b spoonfeed tutorials. Why are you asking me about stuff from other Websites/books/tutorials? I ignore these questions because either 1) I didn't cover the subject yet in our own tutorials 2) I never will cover the subject in our tutorials because whatever you're asking about is bad programming practice in the first place 3) This other source you're asking from contains wrong mistaken erroneus code/information to begin with 4) Why don't you go ahead and ask your question to the author of that source material you're asking about!
* Questions about other programming languages. Hello?
* Questions about super advanced stuff like GUI and 3D programming, stuff that's obviously far beyond where the spoonfeed is currently up to.
* "Can you plz bcuz I see your a nice person helping every1 mak me a program that will haxx my warcraft account so i can pwn my friends and email it to fatLazyGoodForNothing@doMyHomework.com kthxbai"
* "How do I craxx programs?"
This is my official disclaimer: Did you come to the youtube channel and/or this forum thinking you could really sit back relax and enjoy and i'll spoonfeed you everything you want and answer all your stupidest of questions? Well you have been decepted! It's a lie! I will not cater to all levels of noob. You've been informed!
***
3. Mood / Interest swings
As I mentioned, being a good n00b that I am, I'm near schizophrenic with ideas and projects and have absolutely no focus whatsoever. Unlike in real software designing/programming where everything is well planned out and specified, and as a matter of fact lack of focus can be (and had been) the death of multi-million dollar projects.
As such, sometimes I get plain old bored out of the whole programming thing altogether and I just go and play crysis instead. Then I go watching some youtube clips and then I get involved with other real-life responsabilites and then I eat vanilla ice-cream.
Haven't you guys noticed? Months and months went by in the past without a single tutorial clip uploaded, and other periods when I uploaded loads of clips.
I would've scored everyone's practice project submissions. I would've posted hunderds of practice projects and debug snippets, I would've made contests and joined projects, I would've taken up on so many of the offers to move to a better forum / website / etc... It's just that, I'm not in the mood of bothering to do it. I just do what I want to.
This is my official disclaimer: Did you think I'm always on your case making you more clips and answering your comments and forum posts and looking to make our community work better? You have been decieved! With a single click on the "Mark forums read" link I ignore all of your posts that direly need answering, muhuhuhahahaha. And anytime I want I'll just leave all you guys hanging in mid-air wondering if there's ever gonna be another video clip and meanwhile I would have escaped in my private rocket to venus, never to return. I'm just not in the mood sometimes. Sorry. Will you ever forgive me?
XD
3. Hope...
Have I epically destroyed your day in the 'disclaimers' section? XD muhuhuhuhahahaha
OK ok hang in there, there is hope. Ugly hope, but hopoe nonetheless.
First off, know that along with the whole "help the noobs" idea I had came the implicit given that I'd be offering the tutorials free of charge, accessible to anyone who want's to program stuff and needs to learn how (and thus won't be helped by anyone in the know. Well, at least not free of charge).
But as you guys were made aware, being as it is free of charge has its major disadvantages; I'm functioning on my own terms, I do whatever the heck I want and couldn't care less. I'm not exactly helping everyone out, I sometimes ignore your requests for help, I don't produce videos at any prearranged pace, I'm not teaching you guys the right stuff in the right way and lots of the info is of n00b quality (see section 2.1 for more details) and may be bad for your programming health, I'm not providing sufficient practice assignments at all, etc etc etc
More than that; there are more features I was thinking about doing which are missing in this project to make it a real absolute n00b spoonfeed, such as;
- Learning software design
- Having some big project in mind all along the way, designing/coding it up as we learn more and more until one day we end up with a finished product.
- DVDs, transcripts, code from the tutorials, maybe even a 3D program that teaches you C++ through playing a game or who knows wtf...
If I were paid something attractive enough, that could definitely motivate me to solve all these issues and do it right... (currently nothing's motivating me other than occasional mood swings. Donations are definitely not very motivating enough (go to the thread about donations- see my replies there? thats exactly how many donations i got, each for about $1. One was $10 i think, another was $60. thats it). Google ads are bringing in like $100 every 2 months. very boring)
But I'm all 'meh' about charging money atm. Maybe because my current mood swing has me totally uninterested or somethin'. I'm slightly scared at the prospect of signing on a responsability to do this project on a paid (thus timely and demanding) basis. I'd rather just keep it free and do whatever the heck I want.
But maybe if the income is good enough then I'll like it.
So I'm asking you guys: what d'you think? Keep it as-is, free and unpredictable? Or shall we discuss a reasonable membership fee and switch to better quality spoonfeed?
I know some of you guys are liek "NOOOOOOOOOOOOOOOOOOOOOOO stfu and keep it free! I'm totally going to get a pirated download of everything if this becomes a paid thing!..."
Oh yea, pirated downloads of my spoonfeed... another reason I don't like the idea. Everyone is just gonna get the stolen vids and then i'm not even gonna get $1 donations
wtvr
4. Appreciation
I'm receiving hueg amounts of thanks / positive feedback / praise etc on the YouTube channel, Youtube comments, Youtube PMs, the forum posts, forum PMs, and even comments from showmedo.com
Just wanted to let you know that your appreciation is highly appreciated. I may have enough quotes from you guys to get myself hired as a rocket-science programming instructor
Extra special thanks to those who were considerate enough to go ahead and donate! That is an altogether new dimension of appreciation, of which I'm very appreciative.
Well, i'm getting really tired and your getting really bored. Please reply with your feedback below.
NOTE: This post will probably be edited and fixed up a bit. Please be aware of changes/edits.
EDIT: added section #4 (which I forgot i wanted to mention initially)
EDIT: added bulleted list in section 2.2
