Ask HN: How did you get from learning to code to making your first dollar? - <AUTHOR> 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/side project. However, I'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/job/etc.
Some questions to consider:
-Did you learn to program in school or teach yourself?
-Did you do unpaid work to establish yourself?
-Roughly how long did it take you from day 1 of learning to day 1 of being paid?
-What was your first gig?
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. <comment><USER3> 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.

<comment><USER4> 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.

<comment><USER3> 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.

<comment><USER5> 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...

</comment></comment></comment></comment><comment><USER6> 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.

<comment><USER7> I couldn't agree more.

</comment></comment><comment><USER8> 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.

</comment><comment><USER9> "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.

</comment><comment><USER10> 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 :)

<comment><USER11> "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.

</comment></comment><comment> 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.

</comment><comment><USER12> 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!

</comment><comment><USER13> 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.

</comment><comment><USER14> 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.

<comment><USER15> Dreamweaver! Yeah! Those were the days...

</comment></comment><comment><USER16> _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.

</comment><comment><USER17> 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.

</comment><comment><USER18> 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 ;)

<comment><USER19> 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.

</comment></comment><comment><USER20> 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 :)

</comment><comment><USER21> 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

</comment><comment><USER19> \- 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).

</comment><comment><USER22> 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.

</comment><comment><USER23> 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.

</comment><comment><USER24> 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.

</comment><comment><USER25> 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.

</comment><comment><USER26> 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.

</comment><comment><USER27> > 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.

</comment><comment><USER28> 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.

</comment><comment><USER29> 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)

</comment><comment><USER30> 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.

</comment><comment><USER31> 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.

</comment><comment><USER32> 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.

</comment><comment><USER33> 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.)

</comment><comment><USER34> >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.

</comment><comment><USER35> 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.

</comment><comment><USER36> 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.

</comment><comment><USER37> 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.

</comment><comment><USER38> 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.

</comment><comment><USER39> > 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.

</comment><comment><USER40> 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.

<comment><USER6> 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.

<comment><USER41> 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.

</comment></comment></comment><comment><USER42> >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.

</comment><comment><USER43> 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.

</comment><comment><USER44> 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.

<comment><USER44> Heck, if you'll post a general format for creating a timeline, I'd be happy to ofill one out ;)

</comment></comment><comment><USER45> \- 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.

</comment><comment><USER46> 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.

</comment><comment><USER47> 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.

</comment><comment><USER48> 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))

<comment><USER49> 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

</comment></comment><comment><USER50> -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.

</comment><comment><USER51> 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.

</comment><comment><USER52> 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.

</comment><comment><USER53> 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.

</comment><comment><USER54> 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.

</comment><comment><USER55> 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.

</comment><comment><USER15> 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 - <USER2> 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

</comment><comment><USER56> 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).

</comment><comment><USER57> 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/)

</comment><comment><USER58> 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.

<comment><USER59> 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.

<comment><USER58> 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.

<comment><USER59> "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.

</comment></comment></comment></comment><comment><USER60> Accidentally. I was making little games for fun and someone contacted me to sponsor it. Woo!

</comment><comment><USER61> Self taught; no unpaid work; 4 yrs+? ; Elance

</comment><comment><USER62> 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

 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...

</comment><comment><USER63> > -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.

</comment><comment><USER64> > 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!

</comment><comment><USER65> 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.</comment>


Watch AI generated art on your TV - <AUTHOR> https://youtu.be/ArXCHitvKu0 <comment><AUTHOR> Author here: Some weeks ago launched [https://art42.net](https://art42.net) , a website to explore an infinite stream of AI Generated art. I wonder if a live streaming of AI generated art and music would be something that you would love to see in your living room tv? There is a White Backgorund Version ([https://youtu.be/3bVGunLp2dU](https://youtu.be/3bVGunLp2dU)) and Black Background Version ([https://youtu.be/ArXCHitvKu0](https://youtu.be/ArXCHitvKu0))

Is this something that you would put on your tv in the background? As always, feedback is apreciated.</comment>


Ex-Microsoft privacy advisor: I don't trust Microsoft, thanks to PRISM - <AUTHOR> http://www.zdnet.com/ex-microsoft-privacy-advisor-i-dont-trust-microsoft-thanks-to-prism-7000021443/ <comment><USER2> On the basis that he was not aware of PRISM, does that make you feel any better about the promises made by them?

