views:

976

answers:

18

I've been asked to a local high school to talk about careers in software development/engineering. I have roughly an hour of time to fill and will probably have 30-40 students in a class room.

How would one go about 'selling' a career in what we do to kids in high school? From what I have been told my audience is going to be half kids who are already interested, and the other half are going to be 'tourist' using this time as an excuse to get out of another class.

  • How would you present what we do? I've thought about bringing in my copy of Office Space, but I'm not sure how that would go over. Would you go with slides, get up and just start talking off the cuff, or a combination of the two?
  • What do you believe is the most important message they should walk away from my talk with?
  • Has anyone experienced a talk like this when they were in high school? What did the speaker say to inspire you?
  • How would you go about getting the 'tourist' possibly interested and wanting to learn more?
+3  A: 

Find a way to connect what you do with what they do. If they see how it affects their lives then that's your best chance at getting them interested in the topic. For that you can use the subject of web apps that they might use, and talk about how software engineers / computer scientists build these pages (at the high level). If you want to bait them, you can talk about all the perks you get for working at Google ;)

Loren Segal
Perqs do not a career make.
Nathan Feger
+1  A: 

Since Office space is about resentment of the sort of work developers have to go through sometimes it may not be a good thing to use to try to sensationalize the field :)

I think some slides are a must, printed out for the students so they can at least take them home and talk to their parents about the possible career path.

Also, something exciting might be a sped up video of a small piece of software being developed, akin to the appaday challenge that shows something coming alive, as it were, at the hands of a developer. Make it something that they will relate to (probably something dealing with the various social networks they use daily).

Emphasize that if they are interested in solving tough problems and seeing those solutions created this may be a field they are interested in. That is why we are all here right?

manicmethod
+2  A: 

I would say to present what we do by focusing on different types of programming careers:

  1. Game programmer: this should get their attention
  2. Software company: Microsoft, Apple, Google, etc.
  3. Corporate IT, financial and logistics systems, etc.
  4. Web Development

I would also focus on the things you like about the career choice; how developing software is creative, and how rewarding it can be to create something that helps other people.

I'd also mention that the salaries are pretty good, even coming out of college.

Guy Starbuck
+1  A: 

I don't really know if there is a way to really interest someone in software development per se. I think that rather the kinds of people who become the best hackers are the ones who enjoy problem solving. Essentially that is what the most important elements of programming boils down to. The people I've seen who don't have that hacker "how does it work" mentality are only really in it for the money and generally don't like it very much.

docgnome
+7  A: 

If I had to pick one point, it would go something like this: "Software is everywhere. If you can't program a computer at all, you will spend your whole life dependent on other people. Do you want to be in control of your own destiny?"

There isn't a single job in today's technical market where you can hide from the need to program a computer. For example, Matlab, SAS and Excel macros are all examples that might not normally occur to those of us who are all Java, all day, but are used by technical people to get their jobs done. The core reality of today's workplace is that, no matter what you consider your job to be, everyone will end up in a situation where they need to make a computer do what they say.

The flip side of that is that everyone needs us and, as your career develops, you'll find yourself pulled from one field to another, learning all the way. During my career, I've been exposed to a list that includes but is not limited to:

  1. Theater lighting.
  2. Oceanographic survey.
  3. AIDS and cancer-focused pharmaceutical research.
  4. Non-contact laser-based heartbeat monitors.
  5. A trip to a facility in Australia that had detailed charts illustrating a variety of appallingly poisonous snakes that you might expect to encounter if you were foolish enough to walk in the grass.
  6. Some other trips overseas and the occasional helicopter ride (perhaps a hook for the tourists in the audience... ;-).

I suspect that many of us that have been in this field for a while would have a similar inventory of resume bullets.

Bob Cross
`*envy*` I'll get there.
Camilo Martin
+1  A: 

I would first ask them what their reasoning was and then give them from advice from there.

For example if they say they like the looks of the salary then I'd warn them that they should go for a field they are passionate about and that they think is what they were made to do, not go into something for money.

If they pass that test then I would get out my C++ book, turn to the chapter on pointers and hand it to them with a big toothy grin.

shogun
+1  A: 

Programming is about the ability to look at a computer and know that you are able to bend it to your will as opposed to the other way around. It is about being paid to think hard thoughts and realize them.

However, these are very abstract concepts that are probably going to be meaningless to most students.

Do you have a projector available? Can you make something happen? i.e. put together a website in front of them, or show them how to send their teacher one email every minute from 2 to 3 am.

The trouble is to find an example sufficiently trivial from a programming standpoint that it is accomplisheable in the time allotted, but sufficiently novel to attract their attention.

