Bonfire: Factorialize a number

While doing this (yet still unsolved) bonfire I came to realize that my life long issues with math  lies in not really wanting/caring to know the names/title of the parts of an operation.

With this Bonfire, I wanted to do it all on my own and my biggest hurdle was figuring out what goes where.  I sat and REALLY looked at the syntax that was provided:




Despite my having taken that JavaScript class, and doing little tutorials here and there, I have the bad habit of following the instructions but not paying too much attention to the explanation of what things are.  How can I know what’s missing if I don’t really understand what’s currently there and what I need to fill in.  Again, I read things, I analyze it, I do it but It’s when I sit down and really ask myself “WTF am I looking at”, do I really start to feel the information sinking in.  I know most of my posts touch a lot of HOW I learn and not WHAT I’m learning, but the thing that has been on the forefront of this journey is learning and seeing HOW I learn so that I can maximize and effectively learn this content.

So, on my journey to figuring out WHAT I was looking at, I came across LearnCodeCademy’s revised Javascript Youtube Tutorials For Beginners – #3 Javascript Functions .  I must have watched it over 5 times, pausing, analyzing what the parts of a function are, exactly how return works and a break down of a function what what the parts that make up a function are and what can/won’t happen if you place things a certain way.  I have read what it is MANY times and have been explained how return works, this is the first time it sinks in and makes sense to me (no fault placed on prior tutorials or teachers).

To sink in the content more, I reread the section of Jon Duckett’s Javascript book where it explains functions, what they are and how they work and I was able to comprehend and see and recognize the parts of a function.

I still haven’t been able to solve the Bonfire, but now I’m not staring at it wondering where I should “plug something in”.  I now understand the following:

  • why factorialize (5) is at the bottom (so that I can call it, and I can do so as MANY times as I want).
  • Once a value is “returned”, that’s it.  It’s over.
  • Scripts aren’t read in order, the way HTML is read.  Learning that cleared a LOT of my confusion.

I haven’t yet solved the problem, but based on what I’ve learned so far and the explanation that the Bonfire gives for what a “Factorialize” is, I’m thinking I might have to do a loop in order to solve the Bonfire.


Come on Baby light my (Bon)fire;

I finally made it to the Bonfire section on Freecodecamp. I was very excited until I hit the first real one. It seems simple enough, just reverse a string. They suggest reading material from the Mozilla Developer Network and suggest that you may need to convert the string into an array before you reverse it.

Seems simple enough.  I first decided to use the waypoint samples to guide the way I write the syntax. But that didn’t work.  I see that when doing the waypoints, you miss out on understanding the syntax because you don’t fully type in all the code to make you progress to the next wayline.  You just learn to understand the basics.

I read the literature that they suggest (in case you’re interested it’s: Global String ObjectString.split()Array.reverse()Array.join() ) .  It’s a little too technical for me to comprehend most of it, and that made me feel stupid for about a good 10 minutes.

I went back to the bonfire and read the instructions.  Then I read them line by line, as I was taught to do in my Project<code> class, and it started to make sense, the gist of what some of the steps that I have to do.

  1. turn the string “hello”, into an array.
  2. return it so that it reads “olleh”.
  3. it must be returned in a string.

I went back to seeing the waypoint sample lessons and looking at the code we aren’t allowed to alter and started putting that into my text editor and nothing.  I was tempted to jump on the FCC Gitter Channel and ask for help, but decided to google the exercise and see if anyone had the same concerns I did in Quora or some other forum. Instead I was pleasantly surprised to come across Wulkan’s blog.   Wulcan’s blog had the answer, but most importantly (and sacred) to me, it explained the Mozilla literature in plain English!  I sat there are read Wulcan’s paraphrased definitions and reread the MZD information and it’s starting to make sense to me.

Off I go to try to see if I can come a full circle.  I was too excited to wait until I figured it out to share.



Instinct leads me to another flow…

I not only went back and did the chapters on Freecodecamp that I had previously done before they revamped their lessons, but I also surpassed what I had done.

At first I was a bit nervous since they give an estimated time of how long each section should take to complete. I breezed through the HTML, CSS, jQuery, and Bootstrap waypoints.  The Basic Javascript chapter wasn’t too too bad, but I started getting challenged when I hit the Object-Oriented Functional Programming chapter.  It started off okay, then got a bit more difficult, not in terms of content, but in terms of how you think about code and creating “objects”.  It’s hard for me to learn to envision how something can be utilized when you don’t really understand what it is.

