
Ask HN: How did you get from learning to code to making your first dollar? - soleimc
On HN, there is a lot of advice for people just learning to code and a lot of advice for people who are making some money with their startup&#x2F;side project. However, I&#x27;d love to hear advice about the steps in between, that is, advice from real developers on how they went from a basic knowledge of coding to actually landing their first paid internship&#x2F;job&#x2F;etc.<p>Some questions to consider:<p>-Did you learn to program in school or teach yourself?<p>-Did you do unpaid work to establish yourself?<p>-Roughly how long did it take you from day 1 of learning to day 1 of being paid?<p>-What was your first gig?<p>My hope is to make a website with different timelines and step by step guides that shows new programmers how to go from finishing a basic tutorial like Codecademy to getting paid for software development.
======
patio11
I studied CS in university. I suppose my first paying gig was as an undergrad
research assistant, working for the princely sum of $12.50 an hour. It was a
direct outgrowth of a self-directed study project that I had done with the
same professor. I was shockingly naive at the time -- "Wait, you can just
_give_ me money for something that I already was doing for free? And you're
offering $12.50?! That's 25% more than I've ever earned!"

This would have been in the summer of my senior year, though I had not
particularly tried to get programming work earlier. That's probably for the
best. At the time I would have had ~10 years of programming experience if you
count very liberally of which 4 years was fairly intensive (university),
though only ~1 year of it was in the language we used at the lab. (gawk, by
the way.)

My first "real" post-university job was as a technology translator at a
Japanese prefectural incubator. I didn't do much programming in the first 12
months or so, but eventually convinced my boss "Look, we have 5 translators
here to do 1 translator worth of work. I'm _technically_ assigned to the R&D
group and _actually_ can program. I also am totally willing to do any scutwork
you give me and stay out of your hair while doing it. How about it?" This lead
to me getting very out of my depth in image processing code in C++ followed
by, after protesting that it was just impossible, heading up some distributed
computing and anti-spam research projects. I was still in laughably over my
head but the unique contours of my employment (and the politics of local
Japanese government) meant that expectations were so shockingly low that
picking a goal and trying for it was enough to be praiseworthy even though my
deliverables were terrible.

After that I got an engineering job with a Japanese megacorp and finally
learned professional engineering discipline like e.g. source control, testing
("You mean you run programs _before_ demoing them to the boss?"), databases
("You mean all data doesn't go in flat files?"), and the like. This would have
been approximately 3.25 years after graduating university.

Bingo Card Creator (a side project which ended up changing my professional
career) happened about 3 years after graduating university while still working
at the incubator as (titularly) a translator.

~~~
xiaoma
The most amazing part of this to me is that it's possible to code for a decade
get through a CS degree and be a research assistant without testing or even
using source control! I'd probably have gone insane trying to debug under
those circumstances.

~~~
patio11
Welcome to academia.

Though, worth noting, source control is on the Joel Test specifically because
at least some engineers needed outside ammo to bludgeon their employers into
the 20th century. It was very much NOT the case in ~2000 that you could just
assume any professional engineering team would be using source control.

~~~
glimcat
I constantly pushed the use of source control when I was a TA for CS juniors &
seniors. Of the low-three-digit number of students I interacted with,
approximately two of them listened. Many of these had already had internships
at e.g. Facebook, Microsoft, Amazon...

------
tinco
You can get paid even with just basic knowledge. I'm teaching my girlfriend
javascript, and she just got paid for building someone a wordpress site. No
code involved, hosted at wordpress.com, that's just one end of the huge
spectrum of skill levels you can get paid at in IT.

That said, if you want to become a craftsman and build quality software that
people can depend on, definitely hone your skills by doing unpaid work. But
definitely don't do it for people who make money off your work, it's plain
unnecessary. There's literally thousands of open source projects that could
use even the most basic of programmers.

You can do this even if you have a full time job or study at a university
(which I can also recommend). Just take 1 or 2 hours a few nights a week.
Spend this time checking out their source code and running their test suite.
If you've managed that you're already half way done. Next step is picking an
easy sounding bug from their tracker and see what causes it. If it's easy to
fix, fix it and send them a pull request. When they accept, you've got the
"contributed to open source project XXXX" credential that will almost
certainly aid you in getting a job.

All really good programmers I know got good by either contributing to open
source projects, or starting their own projects. Developer skill really just
is experience, and being independent in a project is just the best way of
gaining experience.

~~~
joeclef
I couldn't agree more.

------
s992
Short answer:

-I taught myself.

-I learned to program while in a non-programming role, so I wasn't making programmer money at the time, but I was paid.

-It took me about six months to move into a programming role.

-Web developer at a small agency.

Long answer:

When I got out of the Army in 2009, I was hoping to get into something
networking related, preferably security. I didn't have any experience in the
area, but I had always had a knack for computers. However, after nine months
of job hunting, I was ready to take anything remotely computer related and
ended up accepting a position as a customer service rep/QA tester at a small
(4-6 employees) web development agency.

My boss gave me a lot of freedom, so when I wasn't tied up with customer
support or testing I worked on speeding up processes that were extremely
tedious and/or time consuming. This agency had been around for more than a
decade at this point, so there were a lot of things we did a certain way just
because "that's how we've always done it." For example, at the end of each
month we would review the hours logged against various client projects and
create invoices manually. This process generally took several days because we
would print out hard copies of all the time entries and mark up the sheets
with pens and highlighters, then transfer that back to Word documents to be
printed and sent to the client. By writing a little code and moving to an
Excel spreadsheet for reviewing the logged hours, I was able to cut the time
down from several days to "just" 3-4 hours. It was like magic!

I continued doing this kind of work in my free time until one of our
developers left for another company. I expressed interest in moving to a
development position and got the job. At this point, I had been with the
company for about six months. I honed my skills for a while and got involved
with some OSS communities and started a blog, both of which served to really
help me grow as a developer. About a year and a half after moving into the
development position, I moved on to the company I'm with now. I'm still doing
web development, but not at an agency - I work primarily on internal tools and
processes for a company.

------
VLM
"Roughly how long did it take you from day 1 of learning to day 1 of being
paid?"

First I had to graduate from grade school, then do the middle school thing,
then sit thru the high school thing. I guess 14 or so years?

(Edited to add, at the time there was a moral craze about credentialism; thou
shalt not hire a programmer without a BS degree. At least if you didn't live
on the coasts. And this was about a decade before the dotcom craze)

There are also some moral questions, like I was being paid to test impaired
telecom circuits for an end user financial institution, but I saw I could
replace 90% of my labor with a "telix" script (like the procomm terminal
program but arguably better, or kind of like an inferior version of "expect")
of moderately short length. So, seeing as I worked alone second shift, I was
somewhat less productive for about one night as I wrote my script, and the for
the next ... long time ... I read magazines and did my college homework (for
the kids out there, magazines are like a static website, only updated monthly,
and they print it out for you... like another obsolete technology, the
"newspaper", but updated monthly rather than daily) and eventually graduated
and got a "real" job, etc.

So my first gig was automating my job for about one day and then maintenance
of legacy code, and monitoring the automation for performance.

My boss eventually caught me because I got bored and started rewiring things
and generally going "above and beyond the call of duty" and I figured I was
about to get fired or promoted; turns out he wanted to promote me but there
were no job openings between the time I got caught and when I graduated
college. Which is how I dodged the bullet of maintaining stock trading COBOL
code for the rest of my life.

------
DanielBMarkham
Taught myself.

I did projects I thought were fun. But I finished them.

I found work by running into somebody who needed programming done. I was at
work at a garage changing oil on cars for the summer. A guy came in, we
started talking. Turns out he was a bookkeeper who had just bought a computer
and was looking for somebody to program it.

I don't think there was more than a year between when I started playing with
computers and when I made my first dollar. But everything I did during that
time? It was for somebody else to use: games, utilities, whatever.

