List

Hacking the academic experience

Hacking the academic experience

by Emily Stolfo

In her presentation, Emily Stolfo discusses the need to integrate hacker culture with traditional academic computer science education, particularly focusing on her experience teaching Ruby on Rails at Columbia University. She observes that many computer science graduates lack hands-on skills that are essential in the industry, which she believes can be addressed through a more hacker-centric curriculum.

Key points from her talk include:
- Emily identifies her unique position as both a former student and current educator, allowing her to bridge the gap between theory and practical application.
- She emphasizes that much of what one learns to be a successful developer comes from real-world job experiences rather than formal education.
- The curriculum she developed focuses on practical skills, suggesting that hacking and academia can coexist and enrich each other.
- She provides specific examples of skills that are essential in the industry but are often overlooked in traditional cs programs, such as debugging code from others, using version control systems, and understanding user-focused design.
- To illustrate her points, she shares feedback from her students showing they felt unprepared for internships and lacked vital skills in collaboration and version control.
- Emily encourages fellow hackers to contribute to education, highlighting various platforms and opportunities where they can share their knowledge and bridge the gaps in the academic curriculum.

Concluding her presentation, Stolfo reaffirms the importance of integrating hands-on learning into computer science programs and urges her audience to take an active role in teaching and mentoring others in the community. By combining hacker insights with academic structures, she believes that graduates can be better prepared for the evolving demands of the tech industry.

Coming from a hacker background, I've continually been surprised by how frequently new grads lacked the skills needed, particularly in community learning. When I was asked to teach Ruby on Rails at Columbia University I observed that a significant number of the skills required to become successful professionals in the industry are acquired on the job and aren't being taught in school.
This presentation will review:
- Lessons learned from the experience teaching in my alma mater's CS program.
- How I developed a hacker-centric curriculum teaching not only the algorithms, but the keys to being a successful developer in the modern open source driven Rails community.
- How we as hackers can fix this.

Help us caption & translate this video!

http://amara.org/v/FG9S/

Rails Conf 2013

