
Goal: become developer this year from scratch. Feedback? - grokaholic
Interested in meeting fellow travelers who are doing the same, have done the same, or are just interested. My email is thegrokaholic [AT SYMBOL] gmail [DOT] com.<p>BACKGROUND:<p>28 years old, San Francisco. Programming experience consists of a Python tutorial, making a simple text game for friends. Want to build stuff on computers all day for work, initially freelancing or working a job for experience, and later building products and a company.<p>MAIN GOAL: 
Current temp job ends in May. Taking this chance to leap into professional web development. Saved enough to cover living expenses thru Sept. By May, will have enough to cover living expenses thru Dec. By Dec, goal is to get first client and make $2k from web dev. After taxes, that $2k will cover Jan expenses, buying another month to find the next client, then the next. If I fail, I'll go back to temping and save until I can try this again.<p>SPRING GOAL:
Build my personal site while learning HTML/CSS/Javascript/jQuery as I go. Lots of overtime at the current job, so I'm just doing as much dev as I can when I can on the side. Using internet tutorials while attending classes at the Noisebridge hackerspace for Frontend Web Dev (HTML/CSS/JS), Python, and Web Apps (learning Git, Python frameworks e.g. Django).<p>Focusing most of my time on HTML/CSS/JS, but really enjoy learning more Python/Django/Git/Unix/SQL material. Not only is Python/Django what I want to ultimately do at this point, studying this and associated topics (Git version control/command line/SQL) gives me this sense of wider perspective on frontend topics.<p>That said, reached out to someone who has done what I'm trying to do, and they advised me to only focus on either HTML/CSS/JS or Python/Django for now. What do you think? Is it realistic to attempt them all while achieving my $2k goal by Dec, or am I definitely better of sticking to just HTML/CS/JS this year?<p>SUMMER GOAL:
In June, once my current job ends, going into 24/7 build mode, building sites for my portfolio while continuing to grok what I need as I go. These will be sites for friends or charities.<p>FALL/WINTER GOAL:<p>Then around Sept, switch out of bootcamp mode and start devoting half my time to getting my portfolio out there, and trying to get that first customer, even if it's just subcontracting menial tasks from another dev. Other half of my time will stay devoted to building and grokking new things.<p>What do you think? Perspective, advice welcome. Thanks for reading.<p>PS If you're trying to do the same thing, and are interested in an example of someone who has succeeded in becoming a dev from scratch within a similar timeframe, check out the site of proudn00b (http://www.proudn00b.com/). If you know sites of other people who have done the same, drop me a link. The inspiration helps. Thanks!
======
dirkdeman
Have you considered learning PHP with a framework? Code Igniter isn't too
hardto learn, and the bonus of this strategy is that you'll learn using a
framework. Once you get that switching to RoR or Django isn't too big of a
step. In fact, you can use codeigniter for making your own custom CMS, killing
two birds with one stone! This is the link to the tut:
[http://net.tutsplus.com/articles/news/codeigniter-from-
scrat...](http://net.tutsplus.com/articles/news/codeigniter-from-scratch-
day-1/)

~~~
grokaholic
I'm considering. My passion is for Python and Django, though some people say I
should go with PHP and Wordpress because it's easier to learn, and to get
paid. CodeIgniter comes up too. I've already invested some time with
Python/Django, enjoy it, and wonder if it would still save time to learn PHP
which I have no prior exp in? Perhaps the bigger issue is that there's more
noob-friendly PHP work out there. Thanks for the link, checking it out right
now.

------
brudgers
> _"By Dec, goal is to get first client and make $2k from web dev. After
> taxes, that $2k will cover Jan expenses, buying another month to find the
> next client, then the next."_

That's not a very workable strategy.

Work for your December client will interfere with finding your January client
- or your January client will show up in October promising to be your December
client.

Then your March client shows up, only he wants it done January, too.

Or you start looking for clients in December and you land three in April and
three in May.

And your December client holds your invoice for 90 days and your March client
doesn't pay you so in May you have to decide if it's worth taking them to
small claims court for $2500 - hopefully you've learned enough to write a
contract by that point.

Then, May changes the scope of the work and refuses to pay until you do it all
over again.

In other words, finding clients is hard work. Getting paid is hard work. Doing
what you know how to do is the easy part.

Good Luck.

~~~
grokaholic
Thanks for the constructive criticism! To clarify, my goal is not to find a
client in Dec, but by Dec. Start focusing on client hunting around Sept,
giving me about 4 months to find a gig.

Still unrealistic? Currently don't see a better option than to try, and if I
fail, go back to temping/saving until I can try again. Is there a smarter way
I'm overlooking? Thanks for again for your input.

~~~
brudgers
How realistic it is depends on how many people you know who will pay you
several thousand dollars to do what you do. Finding clients isn't like finding
a job - a new website is a change to business operations.

Client development can take years - relatively few people pull the trigger on
$3000 expenditures each day.

And when they do, why should they hire you?

~~~
grokaholic
Will have a clearer idea around Sept. Then I'll know where my skills/portfolio
will be, and can test out what price the market will bear for my skills. Could
be more or less than I expect. Rather than wait till I have total certainty,
will just go for it, find out if things work, and if not, learn and adjust.
Unless there's some smarter way to do this with more guarantees that I'm
overlooking, then will do that. I'm willing to try and a fail for years if
needed. Reason for the 1 year goal is not because I'm impatient and will quit
if things don't work right away. It's to make sure that I'm not overly patient
--waiting years until absolutely sure that everything is guaranteed and
understood in advance before leaping in.

Agree with your point that not everybody drops $2k on one project. So if that
happens I'll just have to meet the $2k goal by getting more customers paying
less per project. A lazy way to introduce myself to lots of clients right away
is to sign up with a temp agency like RHI's Creative Group that will match my
skills to clients for a cut of my hourly wage. Having temped before, I know
this is a way to make lots of connections in a short period of time. Would
need to validate my worth to the agency first, but that's still easier than
doing the same to several clients. Along the same lines: subcontracting.
Really, will try everything, see what works.

How did you snag your first clients? Were you already established as a dev
through work at a company before you started freelancing? Or did you freelance
before having dev jobs on your resume?

------
jbseek
That's awesome you set this out for yourself. Almost every bright person and
genius I know are all self taught, kudos for jumping in the pool and the best
of luck. Keep us updated.

~~~
grokaholic
Thanks for the encouragement! “We are told that talent creates its own
opportunities. But it sometimes seems that intense desire creates not only its
own opportunities but its own talents.” ― Eric Hoffer

------
gexla
First off, you need to make a small tweak to your mind-set. You aren't
initially doing freelance work and then starting a company, rather you are
starting a company as soon as you start doing client work. The mind-set is
important because you will be more successful from the start.

You absolutely need to know JS well, and be proficient in HTML / CSS, so I'm
not sure a focus on either front-end or back-end is good advice. However, with
limited time you need to choose your battles well, so don't worry about
mastering HTML / CSS at the start (ie, you can duplicate any site but you
won't be as fast at it as someone who does this part as a regular gig.) Become
proficient with Linux, but don't spend too much time there. Just learn the
basics, the rest can quickly become a sand trap and your time is best spent
elsewhere.

To make this work, you need six months living expenses at the start of doing
client work. Three months is an absolute minimum and once you hit that point
you are in critical territory. This is extremely important because this
determines how you are able to plan and pick your jobs. Drop below the three
month point and you are taking a hit in your job selection and rates because
you are forced to take whatever comes along as opposed to having a buffer
period where you can work out better gigs. This then places you in a vicious
circle because not being able to select the right gigs might make getting your
savings back up to six months difficult. Freelancing can be very lucrative to
those who are well established in development circles, but at the beginning
you will be hard pressed to even be able to pay your basic expenses.

You mentioned you are a traveler. Get out of San Francisco and move somewhere
cheaper while you are just getting started. San Francisco is probably great
for looking for start-ups to work for as a full timer, but you can do
freelancing from anywhere. You can move back at a later time.

You might consider PHP because there are more things that you can do in the
market with it due to easier hosting options and the large number of PHP
content management systems available. If you were to learn a CMS such as
Wordpress, Drupal or ExpressionEngine well then you could easily be landing
your first clients within 3 - 6 months. CMS work is mostly configuration and
converting static HTML / CSS into dynamic templates. You could focus on
learning the CMS (pick just one to start) well for 2 - 3 months while also
learning JS / CSS / HTML. After that, you can start looking for clients and
move into PHP so that you can extend the platform.

CMS work in PHP may not sound as good as building custom applications in
Python and it probably doesn't pay as well on average, but you are on a
limited time frame. If you were already an A level developer in Python, then I
would have different advice. You can always learn Python down the road a bit
and eventually make a switch. One caveat on pay is that marketing / sales
skills are ultimately more important for your rates than your programming
language selection. I have seen great developers do horrible on the business
side and I have seen developers with little skill raking in the cash. The
business side is a totally different can of worms and will make you or break
you.

Spending time learning is important but spending time building a portfolio
isn't so important. A portfolio is necessary for designers, but developers
just need to know their stuff. Building for friends and charities is good for
learning, but it's not very helpful for your bottom line. Instead, you might
focus on building small niche ideas of your own which you might be able to
monetize. If nothing else, you could try selling the sites you build on
Flippa. Another option (especially if you go the PHP route) is to build add-
ons for content management systems and sell them on your site. Working for
free should be limited to contributions to open source projects.

Always keep an open mind for alternative business models and plans. If you are
a skilled marketer, you could even get started right away by bringing in work
and then outsourcing that work to other developers. You could do some world
travel and live very cheap by moving abroad to a place like S.E. Asia while
you are getting started (that's what I did.)

Lastly, you might consider attempting to get started with a web development
shop after your learning period. This will give you a chance to see how a good
shop should be run while you continue to build your development chops.

I have been thinking about building out a service to help people get started
in freelance web development. I will send you an email.

~~~
grokaholic
Thank you for taking the time to share your advice. Let me see if I can
summarize your main points, and reply to them under my summaries.

1) Think of yourself as a startup, not a freelancer preparing for a startup.

Agreed! I think on hacker news people get touchy if you call yourself a
startup when you're really just starting consulting. However, in my mind, I
see my company's product as myself, and I'm trying to create a minimum viable
product this year.

2) Don't grok HTML/CSS or Linux, but do learn enough to get by. Do learn JS
really well.

Point taken.

3) Move somewhere cheaper.

