
Turning into a hacker aged 27 - naithemilkman
http://pragmaticstartup.wordpress.com/2011/03/02/turning-into-a-hacker-aged-27/
======
dgallagher
I started learning how to code at 27 and am 29 now, still going strong.
Frankly I wanted to do a web-startup, but realized that unless you can code,
you're nerfed. Learning how to code completely free's you from being
permanently stuck in "idea mode".

The exception to that is if you have a lot of cash, and are willing to hire
someone to build something for you. That's very expensive of course, since
you're competing with companies offering them $80k - $150k+ /yr. jobs plus
benefits. You can find cheaper labor, but you'll get what you pay for.

Have lots of fun learning! Programming can be extremely rewarding! :)

~~~
trafficlight
Even if you are hiring a programmer, it's still helpful to know how to code.
You will be able explain your ideas and discuss the project intelligently.

~~~
danenania
And most importantly, determine whether a potential hire has any clue to begin
with. Without some knowledge of your own, it's a roll of the dice.

------
guynamedloren
I have huge respect for your drive and ambition, but there's something I just
don't get (and it applies to many aspiring hackers/entrepreneurs, not just
you). Why do you need a mentor? Why "cold emailing startups"? Why do you need
somebody to "take you in"? Why not just hit the books and start hacking away?

This isn't meant to be a personal attack on you by any means. I've noticed a
huge movement toward "mentorship" lately, and I'm just not seeing the purpose.
Even worse, those who do not get these _critical_ mentorships wither away and
blame others for their shortcomings and failures. Obviously you were fortunate
enough to find a group who "took you in", but what would happen if you didn't?

Downvote if you want, but I'm honestly curious as to what's going on with this
mentorship trend.

~~~
JohnAllen
Tl; dr: Somethings will probably be learned quicker if coding with a team/more
experienced developers. Architecture/security/design/layout stuff that just
takes years of experience to get really good at, for example. I'm learning to
code also but have been learning primarily on my own. Perhaps a combination
thereof would be optimal.

Thanks for this comment. I started coding about 8 months ago and am enjoying
it thoroughly (I just turned 30 and have a background in business). I was
actually thinking about doing the same thing this guy's done - get a developer
intern position somewhere since reading this post earlier this morning. I'm
sure I would learn tons that I wouldn't otherwise learn (I'm thinking
specifically architectural and security type stuff, among other stuff) but am
also learning tons on my own.

Just last night I was talking with a good friend that has been coding for 15
years and he suggested something kind of similar: fix the bugs and maintain
some code that a more experienced developer can check - run errands so to
speak. That way I'm not breaking something or pushing insecure, buggy code
into production. I think a combination of the two would be optimal.

~~~
dmoney
I've done a lot of maintenance programming, and I think it's a horrible way to
start and a difficult rut to get out of. Fixing someone else's bugs all day is
demoralizing and creates all kinds of cognitive dissonance about whether or
not you actually hate programming. Write your own code and learn from your own
bugs. If you have to, get a non-programming day job and write code on the
side. At least that's what I would do if I were starting over.

Why is it a difficult rut to get out of? Because when people build teams to
build systems from scratch, they look for other people who have built things
from scratch. Then when they need someone to maintain it, they look for
someone who has maintained other piles of buggy crap.

------
sayemm
I'm 25 years old and I'm pretty much doing the same thing. Taking time off to
work on my programming chops instead of jumping into another idea again as the
"business guy". It sure beats spending six-figures getting an MBA or going to
grad school these days... and I'm learning a ton. I'm absolutely loving it.

I learned Python first, then learned how to use linux and emacs, played with
firefox add-ons to learn Javascript better, then started building web apps in
PHP/MySQL, and now my plan is to spend my days learning and building stuff in
Ruby and my nights working through these four books:
[http://stackoverflow.com/questions/414779/what-should-a-
self...](http://stackoverflow.com/questions/414779/what-should-a-self-taught-
programmer-with-no-degree-learn-read/4473810#4473810)

Best resource ever is from @yegg, I always check this for guidance before
learning anything new:
<http://www.gabrielweinberg.com/startupswiki/Ask_YC_Archive>

I've come a long way since I first set up my server on Slicehost. Good luck on
your journey too.

~~~
heed
25 here as well. Started with python, moved to Javascript (building chrome
extensions), and currently have been getting into obj-c/iOS building iphone
apps. I'm working full time right now, and find it a little difficult to
progress because I'm so tired after after work. I'm really trying to push
myself though. I want to move to webapps (django) at some point, but have to
scratch a few itches on the iphone platform first.

~~~
sayemm
Nice, I'd love to get into iphone apps sometime later on too. Yeah, I bet it
is tough with a full-time job, which is why I'm so glad I'm taking time off to
really focus on this while I still can at this age.

Keep it up!

------
billybob
That's the age when I really started coding. Now I'm in my second full-time
programming job and building a pretty great resume.

My tips:

1) Study and practice. Pick a topic you don't know, choose a book that's well
reviewed, and learn it.

