MOOCs (Treehouse, Udacity, Udemy, Codecademy, etc): A source of slooooow frustration to learn coding. Long live books!

I’ve recently learned after another week of blog neglect that I had a visitor from Canada, Jamaica, and Germany.  Welcome, non-Americans!  Hello to all the American readers as well.  My faithful 15 who see this show up in their news feed then click away in hopes of something more interesting.  You’re appreciated.  Adored even.  Adored so much that I drew an MS paint picture of all of you to show my adoration!

followers

Sorry for the pile of you stacked together.  I ran out of room for standing people, and then my hand got tired.  I did, however, include that one guy’s two kids.  Yeah, you know who you are, that one guy, and thanks to personal information you divulged on the internet I know you have children.  Don’t worry, you know about my little dog too, so we’re pretty even on the creepy factor.

If you’re the person who is singing, smiling, or permanently in a chair refusing to move while everyone else is standing, you’re awesome.  You’re not like the other followers who just pile up on the floor when the room gets crowded or awkwardly stand on other people’s heads.  You know what’s up.

Alright, odd monologue about nothing aside, let’s get back to the point, shall we?

I previously wrote a post about where to learn web coding where I compared Udacity, Udemy, and Codecademy as either very cheap or free learning methods.  I ultimately decided Udacity was for me, then had to go back and redact the monkeys out of that statement when I realized Udacity was for me situationally but progressively got less for me and more for no one as they stopped describing the “why” and got into just straight up “how”, which put me back to inferring the why a lot, which I’m fully capable of doing, but for very basic things was just so inefficient and rather than watching video lectures I could get my Google search on much faster (which is to say still rather slowly in comparison to having a skilled teacher instruct me).  I then thought, hmm, well, I keep getting spammed by CodeSchool and Treehouse ads on youtube, why not succumb to my Google overlords?

I went with Treehouse because my husband kept telling me how great it was, and I’m super easily influenced by incredibly handsome men who are easily excitable.  Plus, upon researching it, everyone seemed to support it for beginners and CodeSchool was more for intermediate people.  After Codecademy and some Udacity, I didn’t feel very intermediate.  So I signed up, and after the first course on “how to make a website”, I was grateful how much faster I gained the information compared to Udacity and how complete it was.  I happily petered over to my website and put some fancy looking things on it that changed size and disappeared as the screen resolution shrunk.  Then I did the next part, which was “CSS basics”.  Which was hours of the same information.  I was not pleased!  But I figured I grew in depth slightly, so maybe it was worthwhile.  Or so I tried to convince myself.

Then I got to JavaScript basics.  Also, no bad.  It was a bit slow, very a bit slow, and I was introduced to a concept and would start completing the programs they were going to use as an example before the example happened.  I figured it was good practice, so why not carry on?  Then…then I got to HTML forms.  I heard the advice to practice with CSS on your own since how you format an HTML form behaves in strange ways compared to usual HTML and that we couldn’t actually do anything with the form without a server side language either.  This made me want to bang my head on the wall.  I mean, what’s the point in wasting the time to say that if you aren’t going to go over why it behaves strange in comparison and what some of that behavior looks like?  But again, I used my inferential skills, and all was well.  The second part was incredibly frustrating, though.  I’ve been trying to apply whatever I learn as soon as I learn it so I can retain it, however having just learned a skill I couldn’t do more with than make a form that went to nowhere wasn’t particularly useful for practicing.  Motivating myself to get through that section involved a lot of tooth pulling.

I’ve moved on to more JavaScript, but it still feels like it’s moving slow.  I’ve invested over 25 hours into this program so far based on their in program timer for how long it should take to complete (and I’m not sure how much their track changes have adjusted this), but I feel like my retention is pretty poor.  Since doing my photo gallery slide show side project and learning far more from that, I had continued doing Treehouse, but I realized my issue with it.

Treehouse is intended for everyone starting at next to no computer experience, which is made pretty clear from their first course in the Front End Web Developer track.  Massively Open Online Courses are like general education in public school.  It’s meant to serve everybody and assumes everyone knows nothing, even though that’s not necessarily the case.  This isn’t a bad thing, it’s just if you can infer, and if you need some redundancy for retention but the redundancy you respond to isn’t someone telling you the same thing repeatedly, then it’s probably not a great resource for you.  This is unfortunate since I respond really well to hearing information then discussing it with others, and MOOCs provide auditory input.  Consequently, I think a bootcamp such as ADA would be a good match for my learning style, but whether or not I will be able to participate is undetermined yet (since, uh, applicants hear back around mid-March for interviews and end of March for actual acceptance?).  Whether or not ADA is in my future, I still want to learn, so I’ve moved on to another resource.