Nope.

Slightly regretting writing that 450,000 lines of C# in the last 10 years...</comment>


Now Open – AWS Asia Pacific (Seoul) Region - <AUTHOR> https://aws.amazon.com/blogs/aws/now-open-aws-asia-pacific-seoul-region/ <comment><USER2> Route trace from Beijing Unicom Residential network, looks like packets are routed through japan, not sure if it's just temporary or will be improved later. (Comparing 50+ms from Beijing to other providers in Korea):

      3     5 ms     6 ms     3 ms  188.8.131.52
      4     8 ms     7 ms     6 ms  126.96.36.199
      5     6 ms     7 ms     6 ms  22.214.171.124
      6    36 ms    38 ms    39 ms  22.214.171.124
      7   109 ms   103 ms   105 ms  126.96.36.199
      8    42 ms    39 ms    41 ms  126.96.36.199
      9   165 ms   165 ms   163 ms  220.127.116.11
     10    89 ms    88 ms    87 ms  188.8.131.52
     11   164 ms   165 ms   168 ms  18.104.22.168
     12   177 ms   177 ms   177 ms  126.96.36.199
     13    94 ms    97 ms   100 ms  184.108.40.206
     14     *        *        *     Request timed out.
     15   179 ms   182 ms   180 ms  126.96.36.199
     16    95 ms    94 ms    93 ms  184.108.40.206
     17    98 ms   133 ms   102 ms  18.104.22.168
     18   161 ms   152 ms   143 ms  184.108.40.206
     19   101 ms   102 ms    99 ms  188.8.131.52
     20     *        *        *     Request timed out.
     21     *        *        *     Request timed out.
     22     *        *        *     Request timed out.
     23   100 ms    99 ms   100 ms  my.vps.ip.addr

* edit: removed my instance ip.

<comment><USER3> AWS(China) has been in preview for more than a year. Not sure when that will reach GA.

<comment><USER4> The Communist Party has a lot of 'requirements'. First of all you have to offer them a sigaret.

