Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building a Career as a Software Engineer

Building a Career as a Software Engineer

This is personal experience that may be of interest if you're thinking of becoming a software engineer.

Avatar for Dave Jagoda

Dave Jagoda

August 16, 2013

More Decks by Dave Jagoda

Other Decks in Programming

Transcript

  1. How I got here In 7th grade, our math teacher

    received an Apple ][ for a week for our class to use. 30 of us shared 1 machine. A program called "Lemonade Stand" was available on 5 ¼ inch floppy disks. The game: maximize your profits on selling lemonade by responding to weather forecasts.
  2. And then it was gone What else was there? Board

    games were always fun (Chess Club!) Simple gaming consoles (Radio Shack sold one that could play Pong). Arcade Games were fun (but inconvenient and expensive). Atari 2600 was almost as good (but game titles were limited and expensive, long delay from arcade release to console release).
  3. Substitutes TRS-80 (got to touch one of these on a

    very few occasions). Commodore VIC-20 (cassette tape based storage is very inconvenient). Timex Sinclair (looked cool, but one of my high school teachers dissuaded me from buying it - too much of a toy).
  4. High School A computer lab, with a dozen Apple ]['s!

    Unbelievably, 4 staff members at my high school were capable of teaching programming to us (i.e. every math teacher). If you liked Chess Club, you'll love Computer Club (thank you Craig Riecke). You know where we'll be from 3PM until 5PM when the teachers kick us out for the day.
  5. First order of business Play Games! There were quite a

    number of them, but still lagging way behind what was in the arcade. Math games are fine, text adventures are good, but arcade style games are the most fun.
  6. Second order of business Write games! I liked Donkey Kong,

    which was not yet (ever?) available on the Apple][. Try to write my own. This ends up being quite difficult. Even pong is a bit tricky!
  7. Electrician's helper $8/hour • troubleshooting • wiring outlets • pulling

    wire • crawling into small spaces • digging ditches • sweeping
  8. Computer Flunky $4/hour • troubleshooting • writing code? • tinkering

    with computers and printers • copying floppies • assembling paper packets
  9. Possible Answer #1 DOS is Disk Operating System. This is

    an operating system that ran on PCs in the 1980's. It is pronounced "doss" (rhymes with "boss").
  10. Possible Answer #2 DOS is the thing that is not

    working on the head secretary's computer. She gets paid the then current minimum wage of $3.55/hour, so you are earning more than she is. You've been here a few weeks, she's been here 25 years, so be sure not to tell her how much you make. And fix her computer right away. It is pronounced like the Spanish word for "2".
  11. Flashback to high school An English teacher roped me into

    joining the debate team. After each debate, teams might update their main opening argument, which will be a typewritten document. My more skillful peers were fast typists, and would just retype the page(s) that changed and adjust the margins to avoid retyping the whole thing. My debate partner and I maintained our case on a floppy disk and printed it out on green-and-white 132-column tractor-fed paper. Looking good!
  12. Flashback to college The university CS computers were restricted so

    that students did not have root access. One of my friends was a geology major, and when his department got a new computer, he was made responsible for it. He had root access and set it up, and thus knew things about the computer that I wouldn't learn until I started working. Of course, these days your laptop is more powerful than that computer . . .
  13. Computing for its own sake Why study English, you already

    know it? Why study Math, it's unlikely you'll need to know much beyond what you learn in high school? Why study Computers, you already know how to use one?
  14. Important areas associated with CS Artificial Intelligence Information Theory Communications

    Theory Cryptography (At one point in time, Computer Science was not considered on par with areas such as Electrical Engineering)
  15. Computers as tools and meta-tools You can write a program

    to do a task. You can write a program to write a program. You can write a program that can modify itself. You can't write a book that can write a book (although you could write a book that says how to write a book).
  16. Beware Positive Advice - "do this" (Negative Advice is safer)

    Predictions - especially about the future Survivorship Bias
  17. Some Positive Advice Durable(?) technologies: • Unix • Internet •

    HTTP Techniques: • Understand how it works vs. quiz answers • Fundamentals • Derive from First Principles
  18. Advice in hindsight If you do you what you love,

    it's easier than if you do what you think you're supposed to do. For me, computers were an afterthought. Where was physics club?