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:
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.
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.
HARD TRUTH #1: Recursive algorithms: you have to learn them.
@marythought pretty often, unfortunately! recursive algorithms are important.
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:
elif exp == 1:
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 “5⋅log2(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.
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!
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.
Oxen on the beach in Colva Beach | Goa, Colva (Trip Advisor photo by raumati1: Mar 2010)
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:
application–women only; newbies ok
1 yr w/6 month internship
no (but everyone gets one)
web development; user experience; other topics w/no scheduled dates
application–fundamentals experience required; newbies directed to foundations classes
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:
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.
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.”