Mary Dickson Diaz

Code, Life, Learning

Tag: Code Fellows (page 2 of 2)

no matter how long the winter

20150402_093522_resized

People of the internet! I have rejoined your ranks! One of the joys of buying an old/remodeled home is discovering that, after a month of ISP escapades and multiple visits from CenturyLink, the house is not wired for DSL/phone. So, we now have a cord running from the DSL box, across the porch, under the front door and into the living room, where it is attached to a phone jack that is not (yet) attached to a wall.

The point is, it works.

Remarkably, I spent my first day with internet at home NOT watching all the Netflix (TV, I’ve missed you so so much), or scrambling to finish pre- and home-work for tonight’s python class, but rather I gave my partner a ride to work, I made soup, I cleaned my closet and started narrowing down a capsule wardrobe for spring (see Nicole’s take on this here). It’s been A Very Nice Day. I’m feeling Good.

At least three things are contributing to this Good Feeling:

Continue reading

new foundations & false starts

First, a new house update: still getting settled, but happy. No internet yet at home, which is stressful for a few reasons, one being that my new class started and I haven’t been able to fully access the courseware. But, I’m in love with our new neighborhood and yesterday I discovered the Hillman City Collaboratory that has co-working space available (and so much other cool stuff that deserves a post of its own). I may head over there today and take advantage of their internet.

20150315_111053_resized

On to the class…

Continue reading

house of cards

While the rest of the internet was tuning into Netflix on Saturday, I was sitting in a basement classroom learning about Unix and git. SO FUN I know. I was actually looking forward to it because I still don’t really understand about branches and forking and merging and pull requests and ahhhhh all that version control stuff. And, the 1-day course came with a substantial but manageable list of pre-work, which is something this org does well and I appreciate.

Unfortunately, we used a LOT of class time going over that pre-work and other very introductory material, such that I found myself multi-tasking (like Unix!) and finished my final project for class. Appropriately: a game of cards.

Play!

Continue reading

complexity rules everything around me

Hey Wu-team, Mary here, checking in from the Fields of Distractionville. I spent like three whole days this week dreaming of Greek island sunsets and planning an international trip that may or may not come to fruition. I’d be lying if I didn’t share that I’m feeling a bit deterred. Thus, I  don’t have anything new to share this week except for this music video and some hard truths. (Java-javaScript, y’all.)

HARD TRUTH #1: Recursive algorithms: you have to learn them.

Colin is a bad-ass programmer and when I questioned the relevance of this Python McNugget quiz question he shot down my hope that the question was an outlier. You can google for more, and here is Colin’s proof that 43 is the highest possible “non-McNugget number,” if you are interested: click me for McProof.

In a nutshell, recursive algorithms look like this:

def recurPower(base, exp): //this defines a function 'recurPower' that takes in two numbers and returns base^exp
 if exp == 0:
   return 1
 elif exp == 1:
   return base
 else:
   return base * recurPower(base, exp-1)

It’s tricky to conceptualize the idea of using a function *while defining that function* but that’s how recursive algorithms work. This one is about the simplest they get, it’s all downhill from here.

HARD TRUTH #2: Programing == Math.

I will admit to purposefully not turning in this week’s Python assignment about looking at programs and analyzing them for efficiency and efficiency’s opposite, complexity. An example is: how many steps will it take the computer to execute this program? And while it would be lovely to be able to answer “1” or “42,” the answer is usually something more like “5log2(n)+2008.”

Complexity impacts run-time and memory usage, all stuff that programmers need to care about, I suppose. Conceptually, I can understand that a more efficient program is going to mean the difference between your lightning fast web application beating out the slower competition. But as I’m still learning, I skimmed over this lesson thinking: “This is advanced math stuff and it’s tripping me up. I’ll skip this for now. I need to get programs consistently running first, and then I’ll worry about how efficient they are.”

And then look what pops up in the latest Code Fellows lesson:

 

Yeeeah. Hello, complexity. And do you see that lovely red bar of lowest complexity… what does that say? That’s a log function, friends. That’s MATH.

So, ok. Not to worry. One step at a time. The last hard truth is personal to me, but here it is:

HARD TRUTH #3: Do not go gentle down that web development path.

I’ve been wavering a bit on the best course of action for me going forward. After reflection, I think I want to pursue further study in Python with an eye to data science and analytics, what is sometimes referred to as “back-end” programming (systems focused) as opposed to web development which is “front-end” (user focused).  The good news is that Code Fellows has a pathway to making this happen. The bad news is that it’s hard. Like, really hard. And full of math. There is less precedence, programs, and guidance for this path than if I were to pursue web development, and I’ll still have to learn JavaScript to be employable, and I’m ok with that.

So, what now?

Make programs. Get them working. Get registered for the Foundations II Python Course. Make more programs. Make websites. Look at job descriptions and figure out what jobs/skills are connected to programming with Python (learn git), learn those skills and find people in those jobs.

…And plan the honeymoon, because that’s important too. 😀