I ended up writing an accounting system in BASIC for an Apple IIe. Fun times.
I made $250 and probably put 100 hours in on it.

Side note: ran into the same guy like 15 years later. After we said our
hellos, I thanked him for giving me a chance to break into programming. He
told me that he still used the program! Asked me if I could port it to
Windows.

So I did. I charged him a lot more the second time around :)

~~~
larrys
"I did projects I thought were fun. But I finished them"

Key point - it was not "work". Very true.

"I was at work at a garage changing oil on cars for the summer. A guy came in,
we started talking. "

Key point - You were social enough to hold random conversations with someone
that lead to something. Very opportunistic. That's more important than knowing
the best way to code in my opinion (in an entrepreneurial sense I'm not
talking about working at google for example).

"I ended up writing an accounting system in BASIC for an Apple IIe. Fun times.
I made $250 and probably put 100 hours in on it."

There it is again.

My experience was the same. I taught myself and it was fun (Unix system). I
didn't have a particular agenda in learning enjoying it was enough. (I'm not a
programmer but can program somewhat but more importantly have made money from
being able to program. But I learned because I enjoyed it not because I
expected to make money from it.) Back in the day of 1 book, maybe 2 if you
went to the technical bookstore at a University. Automating things at a
company that I started.

------
FLUX-YOU
\- Taught self from Python in 2012 to Front/Back end Web Dev to general
C#/.Net. Have cracked a dozen specific books but haven't finished a single one
from cover-to-cover yet. Started with LPTHW from start to finish.

\- Yes, but there was no ship date. "When it's done"

\- Nearly 2 years, however I received an offer to do entry level front-end web
development 8 months from starting that I declined because I had received
another (non-programming) job offer that paid a bit more. I was not in a rush
at the time.

\- This is my first gig. I started two weeks ago and do support/patch issues
for large medical records and clinical management software. It is overwhelming
to say the least with a very large line count in the repo and a lot of moving
parts and the threat of patient data compromise looming.

------
enjo
Started at 14 learning a scripting language for a RPG game maker (DC Script
IIRC). That quickly evolved into Visual Basic and then C++.

Being active in video game development I eventually made some friends who
introduced me to André LaMothe who was a huge influence on my early career. I
made my first dollar building value-ware games for him and he encouraged me to
take up Palm OS programming which eventually led to my first startup job at
Quickoffice.

If you're reading this André, thanks so much!

------
fma
I guess I went the more traditional route? I've always had a knack for
computers since middle school where I learned QBasic on my own writing silly
programs (it came with DOS). My high school offered a class programming class
in BASIC where I learned more advanced concepts (file IO, sorts, etc).

Went to college, majored in Computer Engineering. In my sophomore year, I got
introduced to web applications. Then I came up with an idea, bought a few
books on PHP and MySql and implemented the idea in about 5 months in my junior
year. So technically, my first buck is from ad revenue and affiliate sales
from that.

Didn't make the big bucks till after graduation...went through the whole
career fair, interview, etc.

Since you're the one creating the timeline, I'll let you decide what you want
to consider as my day 1, and day 1 of being paid. Not sure if people nowadays
have the patience to go through an engineering curriculum if they just want to
learn web development.

------
nickporter
I have been coding since early high school. I wasn't thinking about making
money or anything.. it was just something to do for fun. First it was
dreamweaver, then photoshop slices, then text editor and php.

A couple of years later, my uncle got me a summer job where he worked. That
was right after my first year of comspci. I would write bash scripts to
automate manual business processes. That's when I first got paid, but it
wasn't real software development.

After my second year of uni, I landed an internship at a startup. That's when
I first got paid for writing real production code (python).

So, it took maybe 6 years total. However, I think coding is much more
accessible nowadays. I'm sure it's possible to start making money in less than
a year if you've got drive and passion.

~~~
kirillzubovsky
Dreamweaver! Yeah! Those were the days...

------
wglb
_Did you learn to program in school or teach yourself?_

I learned code at the age of 12/13\. Morse code that is.

Yes. In engineering school, the class was divided in two. One half took
analytical graphics the first quarter, the other Introduction to Programming.
I took graphics the first quarter. I had a long train ride home over Christmas
break (36 hours) and took the text for the programming class and mastered it
by the time I got home. During class, I fiddled with the card deck to get the
compiler to spit generated assembler and pestered the professor mercilessly
for extracurricular information.

 _Did you do unpaid work to establish yourself?_

No, the pestering led me to another professor that became my advisor and part-
time employer.

 _Roughly how long did it take from day 1 of learning to day 1 of being paid?_

About six months, but might have been sooner if not for classes.

 _What was your first gig?_

The summer after my freshman year, I worked for my advisor writing a program
that handled input for the analysis program he was writing to determine the
Eigenvalues and Eigenvector for a 500th order matrix. This was analyzing the
stability of the line frequency of the Bonneville Power Administration
distribution network. It was particularly challenging, as matrix inversions
done on a tape-based 36k system were non-trivial.

This program, I later learned, was used to determine where to locate Fermi
Labs.

Edit: Missing words.

This was an EE program. There weren't any CS programs around (not entirely
true) at the time, and I got to EE through my interest in Ham Radio. I got
that going by pestering my parents mercilessly about getting my license.

A word of observation: it helps a lot if you are on fire about learning this.

A word of advice: Take responsibility for your own education. Even if you go
to CS program.

------
GnarfGnarf
In 1970, I had a total of a one-week FORTRAN course to my credit and a B.A. I
walked into an insurance company, applied for a job, and one month later I was
writing mainframe assembler for a living. I was 20.

------
EugeneOZ
My first web site was made from phone (Samsung X100). I bought PHP script for
one of services for that site and I started to learn PHP by readong sources,
then books. After few (3-4) months I got first money (from adv.) and after 1.5
years parents bought me computer. Yeah, I was young ;) I started to work on my
site from computer, after 6 months I made very popular service, left my job
and after 1 year my income was $1000 per week, when average salary in russia
was $300 per month. And after 8 years I'm still programmer ;)

~~~
kysol
The first bit of advice I give to people when they ask where to start is
exactly what you did. Take working code and play with it, modify it, make it
do what you want. You will learn faster by breaking things and figuring out
what went wrong.

------
jlees
I think you may get stories like mine which are almost two decades old -- and
not so relevant any more -- but hey.

I've been programming most of my life (thanks to the 80s UK/BBC home computer
revolution), but during high school the web was becoming A Thing. When I was
about 14/15 I taught myself HTML and Javascript from online tutorials and
trial & error. I volunteered to build my school's website mostly because
nobody else was interested, and in the process started learning server side
programming (ASP, I think).

I saw a job ad for a summer intern in a magazine and replied to it, ended up
learning VBscript and writing a couple of reasonably high-profile websites
over the summer for real money. I also started up a few side projects, none of
which made money -- or were designed to! -- apart from an e-commerce project
with some school friends.

From learning HTML to my first paycheque, probably about 1.5 years? In my
spare time alongside school.

What would I change if I were learning from scratch today? Not much, in terms
of learning as much as possible and working on interesting projects. Volunteer
to build websites/webapps/mobile apps or help out with those which are
creaking along. I wouldn't expect to make money overnight but if you can solve
people's problems with code then you might be able to align interests despite
not being an experienced programmer :)

------
s0uthPaw88
Here's my timeline:

June 2013 - decide to change careers and become a developer. Learn basics of
looping, branching and data structures in Javascript. Apply to code bootcamps.

July 2013 - Accepted into Epicodus. Complete class prep work and now
understand basics of HTML, CSS and JQuery.

August thru November 2013 - Attend Epicodus. 40 hours per week learning
Javascript and Ruby.

Feb 2014 - after lots of interviews, I am offered a 6 week contract with the
possibility of being hired full time at the end of the contract.

April 2014 - brought on full time as a Junior Developer

------
kysol
\- Self taught, my school's idea of "Computer Studies" was to teach you how to
use WordPerfect, and a few other DOS based office apps.