2) It's better to ask a dumb question than to never know the answer.

3) Do a bit (not too much) of reading on things like HN and JoelOnSoftware,
etc, to help you pick what to study next. (Like when I read Spolsky's argument
for why distributed version control is better than centralized, I eventually
decided to learn Git. Or when I saw all the buzz about Rails, it pointed me
that direction.)

3) Learn the crap out of your tools. I started out with a Windows HTML editor.
A couple years later, I was using Vim in Unix and I'm way more productive. But
I'm still learning new stuff about it every day. I intend to know it backwards
and forwards eventually.

4) You'll never know everything - don't get discouraged.

~~~
naithemilkman
Thanks for the tips. Out of curiosity, what were you doing before and what
made you jump to programming?

~~~
billybob
I was a journalist, and unhappy. Took a break, went back to school (to study
music), met a girl, and we decided to get married. By that time she was in
grad school a few hours away. When we married, I moved there and had to find a
new job.

I knew HTML and got a job doing tech support for cell phones. My employer had
no internal web site and I saw that they needed a page to share links to
reference sites, so I made a simple HTML page, just dropped onto a shared file
server, not even a web server. Then I started adding pages of training
material, etc.

I had just heard (this was 2007) that CSS could be used for layout - gasp! -
so I bought Eric Meyer's CSS: The Definitive Guide and studied during lunch
breaks and evenings. I spiffed up the site. Next I got Head First Javascript
to add some animated menus. Soon after, somebody told me about jQuery, and
eventually I caught onto that.

As I added more pages, it sucked to have to copy and paste my common menu, so
a friend recommended PHP. I had to set up Apache for that, though, so I used
XAMPP. Now I could do includes! But wouldn't it be nice to have some database
interaction? I read a PHP book and added that too. Eventually the system was
pretty complex, with object-oriented database interactions, permissions
controls, AJAX widgets, etc.

All this time I was getting advice from my best friend (we were roommates in
college), who is a truly awesome coder with famous companies on his resume.
And I was discovering that I really enjoyed this stuff and had a knack for it.
Also, all this time, I was still doing tech support: I could be knee-deep in a
coding problem and get a phone call, and I had to pick it up, and it might
take 2 hours.

But by the time I left, I had a good enough resume to get a full-time
programming job. And I continue to learn. I've made the jump to Ruby and Rails
(Ruby is a lovely language), test-driven development, etc. I'll never be DHH
or Linus Torvalds, but I hope to do solid work and keep having fun.

------
aridiculous
I'm taking a wild guess here, but I suspect there are many people who need
that entry level/internship opportunity to cement some concepts while working
on a team.

The problem is, like the rest of America, junior positions seem to have
vanished. At least on job boards and hiring pages.

Can anyone point us to a good resource to find junior positions or even
internships in front-end coding or UX design?

I'm not asking for any company to completely teach me stuff. The ideal
position would require a portfolio but maybe one that isn't completely cross-
browser, production-quality code.

~~~
guynamedloren
You have a very good point. I've never realized it before, but now that I
think about it, this is something that I see all the time - a complete and
utter lack of entry level positions on job boards and hiring pages across the
web. I wonder if there's an opportunity to be had here? There must certainly
be a thriving untapped market of entry-level programmers who may be willing to
take a pay cut to hone their skills for a year or two...

~~~
z0r
Bwahaha, there's a huge market of entry-level workers in all kinds of fields
(software being just one of them) where people work essentially for free
(unpaid internships or internships with a small stipend). It's kind of
disgusting!

~~~
v21
And illegal in the UK. There's an ongoing campaign about these -some nice
examples can be seen at <http://fuckyeahfreeinterns.tumblr.com/>

------
calvinfroedge
I really like the idea of looking for someone to apprentice with. It's awesome
that he found someone to take him in. "look to the master, follow the master,
walk with the master, see through the master, become the master."

I started coding HTML/CSS/Javascript when I was 15. When I was 18 I was
working on a $14M project doing HTML & jQuery. 19 and 20 rolled around and I
thought I was hot shit and could get away without knowing much about object
oriented programming and database design. Boy, did experience beat me with a
heavy stick.

