Bootcamps, Tech Schools, and their dirty little secrets

Deciding to do an intensive program like Holberton School inherently means sacrifice. Most of us in the program have left our friends and family and traded them in (only for the meantime, not forever mom and dad) for long hours of sitting in front of a computer. The program asks a lot of us, and the only option is to keep up with the fast pace . We are all in an intense and stressful situation…but it could be worse.

This past week I had the opportunity to attend two different conferences; Developer Week – just a few blocks away at pier 27, and Container World – down in Santa Clara. As I was walking around the different booths, I found myself explaining the basis of Holberton School to just about every one I engaged with. Bootcamps and other tech schools are common place in the Silicone Valley, but Holberton is a bit of an anomaly. Caught in the realm between bootcamp and a four year university – we seem to take up previously unoccupied space. The idea of this school was intriguing to most, and seemed to spur on the conversation.

IMG_1997

Holberton School – San Francisco California

Holberton School is not really based off of any other school, despite some rumors saying it derives some of its personality from a school in France named 42 and its predecessor Epitech. Like Holberton School, 42 is open all (well between ages of 18-30 for 42, which is not the case for Holberton). 42 is free  and the program runs between 3 and 5 years (thank goodness ours is only 2 years). The teaching styles are very much the same, peer to peer training being a key component. But quickly the two diverge – 42 initiates about 4,000 students but is quickly whittled down, and only 1,000 remain (more on that later). This creates a super competitive atmosphere only allowing the crème de la crème (sorry about the shameless french cliche) to continue on. There are a lot of bootcamps here in San Francisco who do similar things. They will let go of the bottom third of its cohort after the first three weeks or so. OR worse…they will let go of anyone who is under performing right before graduation to beef up their numbers of job placement.

Bootcamps these days are hiding some dirty little secrets. There is such a huge need for qualified employees in the tech field; bootcamps and schools are beginning to cut corners to churn out as many graduates as possible. There are are some major flaws revealed when you start to cut corners though. The majority of these fast paced bootcamps are focusing on the newest technologies, but not teaching its students how to problem solve and become a self-sufficient programers. They teach just one language, or one aspect of the tech industry – forcing their students to become pigeon holed – lacking the flexibly and ability to deal with ambiguity the industry necessitates.  Another myth – the job placement rates that schools advertise. Oh boy, don’t get me started on this one. The moment that any school looses focus on its students and starts to focus only on its numbers – it begins to write its own eulogy. If a school is working the way it should, focusing on making sure students are understanding key concepts and helping them learn how to problem solve creatively, the job placement numbers will follow. Instead of keeping that focus on the students, bootcamps are letting go of their underperforming students right before graduation making it easy to place only their very top performing students. Doing this ill-represents the program and give incoming students unrealistic expectations.

Bootcamps are just one approach at training up the next germination of software engineers. Another approach would be what Epitech and 42 are doing. Epitech is a well established school in France that specialized in Information technology, and it’s pedagogy is project-based.

Epitech does not teach technologies, but instills behaviors that allow each student the capacity to evolve, to learn independently, to comprehend business practices, to work in teams and to convince decision-makers.”

It sounds amazing…right. Almost too good to be true…maybe? There are some hidden flaws in the design of this school. One that stands out is the fact that they only teach C. The problem being, everyone in the software engineering industry should know C (I can’t stress this enough), but they should know how to work and write in other languages as well. If you only know one langue, by the time you graduate (if you graduate) you have had no experiences of adapting your tools based on the project at hand. Depending on what you are woking on, C may not be the right tool for the job. 42 derives it’s structure a bit from Epitech. Like Epitech, it only takes the best of the best. By the end graduates are professionals in C, but they have no soft skill training, no web experience, and no system administration experience. This doesn’t even take into account the application process; its a grueling adventure. A basic break down of it is as follows. It begins with an application on line. If you make it through that round, the pressure only increases. The next step to admittance is essentially a month long technical interview. The school takes waves of a thousand students, each wave lasts a month. By the end of four waves or so, they look at the grades and they only accept the top 25%. And those that can actually stick with the program until the very end are even fewer. Another remarkable flaw is it’s lack of structure and instructors. There is no-one on site to go to for help when you need it. You have your peers, and that can be super helpful, but when you and your peers can’t solve a problem, you don’t have the resources of teachers or mentors to help point you in the right direction.