I might be wrong on this, but I'm determined to make it while living in SF.
Others have done it, I will too. If I am wrong, I will go back to temping,
save again, and maybe consider moving to Tahiti the second time around.

I'm curious to know your story of starting up in SE Asia, what you did, what
it was like, how things worked out.

4) Consider ditching Python web apps, learn PHP and how to configure CMSes
like Wordpress, Drupal, etc. It's faster route to getting paid.

Half the people I've talked to say "PHP + CMS!". Half say "Python and
Framework!". I suppose I have some time to think about this more, while I get
focus on building the fundamentals of my site.

6) Hustle, not programming language, influences pay most. So hustle.

Definitely.

7) Consider skipping portfolio-building, start making and selling small
products to turn immediate profit instead.

Definitely keeping that in mind. My ultimate goal is to build products
anyways, but I don't yet have the confidence to trust that I can build my
ideas, let alone than anyone will want them. However, I do feel like I can
build little websites for people, and sell those. So that feels like a safer
option. But I am keeping myself open to other approaches, my plan is merely an
outline and a starting point. I'm sure as I become more proficient, I'll start
seeing product ideas within my means to execute that might be worth risking a
little time to build.

8) Be flexible and creative with business models e.g. consider outsourcing.

I understand what risks I'm comfortable taking, and which I'm not. I'll only
feel comfortable outsourcing work that I can do myself. That way I can take
responsibility in case the work isn't done correctly, by fixing it myself, esp
when there isn't money to hire someone to fix the mistake for me. But that is
a quibble. There would be situations where such an arrangement could work out,
and I agree with the spirit of what you're saying.

9) Consider joining a web dev shop

That's an interesting suggestion. Would a web dev shop would take someone
without a portfolio? Honest question, I've never tried to join one.

There are temp agencies in SF that specialize in placing web developers. I've
considered going to my current temp agency later this year, and asking them to
place me in whatever work they can find, on the basis of my fledgling
portfolio. Not the same as joining a web dev shop, but similar idea of joining
an agency that finds clients and matches my skills to projects in exchange for
a cut.

Thanks again for all your advice, I really appreciate you taking the time.