00:00:16.480 I'm feeling like a total dork right now because I think I'm one of the few people who actually use the template for the slides but um I think it's pretty
00:00:23.800 nice um my name is Emily stalo I'm an adjunct faculty at Columbia University
00:00:29.279 and I work on the Ruby driver at tenen the Ruby driver to mongodb um I'm not
00:00:34.320 going to talk about mongodb today but I'm happy to answer questions afterwards I'm going to focus more on um my night
00:00:41.360 job of uh working at Columbia in the computer science department teaching Ruby on Rails um and having been an
00:00:49.160 undergraduate uh there not too long ago working as a professional and then coming back as both a professional and
00:00:56.920 an educator and reflecting on some of the things things that I've uh learned only on the
00:01:03.720 job so I want to start out with a problem that I've identified that I didn't really learn how to program until
00:01:10.600 I was ironically doing a internship um in the context of a master's at the Lou
00:01:17.560 in Paris and I have a CS degree I did I studied computer science at Columbia
00:01:23.320 University so I want to talk about this problem um and uh the hacker Centric
00:01:29.920 curriculum that I feel like I've developed at Colombia over the course of teaching rails for three semesters so
00:01:35.799 I'll talk about teaching rails at Colombia sort of my story to put everything in context then um this
00:01:42.320 develop this hacker Center curriculum what it is why I developed it and what it actually focuses on and then what you
00:01:49.960 can do as hackers because presumably who here has studied rails in an academic
00:01:56.560 institution who taught themselves rails okay so what you can do as hackers to
00:02:02.560 give back to the community because we don't only have to contribute code we can contribute knowledge and education
00:02:08.319 as well um before I get started on talking about this hacker Center curriculum I
00:02:14.400 want to uh point out that the term hacker is a shith which sounds very close to gibberish but it's a it's a
00:02:21.519 term that's overloaded um it's both positive Ed positively and negatively um
00:02:27.040 but I really want to use it in its positive sense here um the main definition of hacker that I'm interested
00:02:33.120 in is um something that I think Mark Zuckerberg uh described quite nicely in
00:02:38.280 the code.org um uh sort of inspirational video on uh
00:02:43.959 why coding should be taught in schools um and two children at a very early age
00:02:49.239 uh he said that as a hacker as someone interested in technology he um had a
00:02:56.040 goal in mind something he wanted to build and then went and looked up things along the way to accomplish his goal so
00:03:02.200 he wasn't interested in learning all of computer science all at once he was interested in getting to a goal and um
00:03:08.599 looking up um information and tools when he was blocked so this is the kind of
00:03:14.080 hacker I'm talking about here the the resourceful um curious um um hacker in a
00:03:20.799 positive sense so talking about myself I have
00:03:26.080 both a traditional and untraditional background as I said um I work on the Ruby driver team at tenen I work on the
00:03:32.799 Ruby driver to mongodb um we're a team of about three or four people uh before that I worked for a
00:03:39.599 startup in New York City that sells limited edition artworks online it's called 20 X200 as a full stack hacker so
00:03:46.599 I was running Pearl embarrassingly uh Ruby on Rails two different versions uh
00:03:52.280 running server scripts Etc you all know what I'm talking about um before that I
00:03:57.599 did a masters at the Lou Museum it was a two year program and I'll talk about that a little bit in a second I worked
00:04:04.959 at IBM as a business consultant and I studied computer science and art history at Columbia I double majored so why am I
00:04:11.159 telling you all of this why am I listing out my resume um I'm actually a pretty serious engineer um at tenen this is the
00:04:18.320 roomy team we're very serious about our our engineering um but what I really
00:04:25.080 want to get at is that I feel like I have a pretty unique perspective because I went to Columbia as I said as an
00:04:30.520 undergrad then I worked for a few years and I was sort of Meandering around doing things pretty much related to
00:04:36.960 technology and then now as a professional I'm going back and teaching students among which I was not too long
00:04:43.000 ago so I think it's also um not it's impossible to give a talk about
00:04:49.280 education and not at least uh mention why the lucky stiff uh who was um I'm
00:04:54.759 sure most of you know who why the lucky stiff is he was pretty active between 2006 and 2009 as a big advocate in the
00:05:01.199 Ruby Community um specifically for um getting people to learn how to code
00:05:06.560 using Ruby um Ruby specifically because it was so easy to use an expressive and
00:05:12.400 um as close to natural language as you can get in terms of programming languages um and he gave a talk in 2009
00:05:20.680 at Carnegie melon at a symposium called Art and code where he said um that the
00:05:25.840 key to getting people um more people interested in coding was really to have
00:05:31.240 these hybrid programmer teachers because teachers um don't necessarily right now
00:05:36.520 have the skills or experience to build things along with their students and show them practical coding skills so we
00:05:42.600 really need programmers coming in as Educators or Educators who are then educated on how to teach programming um
00:05:50.759 or you just need crazy programmers so I don't know if I'm crazy but I agree with why I think that Academia and hacking
00:05:57.479 should not be mutually exclusive so I said I wanted to show you what I
00:06:03.639 did at the Lou just to give some context here and and I guess um in telling this story um I guess my observations later
00:06:10.880 on will make a little more sense uh so I was doing this two-year master's program at the Lou um the first year was mostly
00:06:17.880 Museum studies was sort of like a business school uh where we learned about budgeting and moving large
00:06:23.080 artworks around the second year I was really missing technology so I did my Master's thesis working full full time
00:06:29.840 in the conservation department to develop a Ruby on Rails application um that allowed uh material scientists
00:06:37.000 there to log samplings that they had taken from artworks there was a system already in place using Ruby on Rails
00:06:43.560 that had metadata and historical data on um artworks and I was building this other Ruby unil system that was more for
00:06:50.880 scientific data and then able to link um data on samples um after analyses had be
00:06:57.520 had been run back to Historic um and metadata about artwork so that a
00:07:02.599 scientist's research could um facilitate a curator um historical understanding of
00:07:09.520 an artwork um so the point of me mentioning this is that um when I went
00:07:15.960 to do this project I went to talk to the woman who was the head of the Technologies Department um she proposed
00:07:21.280 this project to me and I was like yeah I have a CS degree that sounds great Ruby on Rails um never heard of it before I
00:07:27.759 had no idea what it was my road map was completely blank I was like had no idea
00:07:33.039 what I was getting myself into um but all of us well most of us um have taught
00:07:38.080 ourselves rails so we know that there are a number of resources that allow you to learn rails and a few things in
00:07:45.879 particular allow me be to be successful that I identified afterwards in reflecting on this experience um one was
00:07:53.400 uh this existing rail app that I Ed as an example and I would mimic some um strategies and data modeling Etc was
00:08:00.560 extremely useful for building my own app the second thing was the internet and this might seem totally obvious to you
00:08:06.960 but it was not obvious to my students when I started teaching at Columbia and I'll get to that in a little bit trying
00:08:13.520 things out so this goes along with what Mark Zuckerberg was saying that I had a goal in mind I had no idea how I was
00:08:19.759 going to get there I didn't have a road map but as soon as I got stuck I would look something up and um get there step
00:08:26.199 by step books are um not obsolete um colleagues so just talking
00:08:33.360 to people in the technology um lab uh talking to them about the system they
00:08:39.120 had built um their experience was extremely valuable and community so going Beyond
00:08:45.399 just the technology lab talking to people um uh in schools I was reaching
00:08:50.720 out to uh people I'd study with at Columbia this was also extremely valuable and users this is an
00:08:56.959 interesting one so um keep saying I have a CS degree but I never had to think about building a tool for a real person
00:09:04.680 in in school or think about like you would study Theory and then practice and
00:09:10.079 then theory and practice um but this sense of thinking about a user and user interfaces um how to build a tool that
00:09:17.320 is really organized and allows someone to really accomplish something this was um I learned a lot from this project
00:09:23.640 because I worked very closely with that with about 30 research scientists and they with me um developed this system in
00:09:31.160 a very agile way so we iterated on ideas and features um so this was extremely
00:09:36.320 useful for the work that I did then did afterwards um and it's worth mentioning
00:09:41.640 also that I was in Paris which is not known to have uh a super thriving Tech
00:09:46.880 scene um at the time especially it was pretty difficult I didn't know anything about meetups there was really no
00:09:52.920 Community physically that I could have gone and interacted with um and this and
00:09:58.000 I guess this experience um makes me appreciate even more the resources that um I'm from New York so that we
00:10:04.240 specifically have in New York but I'm sure a lot of other cities in the US have great resources as
00:10:10.120 well so my whole point of explaining this is to tell you that um I feel like
00:10:15.640 this experience in particular is what prepared me best for the job that I then
00:10:20.760 took in New York as a full stack hacker um specifically uh there's my first fora
00:10:27.440 into running cron jobs um was this um one functionality on our site where
00:10:33.079 every Friday at 88 am. we had a flash sale on a couple of artworks where the
00:10:38.200 price would be reduced by 20% so I first wrote this script that would run at 8:00 a.m. on Friday and use a callback on a
00:10:45.560 Model to go through and see if it was flagged for price reduction um so it
00:10:51.399 goes it runs I check it I get up um early at uh and I check it at 803 it
00:10:56.839 looks great go to work a couple of hours later I again an IM from a colleague and she says why is this artwork 30 cents so
00:11:04.760 essentially I was messing up um something about saving after create or
00:11:10.040 do calling the call back after create versus save something like that um I don't remember right now but being able
00:11:15.920 to accept that I had made a mistake and react really quickly is definitely something that I learned while working
00:11:21.440 at the Loof and making a lot of mistakes so now back to the present um
00:11:28.120 so I'm working at tenen I started teaching the reals class while I was still a um web developer at this um art
00:11:34.519 company um and when I first taught the class I thought I was going to be teaching rails but as I taught the class
00:11:41.600 I realized that there is so much knowledge I've learned on the job in my couple of years working professionally
00:11:47.360 as a developer that I really wanted to um share with the students and so it sort of like give them a fishing pool
00:11:53.760 instead of a fish type thing um and those assumptions that I had made about
00:11:58.959 about just teaching rails were totally for false and I had to as any Ile
00:12:04.160 developer revamp my curriculum now I'm in the third semester and I feel like I've gotten to a pretty good place where
00:12:10.839 um I guess to describe the course in itself I do teach rails all the classes involve rails but all of the assignments
00:12:18.120 that I or the activities I have students do I really focus on having them develop a certain Behavior or highlight
00:12:24.519 something that I feel like is a skill that you only really get from working in the real world um so I've revamped this
00:12:30.399 curriculum and I think this semester I've had the most fun teaching the class I think the students have gotten a lot out of it um my last class is on Monday
00:12:38.320 so um I'm looking forward to getting my evaluations and seeing what they thought of it um but this class is uh rare and
00:12:47.600 not only at Columbia so it's half semester at Colombia it's only six weeks
00:12:52.639 um I'm not sure I could teach it for the whole semester um just because it's in it's so time consuming um but but just
00:12:59.040 to get an idea of what other colleges were teaching and I guess uh before when I asked uh the audience who had taught
00:13:06.240 themselves rails most of you had taught yourselves rails so I wanted to look at some other universities to see if like
00:13:11.680 maybe I'm totally wrong and other universities do expose students to web development or rails and or rails um and
00:13:19.000 I looked at some of the the better ranked computer science departments in the country I I want to name them to point fingers but um because for the
00:13:25.680 most part their um CS programs are very strong um but very very few universities
00:13:32.000 are even teaching web development not even rails I understand rails as like a specific framework and maybe um they
00:13:37.959 don't have the resources to bring in a particular person who who knows rails but even web development is largely
00:13:44.480 absent from um Academia but you might ask yourself is
00:13:50.800 web development is rails relevant to a CS program in a top uh University or any
00:13:57.759 University really is it something that we should be learning in the community because it's so organic it's open source
00:14:03.600 um we come to conferences like this and we learn from each other I think the foundations of
00:14:08.959 computer science are essential I don't think that we should be replacing University curricula with uh trade
00:14:15.839 school curricula I don't think that Academia should change along with each Trend in the tech
00:14:22.160 industry particularly because a generation in Tech is so short dhh said
00:14:28.079 in his keynote the other day that he developed rails 10 years ago when we were all using flip phones and that
00:14:36.079 feels like an e on ago it feels like another era and it would be impossible for Academia to revamp its curriculum
00:14:42.399 introduce new professors new research new classes um and expose their students
00:14:47.720 to all these new subjects um just based on industry Trends so I don't think it's a very easy
00:14:54.800 problem to solve but I think there are some things that we can do and that I can do even at
00:15:01.759 Columbia I couldn't change when I when I realized this I couldn't change uh everything I couldn't change the
00:15:08.240 curriculum at at Columbia I couldn't change the the core courses you had to take um to get a CS degree from Columbia
00:15:15.519 but what I could change was my class so I tried to highlight in in one
00:15:21.440 of my first classes my students that I see rails as the gateway drug to web development I try to focus on uh
00:15:28.880 thinking about what I learned as an undergrad and what they're learning now and map some of those Concepts to Ruby
00:15:35.000 on Rails and for one I think uh framing everything in an objectoriented uh way is some of the
00:15:42.240 best ways of mapping uh rails Concepts to what they know already uh so they have a class on on databases they have a
00:15:49.079 class on networking they have a class on um just various other theoretical
00:15:54.240 concepts of computer science and I try to extract those and um show them examples and rails of how that um how
00:16:01.759 that works in the whole context of a web framework um in particular I think this is really important because um it allows
00:16:09.759 them to take the theory that they learn and see it in practice and give them a
00:16:15.040 little bit more of a hacker mindset where they can um teach themselves and and run with that theory in particular
00:16:22.199 because um in the job market um a couple of examples of job titles uh
00:16:29.199 specifically in New York that even use the word hacker at 10g specifically on our careers page we say we have a hacker
00:16:36.759 culture so we're looking for hackers um among other jobs of course um Etsy even
00:16:42.800 has a uh job title called office hacker who is someone um the in the job
00:16:48.880 description it says it's someone who is able to take gadgets and Tinker with them and make the the um office
00:16:55.480 environment more productive um and uh facilitate take communication Etc they also have another job title called Full
00:17:02.240 stack no intrinsically motivated full stack product hacker who is someone who
00:17:07.880 takes the masses of of data that they have in existence and finds a way of
00:17:13.280 running analytics on them and presenting them to uh maybe business decision makers or basically someone who can take
00:17:20.280 a bunch of uh data that's unstructured or um has really no um um value and adds
00:17:28.600 analytics on top of it uh so if that doesn't prove that some major tech companies are looking for hackers I'm
00:17:34.960 not sure what would so I had all these ideas um specifically this last semester I've
00:17:40.960 been thinking a lot about this in uh trying to get some of those behaviors into my curriculum and I realized that
00:17:46.799 maybe I'm just completely crazy maybe the the students are learning these skills and I just I just think that that
00:17:53.120 my experience is exactly like what everybody else is experiencing now so I used um this tool called pull everywhere
00:18:00.679 is uh which is a um a way that you can pull a group of people and have them text or use a browser to send an
00:18:07.840 anonymous response to your question so at my last class um had a sort of all
00:18:13.000 Hands-On deck class uh where I uh bribed them to come because I had cookies and
00:18:18.159 milk and they all came they're all excited to uh talk to me about this uh this presentation I was going to make
00:18:24.360 and um answer the questions that I told them I would have for them and I asked them five questions and I'm going to
00:18:29.960 share some of the responses with you because I think they're um pretty useful for showing I guess proving what I'm
00:18:36.240 saying um providing some numbers behind uh some of these observations I made so the first question I asked them was is
00:18:42.480 this class different from other classes you've taken at Colombia and if so how
00:18:47.640 97% said Yes actually let me just say there about 40 people who came to class um 50 enrolled but um I you know some
00:18:55.880 don't always come to the class so 97% said yes and I when I asked them why um
00:19:01.840 some of the words that came up were um modern practical more creative solving
00:19:07.840 our own problems less focused on grading but probably because I'm lazy um just
00:19:13.120 really they I think they felt like they had more autonomy and they could they could really create something themselves
00:19:18.840 be creative they weren't sort of confined to a box or a problem set so
00:19:24.039 that was that sort of proved to me that at least I'm getting somewhere at least I'm doing exposing them to something
00:19:29.280 different the second question I asked was if you've had an internship do you feel you had all the necessary skills or
00:19:35.720 that you are lacking in a particular area so this is one response from that question um and I guess the the point of
00:19:41.720 me showing you this quote is that this one student lists a a myriad of languages that they have to deal with
00:19:48.080 and they said there was a lot to take in they learned a lot but they really wish that they they had some preparation um
00:19:54.400 either in any one of those languages or to deal with them all at once so think thinking about the full stack is
00:19:59.720 something that that I particularly like to teach in my class um 96% said yes to
00:20:05.000 this question that they felt like they had an internship in which they for which they were not prepared by their
00:20:10.799 their curricula curriculum at Colombia um and then they said in particular they felt like uh they were missing they were
00:20:17.400 unprepared for collaborating version controls not taught in any class um
00:20:22.440 learning from others apis Unix you're exposed very little to to Unix semantic
00:20:28.600 versioning I nobody knew what that was when I explained it in class running clean codes this idea of I went to the
00:20:34.720 go talk two days ago and um the speaker talked about writing idiomatic code and
00:20:40.960 I I had to explain what writing idiomatic code was to the students um because I think that we know how to
00:20:49.000 write enatic code by looking at others codes in for the most part and participating in some kind of community
00:20:55.039 um uh having a community interaction and if that's absent sometimes you don't really know um if what you're writing is
00:21:01.080 idiomatic for your language um so that was question number two um number three
00:21:06.280 I asked them do you participate in hackathons the reason I asked this question was because I thought maybe had
00:21:11.720 gotten a sampling in my class of students who just weren't even exposed to hacking at all or never went to
00:21:17.240 hackathons didn't really know what it was um but 50% said they had gone to hackathons so I'm not exactly sure what
00:21:24.200 to conclude from this and I'm guessing that maybe it's because um go hackathons as a social thing with their friends um
00:21:31.520 and they don't really think uh beyond the like one project the one off uh hackathon that they do uh maybe there's
00:21:38.520 I'm not sure if uh maybe in in a hackathon is as I said
00:21:43.760 maybe it's the free food or something I don't really know but I guess for me that proved that okay good they are
00:21:49.360 exposed to hacking they are exposed to working with other people so we have to take it one step
00:21:54.640 further the fourth fourth question was um how have you used open source software before this class and um most
00:22:02.360 of them said Yes actually so I asked this question pretty much for the same reason I asked the hackathon question I
00:22:08.640 wanted to see if maybe I gotten a sampling of students who weren't exposed to open source software didn't know about communicating with over others or
00:22:16.159 um exploring other projects online contributing to open source so the fact that they are exposed open source I
00:22:22.520 think is great A step in the right direction um but I think maybe we need to take it one step further I'm not
00:22:28.360 exactly sure what to extract from this uh statistic but um I think it was good
00:22:33.559 to know anyway that they do know what open source software is and then the last question was I asked them if they
00:22:39.720 had a GitHub account before the class because I had them use git obviously for
00:22:45.000 um for submitting homework and um 90% said yes they had a GitHub account
00:22:50.480 before the class um but most of them said that they had it for a hackathon or
00:22:56.039 personal project uh one of my students last week was telling
00:23:01.200 me that he was really excited that he um was applying to an internship over the summer that required Ruby on Ra's
00:23:07.520 knowledge and he was really excited that he had uh he was in Ruby on Ra's class he had it on his resume and that he was
00:23:13.559 going to submit them a zip file of their source code of his source code that evening um of his rails app and I was
00:23:20.440 like please use GitHub so that showed me that I I guess I'm using GitHub in class
00:23:25.679 but I don't I think I need to go a little bit further with that as well and say it's pretty much the standard for how people share code
00:23:32.679 now so anyway that that was just uh sort of my own thing that I wanted to get the classes perspective just make sure that
00:23:39.840 my observations and uh my conclusions or the way I was thinking about how to
00:23:45.559 develop the curriculum wasn't completely off and I think through these numbers I think I'm pretty much on the right
00:23:52.200 track so my point for you back to now back to you back to this conference as
00:23:57.360 open source contributors I think we can contribute more than just code we can contribute knowledge and education
00:24:03.360 because there are holes in Academia in academic c um computer science
00:24:08.400 curriculum specifically so I want to go over five specific hacker habits and how I try to
00:24:15.480 teach them in my class to give you some concrete examples of some of the strategies I've taken this is just a
00:24:21.120 curated list of five of them uh that I defined and I have examples for uh of
00:24:26.679 course there are other things in class that I try to teach as well um but I just want to share some of them because
00:24:32.080 I think they're sort of interesting so the first one I'm hoping the Wi-Fi will work for this but first day of class um
00:24:39.559 yes okay this is let me Google it for you let me Google that for you uh I use
00:24:44.720 mongodb obviously for my class and so you have to skip active record right when you install rails and so I tell my
00:24:51.279 class on the first day that I will not respond to an email if I can Google your question and find the answer on on the
00:24:58.000 first page of Google results you really need to use the internet as your primary
00:25:03.120 resource um and inevitably a week before the class starts I always get um a
00:25:08.279 couple of emails from students more than than you'd think uh asking me what the textbook is there's no textbook listed
00:25:14.919 on the course site and I always say the internet is your textbook it's your primary resource um and if they want to
00:25:21.880 know some books I'll recommend some books as well because books are of course useful so that's the first thing I
00:25:28.960 really emphasize um using the internet looking things up on stack Overflow and having it be really the first place you
00:25:34.360 go to when you're stuck second thing ability to debug code
00:25:39.840 you didn't write so I do this every single day in my job I did not write the Ruby driver I maintain the Ruby driver
00:25:46.960 um this means I need to reverse engineer the Ruby driver I need to uh debug I need to add features so this skill I in
00:25:55.039 particular try to teach by um their uh authentication homework I um set up a
00:26:01.279 skeleton app on GitHub with authentication in it and I said um here's this app uh look at the
00:26:07.880 authentication elements and put it into your own app and I added a couple of bugs so they were all like oh great we
00:26:13.799 get code from the teacher and of course left it to the last minute I hold my office hours on uh Sunday afternoons
00:26:20.440 classes on Monday um my office hours have never been busier I'd say at least
00:26:25.520 three times the number of students who normally come to after hours or there I think because um having to look at code
00:26:31.840 and getting frustrated knowing where to go when you find an error is definitely a skill that they might not have been exposed
00:26:38.679 to the third thing is build something to solve a real life problem uh so this is
00:26:43.960 the first semester I'm sort of doing something like this or really pushing it um my course site is on Google sites
00:26:52.360 which is really embarrassing because it's a rails class so I decided that this semester I wanted to have my class
00:26:57.679 uh be structured almost like a hackathon and have the students build a tool for me for for them in theory um that I
00:27:06.039 would use next semester so I'm having them build a rails app that allows me to post homework assignments the
00:27:11.880 presentations that I use in class um and has a discussion forum for them and I think there's a little bit of a friendly
00:27:17.880 competition amongst the students to U make the best app because um I said that
00:27:23.080 whichever one is the strongest I'll work with a student to deploy it on Heroku and then use it next semester so I think
00:27:29.360 this sort of practical I said before that when I was at the Lou it was like the first time I had to think about
00:27:34.600 users using a system that I had created or that I was in the process of creating
00:27:39.679 and I think this sort of mentality for them um getting them to um getting them
00:27:45.760 to think about me and them and using this Tool uh is a really important skill
00:27:50.840 to learn especially in a web development class and then the fourth thing engage
00:27:57.279 with the community so I mean this in in two ways uh the first way so engage with
00:28:03.320 the community in person and through code so in person in their first homework assignment I have them sign up for a
00:28:09.120 Meetup and um they add it to their readme and push it up to GitHub sort of as a first uh GitHub commit and um I'm
00:28:17.240 really going for awareness here I don't check to make sure they actually go to their Meetup um I don't really care um
00:28:24.240 but I I realized that I do actually need to check what meet up they signed up for because a lot of them signed up for beer
00:28:30.519 enthusiasts I was like guys this is not the point um but anyway there's the
00:28:35.640 awareness now which is great this is what I was going for I can't through go through 50 readmes and make sure that they chose uh relevant meetups but um
00:28:43.120 some of them like uh make the most of uh they have a lot of uh office hours meetups for students to meet each other
00:28:48.840 I think it's been really great and then the second thing is um engaging with the community Through code uh so their final
00:28:55.399 homework assignment or their final project really which is a three week long um thing uh part of it is to do a
00:29:02.760 poll request on someone else's app and add something pretty simple like validation to a model but I really want
00:29:08.880 to um get them used to I'm going to explain in their last class on Monday um sort of the the poll request etiquette
00:29:14.960 and what that means um so that hopefully they'll get excited by this and potentially write their own open source
00:29:20.480 projects or contribute to open source projects that are out there so that's engage with the community so be aware of
00:29:26.840 other us users out there and and how you can share code with them and then the last one I want to
00:29:33.039 talk about is thinking critically about code so this is what I like to call the
00:29:38.600 leave a penny take a penny mindset so it's this idea of um contributing code
00:29:44.159 either on stack Overflow uh but then also using code from stack Overflow and and thinking about it not just plopping
00:29:50.679 into your app and trusting that it works uh so the way I try to teach this in particular is um I I I encourage so the
00:30:00.519 reason I I need to highlight this really at Colombia is because um the students are a little bit afraid of using the
00:30:06.120 internet for um for Content that they would potentially submit as part of an assignment because Columbia is so
00:30:12.960 aggressive with their anti-plagiarism policy which makes total sense I'm not saying that um that shouldn't be the
00:30:19.159 case uh but getting them used to um the the fact that you can go to stack
00:30:24.919 Overflow take code from stack overflow use it in your app um but take responsibility for that code as well so
00:30:32.000 if you so they had to do a homework assignment U where they had to write a Rask to import data and I didn't tell
00:30:37.320 them how to do it I just said use uh use this uh particular method of uh parsing
00:30:42.720 the data I gave a CSV file um and if any of them ask them like okay what do I start I said look it up on stack
00:30:48.799 Overflow go look at an example and then um but then of course like if it doesn't work uh because something they the code
00:30:55.480 they took from stack Overflow doesn't work then it's their responsibility I'm not going to I'm not going to like not
00:31:01.159 take points off because uh they copied bad code so it's just getting used to um
00:31:06.600 oh the other thing is uh using uh ruby gem so I encourage them to check out gems and if they're interested in adding
00:31:12.279 some features into their apps I have a lot of extra credit so that the students who might be a little more advanced um
00:31:18.120 have something to to uh look forward to um so I I explained ruby gems and how
00:31:23.760 you can look at a gem that might have similar functionality to another Gem and how you cross reference with GitHub see
00:31:30.240 when the last commit was and and how many downloads it has and sort of that that U thinking critically about code um
00:31:37.279 skill that all of us do pretty much every day so those are five hacker
00:31:42.399 habits just sort of a sampling of things that I I like to uh highlight in my class and again these are these are like
00:31:48.639 behaviors that I try to teach through assignments um but the actual class I'm teaching is rail so I go through um all
00:31:55.639 the specifics of rails and Convention ions and um
00:32:00.679 Etc so the number of opportunities in Tech is growing according to the US Department of Labor the number of jobs
00:32:08.519 in computer programming will be 1.4 million in 2020 and universities are
00:32:13.600 only prepared to um fill 30% of those uh jobs and according to code.org the
00:32:21.200 number of computer jobs is growing at two times the national average so it's really important that uh we we are
00:32:27.679 focusing on getting more people involved in computer science teaching more programming either in Academia or in the
00:32:33.919 community and making sure that we're touching on relevant skills because they're in such high
00:32:40.440 demand we need to bring um hacking to Academia and Academia to hacking so
00:32:45.720 that's sort of My overall message of this of this talk I really think that they should not exist um isolated from
00:32:53.120 each other they should really mutually inform each other so what can you do as a hacker
00:32:58.799 what can you do to get involved and share your knowledge luckily there are so many opportunities now to teach
00:33:05.440 programming whether it's in a high school in a community in Academia in particular uh skillshare is really
00:33:12.320 popular in New York I'm not sure about other cities but um in with skillshare you can have both an online course as
00:33:18.919 well as a course in person an ongoing course or just a oneoff one night for two hours thing um and you can make
00:33:25.600 money doing it general assembly is really popular in New York as well uh
00:33:31.039 they're they offer um immersion programs you can spend eight weeks learning how to code um so you can teach uh these
00:33:39.240 classes as well as uh workshops which are just a couple of hours over the weekend um or classes that meet a couple
00:33:46.279 times per week one or twice once or twice a week uh for a couple of weeks and you can get involved in this um it's
00:33:52.639 also great for for networking with people because uh specifically in New York I'm not sure about other cities
00:33:59.080 General Assembly tends to attract a lot of entrepreneurial mind minded people so um if you're interested in starting a
00:34:05.519 company it's one of the best ways to like gain exposure to other people who are interested maybe in the same things as you
00:34:11.119 are YouTube I put this on here because uh when I was watching wi's um uh uh uh
00:34:19.879 presentation at at the RN code Symposium he mentions he makes reference to a
00:34:24.960 10-year-old who's teaching uh C++ through a YouTube channel and if he can
00:34:30.079 do it you can do it um there's teals which is a program that New York is
00:34:35.599 implementing uh in the fall for the first time it stands for technology education and literacy in schools and
00:34:42.359 what it is is a program where Professionals in um in programming can stop by a high school for an hour um I
00:34:49.000 think it's once a week um and you have a TA and teach programming to high
00:34:54.079 schoolers so I think this type of program is really awesome awesome if you have just a couple of extra hours per
00:34:59.320 week and it means so much to um high schools as well as the students in high
00:35:04.480 school hacky hack lessons this is a GitHub repo just as an example something why I started a project that
00:35:11.200 specifically focuses on teaching programming to young people um you can add lessons to this um it's still a live
00:35:18.800 project uh even though y has uh fallen out of um he he shut down his public
00:35:25.320 presence uh podast P of course verbal blogs um rails girls um who got the Ruby
00:35:31.920 hero award this year um they have excellent workshops around the world and you can get involved with those they
00:35:37.920 often uh uh coordinate them with conferences so I know in particular Ruby
00:35:43.720 Nation will have a rails girls Workshop the day before and you can volunteers get involved in that so you can sort of
00:35:49.359 piggyback on maybe um a trip that you would already be making with some um opportunities to
00:35:55.800 teach so for you there are many benefits I mentioned that General Assembly if you're teaching there it's a great
00:36:01.800 networking opportunity um your potential colleagues will be better prepared so this means your managers your interns
00:36:08.640 your peers at work so if you help fill in the holes um in academic education or
00:36:14.119 just really help people who are trying to teach themselves rails or anything really web development um you will help
00:36:20.839 them um just as if you uh when you were learning you were looking for help as well
00:36:27.760 you can fill in holes uh no better way to reinforce your knowledge so I thought I learned I thought I knew rails but
00:36:33.520 then I tried to teach rails I still spend entire weekends before my class relearning rails or just really looking
00:36:40.440 at the source code and making sure I'm like really prepared to answer questions it's like really great way to reinforce
00:36:46.520 your own knowledge and strengthen your profile
00:36:51.760 um that's uh I mean people really love to see that you're active in the community um um as I said you don't only
00:36:57.800 have to contribute code you can also contribute knowledge and education uh build your network and of course Karma
00:37:04.880 so what I'm really advocating for is this thing called Academia I really think that hacking and Academia should
00:37:12.319 um be integrated thank
00:37:25.599 you
00:37:55.599 a