

Ask HN: Learning to Code (where to start) - will_brown

Me:  30 year old lawyer with minimal to no coding experience (&quot;developed&quot; css&#x2F;html template style websites)<p>Goal:  Originally, to enable myself to build my own start-up ideas.  However, I am now contemplating a professional transition from practicing law to developing&#x2F;coding.<p>-Is it practical&#x2F;realistic for someone to begin coding at 30 and jump ship from one profession into coding&#x2F;developing?  How would you&#x2F;have you done this?
-What steps might would you suggest to provide the greatest likelihood of securing employment with an existing tech company (or start-up) in the least amount of time?  Am I thinking about this all wrong, by putting the cart before the horse?<p>(A combination on PG&#x27;s articles, 180 websites in 180 days and the story behind one of Sourcebits&#x27; Founders have inspired me to start this down this inevitable journey. More recently stumbling onto YC backed One Month Rails, which appeared to be very encouraging and practical from an economic and time-wise sense has suggested this is a realistic endeavor, even without prior experience.)
======
DjangoReinhardt
Me: 30 year old ex-Physics/Astronomy student who worked a variety of 'jobs',
e.g. a content developer, technical writer, and a radio show host.

Previous programming/development experience: a couple of self-hosted WordPress
blogs - one of them, a short-story magazine called d.ustb.in.

Currently: Learning Python, Django and applying every bit of new knowledge
into executing the million ideas that keep bouncing around in my head.

I started seriously learning programming with Python last November because I
wanted to scratch an itch. There was this idea for an Android app that I had -
a food-related Android app - that did not exist in the market. There had been
a few attempts but nobody had done anything concrete in the direction that I
was thinking of taking. I pitched the idea to a few developer friends and
found that the idea seemed to excite almost ALL of them. Unfortunately, none
of them could spare me the bandwidth. Frustrated, I finally decided to take
the plunge myself and created a prototype using Google AppInventor to knock up
a very shoddy-looking app that was served with a Django-Python -TastyPie
backend running on a free Heroku instance.

Since then, I have gone on to indulge myself with a few other projects:

1\. Hashpix - [http://hashpix.herokuapp.com](http://hashpix.herokuapp.com)

2\. @updt_me - [http://update-me.herokuapp.com](http://update-
me.herokuapp.com)

...and a few more in the pipeline.

Now, we come to the most important question: Do I have offers related to my
programming 'expertise'? Well, no. Seeing as how my experience in the field is
next to none, I find that my skill set has few or no takers. Does it make me
happy? Hell, yes! Does it scratch my entrepreneurial itch? Well, somewhat.
None of these ideas are making me any money, you see. Does it put food on the
table for my family? Abso-fucking-lutely not. I'm pretty sure it won't put any
food on the table until I reach a good enough level of expertise - something
that I am sure is (at least) another few hundred thousand lines of code away.

Long story short? If you have the bandwidth, the energy, the ideas, the time,
the inclination, the burning desire and MOST IMPORTANTLY, the savings in your
bank account to scratch your entrepreneurial itch, go ahead and take the
plunge. Otherwise, wait for a while, build up those zeros that follow the $
sign and THEN take the plunge.

Of course, the standard universal disclaimer applies: YMMV.

------
beat
You have two different problems here. First, learning to write software.
Second, building your own startup ideas.

Observation of a techie turned solo founder: Building and running a business
is a full time job, entirely separate from writing the code. As a lawyer,
you're probably better prepared for that now than the average programmer. You
might well be better off finding a problem and a solution, and outsourcing or
hiring talent to solve it.

If you want to code for the sake of coding, go for it! But if it's just a
means to another end, it's probably not your best approach.

------
dvdand
From a pure learning the mechanics point of view, yes what you have read might
be encouraging. However, think of it in the longer term. Do you feel like you
have the patience and aptitude to grow yourself and become better at it over
time. Also, technology changes faster than law does. So how comfortable are
you with change? You will be starting at the ground floor and working your way
up and while it might be faster rise than say in law, it can be frustrating
and tedious. Finally, there are long hours in front of the computer which
behaves the way you tell it too. There will be days when you will spend hours
on end trying to figure out why the code is not working as you want it to.
Those days will make you think dealing with unreasonable clients, difficult
witness and opposing counsel was easier. If you think you can handle those
days, then yes , by all means, jump in with two feet.

By no means, I am trying to paint a negative picture here. I used to be a
developer that still codes and works in technical field. But, I think it is
important that you go in with a good idea of what to expect.

Maybe a better way would be to start learning coding and developing one or two
applications for yourself while still doing your day job to see how you like
it. Then once you have a portfolio, you can migrate to doing freelance
projects or look for full time opportunities.

All the best.

------
avenger123
First of all, how much time do you have to devote to this? Will you be
quitting your full time job? Will you be doing this over all your free time?
The amount you want to accelerate is entirely dependent on how much time you
have to devote to it. This is also a question of how much patience you have
and how you get started. Programming really is all about peeling the onion.
It's easy to write an Hello World app but there are so many layers below that
it can become very overwhelming. I will make the assumption that this is a
side thing you want to get going.

Programming by itself is not hard. What is hard is the amount of implicit (or
explicit) knowledge that exists in the profession that isn't directly related
to writing a web application or another piece of software. Now, its not hard
to pick up this knowledge but its a barrier. To be a good programming you need
to understand computer architecture, TCP/IP networking, HTTP protocol, how a
piece of text written in a programming language ultimately gets turned into
assembly language and then run on the CPU. There is a lot more along those
lines. Now, I am not saying you need to understand it at a PhD level any of
this but you need a more than basic understanding to be effective.

What most of us that have been doing this for a long time don't realize is
that our passion for technology and computers in general at a young age had
given has a head start since we've picked up most of this knowledge (either
self-though or going through CS or engineering programs).

My recommendation would be to sign up for the online Stanford Introduction to
Computer Science courses:

[http://see.stanford.edu/see/courses.aspx](http://see.stanford.edu/see/courses.aspx)

And start to do the first one on your own.

Alongside that you can also start the Coursera courses:
[https://www.coursera.org/courses?orderby=upcoming&cats=cs-
th...](https://www.coursera.org/courses?orderby=upcoming&cats=cs-theory,cs-
programming,cs-systems)

The Learn to Program and the Algorithm courses are good.

If you are keen you should be able to go through these courses fast. The
Stanford ones are not easy but will give you a taste of what a real computer
science curriculum is all about. The lectures themselves are extremely
worthwhile (Mehran Sahami is a great teacher).

The point of these are not to make you a Ruby on Rails developer, or Python
whiz, etc. It's to help you understand the fundamentals.This will also help
you determine if it really is the career path you want to take. It takes a
certain type of person to sit patiently in front of a glowing screen for hours
and studiously write code and actually enjoy the process.

If you want to build your own start-up ideas, don't bother learning to
develop. Save enough money and hire it. There's very competent developers
around the world that will make whatever you want (I am not saying its easy to
find quality developers, but they are out there).

Personally, if I was in your shoes, I would give myself six months to really
delve into the fundamentals. If by the end of six months, you feel its a chore
and the thought of sitting in front of the screen for another couple of hours
learning something else just turns you off, then please have the honesty to
stop. But, if its the opposite and you are able to keep going then please
don't stop. I would say if you still have the drive to learn and practice
after six months, you will be on your way to picking up whatever knowledge
gaps you have.

------
sideproject
Most definitely I think it's possible. A close friend of mine used to be a
rugby player until he was 28, then went to get a degree in IT and became
software engineer at 32. I find him one of the most humble people I know.
Though I may have had more "academic experience", his "life" experiences
enriched his career far better than most of the cohorts.

A plenty of ways to get into programming

* A number of "learn how to code" (free, paid) paid sites available - a simple Google will do.

* Browse through an easy GitHub project to get into?

* Take a look at some of the side projects being sold at "[http://sideprojectors.com"](http://sideprojectors.com") (disclaimer, this is my website) - many of the developers are selling their side projects with existing user base + product, which you can inherit and change it the way you want. I think it would be a great way to get your hands dirty and work with existing customer base.

Hope that helps.

~~~
debacle
sideproject, nine out of your last ten comments link to sideprojectors.com.

Please stop spamming HN. You're just pissing all over everything.

------
pcunite
I was programming calculators in high school. So, I naturally enjoyed the
activity. For you, since you don't know yet, you need to have an idea, a goal
to _code_ for. This way you can narrow down the domain experience, languages,
and test environments you'll need to learn. Once you have that in a list you
should source books on each subject.

------
tjr
Serious question: how practical / realistic is it for a programmer at 30 to
switch to a career in law?

~~~
will_brown
Law is certainly not for everyone, and I believe the difficult journey to
becoming a practicing attorney would only be compounded by accepting that
challenge later in life rather than sooner.

However, my experience in law school was that the best students (the majority
of top 20% of our class) were all transitioning their careers later in life.
This seemed counter-intuitive, because law school is difficult and time
consuming enough to balance that with spouses, children and related expenses
while simultaneously giving up your career (and income) to become a full-time
student seemed insurmountable, but my experience is those individuals who took
it upon themselves did it with grace.

In terms of getting a law job, I believe a programmer turned lawyer would be
in a better position because of their prior work experience than say a
straight from college to law school graduate with no prior "real world"
experience.