After blowing through a lot of money paying other people, and not being able
to evaluate what they were doing, I started learning to program myself a
little over a year ago (December 2009). It has been, by far, the best
investment I've ever made.

You HAVE to have mentors, though, bookwork and experience alone don't cut it.
Some of my mentors, didn't do anything but talk to me - and ingrain in me the
importance of fundamentals - and some basic vocabulary. Some stuff that didn't
make sense when I heard it, but produced those "Aha" moments later. Other
stuff, like the importance of pre-planning, prototyping, code readability, and
NEVER using code you don't fully understand, I was told from the beginning
were very important.

Plus, mentors can be different types of people in different types of
situations. One of my mentors was an experienced programmer who I lived with
for a few months. Others were dudes on stackexchange and serverfault (Yes,
that counts), and others were those I read.

The bottom line is, you need to see yourself as an apprentice, always looking
for a master to learn from.

~~~
naithemilkman
I think that mindset just generally applies to everything in life. I've been
greatly humbled by my personal experiences at my previous startup. I came away
with one clear though: I know shit about what I thought I knew.

Being in a room with smarter/wiser people than you can only make you move
forwards. And do that enough, I hope to actually join the club someday. Heh.

And yea, SO rocks but I think a lot of newbies are taking advantage of it and
getting shot down advice to wannabe hackers: do your homework first or get
flamed on SO!

------
ChuckMcM
10,000 hours. From Outliers and others as the number of hours you have to do
something to be proficient at it. The common thread for most hacker coder
types is that they just really really liked the "power" associated with
writing code that could do anything, and so they started spending all of their
time writing code doing all sorts of things.

All night debug sessions? Check. Several complete rewrites from scratch?
Check. Using a language feature considered "unsafe" because it was the only
way to get done what one needed? Check. Figuring out what "unsafe" meant?
Check.

Once people are writing all of this code many want to know exactly how their
code gets translated into what the computer does and they go off into their
'compiler' stage (some stay there for ever :-). This is where folks write
their own compilers, by first writing their own lexical analyzers, then
needing to parse those, and then needing to take those parse trees and
generate new code with them.

There is a lot of exploration to do in 10,000 hrs. That's coding 6 hrs a day
(and by that I mean coding, not checking Facebook or reading HN :-) for 5
years. There aren't a lot of short cuts. Sure there are CS programs which will
show you what other people learned in their 10K hrs and help distill the
concepts down for you but, like playing Piano, its not "known" until its in
your finger bones.

Mentors are great for helping you get unstuck (since being stuck means you
aren't coding which means you're not clocking your 10K hrs) and they can
sometimes give you a heads up on road your travelling down, but mostly I think
they are best for just sharing your enthusiasm and adding energy.

------
goblgobl
Any advice for a 24yr old trying to work in high performance computing?

Decided about a year ago to switch careers, and I've been getting familiar w/
a few low level languages (C, C++, Java), and working my way through a few
books like SICP, Cormen's and Skiena's algorithms books, Code Complete, etc.

The OP seems to have landed an internship already, whereas I have been failing
miserably at this. I've been cold emailing companies, applying for
internships, etc. I've written a few basic beginner type programs, nothing
large scale or real world yet.

I have a ways to go, but it sure would be nice to have some sort of mentoring
and/or get involved with real projects of some kind. I'm doing great self-
teaching, but there's obviously value in working with more experienced
developers. I know having code to show is important (github, opensource), but
what else should I be doing to land that first software job?

~~~
julsonl
Well if my experience is of any use... Keep at it! I didn't graduate from a
top tier college or have been creating game engines since 9 years old, so I
had to start at the ground floor like most people. It was extremely difficult
at the beginning. From what I noticed, cold emailing rarely works. I had the
most feedback/interviews/responses from either recruiters, networking and
actually moving to tech hubs like Silicon Valley.

From the code perspective, a lot of companies noticed my open source
contributions. Granted they were mostly minor utility code, there's always
that little spark of joy from their voices whenever we go over that topic.

So go join an open source project! I know it's reiterated over and over again,
but a good project can act as proxy real-world experience in helping you
discover what it takes to write production quality code.

I guess if there was a single tip I could give, just be highly visible in
committed code, web presence (as a programmer, not as a party animal) in
websites and social networks, and face-to-face networking. That would raise
your chances of being noticed.

------
sawyer
As important as reading and learning tools is; my experience is that you'll
absorb much more by starting hobby projects and hacking your way through them.