Perhaps an Iphone app....

Good luck,

Nathan Feger
+3  A: 

I know you're asking for ideas to talk about, but if I could mention one thing, it would be:

Be an engaging speaker!

Whatever you say will have an impact, but I think how you say it will make an even stronger impact on the students. You want them to go home thinking, "That computer guy was pretty interesting / fun to talk to / seemed more like a people-person than I would have expected from a computer guy."

David
+13  A: 
  • Be engaging. That can involve colorful slides, jokes if you can pull them off (but don't overdo it), a smile on your face, active body language (though not as active as Ballmer with his "developers, developers, developers"). A great speaker can make his audience interested in the inner life of crustaceans. Fortunately, you just have to be a good speaker.
  • Get them involved. Start off with something simple -- "How many of you have created a webpage? Keep a blog? Have a profile on MySpace or Facebook?" Move into a litte more interaction -- "What do you think of when you hear 'software engineer'? "Where do you think computers are used?" Write these out on the board, and start adding really "cool" ones -- the Mars probe, every modern car, ATM machines, cellphones, games, etc. Write them in a "cloud" so that soon the visual is telling the students that this stuff is everywhere.
  • Tell them it's challenging I usually think of solving problem as conquering them. Describe the feeling of elation one gets when a particularly hard problem is cracked.
  • Tell them it's rewarding Don't go listing off salaries -- that's gauche. But do pop a few slides of the fun life at Bay area startups. I am sure you can find a few on TechCrunch.
  • Tell them it's fun Play this video -- young people, having fun, working the internet.. http://vimeo.com/173714
  • Tell them this is how you have an impact Go through a list of computer folks who have made an impact -- Bill Gates (both for MS and his foundation), Brin & Page, the folks who started http://www.Kiva.org , and more.

And save some time for answering questions. That should do it for an hour...

SquareCog
+1  A: 

Tell them they've got to like math, or it might turn them away. I've found lots of people imagine Computer Science and related careers to be a lot more... "romantic" than it actually is.

Sergio Morales
+1  A: 

Be upfront about salary expectations. It's one of the things students won't dare ask about, but will be extremely curious about, and it's hard for them to get reliable information from their councilors.

Tell them how much developers make, on average, in your area (at entry level and on average), and compare with other jobs. It helps to give an approximate per hour salary, since high school students often have no idea what a yearly amount represents.

Kena
A: 

I would, and have told students this:

If you are taking programming because you like to PLAY video games, or you heard that programmers make lots of money, switch while you still have a chance.

John Kraft
+6  A: 

I did this once before. I went to marketing and got a bunch of pens with our company logo on them (Intel). Then, after my talk, I held up one of the pens and asked if anyone had a question. I gave the pen to the person that asked the question as I answered it. Then, I held up another pen... the whole box went quickly. When there were no more questions, I asked everyone that did not have a pen to raise their hand... so I could give them one. This definitely got the interaction going.

I did not use slides, but I did bring a box of old hardware (stuff people don't usually see, like cpu's, hard drives, etc.) so that the people could touch them.

BTW, I equated programming to solving brain teasers. I told them that if they liked solving puzzles, they would probably do well programming. I also stated that programming is not for everyone. I encouraged everyone to follow their dreams. For example, if you love animals, become an animal trainer, animal doctor, or ... Don't try to become a programmer just because you heard that there is money in a career like that. I encouraged them to do what they love because you'll be doing a lot of it!

Good luck.

BoltBait
+5  A: 

Well while you are "selling" software development. The reality is that you don't want to sell software development. Your job is to give a good overview of the craft so that kids who have an interest in it will learn more and maybe some who aren't interested will become interested. You need to represent programming accurately.

Some will have unrealistic expectations about programming and will want to enter it for the wrong reasons. You don't want to sell them software development. You want to make sure that they have a better idea of what it is. And if upon learning that they decide to pursue something else, then you have done a real service for both developers (who have to deal with a bunch of people who should not be here) and the students (who don't end up in a job they hate).

  1. Programming is about communication. Try to find someway to mention this. Constantly the requirements are changing and the customer doesn't know what they want but through communication you have to find it. The stereotype of the kid locked in his office programming all the time needs to somehow be deflected.

  2. Programming is about problem solving. Not all kids are interested in it. But for those that do love solving math problems/etc. who will probably go on to software development, engineering, mathematics, etc. you have to make sure to represent that programming is about problem solving.

  3. Okay here's the practical consideration. Kids like games. As a kid I learned this thing called BASIC and then later this thing called C all to muck around with games. Kids also like bells and whistles. The old days of for loops in QBASIC making circles and lines that grow from a tiny dot to taking up the whole screens, often with annoying music going from low to high via a for loop....they respond to that.