There are a lot of problems with these two ends of the spectrum. It’s as if schools are forcing students through an extruder treating them like palydough. Those who can mold themselves into the perfect shape will make it through to graduation- while those who fail to fit are doomed to become yet another statistic in the ever growing drop-out rates. This industry is growing exponentially, and because of that we cannot afford to only train up the Einsteins and Beethovens of the tech world. That’s not to say that we don’t need those fiercely ingenious people, please, by all means if that’s you…come and change this industry for the better…but big changes can’t be done alone. We are not all destine to be the best-of-the-best, we will not all become the next Marie Curie (or better yet, the next Betty Holberton)…but we can make a difference, and we all have something to offer. Holberton School is setting itself apart because it is not looking to ONLY educate the best-of-the-best. Well, it will educated SOME of the best-of-the-best, but it also hopes to retain the other 85% of students that would otherwise become dropout statistics at most other schools. It just requires appropriate training and support.

IMG_1999

 “This is not a function”

 

So where does this lave us? Holberton is just getting it’s feet of the ground, so there are a lot of unknowns about the future of the program. There is one thing that is already sitting this school up for success, and that’s its holistic approach to teaching the ins and outs of this industry. Software engineering is not two demential, it has a lot of nuances and intricacies that can only be taught though dedication and an ever adapting curriculum.

 

Ladies who Linux

Silicon Valley is an interesting place to be studying software engineering. Patricianly if you don’t come from a tech background…(like me). I live about 45 miles from where I attend school; so every morning I have to take a commuter train into the city.  By 6 a.m. that train is filled with every tech badge imaginable – some I saw this morning, Salesforce, Oracle, Pinterest, Slack, Uber…just to name a few. How do I know…? Because it’s embroidered on everyones jacket, backpack, or other form of branded apparel. It’s a density of no comparison. It can be overwhelming most of the time, but sometimes I get to reap the benefits of of this close proximity to so many resources.

Last night I attended a Meetup at Dropbox. The theme of the night was ‘Ladies who Linux’. The Meetup caught my attention by the title. Not because it was specially for women, but because it was from a line from one of my favorite musical, song by one of my favorite actresses. The song is directly poking fun at women who are pursuing very little in life – the crux of their day being brunch. It’s funny and ironic choosing that for a title of a Meetup for women who are in fact doing the opposite, pursuing the world.

“Here’s to the ladies who lunch–
Everybody laugh.
Lounging in their caftans
And planning a brunch
On their own behalf. “

Elaine Stritch, from Stephen Sondehim’s “Company”

I joined a group of women who are working in the industry, and who all really enjoy Linux. That is an opportunity that only proximity can give you. All of these women, ranging in experience and personality, had such so much to bring to the table. Tammy Bütow, formally with DigitalOcean, now with Dropbox, organized the evening. She recently ran a similar group in New York when she was living there, but now that she has relocated to San Francisco, she decided to help create the space for women to come together and share experiences and knowledge based around the topic of Linux.

My biggest highlight was talking with Jessica McKellar – currently  an engineering manager at Dropbox (although, she tends to wear many hats at the same time). Jessica is quite impressive, and she filled the space with an air of composure and strength. She has worked hard to get to where she is today, and I believe that her passion for low-level systems has been her driving force. Jessica is a director of the Python Software Foundation, and won the O’Reilly Open Source Award for here contributions to Python back in 2012.  She’s written a few books on the subject as well. It’s women like her that give me the confidence to burst through walls when I come face to face with them. Right now Jessica is working on a video series on an introduction to Python. You better believe that I will be following that series to soak up as much as I can from a women who knows what she’s talking about.

I asked her for some advice for a beginner programer. Her one tip… contribute to open source projects. That is now on the top of my priority list.

– So here’s to the Ladies who Linux –

Changing the world one line of code at at a time.

IMG_1829

 

 

Numbers are not just symbols on a page

The above was the title of a project we had to work on this week. We have had a few projects in C before, but all of the previous projects were mainly an introduction to the language. This new project was very different. See, Holberton School’s goal is to shape us in to ‘full stack’ engineers.