After you've set up a development environment (on your home machine / laptop
will do), pick a project that's been on your mind and just start. Everytime
you run into something you don't know how to do, hit stackoverflow, read
through APIs, and figure it out. Piece by piece you'll become a programmer.

Good luck!

------
rokhayakebe
Started 1 year ago, but more seriously last August and did a handful of
projects from the ground up to learn. <http://democratic.ly>,
<http://contexium.com>. I think my most interesting work is an email based
knowledge base app which I haven't released. I also did 2 other email based
group communication applications.

Overall I doubt I will ever be a programmer, but at least now when I think of
an idea, I do not think "Who can build this? For how much?", i think "Do I
like this idea enough to build a working prototype?".

And the best part about being a newbie is not knowing your limitations.

~~~
naithemilkman
Thats exactly what I am aiming to achieve. Not CTO status but enough to hack
out a prototype and THEN get a CTO to mend later on.

But dare I say in most people's eyes (e.g mine), you're definitely a
programmer.

------
Rariel
Seems like there is a lot of this going around. My technical co-founder quit
and now we're facing the question of getting another one or learning to code
myself, since my other co-founder can't/won't. I remember being interested in
coding at age 13, but for whatever reason I never followed up with it. I
literally remember sitting in front of my Performa 636 CD looking at a web
page telling me "How to become a hacker" and thinking eh...

Now I wish I had taken the leap. python at age 29 is no fun. But I am looking
forward to learning it and becoming comfortable, much like when you move to a
new city...or at least I hope.

~~~
orangecat
_python at age 29 is no fun._

I had a great time with it at 32. Of course, to fully appreciate Python it
helps to have spent years using Java and Perl.

------
baberuth
Nai: Congrats for taking the plunge. Getting a faux internship will be
immensely helpful. 18 months ago I did the exact same thing, begged a startup
to let me work for them for free. Having someone who is invested in your
success, interested in making you better, available for you to turn around and
ask questions makes the process way faster.

18 months later, I still suck, but most importantly, my mentors taught me how
to learn on my own, where to look for documentation, what sorts of problems to
look for. I'm definitely not a 'hacker' in the way you're talking about, and
every time I think I know something, I get slapped back to reality, but the
REAL satisfaction is being able to just keep making forward progress. To be
able to sit at a terminal and feel like your startup's destiny, YOUR destiny
is in your hands is immensely empowering and a far cry from waiting and hoping
your developer is on the same page as you.

One piece of advice, which I still struggle with: don't try to bite off too
much. There's a compulsion to understand the entire codebase before you commit
to that host startup's project. Don't. Figure out heat you want to get done
and just try to understand a tiny corner of that codebase in isolation, then
fix it. Keep doing that and you'll eventually have covered the whole codebase.

It's a long journey going forwards, but you'll look back and it'll seem like
time has blasted by. Having good mentors in your startup will make all the
difference.

~~~
naithemilkman
Bingo. It's in a way risk mitigation as well plus I think it makes it easily
to speak the same language as your future cofounder.

Yeah, I'm starting off with bitesized problems. :)

------
seriesoftubes
It doesn't matter how old you are-- you can be 5 years old or 48-- there is no
denying that computer programming is good mental exercise, an amazing creative
outlet, and (if you're any good) a skill that can make or break your career.

I'm 23 and I never got any compsci/programming training in college. I'm now
working part-time and learning programming (Java, .NET, SQL, web scripting)
full-time.

Why? 3 reasons.

1) I am sick and tired of not knowing how to create solutions that add real,
measurable value to almost any human task imaginable. In 2 years, I'll be able
to do so much more than I ever imagined in any office setting.

2) Good programmers have the job I dream of: being able to use their _minds_
all day to create cool stuff that other people depend on. Top talent gets paid
pretty well.

3) The big secret that no one tells you in college is that if you want any
decent office job in which you'll be using your mind instead of bullshit
"management" or "leadership" (i.e. wielding social prowess to get what you
want) skills, you're going to be programming. Want to make a spreadsheet?
Guess what, John Walkenbach, the maker of the Excel Bible, says that even if
you're just making a basic spreadsheet, it helps to think about it as object-
oriented programming. And he's right. Especially if you're a power user of
Excel, Excel == Programming. Period. Same with just about any other MS Office
program.

The bottom line is that if you use a computer at work, like it or not, your
freaking livelihood hinges on your ability to create and manage software
and/or hardware. You might as well know what the hell you're doing.