Programmers: what hard truths did you learn early (or late) in your careers? Share ’em in the comments!

 

“Your bill is NaN”

Just checking in to share that I finished the garsh-darn JavaScript tutorial (kicking and screaming the last 3 miles) and attended my first Code Fellows class yesterday!

The instructor successfully articulated a point I was trying to make in my last post, the difference between paths and sandboxes (or, as I prefer to pluralize it, sandboxen). Learning paths include things like online tutorials: they are consumptive, they lead you down a specific path to completion. Sandboxes (eff it) sandboxen are more autonomous, exploratory learning experiences, driven by learner interest, that generally lead to greater understanding. The majority of our class time will be spent playing with sandboxen.

sandboxen
Oxen on the beach in Colva Beach | Goa, Colva (Trip Advisor photo by raumati1: Mar 2010)

Adorable!

I was trying to complete the first assignment, a simple guessing game, by converting one of my working python games to JavaScript. I wasn’t able to make that work (v. frustrating), but I was able to build on the instructor’s demo to make a game I’m proud of. The original game asked a player to guess a number between 1 and 10, with 2 options: 1. you win! and 2. you lose. I expanded the range, added a way to keep track of the high and low guesses, and built-in exclusions for guesses that are NaN (not a number) or out of range. Try it!

A warning: this game, built-in JavaScript and saved as an html file, operates entirely through pop-up windows. I promise you it does not reset your browser’s search engine to Yahoo! (when I find the program that is doing that there will be many strongly worded tweets), but otherwise the interface is a bit annoying and I hope it is not the only way that JavaScript knows how to talk to the world.

Click me, click meeeeeee!

disruptive web development education

Last night, I went to an info session hosted by General Assembly and with representatives from Code Fellows and Ada Academy. I’ve written about the latter two before (all about bootcamps), and while General Assembly is a new find for me, they also have a strong reputation and a variety of classes for learners at all levels. This is a great trio to have in our city!

The panelists mostly confirmed what I already knew: disruptive web education (that is, learning that occurs outside of a traditional university degree program) is real, it works, and it’s here to stay. For people already working as software developers and programmers, it’s frequently necessary to stay relevant.

I was especially buoyed by the Ada panelist who shared, “I was living in the Bay Area, I had just quit my job and was teaching myself Python… now I have my choice of internship options” <–MY PEOPLE~!

I created a bit of an awkward moment by asking about the similarities/differences between the CF and GA accelerator/immersion (3 month) programs. They were diplomatic but didn’t go into details. Here’s a little chart with what I can gather from web research:

School pre-reqs length cost topics job guarantee?
Ada application–women only; newbies ok 1 yr w/6 month internship free Ruby on Rails; JavaScript; html/css; git no (but everyone gets one)
GA application–newbies ok(?) 10-12 weeks $9500-$11500 web development; user experience; other topics w/no scheduled dates no
CF application–fundamentals experience required; newbies directed to foundations classes 3 months $10000 python; ruby on rails; ios; full-stack javascript; web ui yes

So it looks like the big difference is whether or not GA takes newbies for their immersion program–the trade-off being that they will not guarantee you a job after. CF does, because they can be super choosy about who they admit. A prerequisite for admission to one of their accelerator tracks is “hobbyist” level understanding (roughly 1.5 years tinkering with it, gulp) of your stack. CF and GA also offer a wide range of day-long – month-long full and part-time options. Ada does not. (Yet!)

As a take-away, I’m currently enrolled in CF’s April month-long Foundations bootcamp (which has some overlap with the Foundations I class I’m taking in February) and may seriously consider switching to GA’s web development immersion in March. I’m also planning to apply to Ada.

Other useful info I picked up:

  • If you are only going to learn one programing language, make it JavaScript. JavaScript is all the rage and knowing it will make you infinitely more employable. So, learn JavaScript.*
  • After JavaScript, Node and Angular. Know them. Use them. Love them. (This is the first I am hearing of either.)
  • This is huge: the next Ada application cycle opens SOON! February, in fact. They are not super great w/transparency about the process on their website, but they’re still new and I am confident that will change with time. Next cohort begins in May. I sense this is a pretty competitive application process. Also worth investigating: hackbright, a 10 week option based in SF.

*Thanks to Jessie for pointing out that Java and JavaScript are two different things.

I just completed the html/css Code Academy web track and will be working on a secret, non-Wordpress website soon (as well as, sigh, learning JavaScript). Stay tuuunnnned.

all about bootcamps

keyboard cat

I started to gain confidence that yes, making a career transition to computer programming IS possible, when I learned about two great organizations here in Seattle.

The first, Ada Developers Academy, is free for admitted applicants and backed by public grants and some of the biggest tech companies in town. It’s a one year full-time training and internship program for women with no previous professional tech experience. I met some of the Ada students last year at a big data conference and was impressed by their presence  and enthusiasm. “These are women,” I thought, “a lot like me.”

Continue reading

Newer posts »

© 2019 Mary Dickson Diaz

Theme by Anders NorenUp ↑