mmmm… but that term is a little vague, and is used loosely in this industry. In fact when I was thinking about heading west to attend Holberton School, I was weary of the term. Before coming out to San Francisco, I was planning on attending Mobile Makers in Chicago, a boot camp for iOS. Don Bora, co-founder and chief instructor of Mobile Makers, and a friend of my father, was excited when he heard I was going to attend Holberton, but was weary of how the school train up ‘full stack’ engineers. Full stack is a very broad term, and it morphs into a lot of different things deepening on how people want to use it. You might run into people who call themselves ‘full stack’ engineers because they can do both front-end and back-end. Cool, great… glad you can do two things…. but ‘full stack’ at it’s core means something very different. Look at it this way – lets take for example a a webpage to purchase a flight to California (this being an open invitation for my Chicago friends to come visit…hint…hint). You have the front-end, the part of the webpage that you are interacting with, where you put in your personal information and your select a destination of California. The back-end deals with servers, an application and a database, so that when you log back into that webpage, you can check your flight status and see that unfortunately it is delayed because of bad wether in Chicago (more reason to visit California).  So there you have it- front-end and back-end… but wait… there is so much more to software engineering then just that. What about all the other parts like security, and the construction of the very languages that everything is written in?  I haven’t even mentioned the soft skills like marketing , or other behind the scene things like system administration. There are so many layers when it comes to software engineering. With a humble and realistic understanding that nobody can be and expert in all areas of the full stack, Holberton’s goal is to make us all at lest proficient enough to peel away each layer and deal with bugs no matter how deep down they go. To be able to do that, you do not need to master every aspect of software engineering, you just need to have a solid understanding of how each part fits together and have the tools in your tool box to figure it out from there. And that is why we are solving algorithms in C.

SO back to the top of this post. Our task was to ‘Write a function that takes an integer in parameter and prints it’. Sounds easy right. Just write a function that takes ‘n’ number and prints it on the screen. HA. NOPE. Not easy at all. This was a restriction among many others.

  • You are not allowed to use the standard library. Any use of functions like printf, puts, etc… is totally forbidden.

WOOF. The only function we could use was ‘print_char’, which prints a single character. Not super helpful when a six long digit is passed into the parameter. We needed to figure out an algorithm that would take a given number, figure out how many digits were in that number, from that extract each individual integer that makes up that number and print them in order. Figuring out the algorithm was daunting. After the task was posted, a bunch of us were still stumped… so we shoved ourselves into the only meeting room with a white board to hash out the problem. A few hours later, we had a semblance of an algorithm, with no code attached. Some of us felt like, “oh, great… we haven’t gotten anywhere”. But Julien, one of our co-founders, wanted to make a point with that. He said, the hardest part of this task was figuring out the algorithm, the code part is easy (well, maybe once I am better at C it will be the easy part). He wanted us to realize that when we are faced with a problem like this, you can not start with the code – you have to first figure out how to solve it with pen and paper. Let me make myself clear, pen and paper will never be antiquated. It’s a hard lesson to learn when you have been spending upwards of twelve hours a day typing way on a computer.

Algorithms are not going away. We are learning to use our brains and the tools at hand to solve problems. And that is exactly what a ‘full stack engineer’ should be able to do with confidence an ease. I’m not there yet, but conquering algorithms and C are a few of the tools in that tool box.

Queue the metamorphoses – the cusp of deep learning

I currently have three windows up on my computer, this web page, terminal, and Rick and Morty playing in the background.

I absolutely love Rick and Morty (thanks Kyle for introducing it to me). The tech industry take itself very seriously sometimes, and this TV show manages to lighten the mood. One of my favorite snippets is in an episode from season 2 – Rick and Morty want Summer to stay in the car while they go and take care of something. Rick proceeds to instruct the car  ‘to keep summer safe‘. The parameters ‘keep summer safe’ then proceed to break all convention in an attempt to fulfill that one goal. Watch the clip and you will know what I’m talking about. The short scene is almost a synopsis of the movie ‘A Space Odyssey’ – adhering to these three rues (in this order)… 1. do not harm humans, 2. obey humans, 3. protect yourself. Put in the hands of un-conscience beings, these parameters do not seem to work in a world of conscious ones.

Lets start by establishing that we are ALL very well acquainted with deep learning. YES – YOU – you have a lot of experience with deep learning. Here are some everyday, concrete examples… Google allows us to find information based algorithms, Netflix recommends shows and movies based on what you have enjoyed in the past, and Amazon suggests products based on what is currently in your shopping cart. These are all examples of machine learning, or more specifically deep learning. Right now a lot of us are entranced with the idea of deep learning. Wether it is body augmentation, or the dream of owing a self driving car, we all have ideas about how deep learning could improve our lives – make us more productive while at the same time making our lives easier.