\- Everything I did before my first coding job was done purely for myself.

\- 1997 to 2000 if I want to only count "Web development" as my core skill.
I've been playing around with code since 1990, trying to mix art with code on
Amiga.

\- First gig was in the adult industry designing and maintaining sites.

Brief Timeline for those interested:

1997 - Playing around with Netscape Navigator Gold and GeoCities. Purely HTML
based sites with some use of 3rd party CGI tools (Matt's Script Archive... I
think).

1999 - Touched on ASP but I didn't like the taste.

2000 - Since everything didn't burn to the ground, I started to develop using
Perl and flat-file databases.

2001 - Upgraded to PHP/MySQL. Expanded further into JS/CSS as well. Also
started using Rackspace as my main host with a FreeBSD machine.

2003 - Career change to advertising, regretted it every day. The lies and
screwing of customers. Was primarily splash pages with some functionality.

2006 - Went back to the Adult side of the tracks. Learned more about server
management. Dabbled in C at the same time as I was making modifications to
Kannel.

2009 - Left the Adult industry for a more retail position. Switched from
FreeBSD to Ubuntu as my primary deploy OS. Expanded into scaling architecture
as well as picking up a few extra languages along the way (Obj-C, Python etc).

------
chops
I learned to program with a combination of self-learning and high school
programming classes. On my own, I built programs that solved the problems of
mid-90s high-schoolers: Midi Playlist managers, Leetspeak talkers, etc.

My first job was as a vendor/usher at a local movie theater. The process of
daily tracking inventory was painfully tedious, slow, and error prone.

I got permission to work on a solution to this using the vending computers
(486s running a DOS-based touchscreen system), and the back office computers
(running WinNT), and was paid my usher rate of $6.25/hour, but I didn't care -
I was excited to be being paid to program.

The program was a success and was used at my local theater for a few years
after I left. I even gave free tech support for it because of all the friends
I had who worked there.

That experience helped me to land an entry-level programmer/general-purpose
"computer guy" position at a local startup that built attendance tracking
software for schools and non-profits.

After a little over two years at the startup I quit to start my own company.

I finished my bachelor's degree about a year after starting my own thing, so
all this was just without a college degree.

I've been doing my own thing for over 10 years now.

So if you love it, then work hard at solving problems, eventually someone will
pay you to solve their problems. Until then, keep making things.

Timeline: started learning programming at 16, was paid a hair above minimum
wage for programming at 18, first real programming job at 20, self employed at
22.

------
analog31
I'm just offering this anecdote for a bit of historical interest, not because
it contains any recipe for success:

I took a high school course in BASIC in '81 or '82, and am self taught beyond
that point. Similar story for electronics. I did those things for fun while
pursuing a mainstream math / science major in college.

At that time, at least in my region of the country, CS was almost exclusively
data processing on mainframes. If you wanted to get into anything else, like
scientific programming or microprocessors, you could do so just by being crazy
enough to volunteer for a task. Many people bought their own computers and
brought them to work, to bypass the computer bureaucracy.

A friend of mine was an electronics tech in a factory. They bought some sort
of computerized test gadget. The boss asked if anybody wanted to learn how to
program it. My friend was the only guy who stepped forward. I think he was
interested in seeing if he could use it to run his model railroad. It launched
a new career for him.

During college and grad school, I used any computer at hand for any task that
I could come up with during summer internships or research projects. I found
kindred spirits among the professors, who were doing the same sorts of things.

Many of those people were also ham radio enthusiasts, and it was a similar
mind-set.

My experience didn't lead to a programming gig per se, but my programming
skill has probably helped my career greatly over the years. I've done things
such as designing computer controlled factory machines, modeling, prototyping,
embedded gadgets, etc., but have not written "production" code.

------
jordonwii
In the summer prior to my last year of middle school (~2007), I came up with
an idea for a website: a restricted and local social-networking site for young
students (my peers, essentially). I spent that summer reading Head First
HTML/CSS (a fantastic book, if a bit dated by now), and a book on Javascript.
I taught myself PHP, SQL, and Python/Django, also, over the course of that
year.

That site was never really finished, as by the time I hit high school, almost
everyone was using Facebook, and my idea seemed redundant. However, through
high school, I kept up on a number of side projects (mostly in Python, and
Django where appropriate), and also participated in Google's Code-In (a great
experience for a high school student who'd never contributed to anything with
more than a few users, so far. Would definitely recommend to anyone at that
age interested in CS). That was my first "paycheck", but it hardly counts, as
it was only ~$200, made from an organized competition. One of my side projects
was a Chrome app that I sold for $5 each, and I made a couple hundred dollars
off of that, too.

I got my first real job (part-time) when I moved to the Bay Area to go to
college studying CS. Conveniently, a startup just off of the campus was
looking for a Python/Django dev, and the skills I'd acquired on my own doing
side projects were enough that I could dive into a moderately large codebase
with a good idea of what was going on (and this was before I'd even started
classes). I'm still with that startup now.

So, the timeline went something like this: ~2007: taught myself basic
programming. 2009-2010: made some money in Google Code-In and selling an app.
2013: went to college, got employed at a startup.

------
Timsalabim
I taught myself and once I had a good grasp of what I could and more
importantly, what I almost could do I started looking on Freelancer.com for
jobs. I was probably 3 months in when I got my first paid job.

Just simple jobs that would take someone at full speed less then a day to
finish. And then I'd say that I'd deliver in 5 - 7 days so I knew I could bang
my head against something silly for a night without getting into trouble with
timely delivery. I was always on the lookout for stuff that would make me
learn something new yet at the same time I knew I could nail so to keep my
feedback very positive.

Never looked at the hourly wage as it's more a bit of beer money to learn
something that you also would've learned for free. Under promise, over
deliver.

Best feeling was one client that was so happy with my work and needed
something done fast (I was a bit further in the game then and very comfortable
with my estimation of the work that needed doing and me being able to do it)
that he hired me for 1,5 weeks and paid $4200,-. Felt like a sort of rite of
passage. Especially since he was really happy with the work and thought it was
worth every penny :)

Good thing about sites like Freelancer.com is that although the money is
shitty you learn a lot about dealing with customers without tainting your
local market. I add nothing from Freelancer to my portfolio I use locally and
I don't add anything from my local portfolio to my Freelancer one as I don't
want anyone to connect the dots and try to get me cheapass.

Getting the first job is very hard without any reputation and reviews on the
site but it gets surprisingly easy once you have a couple happy customers
who've said nice things about you.

------
clockwork_189
I learnt to code sometime in middle school(grade 6 summer). The dot com boom
was taking place during then and my parents figured that the Web would be the
next big thing and pushed me into learning web development. I never really
explored beyond making a couple of funny sites for my personal kicks until
grade 12 when I had to figure out how to pay for university. I did a couple of
small gigs here and there that helped me pay part of my way through.

I was enrolled in a co-op program, so you study for 4 months and then work in
a real job for 4 months and that repeats until you graduate. This was probably
the most helpful thing that helped me learn more and earn more while doing so.
By third year, I became competent enough to be able to easily build full stack
real world apps. I have to mention though, getting here meant working for
multiple startups during my coop term. Hence, taking a cut in pay compared to
my peers for the chance to do more and learn more.

June last year, I met Brian who is a data nerd and has a mind full of cool
ideas and together we co-founded MetricWire, which we are running to this day.

------
hipsters_unite
> Did you learn to program in school or teach yourself?

Taught myself JS, then PHP/HTML/CSS, then graphic design, then back-end stuff
(Ruby/Python), some regexes, algos and how to use Linux at a basic level. I'd
actually built some stuff as a teenager (websites and mods/tweaks for
Homeworld2 in Lua), but I don't count that.

> Did you do unpaid work to establish yourself?

Yeah, quite a lot. Several small sites and a couple of slightly larger ones
for my day job at the time - I was working three days a week for a learned
society and studying my off days so I did bits for them. A lot of that looks
pretty cruddy now, but y'know, that's learning for you.

