Hacker News new | ask | show | jobs
by crikli 3236 days ago
It was something I wrote in 2003, before git was a thing.

I'd grown up futzing with code in the 80's (AppleBASIC, a bit of assembler). Turbo Pascal, ANSI C, in the early 90's. I'd started crunching through Ivor Horton's book on Visual C++ in 2000.

My girlfriend's (now my wife's) employer had an ecommerce website that was written in this thing called PHP and it kept throwing errors, something about MySQL. Figure out it was hosted on this "Apache" thing.

Bought a SAM's Teach Yourself in 24 Hours on LAMP, spent a month digesting it, fixing the issues with the site in the meantime. When I was done with the book I wrote my own ecommerce platform to replace the one they had (I did all this for no compensation, I just wanted to learn).

Took programming gigs off of what was then called "rentacoder.com" working for almost nothing to get experience and built a portfolio.

The next year, 2004, a big auto parts company in town was looking for a "webmaster." I leveraged having built an ecommerce platform from scratch into that job. I was all things internet for them (except graphic design). Wrote code for their ecomm website (old school ASP.NET), did SEO/PPC marketing, came up with email campaigns, integrated with their ancient PICK-based inventory system, used NLP to detect tone in customer support emails before that was something you could farm out to Google, etc.

So...the replicable aspects of that path, excepting luck and right place right time:

1) Dive deeply into a challenging language. C++ wasn't for the faint of heart then and although it's been years since I wrote any I'm sure that hasn't changed. I'm a much better coder for having had to deal with the obtuseness of C++. Pointer pointers, anyone?

2) Do work until your skillset and portfolio represents enough value to someone that they're willing to pay for it. So much of my early work was garbage anyway...hell my SAMS book on LAMP hadn't covered SQL JOINs, so I was doing queries and iterating through the results and running more queries!

3) Build something that non-developer can understand and connect to. I was able to talk about the ecommerce site I'd built, how I'd integrated with PayPal, demonstrate the UI, etc, to the people that hired me. Had I been presenting something more esoteric, like the time I had to figure out endianness to decode a data file and get it into a MySQL database, I'd have completely lost them and likely not have gotten the job.