This past week Louis Monier and Gregory Renard gave a seminar on deep learning at Holberton School. They covered everything from the ethics of deep learning to hands on projects allowing us to see how machine learning happens first hand. At the very end we had a fire side chat about some of the ethical implications, both good and bad, of deep learning. There was mention of the possibility of improving elderly care, or those with disabilities, but we kept coming back to this one issue… what will happen when deep learning has to make moral decisions?

Let me give you a specific example. In about fifteen years when self driving cars have become the norm (and yes, that is inevitable at this point), what happens when the car is in a situation where it needs to make a moral decision? Lets say the car is driving down a busy city side street and out of nowhere, a small child runs in front of the car chasing after a ball. The car does not have enough time to make a complete stop without hurting the child. To the right of the car is a cement barrier and to the left is someone on a bicycle. The car needs to decide how to react to the situation. If it goes straight, the child is harmed, if it goes right the passenger is harmed, and if it goes left the bicyclist is harmed. How should it proceed? Now, this might be a hypothetical situation – maybe a little unrealistic… but humor me. How do you program a car to make a decision like that. One might argue, well, people find themselves in situations like that all of the time, and we always have to make moral decisions like this every day. If self driving cars did not exist, the passenger would be the driver, and they would have to make that decision in a split of a second  – harm the child, harm the bicyclist, harm herself. Moral decisions are made by every singe one of us every single day. The big question being ‘How do you program morals’? This isn’t a new question, and the discussion is going to be around in the foreseeable future. Deep learning integrating into our lives is inevitable, but it brings along some very difficult questions. Get your thinking caps ready, because we are in for some trough conversations.

IMG_1605

(Greg getting our fireside chat going)

If you are behind in your A.I. media – watch these to catch up

  • Rick and Morty (pretty much any episode)
  • A Space Odyssey (one of the most classic examples of deep learning)
  • Terminator (deep learning gone wrong)
  • Eureka – (season 1 episode 2 – the next steps in home automation – or the internet of things)
  • Her (but be prepared to be depressed about the future of our relationships with technology)
  • Transcendence (Johnny Depp uploads his brain to a computer – can you take human intelligence and transfer it to another object)
  • Ex machina (who can we trust, humans … or technology)

Impossible Octopus Fitness

 

One of the things that I am really loving about Holberton School is how they iterate on projects to give us a full emersion experience of what it is like to be a software engineer in the real tech world. We are most recently working on a simple web page. Part of the application to get into Holberton School was to create a web page, so it’s nice to be able to revisit front-end development now that we have some experience under our belts. The first part of the project was simply to create a web page with very specific guidelines – all designed to force us to learn specific skills. Elements like, float, clear, and myriad css statements. Once we finished that project, we were given an iteration based on SEO (search engine optimization). The same web page is now a small competition in web marketing. The goal – get the highest ranking on google for a given query. What’s the query you ask… if you haven’t guessed already “impossible octopus fitness”. The website was made in about two days, and it was the only the second one I have ever made, so it is by all means, not a great site, but do me a favor and check it out, maybe Rona (my partner on this project) and I will raise in our rankings when you do a google search of impossible octopus fitness.

impossible octopus fitness

A little birdie Bash

Yesterday we were given our second batch of projects, with a due date at the end of the week. We all got to work right away. I think we are all still trying to figure out the pace of how this school is going to work. Thank goodness it’s not being run like a traditional school – no classes, no attendance -none of that rigamarole. This just means we have to figure out the ebbs and flows of this new chapter in our lives. We are all coming form very different places – different ages, ethnicities, countries, regions, religions and lifestyles. I guess the fun part is that we get to figure it out all together. So far one of the best things about this school, is that every single person here WANTS to be here. The part that will be interesting to navigate is going to be our different skill levels. There are some skilled programers here, and like me – some beginners. This means that we have a lot of resources to pull from, but it also means there is some pressure to get up to speed. It’s nice to feel the desire to work hard, but it’s also very nerve racking. Late afternoon yesterday, I remembered standing up to take a break and thinking that I was proud of my self for getting so far in the projects (I was almost halfway done). When I was talking with some peers in the break room, I quickly realized I was not ahead of the game, but rather just below par (birdie in golf terms). Maybe I’ll give myself that new title “little birdie”. Most of my peers had already finished all the projects we were given. I think these next month are going to be a humility check for me, I’m used to being ahead of the gang – at the head of the class. Not any more. No- back to my bash projects.

Do you GIT it yet?