> Roughly how long did it take you from day 1 of learning to day 1 of being
> paid?

Started learning in July 2012, got two job offers in June 2013.

> What was your first gig?

Working for a startup making scheduling software. Started as a UX/UI dev doing
a bit of the back-end stuff but after re-doing the front end spent a lot of
time putting in tests and re-architecting things. It was frantic but good for
learning fast. I work for a mature (but still small) company now, which is a
nice change.

------
rout39574
Self-taught some Apple Basic and Integer Basic before and in parallel with
some High School courses (this was '80s; I was class of '86 high school). It
was a lark then, not serious anything. Started with buy-the-magazine and type-
in-the-program stuff through modest customization of same.

Did unpaid work that dis-established myself. I did a bunch of temp office work
putting myself through college; got in trouble because I'd fix their computers
and help them with their database, but the big box of papers were still not
alphabetized at the end of the week. Got fired a lot for that.

First gig being paid for active computer stuff was "office automation";
building Word Perfect macros to automate the boilerplate for psychiatric
reports. So, day 1 of learning was years before day 1 of getting paid. Maybe
as many as 10?

I think your idea is a hazardous one: you don't complete a tutorial and then
go look for some work, or at least not and be happy later. If you do that,
then you're a novice at the techniques _and_ at the subject matter.

------
mrsteveman1
I taught myself.

Started in 2008 with PHP/HTML/CSS for a friends existing website, initially
unpaid and for fun, but it rapidly became paid and brought substantial income
(within a month or two) because I streamlined and automated things that were
being done manually. Tempting to call that an exception but if you create real
business value that fast, get paid for it or at the least get a glowing
recommendation out of it.

In 2009 I started learning Python, Objective-C, and C for fun, making things I
needed myself. High level and low level stuff at the same time. A simple
automated website "ping" checker for App Engine called AEServmon[1] I wrote
for my own use was probably the first thing I ever open sourced. I also hacked
together some C in Cardrand[2], again for personal use, to take advantage of
the random number generator present in most smart cards to feed the Linux
kernel pool (/dev/random etc) with entropy.

By 2010 I was fairly proficient in Objective-C and C, very familiar with UIKit
and AppKit, started selling Mi-Fi Monitor[3][4], then later on Codepoints[5].

In 2011 I started doing consulting work on OS X and iOS projects.

If I set aside the initial PHP success, I'd say roughly 1.5 years between "day
1" and selling products, and about 3 years before feeling confident in taking
on fairly significant projects for clients.

As an aside, Mi-Fi Monitor got me a phone call from an executive at Novatel
(they made the original Mi-Fi hotspots), some discussions about rebranding it
or working together, and several "good job" type emails from a few of the
other execs there. They were paying attention, and actually using the app
themselves.