------
grammaton
I wish more people on the business end of things had realizations like this.
Kudos to the author for being honest with himself, and being willing to do
what it takes to address a short coming.

------
acconrad
Now we just need to turn 27 year old hackers into learning a bit of the
business side (like myself).

~~~
Rariel
You can do that with a lot of reading I think...

~~~
corruption
Theory != practical. It takes picking up the phone and face-to-face meetings
in my experience.

~~~
Rariel
I meant on the web, personal stories/advice/what-not-to-dos of entrepreneurs
in the startup realm. I wasn't suggesting picking up a text book. My
background isn't business per say, but I've learned a great deal by reading
and researching. I also took several business related classes in law school so
maybe that makes it easier for me to grasp.

------
FiddlerClamp
Do you think it's possible to become a programmer at age 43? I've always loved
computers and have written programs in BASIC, VB, WordBasic, and the like, but
never got into C or OO programming.

Would anyone hire a freshly-minted 43-year-old developer? Or is this a fool's
errand?

~~~
owyn
It's never too late, but there is some age bias in hiring. You probably aren't
going to work for a hot startup but there are plenty of interesting jobs,
especially if you have some kind of domain specific knowledge that you can
apply. My dad switched careers around 40 and went back to school and became a
programmer until he retired in his 60's. He did a lot of payroll systems
stuff. He worked for hospitals, insurance companies, manufacturing companies
etc, starting out doing Cobol but kept up to date and in the end was doing
.NET. In the beginning he took whatever job he could get and we moved around a
lot, but it can be done. :)

~~~
FiddlerClamp
Thanks - I do have some domain knowledge. I don't have to work for a hot
startup...I'd rather work for somewhere a tad more stable. :) Done the startup
thing a few times as a writer.

------
JacobAldridge
Brilliant - I'm in a similar position (other, very useful and valuable,
business skills that aren't worth nearly as much if I were to commit to a tech
start-up, and next to no coding experience). I look forward to the journey,
and perhaps some inspiration.

~~~
naithemilkman
It's sounds you're still undecided as to whether you want to take the leap?
What are your reservations? Care to share?

~~~
JacobAldridge
Mostly, because I already run my own business (as a business coach) - built
that up in Australia, then moved to London, now building it back up again. So
between learning to code and putting on another client, its a large value
difference in the short term.

Once this business is chugging along, I'll do something more scalable. But
that's just as likely to involve publishing, where I have passion and
experience, as it is to involve a startup, where passion alone would need to
develop experience.

So it's entirely possible that I'll be sitting here in 10 years, having never
learnt more than some basic HTML and CSS, because I keep creating more
immediately valuable opportunities. Though I have noticed, as more of my
friends have kids (we don't, yet), that 'long term' things like learning a new
skill, going back to college, or even committing to a local football team,
suddenly seem smaller and more realistically achievable - ask me now if I want
to commit 10,000 hours to something new and I won't have time, but with a
backdrop of 18+ years of child-minding in front of you, it doesn't seem nearly
as large. Of course, as I understand it, kids take time too!

------
keeptrying
I saw a another post just like this on Quora. I wonder if its part of a larger
trend?

~~~
kai-zer
Sign of a top in the bubble?

I am considering the jump as well (from i-banking), and have been putting in a
considerable amount of work, but part of me is worried the growth we have seen
will come crashing down soon and opportunities will disappear. It is hard to
give up a nice salary and job security, especially when a similar position is
very difficult to return to if things don't work.

~~~
keeptrying
Would you be interested in being tutored on writing a web app? I'm assuming
you live in NYC? I can tutor you how to build a full web stack incising
delaying it to the end user. I'm interested in building a set of lessons for
this purpose which I would then like to sell.if you don't know programmimng
then it would be a bg commitment but You could definitely afford such a
course. If interested you can email me: railsnoob @ yahoo dot com

~~~
kai-zer
Not a total newbie, studied engineering, been programming little projects for
years and had a few side jobs while in school doing mostly simple stuff. Will
hit you up, curious what you have though, and always looking to make new
connections.

~~~
keeptrying
Cool.

------
amitraman1
If you don't want to code, oDesk can help you prototype quickly...just stick
to a budget!

------
smarterchild
Is there anyone else looking for a programming apprenticeship? I'd like to
offer one.

------
will_lam
commented on your post.

I'm experiencing the excruciating pain of not being able to get your hands
dirty... having great devs is great.. but the whole process of turning your
vision to reality through code is something I'm embarking on as well.

~~~
naithemilkman
You should totally blog about it when you get the time!