A book!  I know, I know, learning from books is a super novel idea that no one until this very moment has thought of.  My husband had used the Head First C# book, but he eventually found one part too hard and gave up.  I was never particularly interested in C#, so I never checked it out, but I checked out a couple of their other books while loitering in book stores and then checking the kindle sample version.  The strategies employed are simply good teaching (and entertaining!), and on top of that when I looked at the Java book, the first chapter nearly caught me up with everything I’d learned in roughly 10 hours+ on Treehouse.  So…yeah, I went with this book for the time being.  It’s super interesting to read and engaging, which helps with some of the motivational deficits I’ve experienced with watching MOOC videos.  They had an older Javascript book that was apparently pretty not great, but the internet tells me this is a good resource.  Then again, the internet also told me that Udacity, Treehouse, Udemy, and Codecademy were good resources, which to a point they were, but had a lot of room to grow.

I haven’t decided if I’ll keep dabbling on Treehouse for a bit or not.  After multiple lessons that I couldn’t put into practice, the slow pacing, and the seemingly limited breadth, I may have outgrown it.  The biggest reason for people to go to MOOCs instead of scouring the internet is because they want to save the time spent identifying resources to learn, what to learn, and sometimes the more personable approach to learning with a video lecturer.  A lot of MOOCs still seem to structure their content illogically (ex. HTML forms without any back-end knowledge to make it actually work placed in the middle of JavaScript lessons when no JavaScript is actually needed in order to use HTML forms), which is a good area to improve, and some focus more on having their students regurgitate information than practicing to mastery.  Udacity’s end of unit assignments, practice problems, and optional homework were great for independent practice, but often the quality of teaching dipped.  Treehouse also started having some independent practice exercises as I progressed, but the slow pacing caused me to treat everything like an independent practice exercise, which left me with a new content deficit.  Determining sequential, engaging curriculum is an area any education needs to firmly establish to help educate its students, let alone retain them.  Pacing, however, is usually more an indicator of who you’re trying to teach.

Hopefully my books + Google strategy will go well.  Otherwise CodeSchool has nearly all of the MEAN stack taught on their site, and that might be an appealing alternative.  So far, though, I’m a big fan of the book strategy.  …Don’t read near the end of my last blog post discussing coding resources where I said the same thing then shortly after changed my mind.

Advertisements
MOOCs (Treehouse, Udacity, Udemy, Codecademy, etc): A source of slooooow frustration to learn coding. Long live books!

Another New Year! (sort of) and Other Sources of Reflection

Happy Year of the Goat!  For the first time, I was part of hosting the Chinese New Year celebration rather than mooching food and butchering my knowledge of Mandarin to say thank you.  Much food happened, we made the best spring rolls of all time, then we ate them all with friends and family.  Everyone was happy.

This allowed me an experience I typically have twice a year.  Once during New Years Eve and again on my birthday in August, I typically have this moment where I reflect on where I was this time last year and realize what an idiot I was.  Without fail, I think about myself a year ago and always know that I’ve grown a lot and that if I met myself in the past and had a conversation, I would stand in disbelief staring at myself and my actions, regarding myself as ignorant, naive, and childish in comparison to the present iteration.  This is one of the many reasons I’m incredibly against any attempts at time travel and time travel movies just make me uncomfortable while I suffer through their infinite plot holes.

If I had to meet my past self, we’d inevitably get into a fight.  My present self would be frustrated that my past self didn’t know what my present self does even though they’re technically the same person, and my past self would feel my present self was awfully sure of herself and borderline arrogant.  This most likely would stem from the fact not enough time had passed that I feel like there should be a significant difference in our awareness, and given that it is essentially me who isn’t living up to my standards, I’d get irritated, where as with anyone else who doesn’t live up to my standards I’m generally pretty supportive and encouraging to help them improve.

If, however, I was able to meet up with a past self that was a significant amount younger, say a decade or so, I imagine we’d get along quite well and spend the time figuring out what age I actually was when something happened rather than assuming I was 8.  My present self would admire how dorky and awkward my past self was, feeling accomplished that as an adult I had managed to cover it enough that when I announce it to people who know me at a professional level they don’t believe it is true, but as soon as that boundary crosses into friendship they can’t help but be awestruck at how long I managed to cover and compensate for my social flaws thanks to a large amount of confidence making it appear as though everything I did was normal.  My past self would look up to my present self, proud of the fact I had a dog and finally started studying coding rather than hesitantly colliding with it before running away over and over again.  They’d be a bit perplexed about how the husband happened, but probably accept it if they happened to meet present husband as well.

So, yeah, time travel should never be a thing.

On Chinese New Year, I briefly thought back to where I was last year, and I, as always, just ended up feeling sort of weird about myself.  This time last year my husband and I had been engaged for a couple months and felt sort of weird about it (as a former commitment-phobic who didn’t like spending more than a week with someone), had a sinus infection thanks to one of my dear students snotting all over me in the most epic sneeze in the history of mankind during a math lesson, and I couldn’t imagine doing anything in my career that wasn’t teaching.  This year, I’m married to my dear husband and feel amazing about it, have a shoulder injury I spend hours each week at PT to resolve due to a very angry student, and really want to become a programmer.