[1]
[https://github.com/infincia/AEServmon](https://github.com/infincia/AEServmon)

[2]
[https://github.com/infincia/Cardrand](https://github.com/infincia/Cardrand)

[3] [http://infincia.com/apps/mi-fi-monitor-ios](http://infincia.com/apps/mi-
fi-monitor-ios)

[4] [http://infincia.com/apps/mi-fi-monitor-mac](http://infincia.com/apps/mi-
fi-monitor-mac)

[5] [http://infincia.com/apps/codepoints](http://infincia.com/apps/codepoints)

------
pokpokpok
I learned some C in a "101" class my first year of uni. After applying the
concepts to some fun arduino projects, I responded to a craigslist post and
ended up putting a few weeks free time (95% reading&learning) into an arduino
device for a hobbyist. He paid me $200 + materials which was probably $3/hr
but gained a lot of experience and confidence in self-teaching and project
management. After this I did some small game and simulation related projects
for myself to learn object-oriented concepts. Then recently I responded to an
online posting for a software intern and showed them code I had written, +
things I had built. They hired me and now I'm getting quality industry
experience, albeit with an old technology stack.

I think that a great way for people to break into the industry is to do jobs
for those who have even less software experience than themselves! These people
may not pay much but they have lower expectations and will give you time to
learn.

------
notduncansmith
My first gig was a Pinterest spam bot, written in VB.NET. A lot of my
beginning projects were bots, I did that freelance for a while before I
realized that people who want spam bots don't make good customers (also that
kind of work makes you feel like a slimeball).

I never did unpaid work to establish myself. I did do a little open source,
but not much at first (more lately). I mostly worked on personal projects to
get the hang of web development, then I got a job at a consultancy (still
employed there). I've made many dollars since then, both as a salaried
employee and as a consultant on the side.

It took me maybe a month of learning VB.NET before I started selling bots. It
took me about 6 months of learning web development on my own before I found my
employer. I'm close to breaking out on my own after about a year and a half
there. So, total timeline is about 2 years from first line of code to first
startup.

------
blklane
May 2013: Graduated from college with marketing degree and started to learn to
code. (Blog post here: [https://medium.com/i-m-h-o/being-over-your-
head-2c187f3e1f31](https://medium.com/i-m-h-o/being-over-your-
head-2c187f3e1f31))

September 2013: First paid gig after completing 2 personal projects

From my first project to my current ones I increased my rate at $5 a month for
any new projects that I signed. It has gotten me to a livable wage from coding
within a year. As of now I charge $120 an hour and even if I don't have 40
billable hours a week I can still get along. The key is be around people
building things. They will inspire you and help get you projects. Luckily a
few of my friends started projects in college so my first 6 months of client
work was easier to adapt to. After that referrals started coming in and the
business started to grow at a much more serious pace.

------
bdamm
I taught myself Borland Pascal and wrote some toy programs. Then went to the
local photocopy store and offered to write a login program so that people
wouldn't cheat on their reported hours when they checked off the computers,
and print off a receipt. The manager accepted my terms of $50. Then he hired
me.

(It was DOS, so quite simple.)

------
Brabon
>Did you learn to program in school or teach yourself? School, I had a few
credits to fill out my Econ degree and thought the CS intro classes would be
interesting.

>Did you do unpaid work to establish yourself? Nope, but I did work for
pennies. $11.50/hr writing code at my first job, and then later $1000 for an
Android app with another $500 to port it to IOs.

>Roughly how long did it take you from day 1 of learning to day 1 of being
paid? Six months.

>What was your first gig? Working on campus making Salesforce magic happen. I
graduated recently and now work as a Salesforce/Java/web-backend developer.

As idealized as being self-taught might be I think there's a lot of value in
getting your base knowledge in the classroom. Data Structures and Algorithms
especially is a great course to learn with a professional as a resource.

------
rheotron
Alwas played video games growing up, built my own PC when I was ~11. Played
more games and eventually decided it would be fun to try and build my own -
somehow this lead me to web development. A good friend in high school and
myself started a small web design 'company' doing work for family friends,
etc. Made pretty decent money for high schoolers.

Graduated high school - started a CS Major at University. Got accepted into an
Incubator with my startup at the end of my first year, worked on that for a
while. Startup fizzled out due to a bunch of issues, got a part time job as a
web developer/data scientist while I'm studying which also makes me decent
money for a Uni student. My contract runs out at the end of the year, so
trying to figure out what to do next.

------
Maro
I learnt to code (although it was very amateurish) when I was a teenager in
the 90s, living in California. A friend of mine hooked me up with a job where
I was essentially writing Javascript code and also helping with sysadmin
stuff. Back then it was called a "web developer". The job was essentially a
retired older gentleman's quasi-startup who wanted to bring technology to
schools. Essentially his idea was multimedia curricullum, but he didn't really
know what he wanted, it never went anywhere. It was a very part time thing, I
made $100/week, all of which I spent on buying computers and monitors and
running an FTP site. I did it for about a year, then I went off to college.

------
mergesort
I was a CS student by day, who hated classes, so I went home at night and
instead of doing my homework kept trying to learn iPhone development, not
because I wanted to do iPhone things, but because having an app on the App
Store seemed like it would be super cool. Long story short, a friend of mine
was going a PHD in cognitive psychology, and he was big in the statistical
analysis crowd around Major League Baseball, so he got me data of their heat
maps for strikes and balls of every hitter and pitcher. We turned it into an
app, at $0.99, so after two sales we had earned our first dollar. We went on
to make a couple thousand more off that app, and nowadays I'm do that iOS
thing full time.

------
attilagyongyosi
I was about 13 years old when I started to code just for fun, on an old 100MHz
386, using QBasic. Before that I watched my friend hack away in BASIC on a
C64.

I was in CS-specialized class in middle school, but that was kind of a joke.

I am still doing my BSc in CS at the university. The first "dollar" (forint) I
earned was back in 2011 when I worked as a non-registered PHP developer for a
startup here in town then in Budapest during the summer.

After that, I got employed as a full-time Junior Software Engineer at an
international company last August. So I've been here for a year, picking up a
lot of experience and earning OK. It is not exactly easy to manage university
studies and full-time work, but I can manage.

------
ivyirwin
> Did you learn to program in school or teach yourself?

I dabbled in computer science in college (1999 - 2001), taking 3 programming
courses that covered C++ and Java. There was a saying in the CS department
that if you took one programming class you could get a programming job. I
didn't believe it at the time, but I'll come back to this point.

-Did you do unpaid work to establish yourself?

Out of school I knew I wanted to get a web design job. I found a small graphic
design company that was starting a web department. They had a designer and a
programmer and I was the guy that could talk to them both (I had an art
background and knew how to "speak programmer"). The company was working in PHP
and I remember thinking how crazy it was that I hadn't been taught programming
in the context of the web. For what it's worth, the CS program now teaches
Python in its programming courses.

So while I had a background in programming, I had to teach myself PHP, MySQL,
HTML, CSS, JS, server management, etc. But I can't stress enough how much the
fundamentals from school helped me. I still run into people who have taught
themselves jQuery, but they don't understand the fundamentals of loops, or
arrays, or conditionals...

-Roughly how long did it take you from day 1 of learning to day 1 of being paid?

The web department did not last long in the graphic design company – the
leadership just didn't understand the opportunity. Within 6 months I could see
the ship was going down, so I took me newly learned skills and started my own
web consulting company. Technically I was being paid for programming right out
of college -- 2.5 years after first learning how to code. But it was when I
received my first check for my own company, 6 months later, that I felt like I
was being paid for my coding.

-What was your first gig?

My first gig was a website for a contractor remodeling my parent's house. It
was a lucky first client because after a basic portfolio site, the owner asked
if I could build a portal for all of his clients and that changed my focus
from portfolio sites to web applications.

------
omegote
Reading all of your comments, you guys should feel lucky of living in
technologically advanced countries, specifically the US and the Bay Area in
particular, that offer such opportunities in IT employment.

Here in Spain is totally another story. The startup scene is essentially non-
existent, so if you're worth your salt you only have one option: moving,
either to one of the bigger cities (like Madrid or Barcelona) or abroad. If
you wish to stay, get prepared to spend the rest of your life in a big-ass,
old fashioned business like Sadiel where you'll be coding Java boilerplate
code for the rest of your life.

~~~
tinco
Unfortunately this is the case almost everywhere. To get a good programming
job you often have to move to a big city. You can get lucky and find a job in
a smaller city, but most companies won't risk an area with low good programmer
density and settle in a big town.

~~~
aianus
I would go one step further and say to get a good programming job you often
have to move to the US. Most tech companies won't risk an area without VC
money geysers and settle in and around SF.

------
krapp
>Did you learn to program in school or teach yourself?

I taught myself at first, and i'm currently in school.

>Did you do unpaid work to establish yourself?

Yes, but also because it's more fun.

>Roughly how long did it take you from day 1 of learning to day 1 of being
paid?

Probably roughly 2 years or so.

>What was your first gig?

My first paying coding gig: I was working at a company while doing web design
on the side, and someone else in said company (at the graphics end of the
building) dumped a client on me because said client was a flake they no longer
wanted to deal with them.

My first paying design gig: I won a contest (same company) to design a logo
for a campaign, first prize was gift certificates.

------
MortenK
I think it is important to understand for new programmers that being self-
taught is often tough, since your paper credentials are non-existent. So you
got to expect a couple of years of low-paid, mostly ungrateful work, and you
have to be really persistent in chasing up assignments.

A specific tip is to always try to get a reference / testimonial from the
customer. And always document your projects with screenshots etc. My paper
credentials when I started out were really shitty, so the "portfolio" of
screenshots and testimonials were all I could give to prove that I had at
least some experience.

My story:

I started mucking around with VB 4.0 because I wanted to make games. Got a
copy of "Peter Norton's guide to Visual Basic" on a recommendation from an IRC
chat room and started reading and doing the examples. From there I did small
utils for my own use, small games etc.

At the time I worked in a games / software shop and one day some guy came
through the door looking for something that could format a huge data file.
There wasn't really any shrinkwrap software that could do it, so I offered to
make him one. That was the first gig and I charged like 400 bucks. Felt huge
at the time :-) By then I had been "hobby programming" for 1 or 2 years.

The first assignment really lighted the fire though and I started trawling any
channel I could find for assignments, programming competitions, charity
projects and the like. Anything that paid money or could be used in a
portfolio.

The channel was mainly Usenet, whereas today it would be sites like oDesk and
the like. Eventually got a part-time job with a young entrepreneur, where I
learned some HTML, spent days getting a mouse to work on Linux and cleaned and
sliced carrots for lunch (which I thought was waaay below me, but it had to be
done :-).

Read a whole lot of different stuff, and applied to a lot of companies. After
6 months to a year I ended up in a more professional company doing web
"programming" part time (HTML and a bit of JS basically). A years time later I
got full-time and into more serious programming.

After ~5 years I shifted into management and ultimately consultancy, but still
program quite often for my own purposes.

------
scarecrowbob
Learned to code as a child, took 10 years off in my twenties to pursue degrees
in philosophy and literature, decided not to become a professor and took up
making media in a variety of capacities, pivoted my media creation business
into just making websites, enjoyed programming (and playing with new
techniques) so much that at some point the only jobs I would take were
freelance programming of various kinds.

My first real paid "programming" gig was for a low-rent web shop that crapped
out websites for insurance agents.

So, maybe 25 years from day 1 to getting paid.

~~~
scarecrowbob
Heck, if you'll post a general format for creating a timeline, I'd be happy to
ofill one out ;)

------
bsima
\- Taught myself.

\- The only upaid work I did was side-projects or OSS contributions.

\- Probably like 4 or 5 years. I started in high school, and then started
doing freelance gigs in college.

\- First gig was with a local magazine. I was doing Photoshop to HTML/CSS work
(I also know Adobe CS stuff). Then I started doing PHP scripting for them.
Then I moved on to a couple WordPress sites and more PHP work. Now I have one
part-time client I do more PHP work for, and I take on a gig in Python or Ruby
every once in a while. Though I'm looking for Clojure work.

------
EMRo
I taught myself. I spent a ton of time building software/apps for myself to
show my skills before I could bring that portfolio to anyone and have them be
willing to pay me. I took my first project at way under market rate. It took
me 2 years from no coding knowledge at all to getting paid. I had other jobs
in between so that will not be accurate for others. I was able to generate
revenue pretty shortly after I put my mind to it. My first gig was building an
HTML5 iPad interactive for a museum.

------
Moto7451
I went to school but also taught myself as I needed to solve a particular
problem (build a GUI driven desktop app) and my school work wasn't moving fast
enough. The curriculum was C++, lots of algorithms, and data structures. Good
stuff, just not very applicable to my problem at the time so I picked up a few
books on C++ and C# and by the time I worked through them I pretty much never
had trouble with classwork again.

It took about a year before I landed my first gig which I found through
craigslist.

