AMPed a Web Dev Adventure blog by amarkpark

Learning By Failing

I’m just starting my third week of The Firehose Project online bootcamp. Thus far it has been a roller-coaster ride for me. Days of intensity, days of distraction and days of quiet persistence. Moments of sheer delight, moments of sheer frustration. I’ve done as much soul-searching as I have pouring over code.

As with any new learning experience, I am often awed by the enormity of what I don’t know. Perhaps that should read: I am often overwhelmed by the enormity of what I don’t know. Many-a-time I have no choice but to helplessly follow along where my lessons lead, trusting that some future chapter will shed light on what is not yet clear to me.

“Good Code comes from experience, and often experience comes from bad Code.”1

At this point I am learning a great deal from my errors, typos, and mistakes. Clever parallel to life, that. After sludging through a particularly nasty experience, a little wiser for the pain, I generally say “Well I’m not going to do THAT again!”.

FHP is clever in their teaching style in that they intentionally write certain errors into the lessons. The better to teach what NOT to do. I enjoy spotting the errors ahead of time when I can, trying to determine how to avoid them.

As I read the objectives of each lesson I try to pinpoint what files I’ll have to edit, what methods I’ll have to add. Given a new process, I try to apply what I learn early in the lesson to other parts of my current App before I am instructed to do so, to see if I grokk it well enough to run with it.

Most days I do everything I can to AVOID asking for help. Note: this is a blessing and a curse. I learn more by figuring out for myself why something doesn’t work than I would by being spoon-fed the answer. BUT…

“The woods are lovely, dark and deep,. But I have promises to keep,. And miles to go before I sleep,. And miles to go before I sleep.”2

There is always a new rabbit-hole to dive down here. Always just one more detail to be hammered out before going back to the lesson. I have to remind myself that I have a finite period for learning all FHP has to teach me and there is a point at which it will do me more harm than good to keep struggling on my own.

Here be Monsters:

Final thought for tonight… There is a REASON why uncharted waters held fictitious monsters. The unknown can be a dark and frightening experience as you find your way.

There are always frustrations. (Monsters to fight.) Trying to learn and understand it all at once can get you lost, overwhelmed. Sometimes there is no help but to take a step back and disconnect for a bit. As much happy fun brain-candy as there is learning to code, an hour or two of a thorough distraction is like a server reboot. Laugh. Let it go. Pick it up tomorrow. Clear out the buffers, start fresh.

Unconscious cognition happens when you are focused on something else. You may see clearly after a good night’s sleep and a playful interlude.

~AMP

1. Shamlessly stolen from “Good judgment comes from experience, and often experience comes from bad judgment.” –Rita Mae Brown
2. Stopping by Woods on a Snowy Evening BY ROBERT FROST

Glassy-eyed Stare

v.1.0.1

My goal for this morning was to do TWO things… change the colors of the titles and navdrawer, and change the format of the post date to YYYY.MM.DD

Sadly v1.0.1 of this blog represented at least 2 hours of work. 2 hours I didn’t have to spend. AND I need to figure out how to fix the title links that link to the individual post pages. I think it’s the same problem that I was having with content placement and relative vs. absolute paths. As though perhaps something isn’t right in the layout hierarchy or the site.baseurl variable. Meh.

I spent 12 hours coding and styling a Web App in my online Full-Stack bootcamp yesterday. I managed to make pagination function. Then I looked at how many more chapters were left in the lesson for this particular App. I had finished Chapter 3. There are 13 total.

To say I was a tad deflated was an understatement.

We have a student Google+ group where we share and interface. There are several posts there that describe a learning/enthusiam curve graph. For certain I have taken the nose-dive into the major slump of the curves. I am trying to keep my enthusiasm up as I learn how much I have to learn. Trying to convince myself it may some day be worth it in the end when I may possibly get a job doing Full-Stack development for a living.

Note the conditional statements above.

Yep. I’m having a hard time finding hope with two hands and a flashlight in my teeth right about now.

Time for a snack. Maybe some Spark Roast and a good Comic. Because once my stomach is appeased I’m going to DIVE BACK IN DAMN-IT!

~AMP

Epiphany

#YouKnowYoureAWebDeveloperWhen A quick static page accidentally becomes a multipage Bootstrapped site w/ header logo and content in ver 1.1

That was my “Ah Ha!” moment

I had been revising what should have been a simple static page with a few lines of text on it for HOURS, happily diving down the rabbit hole in order to resolve a few issues I had and adding “just one more thing…” “just one more thing…” until my single simple HTML page had become a sleek multi-page app with a header and a child page and a logo and content all nicely arranged just so in Bootstrap.

By the end of the day I was composing three different methods to describe a dog’s tail wagging in Ruby and I was thinking of boiling water in terms of a Ruby method.

Coding is my heroine.

I feel a lot like Remo Williams right about now: “The Adventure Begins”

~AMP

# method 1 works

puts "Number of wags?"
wags = gets.chomp.to_i

def tailwags(wags)
	if wags % 2 == 0
		puts "right"
	else
		puts "left"
	end
end

while wags > 0
	tailwags(wags)
	wags = wags - 1
end


# method 2 works

puts "Number of wags?"
wags = gets.chomp.to_i

def tailwags(wags)
	while wags > 0
		if wags % 2 == 0
			puts "right"
		else
			puts "left"
		end
		wags = wags - 1
	end
end

tailwags(wags)


# method 3 works

puts "Number of wags?"
wags = gets.chomp.to_i

def tailwags(wags)
	if wags % 2 == 0
		return "right"
	else
		return "left"
	end
end

while wags > 0
	puts tailwags(wags)
	wags = wags - 1
end