Those are all some pretty big changes.  I’m especially grateful that my husband has been as supportive as he is about my desire to change careers, though I know the news has been very shocking to a few of my colleagues since I am very good at my job.  The reasons for it are pretty strong too.  With my injury, I’ve no longer been able to look away from the severe problems in the education system that when you’re working with students on a day to day basis you come across and bump heads with trying to get resources or assistance needed to work with severely impacted students with emotional and behavioral disorders from district administrators who do not respond to phone calls or emails.  I was pretty much shoved directly into it, both figuratively and literally, staring at it and observing it for hours on end every day with no way to ignore it, and those issues are ultimately what lead to the injury in the first place when I received no response.  I could write a novel about these challenges and their implications for the safety of children and teachers let alone the education of students, but I’ll save that for another time.

Since I was eventually placed on actual light work duty, the work I was asked to do was mostly paperwork and on the lucky days helping teachers improve their paperwork to make a positive impact for students.  This meant I was doing a job I no longer took home with me, and the hours extra beyond the typical day were nearly nonexistent aside from attempting to compensate for hours missed due to physical therapy.  I had a lot of time to think about and explore interests, particularly ones I could do without intense use of the right side of my body.  I tried something I had spent most of my life avoiding fully exploring: programming.

I was hesitant at first when I realized I loved it as I gained very basic knowledge of C++ and made silly little programs that did very basic things such as a calculator that no one but me would ever use.  I knew myself well enough to know what when I learned anything new my instant gut reaction was blind love and adoration but that this was caused largely by the novelty of the knowledge and when you first start learning something you see great improvement without much effort.  As I kept going though, even tuckered through scripting in HTML and CSS which were very less mentally stimulating, I still found I enjoyed applying what I learned to actual projects I could improve, make more efficient, and see the changes almost immediately.  Don’t get me wrong – I’m all for delayed gratification.  I love teaching where I wouldn’t see a student’s behavioral growth for at least a month after the initial intervention had been implemented, but that month was hard and often involved multiple instances of unsafe behavior in the mean time.  But the quick way of being able to test and  compile your code, find test cases that would potentially break it and making sure you’ve worked around it, it’s almost like the whole game-ification movement in educational websites.  You get little rewards for your success, but rather than being entirely superficial like the badges on those sites, your reward is simple, functional code.

I love it.  I love everything you can do with programming, the possibilities that can be unlocked, the way computers can do so much that as a human being would take me exponentially longer to process and compute.  I love thinking about a problem then making a simple solution and writing a program to implement that solution then addressing cases that break it.  I love the constant improvement, and adore talking to other people about solutions to problems to learn from what they have to share and how they explain their approach.  My poor mentors have no shortage of me staring at them with love and adoration as I show them my horrible scraps of code and searching the internet for other ways people have solved similar problems with their explanations to the approach.  The constant learning and problem solving is something I loved about teaching, and I similarly love it about programming.

Ultimately, one of the aspects I love most about coding is the fact you get to have that “New Years” feeling of looking back and thinking, “I KNEW NOTHING!  I WAS SO FOOLISH!” on nearly a daily basis – sometimes even multiple times an hour.  In a world without time travel, who doesn’t love a feeling of constant growth every time they figure out a problem they were stuck on?

Some very good news: my physical therapist last estimated that we were just a few more weeks away from me never needing to see her again.  I like the lady, but I really would love not seeing her more than I see most of my friends and family.  On my last progress report day, I scored a “4 to 4-” on a 5 point scale, with 5 points being normal and no need for any interventions.  When I first went in back in December I was at a 2, meaning I had limited range of motion and couldn’t move my arm against gravity very well.  A 4 to 4- means I have most of my range of motion back and can handle some resistance, but still not quite the normal range.

Also the application for ADA closes tomorrow at 5PM.  It’s a web development bootcamp for ladies that would start up in May.  Their programs used to be 6 months in class and 6 months at an internship, but now it’s 7 months in class and 5 months at an internship through one of their sponsoring companies.  I think the extended class time in comparison to other boot camps would be beneficial since typically short term cramming doesn’t lead to long term retention for anyone.  On top of that, I like the fact they have an internship tied directly to it in order to get some experience in a work environment where it’s pretty well accepted that you’re there to work but also very much to learn.  After all, that’s why programs like University of Waterloo’s are so effective.  They place their students in internships constantly so they can apply what they know to real-world scenarios, or in my case work with legacy code.

I submitted my application last week after accepting that talking to a web cam was not my strong point and something I gradually grew worse at doing the more I practiced.  This was disconcertingly similar to my attempts of learning how to dance in middle school prior to our first school dance.  I hope ADA will find it in their heart of hearts to find out I’m actually marginally articulate in person.  If not, I’ll resign myself to continuing to explore other options.

Complete self-study is supposedly a reasonable option, but I would rather have more experience coding with people instead of in isolation since that’s more what the work environment is like in my experience, and I know you learn more from others than you will ever learn alone.  Other boot camps are on the table as well, but the Seattle-local ones typically advertise that in the same time frame it would have been to attend ADA’s classroom only portion but without support or colleagues for half of that time, you will be work ready.  In the mean time, I intend to continue independently studying as I have been in my free time after work and hope I will be contacted for an interview.

There isn’t a doubt in my mind that I will become a programmer; it’s really just a matter of how I’m going to get there rather than if I will.

Another New Year! (sort of) and Other Sources of Reflection