</comment></comment></comment><comment><USER5> Man, Africa looks really sad. I was looking through their region list ([http://docs.aws.amazon.com/general/latest/gr/rande.html](http://docs.aws.amazon.com/general/latest/gr/rande.html)) and everything is in the Americas, Europe, Asia and Australia.

Africa's nowhere to be found.

<comment><USER6> What is the killer app for a hosting region in Africa? All I have seen is gamers in South Africa complaining about the ping times to servers located in EU making real-time games not worth playing for them. But that's a relatively niche market.

It's ironic, as some of the AWS dev work was done there. [https://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud#H...](https://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud#History)

<comment><USER7> When I was at AWS I visited South Africa for a conference, and paid a visit to the local office in Cape Town. I don't think I can disclose any other detail (number of people, etc), but it is public knowledge that there is a substantial workforce still there, doing development and support.

The problem with an AWS region in Africa is, in my view, that there's not a large market to support the idea. South Korea is for sure more interesting.

</comment></comment></comment><comment><USER8> Meanwhile, Google Compute Engine still only has four regions and hasn't expanded in over 18 months. (Don't get me started on App Engine, it's not even available for the Asia region!)

Still no presence in the entire southern hemisphere!

<comment><USER9> GCE's multi-regional buckets are quite awesome though and cheaper than paying Amazon to move between regions

<comment> eric-hu Could you go into what the price difference is or what your use case is? Just curious in what situations I might want to consider Google over S3.

<comment><USER9> honestly i think [http://blog.zachbjornson.com/2015/12/29/cloud-storage- perfor...](http://blog.zachbjornson.com/2015/12/29/cloud-storage- performance.html) does a better job than i could*

* benchmarks are easily fakeable - please don't bet your company on one

</comment></comment></comment></comment><comment><USER10> On the other hand, OVH will have 12 more DC open this year, Starting with Portland and Ashburn in US, then Singapore and Australia.

<comment><USER11> AWS have at least 32 DCs - all regions have a minimum of two data centres for proper ha. There are four more scheduled to come online this year, India and UK.

If you think ovh and aws are comparable in anything but the very broadest terms you've not understood what AWS are offering.

<comment><USER12> Not sure if everyone realizes this, but often (outside the US at least) neither company build or owns data centers. For example, Amazon Sydney is in Equinix SY3[1].

[1] [https://blog.equinix.com/2012/11/amazon-web-services- comes-t...](https://blog.equinix.com/2012/11/amazon-web-services-comes-to- equinix-data-center-in-australia/) (plus I know people who saw the equipment going in)

<comment><USER13> That's just a Direct Connect location right? Not the actual Asia Pacific (Sydney) Region.

<comment><USER12> I'm guessing Equinix aren't allowed to say AWS is in their DC.

But their equipment is in there, 100% guaranteed (or at least was in 2012).

Edit: Here's a better reference:

 _Equinix yesterday launched phase two of its Sydney 3 International Business Exchange datacentre facility (SY3-II) in Alexandria, with Amazon Web Services (AWS) onboard as one of its first customers.... It was only confirmed yesterday — despite it being the worst-kept secret in the industry - that it is using Equinix 's SY3-II datacentre._

[http://www.zdnet.com/pictures/equinix-celebrates-launch- of-s...](http://www.zdnet.com/pictures/equinix-celebrates-launch-of-sy3-ii- datacentre-with-senator-conroy/)

I don't know for sure, but I also think that AWS Sao Paulo is in the Terremark DC.

<comment><USER11> AWS have two dedicated DCs ('AZs') in Sydney. For services that require quorum (Dynamo, SQS, S3 and others) they also have a private third 'AZ' in SY3-II. When you get an EC2 instance it is always in a dedicated DC, not Equinix.

</comment></comment></comment></comment></comment></comment><comment><USER9> Can anyone comment on their performance boosts over Tokyo/Singapore with this new region?

<comment><USER14> And Uzbekistan and Kazakhstan???

We have been using servers located in North Virginia so far -- it is not that bad actually, definitely better than buying hosting locally.

PS: Why downvotes? If you disagree, please care to post your reasoning or experience.

<comment><USER15> I imagine you were getting downvoted for using multiple question marks, and people not understanding you were just asking a question.

Typically one question mark indicates a question. Multiple question marks usually indicates that you're upset about something or asking a rhetorical question.

For example, most people distinguish a difference between sentences like:

"What are you doing?"

and

"What are you doing???"

The first indicates a question, the second indicates you are upset or that the person is doing something wrong.

The way you wrote your sentence makes it look like you could be making fun of the person you are responding to.

</comment></comment></comment><comment><USER16> Censored internet access though (Korean Porn-Blocker)

       [ec2-user@ec2 ~]$ curl youporn.com
       <html><script>
       var arg = "http://warning.or.kr";
       var str = new Array();
       str = arg.split("&", 1);
       var a = new Array();
       a = str[0].split("=");
       var b = Math.floor(a[1] / 100);
       var c = new Array();
       if(b == 10){location.replace("http://www.naver.com");}
       else if(b == 20){location.replace("http://www.daum.net");}
       else if(b == 30){location.replace("http://www.paran.com");}
       else{ c = a[0].split("?");
       location.replace(c[0]);}
       </script></html>

</comment><comment><USER17> The availability of instance type also hints the future for other AWS regions.

E.g. T2, M4, C4, I2, D2, and R3 are available, but not M3 or C3.

<comment><USER13> Not that strange that they not are offering previous generation hardware at new locations.

<comment><USER18> I'd argue that m3 and c3 instances shouldn't be classified as "previous generation", since the m4 and c4 instances don't have any local ephemeral storage. Given the recent EBS incident in GovCloud, I think it's still pretty reasonable to be skeptical of EBS.

<comment><USER19> Is this the only source? [https://www.reddit.com/r/sysadmin/comments/3yv2db/aws_ebs_vo...](https://www.reddit.com/r/sysadmin/comments/3yv2db/aws_ebs_volume_data_loss_usgovcloudwest1a/)

</comment></comment></comment></comment><comment><USER20> Out of curiosity, what is the biggest player in Korea for cloud computing, e.g. local ones?

<comment><USER21> Ucloud has 85% share in korean market. [https://en.ucloudbiz.olleh.com/](https://en.ucloudbiz.olleh.com/)

<comment><USER22> I very much doubt this. Source?

</comment></comment></comment><comment><USER23> Hey AWS, fix the issue of accepting Unionpay debit cards (not just credit) and I'll start using you again.

</comment><comment><USER4> When will they start opening the inland China region?</comment>


Guerilla Launch Tactics, or Manufacturing Buzz for Bootstrappers - <AUTHOR> http://madhatted.com/2012/4/25/guerilla-launch-tactics

<comment><USER2> Wouldn't asking friends to upvote your HN submissions count as gaming the system?

I'm sure people do this regardless, but to just admit so on your blog seems a bit careless.

<comment><USER3> Voting rings, where a group of people upvote each other's posts all the time, are generally discouraged on forums. The behavior could lead to banning on some sites, but on HN, the behavior is automatically detected and the votes simply don't count.

But asking some friends to upvote an individual post is what all HN submitters are doing anyway! That's not gaming the system.

<comment><USER4> I agree completely. I mean, you can't get noticed at all initially unless a few of your friends upvote your stuff...just the way it is.

</comment></comment></comment><comment><USER5> Very useful post, thank you. I'd love to see some charts in there too.

</comment><comment><USER6> There's a point you make in the article that I think will get overlooked: Thanking people.

I'm fascinated with the human psychological flaw looking at short term vs. long term. We tend to optimize for short term without giving much thought to the long term.

You're most likely going to want people to help out again so thanking them for their time and effort, no matter how minimal, has never gone unnoticed.

</comment><comment><USER4> I like the hangman idea...how did you promote that? How many visitors to the game actually continued on to spinto?

<comment><AUTHOR> Looking at the numbers now, I see 13.5% of visitors went through to Spinto. We're only talking about 350 visitors to playhangman.net though. Most were probably from a discussion about Ember.js on meetup.com.

I spent a little time optimizing hangman for iPad and iPhone, I want to make the games easy to share and play on those devices. So, there is more that can be done.

In general, making games or projects on Spinto is obviously a win. Plus, yeah, it's fun to send people messages with playhangman.net they need to guess to read :-)

<comment><USER4> yeah it's a great idea...the more I think about it, the more ways I can see to use this myself in different ways. Thanks for the great idea!</comment></comment></comment>


What's so scary about smart girls? - <AUTHOR> http://mobile.nytimes.com/2014/05/11/opinion/sunday/kristof-whats-so-scary-about-smart-girls.html

<comment><USER2> I'm not sure Boko Haram is a good example for the proposition that educated girls are the worst nightmare for extremists. Boko Haram also attacks boys schools. That's not as newsworthy because they kill the boys right away, so a given attack doesn't become an ongoing incident like it does when they kidnap girls for sex slavery.

They specifically are upset over what they consider to be western education. In particular, they object to schools teaching evolution, that the world is round, and that rain comes from water that evaporates from the oceans. These all contradict their interpretation of their religion.

</comment><comment><USER2> Later duplicate submission, with more comments: [https://news.ycombinator.com/item?id=7736874](https://news.ycombinator.com/item?id=7736874)</comment>


Want to check how far behind has Facebook's Insights really gotten now? - <AUTHOR> http://whyisfacebookinsightsnotworking.com/

<comment><USER2> I've wanted to build a more generalized version of this in the past. Facebook does a poor job of reporting on many of their own API issues and it would be relatively simple to build a tool that called each API endpoint and validated that the results where correct and up to date.

Interestingly, Twitter forbids developers from doing this. In their API terms (<https://dev.twitter.com/terms/api-terms>) they have the following statement "You will not attempt or encourage others to...use or access the Twitter API for purposes of monitoring the availability, performance, or functionality of any of Twitter's products and services"</comment>


Generate Fake Data for Your JavaScript Applications Using Faker - <AUTHOR> https://scotch.io/tutorials/generate-fake-data-for-your-javascript-applications-using-faker

<comment><USER2> I've done something similar at work, primarily to generate random data that'll pass our validation checks (real cities, valid SSN, etc).

It seems strange to me that the email address and usernames in the samples are based on a person's name, but they're different from the user's actual name.

I chose to just take the name, and transform it for the email address. I think some consistency will make it easier to test that the right user data shows up in the right places while testing.

<comment><AUTHOR> sounds interesting and useful.. is your code open-source? Can we see your work?

</comment></comment><comment><USER3> I've used Faker and like it. For mocking big datasets I prefer [http://www.mockaroo.com/](http://www.mockaroo.com/) served by [https://github.com/typicode/json-server](https://github.com/typicode/json- server)

<comment><AUTHOR> yep! It's takes care of a lot of useless headache when it comes to testing or so :)</comment></comment>