Not grad school, but my first programming experience was as a freshman at my university. I took CS101 which was C++. The course covered basic programming (control structures, basic data types, functions, etc). Also covered memory pointers and the ideas behind them. The next class would be data structures, but before that, I got a job.<p>My buddy who encouraged me to take the programming class (thought I'd be good at it since I was a bit of a math geek) then hired me after said-first-programming-class at his start up. I made a bit above minimum wage to learn PHP and build a business to business directory website with him working evenings, sometimes til 1 or 2am. No unit tests. No build system. Nothing like that. FTP files up, manually check the site.<p>I only minored in CS (major was BS. Business Administration), so I took a few more classes (got exposed to Java, some Action Script, some more C++, some assembly), had a few class projects, but, meanwhile, worked at that start up slinging PHP til they closed down. I got less than a year of experience if I recall, but I then tinkered with PHP+MySQL and HTML+CSS+JS for several years while doing other things (I would help a small business here or there, or work on personal projects, very rough CMS solutions, etc, all for fun and barely earning anything). After being an insurance sales agent, a financial advisor, a construction worker, and an inner-city high school math teacher, I decided to give this whole tech thing a go. Worked with a recruiter, highlighted some projects (nearly all php+mysql+html+css+js) on my resume, and, after half a dozen interviews, landed a job at a start up that would later become a unicorn.<p>Fast forward a bit over a decade and I'm a principal software engineer working on high scale systems.