What I found made it difficult for me was not understanding what certain keywords meant. For example, I know what “parameter” means, but in terms of coding, I didn’t.  There were a lot of things I didn’t understand as I went along, but I wrote down notes and questions for me to research when I finished the lesson.  I could’ve probably stopped in the middle and researched it, but I get distracted when I do that. I finished the chapter and realized I FINALLY made it to my first Bonfire! I was so excited, until I got to Bonfire #2 and didn’t understand what I was supposed to do.  At this point, I was 2 hours into coding and decided it was bedtime.

This morning during my commute, I pulled up my Javascript and jQuery by Jon Duckett and realized that the part I couldn’t get passed reading is EVERYTHING I had been working on last night.  Reading about concatenations(joining new strings), what’s a parameter (a variable within a function), and constructor function(function that describes the object being made) made sense.

I think my study style for  Javascript has finally clicked:  I work through things, even if I don’t understand it. When I finish the lesson, then read up on it. For some reason when programming, if I read something and THEN put it to use, it never clicks, there’s just no connection. But if I do it first, and then read about it, a light bulb goes off.

I’m really excited. I’m starting to get this.  Now off to check out this bonfire before bed.


A long December and there’s reason to believe

I might just be able to accomplish most of my goals, as I’m not going too overboard.  This week  I decided to restart FreeCodecamp.com and I am about 5 waypoints (mini-lessons for those not familiar with the site) away from where I left off in Javascript.  It was a little boring to go over HTML/CSS and bootstrap but it was a nice refresher.

I enjoyed redoing the jQuery chapter (I think I have a little crushing on that library) and I’ve been mentally toying with the design of this blog.

Listening to a free webinar titled “Building A Personal Brand” by one of my favorite vloggers, Roberto Blake.  He’s a Freelance Graphic Designer and Digital Artist. Despite my not being a graphic designer I love listening/watching him because his content is resourceful and has tips that can help any front-end developer. He gives tips on working with clients, work, types of machines he recommends, branding, and just real-world advice from someone in the tech world.   I highly recommend you check him out.


Tech Goals and Resolutions

For the past 10 weeks I have been taking the NYPL’s  Techconnect: Project Code Phase 2, jQuery, Bootstrap and Javascript.  We are the first round to take this second phase, aka the guinea pigs.  The class was good, but about 3 weeks in I had a feeling I would be falling behind,not because of the curriculum but because my personal life has been going through major changes.  I really thought I would be able to juggle classes as well as all the changes I have been going through.   I tried my best, and I’m happy I didn’t quit and didn’t squander the opportunity given to me. I just wish I knew then what I knew prior to accepting the invitation to join and perhaps passed it up and maybe joined the next cohort. I was just so eager to jump in and learn that I didn’t stop to think of the workload and how I would’ve managed my time and everything else that was going on.

There are only a few weeks left to 2015 and it’s made me make a list of my tech goals and resolutions I want to work on in the upcoming year.  Here it is, in no particular order:

  1. Update the blog once a week.
  2. Finish FreeCodeCamp.
  3. Start making small sites for profits.
  4. Focus on design, color and composition.
  5. Not focus on learning a subject. Learn based on what I want to make.*
  6. Go to a few tech meetups.
  7. Go to a tech conference.
  8. Start using Github on the regular.
  9. Contribute to open source projects.
  10. Update this blog and add a portfolio section and customize the design. Bye, bye stock layout.
  11. Get business cards printed.
  12. Read more programming/design books.

If this year alone taught me one lesson, it’s that learning, for the sake of learning, is good. However, if I’m not currently building anything with what I’m learning, then it’s almost a waste of time. I am taking the time to learn something, I’m not utilizing at the moment to build something, while putting what I want to build on the side and not working on that project.

I feel that the things I’ve retained are based on learning them while I was actively building/creating said thing.  Time is my most valuable commodity.  I may not know javascript inside out the way I’d want to, but what if I learn a few Javascript/jQuery tricks/commands and learn them REALLY well in to make my sites functional and do what I need them to do.  Isn’t that more effective than filling my head with things I won’t remember to do if the time ever pops up that I WILL need it?