------
blairanderson
I went to a 6-month programming school.

I had a business degree and was working in an oldschool industry. The
programming school guaranteed a job offer, I received 3 job offers. I started
working one week after finishing school. I work as a ruby/node/frontend
developer.

the program was called gschool([http://gschool.it](http://gschool.it)). it was
ran by Jeff Casimir of Jumpstartlab and Turing School
([http://Turing.io](http://Turing.io))

~~~
fremellow
I am interested in hacker school, and this school looks awesome. I bet it's
competitive. What do you recommend doing/knowing to do well on the application
interview and hopefully get accepted? Thanks! -Jessica

------
keyle
-Did you learn to program in school or teach yourself?

Both. Although I did much of the learning on the job.

-Did you do unpaid work to establish yourself?

Yes, worked for free for 3 months

-Roughly how long did it take you from day 1 of learning to day 1 of being paid?

Probably 6 months all up. You can find yourself useful by writing unit tests
etc. which any team will gladly take (as it's not a fun job) and other parts,
which you can get paid for. Always make yourself useful but not cumbersome.

------
jeffreybaird
I blogged about my process two years ago, here:

[http://learnwithjeff.com/blog/2012/08/21/how-to-get-a-job-
as...](http://learnwithjeff.com/blog/2012/08/21/how-to-get-a-job-as-a-
developer-in-less-than-six-months/)

TL;DR: Pushed code daily for about six months, had some awesome people helping
me, read a lot of books and listened to smart people talk about code.

------
codingdave
I taught myself, while doing the standard IT desktop support role. I built a
few small tools for the team, then started working on larger projects, and
over the course of about 1 year, converted full time into a development role.

So the idea that learning to code is something you do outside the workforce,
and then need to find that "first gig", is not necessarily true.

------
joeclark77
I started college in 1995, the same fall that Netscape came out. A friend of
mine showed me how to create a piece of HTML code, FTP it into the public_html
folder of my unix account, and then I had a "home page". The unix accounts
were set up by the college... anybody else remember reading e-mail with Pine?
I would never have figured out hosting and configuring a web server on my own.

We learned how to code web pages as the features were being added one-by-one:
tables, frames, animated GIFs, java applets (embedding them, not coding them).
I was not a CS or programming major, this was just my hobby.

In the summer after sophomore year, I started making money at it by building
static web pages for businesses in my home town. It's a small town and I can
honestly say I was the first web developer there. I don't remember how I
advertised myself... maybe people just contacted me because they knew my
parents or something. The biggest source of business I found was the real
estate agents, who wanted a different page for each house they were listing,
and frequently updated them. For me it was pretty simple to copy the template
and update the navigation (remember, all hard-coded, even the "prev" and
"next" buttons), and I would charge $50 or so for each new listing.

In my senior year I did an internship which became a paying job, still doing
HTML "integration" as they called it. In my second job, a year later, I
learned about dynamic pages, CGI, databases, and ASP. I had a great boss who
was an entrepreneur with lots of ideas, and he hired me to sit in the office
next to his and try to find out which ones were feasible.

In particular I remember trying to solve the problem of building an online
"shopping cart". First I did it with Javascript and used a hidden frame to
hold the data in the browser as the user navigated from page to page. Then I
learned Perl so I could code it as a CGI script that stored the data in some
kind of a flat file. Then I learned databases (including how to set up and
administer a SQL Server database) because I had a hunch that a scripting
language like ASP would be the answer. Every time I told the boss I wanted to
go to the bookstore and get another O'Reilly title, he would fund it.
Fantastic experience, but I left (why else?) because somebody else offered me
more money to do HTML tweaking and Photoshop image-slicing drudgery 40 hours a
week.

It took me thirteen years to get another great job like that.

------
vishaldpatel
I learned how to write code in high school. By the end of high school I knew
enough to pursue most current jobs. So, three years of one class per semester.
That said, it can and has been done a lot faster. I know someone who went from
zero to hero in under a year on her own.

------
enhdless
I'm self taught. Armed with HTML/CSS/JS knowledge, I started out by building a
couple simple, static websites for people I knew, unpaid. My first paid gig
was for a guy on Craigslist for a simple css fix.

------
kirillzubovsky
First, a quick response to your questions. I learned to code on my own, after
graduation. I simply took all my savings, moved half-way across the country
away from my parents, and locked myself in a room (quite literally) for a
while, until I was able to create the applications that I wanted to create.

My background was in Industrial Engineering, which is part design, part
engineering, part lots of math and BS courses that I've since long forgotten.
I think the degree helped me to be more user-oriented, but I am pretty sure it
had nearly 0 to do with my ability to code.

Now, let's get to the paid gig. Technically speaking, I think my "paid" digs
were for friends and family. I am saying paid because of course, they all want
a discount and you end up being paid minimum wage for a while :) My first real
gig was a great experience, but a total disaster, so far as payments were
concerned. The guy was very legit, up until the point where he skipped town
and didn't pay any of his developers. I was out like 5k?

All-in-all, that was a great experience and a kick in the butt. It opened my
eyes to the real sucky parts of freelancing business, and eventually led to me
building Scoutzie.com where we built plenty of tools to help freelancers
shield themselves from ass clients.

Now, back to making money. This might surprise you, but the most money we made
because it had nothing to do with ability to code. In the early version of
Scoutzie, circa early 2012 when we just got into Ycombinator, my co-founder
Jenn said that it was time to make money. I was actually afraid - charging
people money for your online product - that's crazy! So, Jenn put together a
WuFoo form[1] and we pushed it live.

It was absolutely astonishing when a day later someone actually paid us $5,000
to find them a designer, without even talking to us. It was totally unreal!

So, my point here is - you don't need to know how to code to make money. Sure,
we had an original product that required code and was running and collecting
interest, but the actual money part was done manually, for the longest time.

If you're learning to code, that's awesome, but making money and coding has
probably little to do with each other. You can be the best developer on the
planet and completely suck at making money, or you can hack together a few
lines of code and get a consistent income month-over-month[2].

[1](the forms are all private, but here's an idea of how the product started
to scale once we realized that people were willing to pay ->
[http://cl.ly/image/2j2C3m2k3x2A](http://cl.ly/image/2j2C3m2k3x2A))

[2]Right, I forgot to mention, I built PresenterMate.com once, juts for fun,
and it's been in App Store ever since. People are still paying money for it
every month, which is very cool :D

------
cfredmond
i'm a self taught programmer. i fooled around making web sites & basic crud
apps using php for a few months before i began advertising on craigslist. i
severely undercharged initially to get my foot in the door (it was a lot of
money to me at the time though lol) but i gained enough experience after about
a year to eventually land a job doing production support. fast forward 6
months and i landed my current role as a software engineer for a major
financial institution (w/o a college degree).

------
matthewborden
Did you learn to program in school or teach yourself?

Taught myself HTML, CSS and JS. Learnt PHP, Rails, C# and Node.js. Learnt
through online courses at
[http://www.codecademy.com/](http://www.codecademy.com/) and many hours
debugging.

Did you do unpaid work to establish yourself?

Yes, I advise only doing unpaid work on your own side projects. Without a
budget, clients will continually ask you for features.

Roughly how long did it take you from day 1 of learning to day 1 of being
paid?

3 years.

What was your first gig?

I did a week of work experience, at two different start-ups. I then started my
own business doing freelance web development at
[http://www.matthewbordenweb.com/](http://www.matthewbordenweb.com/)

------
equalarrow
Well, I don't want to sound too ancient, but I learned how to program on 8-bit
machines, as a kid, in the 80's. Commodore, Apple's, IBM Pc's (all pre-MS
Windows).

We (my friend and I) did everything in Basic. We had our first programming job
at 14 & 13\. And that was building mailing list apps for people (this was
superseded by the database).

My main driving force has always been get 'enough' knowledge and dive in. I
still do that today and now there are a gazillion more resources on the web to
help. I grew up in the model-T days of computers.

Today if I was to advise someone on building a desktop or server app, I would
probably say do it in Ruby or Python. And of those two, probably Ruby - it's
just a little easier to get into.

iOS and Android are definitely huge, but I would probably suggest to someone
to learn Swift and go for iOS if they wanna go the mobile route. iOS pays more
and Swift is enough like Javascript to where you could transition a little
easier than Java. Nothing wrong with Java, of course, but it's way bigger -
like you getting dropped in a jungle and trying to find a way out.

 _However_. I am a late comer to seo and _making money on the web_ via
'passive income'. My biggest recommendation to a kid might be to not program
at all, but learn how to setup content sites and go for affiliate marketing,
google adwords, etc. This is the complete opposite of coding for a living. Why
would I recommend this?! Because you _can_ make money this way while you sleep
(see Tim Ferris & 4 hour work week). If you code for a living and trade time
for money, you will never be able to do this. I've read many books from rich
people and they say this is the worst form of earning you can do because you
can _never_ get time back, so time is the most valuable thing you have.

I feel like I've done a lot of models on the web - startup, my own products,
code for cash, code for equity - and the one I feel strongest about is the
passive income approach. It's not guaranteed, but if you can make it work,
you'll be way ahead of the guy - in terms of making money - that trades his
time for programming. Check out
[http://www.smartpassiveincome.com](http://www.smartpassiveincome.com) and
prepare to depressed and happy.

~~~
thekevan
I didn't find anything of value at that passive income site you recommended,
specifically because I have no interest in writing and selling an e-book.

That and the techniques there seem a little sketchy. It seems filled with
claims like, "Learn my business model!" "Learn how to make passive income work
for you" but then when you click on those links, each one was something along
the lines of, "give me your email address to receive my ebook which will teach
you that" or "listen to my podcast (complete with ads) to learn that" or
"watch my YouTube video (with ads) to learn that."

He claims he just wants to teach people and his business process is
transparent, the "education" is actually the business process and people may
not realize they are being led down the very path he is teaching people to
lead others down. Just leaves a bad taste in my mouth.

~~~
equalarrow
That's fine, to each his own. But I would say Pat's site and model are much
more than what you say they are at face value. Sure, there is that 'learn the
business model' message - but then again, almost all marketing sites you go to
have something similar to say and if you can look past the up front message, a
lot of time you can find value and expand your horizons.

The podcasts are really good. I don't think they describe anything shady or
(if I recall correctly) have a bunch of ads - in fact, I don't think they have
any ads at all. I don't feel like anything he says is shady. Just look at his
income reports to see exactly where his money is coming in. He's pretty
transparent and up front about anything. I bet you if you emailed him directly
with your concerns, he'd answer you back.

In regards to writing or selling an ebook, yup, not for everyone. But one of
the reasons an ebook is so big on his list is because that was his first big
win and he pulled in a lot of money monthly by sharing his LEED experience and
helped a lot of people pass their exams. Ebooks might not be everyone's cup of
tea, but I'd love to have one out there that brings me in a couple of grand
every month.

Now, if you feel like coding is what you want to do and marketing or passive
income is shady or bs, that's fine. I used to think like that too and to each
his own. But for me, I feel like I've done it all and it's time to try other
things. I'm at a point now where I can charge a lot to do contract work, but
I'd rather have my money work for me so I can do other things. Like I said
before, time is your most precious resource and you can never make it up or
get it back. And since there's only so many waking hours in the day, it just
seems silly to spend them trading my time for money when I can make things
that can keep the money rolling in at all times. And then I can code for fun
or to scratch an itch whenever I want.

~~~
thekevan
"marketing or passive income is shady or bs"

Not at all. I just think he seems a little disingenuous. I don't like the
subtle bait and switch.

------
heeton
Accidentally. I was making little games for fun and someone contacted me to
sponsor it. Woo!

------
nolite
Self taught; no unpaid work; 4 yrs+? ; Elance

------
rockshassa
My path:

Had computer and internet access at a young age. Learned DOS in elementary
school playing 'Oregon Trail' on 5.25" floppies. Exposed to Lotus 123 in DOS.
Played mahjong on OS/2\. My first experience with copy protection was the
"enter the X word on Y line on Z page" a la Commander Keen. First touched the
internet when 14.4kbps was a big deal. Played with File Manager on windows
3.11 like it was a toy. Fix errors in "MegaRace" install. In middle school,
discover IRC and fileservers. Get involved in Anime fansub scene, host
fileserver around the same time that Cable Modems were first hitting the US
east coast. Learn about video compression, encoding, fansubbing. Learn IRC
script and create chatroom bots that respond to users. Learn FTP and FXP.
Infect friends' PCs with Subseven like a true script kiddie. Get C&D letters
from parents' ISP due to port scanning. In high school, get CompTIA Network+
cert, A+ cert, MS Sysadmin Cert. Interstate 76 comes out for PC, learn what
hexadecimal is. Around the same time, joined a guild on MPlayer for playing
Mechwarrior 2. Learn HTML and CSS while creating a website on
geocities/enchantedforest/cottage for the guild, learn what <table><tr><td>
is. Create free website on angelfire for a friends. Learn how to embed a MIDI
file. Learn what PHP include means. Learn JASC Paint Shop Pro. Learn how to
Pirate JASC paint shop pro. Go to college as CS major. Learn OOP in java.
Touch SunOS and Emacs. (ed: i stand by my claim that emacs is not meant for
humans). Enjoy programming, hate math. Halfway through college, switch to
business major because I have a D in Calc 3 and dont want to blow up my GPA.
While finishing college, work as a Jr. Sysadmin consultant for a major ISP.
Learn windows administration, learn core concepts of availability and
scalability. Learn about backups. Active Directory, Exchange, IP telephony,
DNS etc. Learn about corporate process and bureaucracy. Learn how to CYA. Get
job as IT manager for 5-person financial startup. Get fired after 3 days. Get
job at Panera Bread bussing tables. Get call from major ISP, quit panera after
2 days. Get job for IT consulting company in a major metro area. Visit
residential and corporate clients to act as IT department, doing break/fix,
data recovery and small scale org planning. Appreciate the value of true IT
knowledge in the marketplace. Get job as Sysadmin at a media company. Use
previous experience to deliver superior service to internal users. Build
goodwill. Around the same time, iPhone 4 is released, with retina display.
Become enamored with iPhone, recognize potential of the platform. Learn iOS
dev with help from Stanford classes on iTunes U. Spend 2 months learning iOS,
get comfortable working with it. Decide to quit sysadmin job to study iOS full
time. Upon quitting, get offered the opportunity to transition to developer
role at same company. Accept opportunity, attend excellent iOS training
course, begin transition to full-time dev role. Work on popular newsreader
app. Gain experience and knowledge from dev mentor. After 1.5 yrs, move on to
smaller startup-y org for massive $ increase. First "real" programming gig
since making transition from sysadmin. Overcome jitters, rewrite major
application with great success. Read about electrical engineering, and
Haskell. Consider what to do next...

------
reboog711
> -Did you learn to program in school or teach yourself?

Well, I guess a little bit of both. I wrote my first program in the early 80s.
It was a game I copied directly out of a book. It was my first exposure to
programming. I also took a programming course in High School in the early 90s.
It was, crap, and my 'self-taughtness' I was too advanced for that class. Then
I went to college and got a Computer Science degree in the mid 90s. This
degree taught me a lot about programming that would have been harder to pick
up on my own. As I understand it; college curriculum in programming is a crap
shoot. Some are good; some are bad. Some are focused on teaching specific
languages and some are focused on programming concepts. I would classify my
education as winning the lottery. Because I was taught a lot of the concepts
behind programming theory and how to apply them. This has put me in a very
good position in my professional career whereas I am often able to pick things
new languages / technologies / approaches easily.

I'm not saying that an education is necessary to be able to pick up new things
quickly; I'm only saying it helped me.

I feel I meet a lot of programmers who know a language [or framework] while
missing some of the other underlying concepts and they struggle when it comes
time to learn something new.

> -Did you do unpaid work to establish yourself?

Nope! My first client was in college. I was writing some data processing code
for some type of research they were doing. I think I got paid $20 per program;
each which took me a few hours to write.

My first programming job was a co-op at a business to business advertising
firm. A co-op is like an internship; but mine was a paid internship. I made a
lot more on the internship than I did at my job at Waldenbooks.

However, I'll add that a lot of what I've done is writing, both blog writing
and book writing and article writing. The blog writing is unpaid. I'm cautious
to call the book writing or article writing unpaid; although it paid very very
low. These actions help me convince clients I know my stuff and has helped me
keep an "independent" career as a small business owner with consistent work
for many years.

> -Roughly how long did it take you from day 1 of learning to day 1 of being
> paid?

Where do you count day of learning? If it was when I Was copying stuff out of
a book in the early 80s; then probably around 15 years. If you count when I
first started college, then probably about three years.

> -What was your first gig?

My first 'real' job was as the 'tech guy' at a business to business consulting
firm. They did a lot of marketing. I did a lot of Lotus Notes work. Some work
with Perl; web development stuff (JavaScript/HTML), some iCat (a Now defunct
ecommerce technology), and some ColdFusion. This was the same company I co-
oped with. They gave me a full time offer before I graduated [and I started
the week after I graduated].

A few years later; I left there and 'accidentally' started my own consulting
company which I still do today.

------
err4nt
> Did you learn to program in school or teach yourself?

Self-taught. This stuff advances so quickly it's tough to distill what you
need to know into classes without getting REALLY deep into it. The pace of the
industry is set by the speed at which the self-taught craftsmen research and
develop new skills. It's hard to find competitive pay if you don't have
competitive skills and in the long-term, only those skilled at self-teaching
have any kind of longevity in the field IMO. I'm still young but I see so many
ahead of me lose that edge and not be able to find work simply because they
spend too much time doing and not enough time thinking.

> Did you do unpaid work to establish yourself?

Absolutely, but I have a strict policy of only working pro bono for myself or
charities I would donate money to. I'm a big fan of open source code, so I try
to donate as much as I can to posterity once a project is complete at well.

> Roughly how long did it take you from day 1 of learning to day 1 of being
> paid?

I have been tinkering for years while in school so that's not a fair question,
but more recently I have gone from not knowing JavaScript to getting paid to
write bits of it here and there in one year while also doing other web
development. It should take less than five years to go from nothing to
competitive if you're keen to do it, and you shouldn't need to spend a dime to
do it. There is enough material, software, and even full operating systems you
can use for free so he only costs are a computer, electricity, and internet
access. If you have those three already, buckle up and get ready for a wild
ride, but put that wallet away!

> What Was Your First Gig?

My first job out of college was as an in-house web developer for an online
tutoring company. They tutored adults to help them get professional
certifications they would need to get a job. I ended up getting caught in a
layoff within the first year unrelated to performance, but I still cherish the
opportunity they were ready and trying to give to me even though it never
bloomed to the full potential. I got a site built for them and they have been
able to maintain it since then but I fear they are doing very well financially
even still.

My advice to you is this: if you want to learn web languages like HTML, CSS,
and JavaScript, DONT look for tools that make it 'easy'. At the end of the day
you're writing a page of text, so the most simple, easy, and straightforward
way to arrive at that is by simply typing the characters. Any pre-processors,
plugins, or frameworks that reduce what you have to write reduce what you are
able to learn. I suggest starting with a 'clean-room' approach and creating
blank files and literally typing each and every character you want in those
files manually, every. Single. Time.

When I start a new website, the first thing I type is: <!DOCTYPE html>, I
don't even start with a 'empty template'. That's the fastest, easiest way to
'get into' a languages syntax and get your head around what it does.

Good luck!

------
doorhammer
the tl:dr version: > Did you learn to program in school or teach yourself?
Self taught

> Did you do unpaid work to establish yourself? Kind of. I did a small website
> for a guy, but nothing I did really paved the way for me to get a job,
> exposure wise. That's probably more a mistake of mine than a data point. I
> should have taken advantage of that more.

> Roughly how long did it take you from day 1 of learning to day 1 of being
> paid? Four years

> What was your first gig? Full stack .net (mostly C#) SQL
> Servers/Dapper/Entity Framework/MVC/Nancy/Ember/Web Apps

The Novel: I was going to do these individually but it turned into a bio.

Mostly taught myself. I took a class on BASIC in high school (in 1997 or so),
and a course on HTML in college (around 2001), but I pretty much dropped
programming until way later.

I have a friend who came out of college as a journalism major and he worked
doing journalism somewhere for awhile. He got sick of it, taught himself to
program, and got a job programming. I don't know details about hit specific
circumstance, but that's what motivated me to learn it myself.

I'm thirty one. I started learning to about five years ago. My first language
was Java, which I hated, but it's what my friend used so I figured I'd start
there. I pretty quickly jumped to messing around with python tutorials and
only really got interested when I started doing ActionScript 3. I never did
anything professionally with it, but it was really fun and satisfying. I knew
a guy who runs his own web dev business, and at the time they were mostly in
AS3. He said he could get me some work, but it never panned out.
Realistically, I think I just didn't have the chops at the time, or he didn't
really trust them. I don't really blame him for that. They also did a lot of
rails work, so at that point I started learning ruby and rails.

Probably a year or two in, I started listening to software engineering radio
religiously. There were other podcasts, but I think that's the one that really
made it easier to keep going and get broad exposure to a lot of different
concepts in a digestible format. It was really nice because I could listen to
it while I was stocking the cooler at 7-11, or driving a moving truck across
the states. I also worked for a liquidation warehouse for a bit. I ended up
making a few rails apps for small inventory management tasks, but right as we
were going to start using them, we all got laid off.

I ended up at a call center as an agent, after that, then moved to a team lead
spot, then worked into the training department. I kept making little
javascript tools for people along the way. Cheezy little widgets, but they
helped folks. I also cleaned up a lot of spreadsheets, modularized them, wrote
macros to do certains tasks, and otherwise pitched in here and there. It was
small stuff, but at that point I'd been coding for four years, and inhaling
book after book. At that point I knew javascript and ruby really well. I was
also using clojure to do fun projects. All the excel work eventually got me
moved over to be a data analyst with the Quality Assurance department.

I spent a lot of time reading books on best practice for enterprise dev and
dev in general (code complete 2, the pragmatic programmer, clean code,
Patterns of Enterprise Application Architecture, sicp, etc). My fairly diverse
range of languages, the scope of stuff I'd picked up from and built on from SE
radio, the books I'd read, and my side projects gave me a lot to talk about if
someone else knew how to program. Since I was salaried at that point, and a
data analyst, I was in contact with our BI group, and talked to the manager a
lot about coding. They were mostly using C# and .NET, so I started learning
.net, C#, and F# in my free time, which lead to more conversations. Eventually
they had an opening and the manager encouraged me to apply. I applied, they
offered me the job, and I've been a full time .net dev for about a year now.

My biggest hurdle was being confident that I could do it. I always loved
computers, but I'd never done any real programming until I was in my mid 20's.
If you stay around places like HN, or read coding lore, you get the impression
that everyone good started when they were five. I'm not saying that
vindictively; it's just the impression I got. Things also don't seem to come
as naturally. That said, I remember the first time I thought I "got"
functions, and it was so amazing to me. It didn't click right away, but when
it did, it was really cool feeling. Then later on I started taking on more
functional languages and learned that while I "got" them, I didn't _really_
get them. And now that feels absolutely natural.

I don't feel at a disadvantage at all, because I know that I have the skills
to keep learning and adapting, and I also have the desire. It's really cool.

That's an incredibly long post, but I didn't want to leave anything out in
case it'd be helpful. If you have any questions, feel free to ask.