Day 0 was orientation, basic knowledge, and more in-depth exploration about what to expect with Holberton School. It was super long, but things have only ramped up from there. We had two projects due by the end of the weekend. The projects were oriented around understanding our tools, so when we get started on group projects, the tools won’t hold us back. We had a project understanding git, and github. I was the first to finish that project, not because I knew what I was doing, but because I wanted to get the first project out of the way. It was a blessing and a curse. I know I didn’t do the worst on the project, but I also didn’t do great. I was able to learn a lot form the QA of the project, and I was able to help my peers to make sure they wouldn’t make the same mistakes I made. One of  the biggest things I missed was not using HTTPS and instead using SSH. SSH being the more secure way to do things, since the work would not be associated with my github username and instead a secure shell that recognized my computer. I learned my lesson.

Our second project was on understanding basic bash commands in linux. I think the lesson learned with playing with basic bash is that its simpler than you think. The basic commands are a single word, and yes, you can complicate them by adding comments and such, but at it’s essence, you just need one word.

 

Two projects done, I’ve learned a lot, but I still have no idea what I’m doing. I guess that’s the the beauty of this whole ‘going back to school thing’. I have lived my life so far, proficient in my previous jobs, somewhat knowledgeable about the world around me, and yet there is still so much to learn.

Day 1

I left the house at 5:57am this morning. I still am trying to figure out the best way to commute from  to the Embarcadero BART station in downtown SF. I have to navigate the timing of everything, because everybody else in the area is commuting at the same time. The parking lot at the Dublin/Pleasanton station fills up around 7am. Woof! Traffic and parking was fine this morning, but then again it’s a Friday, and Fridays seem to be a lot lighter in terms of commute (must be be nice to be able to work from home). It’s $3 to park, and it only takes cash. I remembered when I did a trial commute yesterday that there was a change machine, so this morning I took out my $50 to make some change. I figured if I am going to need $3 to park 5 days a week (no parking fee on Saturday and Sunday), I might as well get a lot of cash in single dollar bills. But lo and behold, the machine only takes 10s and 20s. UGH. Why am I so bad at this. I rummaged through the entire contents of my backpack, trying to find a bag I had stashed away somewhere down in the depths. The contents of the bag were numerous gift cards to various places such as Target and Starbucks, all gifted to me by my mother before I left on this great big adventure. I think she was worried I wouldn’t have money to eat (and rightfully so). I had remembered putting some dollar bills in there, but I had also remembered using a few of them at a gas station in Reno Nevada for some slots (it is fondly known as Nevada’s “other” gambling and resort town). Actually, I didn’t gamble, I gave a few dollar bills to my friends to try their luck at the slots. But I diverge. So here I am, at the BART station, digging though my bag in hops I will find a few dollar bills left unscathed, just my luck, I had just enough to pay for parking for the day. Phew.

IMG_1414-1.JPG
LivermoreI bordered the train, and an hour later I arrived at Holberton School…a whopping hour and a half early. Well, I did stop to get a celebratory d
oughnut across the street before arriving at school. SO here I sit, chomping on some sugar coated fried dough (this is not an irreverent tone, I have a huge respect for sugar coated fried anything), and sipping on some below par dinner coffee, awaiting the begging of the next chapter. I’m really not so sure how this story will end. So keep reading and we can find out together.

 

 

Brick Wall #1

Class has not even started yet, and I’m freaking out. When I was first accepted to Holberton School in San Francisco, I knew I was going to be hitting some brick walls. I was not, however, expecting to hit them before class even started.

About a month ago, when a bunch of accepted students were talking on Slack, the communication forum for teams, we started to talk about arrival dates. Most everybody who is attending the school is not from around here, so I suggested that we meet up before school started to break the ice. The first day of school is hard, I thought it would be a bit easier to do the meet and greet ahead of time. A bunch of us meet up at the school, grabbed some picnic lunch at Yerba Buena Gardens, then split up to walk around and see a bit of this city we now all call home. I walked to the pier with a small group then trekked up to Coit Tower. We ended the afternoon with a walk through China Town. It was nice to spend some time getting to know some of the people I am going to be spending the next two years with.

The meet and greet was great. But my freak out happened about 10 minutes after walking in the door. I greeted Rudy, one of our co-founders, and then asked him for the wifi password. He directed me to a framed poster on the wall. It was code. So I took the code and sat down to start to figure it out. Only, I very quickly realized I had no idea where to start. So…I figured I would do some quick searches on my computer to see if I could find some resources or something…but wait, that would require internet. Dang-it. Brick wall #1. IMG_1388-2.JPG