So basically the reality is that you can find some practical examples like showing off some relevant "cool" iPhone app and discussing how that was programmed. You can mention how it takes programming to guide the mars rovers. And all the standard stuff to make the geeks drool. Then you can discuss games and maybe even show an example of one that you did.....

The reality is you don't want to sell House who is going to become a doctor to go into Software Development when his heart is into being a doctor. You want to sell Richard Stallman, Linus Torvalds, etc. that they want to be a software developer. And for people on the fence you want to educate them a bit more so some of them can realize software development is not for them and others can realize that software development is for them.

One of the best things you could do would be to give them a CD (that works on windows computers because that is probably what they have) with some programming environment and some sample programs so they can play around and see for themselves. I don't know what the best answer is. Maybe Python and find an open source game or Java and find an open source game. Most will probably throw it out. But for the one or two who are interested they will get that cd, load it up, install the JDK, play the game, and start asking questions like (how do I stop myself from losing life if an enemy hits me, etc... [I still remember modifying that qbasic centipede game to make me invincible whistle].

So I think the reality is this: 1) Dazzle them with some cool real life examples of what programming can accomplish 2) Give them a sheet with web links and resource to learn more, along with a cd with some type of quick environment that they can use to play around if they want. You'd be surprised how smart kids are. If I had the computer I probably could figure my way out at 7 or so. These are high school students. The more technically oriented ones are probably already fiddling around with some programming language. But there may be ones on the fence. And I'm sure the more technically oriented ones would always appreciate new ideas. 3) Discuss games...in high school it was all about the games. My friend who used Turbo Pascal to make a space fighting game was pretty revered :) The rest of us were all into text games. Basically many of the would be programmers will be game obsessed by that age :-P

Cervo
+2  A: 

I've been programming for several decades, I know the field.

  1. Software Engineering is a combination of math and business. You can concentrate on the business side or the math side. Or in between. You won't know in high school what you want.

  2. Get a master's degree or you'll be a peasant all your life. I recommend CS or an MBA. If you can get both you'll do well. I'm serious, just a bachelors will cut your opportunities. It will cut your charitable opportunities and cut your profit.

  3. Despite being a combination of math and business, entry and access is easy. That is, it's easy to start programming.

  4. Competition comes from all over the world. All business is personal. Or has a personal dimension, so that it can't be outsourced to India. Trust is mostly local. For Amazon and IBM, trust is global. Everybody else pays cash or is well-known through numerous handshakes.

  5. Nevertheless, business and academia are global.

  6. Don't worry about the financial crisis in terms of your career. Even if it lasts you'll need to compete the same way. And it probably won't last. It will make it harder to spend time in school, though, if you're poor or middle class.

  7. Be bullish on America.

  8. Being black or white or in between doesn't matter much. No matter who gets elected President. You still have to learn and compete the same way.

  9. Since everything is computerized, learning to program will help you no matter what you do.

  10. On the other hand, software engineers (programmers) are often quite ignorant of other fields, and find themselves playing catchup. This is true in banking, avionics, bio-informatics, or just plain business.

  11. Computers are great but have been oversold to youth. Owning one doesn't make you competent. Just learning how to use one is too easy to be a paid job.

  12. People learn software because they like it. But you'd earn even more money in finance, management, or real estate. In the long run. Despite the financial crisis.

I have been a software developer working on administrative systems at a University, so I am guessing my experience is different than the posters. I disagree with #2 to a certain extent. Yes, you'll need the higher level degrees to become senior management. However, with my experience and associates degree I am a senior developer and a lead architect on many development projects. From my perspective, that is not a peasant, it might still be a peasant to others.
Jay
A: 

Most high school kids (at least those I've seen in the US) are quite tech savy. They have iPods and Nintendo DSs and cell phones, they text their friends, they connect with each other on Facebook and myspace and other social networking sites. They also play games and upload pictures and use Wikipedia and Google (almost exclusively until their teachers force them into a library) for school research projects.

Explain that programmers create the software tools to make all of that possible.

Also, as a side note, if you bring handouts, don't give them out until you're done talking. Otherwise they'll be looking at the handouts instead of at you or your slides.

Scottie T
+1  A: 

just tell them that programming can produce great games (show them videos of some of the greatest games) they will become attached immediately .

docesam
A: 

Coding and developing application are very different. It is easy to code but difficult to develop a well-designed & maintainable application. get involved in open source project

jebberwocky