
Am I (Un)Hireable As A Coder? - RawData
http://www.flatplanetmedia.com/am-i-unhireable-as-a-coder.html
======
jdminhbg
I'm not a hiring manager, but if your self-description is accurate (see
comments re: impostor syndrome for the possibility it isn't), I wouldn't want
to work on a team with you. The problem doesn't seem to be that you're not
smart or technical or industrious enough, but that you're not conscientious
enough:

 _I figure out what needs to be done in order to get something to work
reasonably well, and if I can’t do it myself I google it till I find snippets
of code that mostly do what I need, then I modify them and hack around till I
get something that works decently enough._

To me this is a much bigger problem than your ability to implement a linked
list or describe big-O notation -- I'd be worried that I'd always be cleaning
up after your messes.

The good news is that this is a solvable issue. Start collaborating with
people, maybe via open source. Find a project of yours that's useful but maybe
not profitable, open source it, and start handling requests for features and
submissions. Learn how to deal with bad incoming code, and how to deal with
your code being confusing to other people. Maybe read some of the classics on
code as collaborative effort, like the Pragmatic Programmer or Clean Code.

Or maybe just decide that this isn't for you! There are lots of jobs oriented
around achieving specific goals with throwaway code that you might be happier
in than being a slave to the CI server, and they aren't less valuable. But if
you want to be hireable in a code-oriented company, I think you have to change
some things.

~~~
nicholas73
"There are lots of jobs oriented around achieving specific goals with
throwaway code that you might be happier in than being a slave to the CI
server, and they aren't less valuable."

Hi, would you mind elaborating on this? I am a self-taught coder since this
year with exactly one webapp project to show. I'm in no position to say for
sure, but I think I would enjoy writing throwaway code more than highly
technical code. That is, getting stuff done is more satisfying to me than the
nitty gritty details. If left on my own I'd probably develop into a coder with
a portfolio much like the OP. I think we're more interested in what we could
do with code, than the technicals of it. So I'm wondering what kinds of jobs
out there for people like me, or am I looking at building small but profitable
projects to make a living. Thanks.

Edit: If it matters I have an engineering background (MSEE) and can understand
some of what's going on under the hood. If I had to pass a CS exam I would
just cram like for any other test. But, I found I'm more motivated by the
business end.

~~~
pfisch
It is worth your while to learn OOP if you haven't and at least some of the
technical stuff. I am a lot like you, engineering background as well.

However, if you try to just freestyle even a medium sized project without any
knowledge it will become unmanageable in only a few months.

Most things you can just learn to do by doing plus some google, but there are
better ways to do a lot of these things and you should at least try and do
something like program chess in C++/C#/java/obj-c with OOP and inheritance. It
will significantly speed up your ability to do subsequent projects and
increase the scope of projects that you are capable of doing.

~~~
nicholas73
Thanks for the advice and I agree with the chess idea. I'm familiar with OOP
but my usage of it is very loose. Especially since my webapp is mostly, "if
this happens, do this." The only objects I really created were to store into
the database. I have learned Java at university 10 years ago (Python and
Javascript self taught), so OOP was what I learned from the start.

------
ericabiz
Honestly, with resume fodder like SEO software (yes, I'm in that market too!)
and "PHP Programming for Affiliate Marketers", I think you would make a strong
living selling info products and sites geared toward the IM (Internet
Marketing) market.

Run a few WSO's (Warrior Special Offers) on the Warrior Forum, and teach
marketers how to code and build software businesses. That's where many
marketers want to go anyway. Heck, write a course about what to look for in a
programmer or how to hire a programmer. That crowd eats that up.

I think you're more suited being a Tech God in the IM world vs. being Yet
Another PHP Guy in the HN world. And you'll make more money doing so.

(Also: Add some contact info to your HN profile now that you're on the front
page, so people know how to contact you here.)

~~~
RawData
I've done a lot of this...I run a blog at MarketingFool.com and have an
insiders club at Insiders.MarketingFool.com where I teach people my affiliate
marketing tactics and how to use PHP...I even released a book recently at
Amazon called "PHP Programming for Affiliate Marketers"
[http://www.amazon.com/PHP-Programming-Affiliate-Marketers-
eb...](http://www.amazon.com/PHP-Programming-Affiliate-Marketers-
ebook/dp/B00A2TTNR0/ref=la_B009VHEOKU_1_1?ie=UTF8&qid=1354226386&sr=1-1)

It was a #1 best seller for a few hours in its category.

Been there, done that...ready for bigger challenges...

------
kstenerud
We've reached the point where the glam jobs are no longer those quick and
dirty websites that everyone and their dog wanted up until recently. The bar
has since been raised significantly, such that people want scaling and
maintainability, something you can't do without a very disciplined team.

You've been able to slide along like this due to an accident of circumstance
(internet boom, dotcom booms), and in fact you could continue to do so for
quite some time yet if you wanted to, although the quality of your customers
will continue to decrease as time goes on. The cool projects of today are like
the cool projects of the early-to-mid 90s in that you need a team to make an
impact. And to work in a team, you need to produce maintainable code and
architectures.

Your story reads a lot like mine. I, too, started programming on a C64 at age
8. I then learned assembler and C, and graduated to an Amiga 500. By the time
I entered college, I already knew everything. And by "everything", I mean
"nothing", because I lacked any and all discipline, which I spent the next 18
years building.

I still couldn't explain what a red-black tree is (or even a heap, to my
shame), but I am extremely careful to ensure that the architecture makes
sense, that the code is cleanly written and tested, fully documented, and
entry points are very clearly laid out and orthogonal. I realize that far more
time will be spent by other people reading my code than I will read it myself,
and I'd much rather they have a pleasant experience with it and not spend
weeks cursing my name for some piece of shit I wrote without any consideration
for others.

Is my code super hot shit? No, but I'm constantly seeking to improve my craft.
If I can keep the praise mail rate higher than the hate mail rate from people
who use my code, I figure I'm doing OK. I'll never reach perfection, but I'll
keep striving for it anyway.

tl;dr Doing things right is hard work.

------
luu
Have you checked out the HN 'Who's Hiring' threads?

I, too, have an unorthodox background, and I also wonder if I can land a
normal software job. This week, I got pulled into a slow IM conversation one
night, so I read through the most recent hiring thread[1] to pass the time.
There are 102 comments in that thread. I emailed five people who sounded like
they had interesting offerings, and in each email included something like "I
know I have an usual background, but . . ." along with a link to my github
account. I had one phone interview already and I've got another one later this
week and one next week.

That doesn't solve the problem of passing the interview, but if you include a
candid note in your email, anyone who decides to interview you will be doing
it knowing about your 'problems'; it helps to filter out companies that
wouldn't be interested anyway.

If you want to pass a more traditional interviewing process, think of it as
passing the final to some class. Here, I'm assuming that you've managed to
pass at least one academic class in your life. This algorithms book[2] is
free, and exactly what you want (it doesn't cover everything in the world;
just in the important stuff, and it has good exercises that are approximately
difficult as what you'll see in interviews). Pretend that's the textbook for a
class you need to pass, and work through exercises until you can solve ones
you haven't seen before fluently[3]. Just like cramming for an exam, you'll
probably forget 90% of the material a week later, but you won't need that
stuff for the vast majority of jobs anyway.

Good luck!

[1] <http://news.ycombinator.com/item?id=4727241>

[2] <http://www.cs.berkeley.edu/~vazirani/algorithms.html>

[3] If you get stuck, feel free to shoot me an email (see my profile). In
theory, I ought to be able to answer your question cold. If I can't, that's a
sign I need to do some review and I'd be happy to re-read the relevant
material so I can explain it.

~~~
RawData
Thanks I'll check out that book...

~~~
eddington
One of the authors of that book taught a class earlier this year at Berkeley.
If you learn best listening, the lectures might help. I found them a bit easy,
but a nice overview of the book.

[http://webcast.berkeley.edu/playlist#c,d,Computer_Science,EC...](http://webcast.berkeley.edu/playlist#c,d,Computer_Science,ECFA7F9DF3120C47E5)

------
Lewisham
If I was your TA, I would be worried about this. And, unfortunately, I have
had senior level students who I've had to dissuade that cut+paste code is not
a valid methodology past year 1.

They way to think about things is like this: code is an expression of a
problem. It's no coincidence we call them programming _languages_. They're not
write-once, any code you write will be read an order of magnitude more than it
will be written to.

The way you write things makes me feel like you don't recognize _Computer
Science problems_ , and that you are beginning to realize that the code by
itself doesn't constitute the problem. This is a common thread through
undergraduate CS students, and it will take some people a long time before
this clicks naturally (especially when it feels like writing code is a
struggle alone, once you become more fluent code will no longer be the
barrier).

You aren't hirable as someone in mindset you are in, but you're moving closer
to someone who can be. Continue on your mental journey of seeing problems
first. Start working harder at following best practices. You'll get there.

------
rschroed
Yes. You are unhireable. At least by the type organization that would make
decisions based on a technical interview.

You need to find a place where you can hack for a living. Find someplace where
you can make a mess of great ideas and then hand the mess over to trusted co-
workers to cleanup. (There are people that like that sort of thing!)

What about a consultancy that builds prototypes, proofs-of-concepts, etc?
(Can't think of one off hand but I'm sure they exist)

------
ChuckMcM
Sigh. Too bad you don't say more about this:

 _"I can DO things, I can get things done; always…but I don’t really know what
I’m doing.

Ever."_

Why do you let that condition persist?

You are just as problematic as a musician who can't read music. You'd think
that it would be crazy to have a musician who can't read music, after all its
what they do _play music_ but in fact there are lots of them. They picked up
an instrument and just sort of goofed around and now if they hear something
they can kinda pick it up and recognize that what their playing isn't what
they were hearing, and adapt. Great for playing at the camp fire, or covers at
a wedding or Bar Mitzvah, but nobody is going to hire you to be part of their
symphony band or the work in the theatre district adding music to broadway
plays. And the reason is simple, you _can_ get to an answer, you _cannot_
predict how long that is going to take.

If you want to work as a coder you should start by going through the core
parts of a computer science curriculum, algorithms, data structures,
compilers, interpreters, OS design, and data bases. You need to take the time
to learn how the structure in the first part influences how you get to the
later parts, so that when you're given a problem you will know how to attack
it and get to a solution, and you'll know that you're not getting closer and
to change course and how. Because you will know what you're trying to achieve
and understand why what you're doing isn't achieving it. It is going to be
painful at first because you might have to unlearn some stuff you picked up
along the way.

Now don't confuse (Un)Hireable with "You can't make a living at it." As you've
demonstrated there are lots of services you can do, especially if they aren't
schedule driven based on when you'll be done with your coding. Just like
someone who can play the piano by ear can make a living in a bar playing 'live
music' for the guests. But if you are passionate about becoming someone who
can design software you really need to understand what software is.

Lucky for you there are lots of great free college classes now you can do
online at your own pace. Good luck.

~~~
georgemcbay
"you cannot predict how long that is going to take."

This is perhaps a bit nitpicky, but in my experience even people who know what
they're doing (in either of these fields) cannot reliably predict how long
something is going to take.

But they _can_ at least see the trailhead of the path that they need to
follow, which is very important, and seems to be lacking in the OP's case.

~~~
ChuckMcM
Its a fair point, although for some definition of scope its fairly straight
forward to predict reasonably accurately.

------
jusob
"Fatal error: Out of memory (allocated 10223616) (tried to allocate 77824
bytes) in /home/jps/public_html/wp-includes/nav-menu-template.php on line 224"

Yes :-)

~~~
RawData
Yeah, we're allocating more memory...didn't realize this would make it to
front page HN...should be back up in a jiff....

~~~
elux
Nope: <http://www.flatplanetmedia.com/contact>

>Fatal error: Out of memory (allocated 10485760) (tried to allocate 19456
bytes) in /home/jps/public_html/wp-content/plugins/akismet/akismet.php on line
268

~~~
RawData
weird...it's working on my end and the server says we're at 14% of available
memory...

------
jslatts
You sound plenty hire-able to me, based on your story. Your best bet will be
getting a job through a personal connection, somebody who _knows_ how you work
and wants you (or is willing to strongly refer you). Barring that, not all
companies will make you do sorting algorithms and brain teasers for a job
interview.

My problem is that I have the memory retention of a gnat. I learn quickly,
then discard the information to make way for new stuff. Six years ago, I was a
full time .NET programmer (for years!) and I can barely remember anything
about .NET at the moment. This makes certain types of technical interviews
difficult for me.

My team runs a moderately high traffic web site. Learning quickly, being
flexible, and fiercely persistent matter much more to us than a deep
understanding of computer science concepts. Now that I am in a position where
I do the hiring, I try to accommodate people like us. Unconventional
background, hate whiteboarding in public, terrible memory. Whatever. Can you
produce something of value in a reasonable time frame? That is all we care
about.

The way I hire people now days is to give them a simple challenge to do (at
home, on their own time). Basically, take a small data set and display it on a
web page. Depending on the level of interviewee, I will ask for more or less
features (make it sortable, derive additional data points according to some
algorithm you must devise).

The challenge has no time limit or rules. You can use your own resources and
do it on your own pace. When it gets sent back to me, I evaluate the candidate
based on the final product. I don't much care how they got there. If the
product is good, we bring you in for an interview.

During the interview, I ask you to work on _your_ code. The code you provided
to get the interview. Essentially, we pair program. Adding features, fixing
bugs. Whatever seems the most fun.

If you show me that you can code on your own codebase, using your tools and
process, and you are pleasant enough to work with side-by-side for several
hours, you've got the job.

I know you said you don't want to move, but we are hiring developers here
where I work in NYC. Drop me a line if you are interested jdslatts at fzysqr
dot com.

------
jaggederest
As someone who has been in the position of maintaining code written by someone
who 'can make it work' but doesn't understand why, yes. Yes you are, because
you're not the only one who has to work on your code.

------
jimrandomh
Sounds like a case of impostor syndrome to me, or maybe an unrealistic
estimation of how good working programmers tend to be in practice.

------
lubujackson
As someone who has (more or less) gone down this path myself, here's my take:
you are totally hireable. But the fact is you're a cowboy programmer looking
to settle down in town, so there's going to be some cleaning up to do. If you
approach it that way, you'll be fine.

If I was in your position my approach would be to either work as a contractor
(preferably a temp-to-hire job) or try to get a job a small- to medium-sized
startup, something like 10-50 employees. Your value is that you are clearly a
self-starter and don't need to be handheld through every difficulty, but you
WANT to work in a team and learn how to do that. It's important to be upfront
about where you are at, but don't discount what you do know.

Be sure to have a "beginner's mind" because for a lot of things you are a
junior developer, but none of them should be hard to learn if you are open to
it. Every company has different wrinkles in how they comment code or do QA, so
you would need to learn these anyway. Don't be shy about asking questions if
you don't know the proper term for something or understand what someone is
talking about - it can feel a little embarrassing but if you ask once it'll
fix the problem and will help you communicate better.

Don't worry about not getting jobs where they focus so much on algorithms and
data structures because that's simply not a good fit for you right now. You
want to work at a place where they need to Get Shit Done and are still
establishing formal processes.

Finally, I wouldn't waste time learning new languages or going nuts with
interview books or working on open source (unless you want to) unless you've
already tested the market. Have some confidence and realize that this Internet
industry is pretty darn new and many, many of the people that built it came
from a background exactly like this.

------
willismichael
"And besides, the climate here in America has turned so decisively anti-small
business that not only is it not fun anymore; it’s almost dangerous.

And who knows what’s up with health insurance now. I don’t have the energy to
dig into that cesspool to find out what my small business has to do to cover
itself in that department. Think I’d rather just chuck the whole thing."

I think that these two paragraphs are the most interesting part of the whole
post - I've occasionally tossed around the idea of joining a scrappy startup,
or even running my own company, but I always come to the conclusion that I'm
not confident that I could cope with that much risk. I'm admittedly much more
risk averse than the HN community, but sometimes I wonder if I would have the
nerve to do it if it weren't for an environment that seems so toxic to small
business.

~~~
pfisch
Can you explain what you're talking about? I run a small business and my
understanding is that unless you have like 50+ employees this insurance stuff
doesn't even effect you.

Honestly though if it is a business killer(which you know, I don't really see
how it could be unless I am running a minimum wage fast food drive through and
not a tech company)I will just drop my employees' wages and tell them it is to
pay for their health insurance. I really doubt I will need to do this though.

~~~
willismichael
Maybe I'm just a victim of my own FUD - Whenever I think about setting out on
my own, I get all kinds of doubts about what kinds of taxes that I would owe,
avoiding a patent minefield, how to make insurance work, etc.

To be honest, now that you've actually called me on it, I think that those are
really just surface concerns. I think my real concern is more about being able
to cope emotionally - I've seen multiple discussions here about significant
depression symptoms in startups.

~~~
pfisch
Honestly what a lot of the hip startup people with the blogs in silicon valley
do scares the hell out of me as well, and I guess that is a lot of Y
combinator.

I worked as a developer for awhile so I have some money, and now I am
bootstrapping some stuff and I have hired another dev and we also do contract
mobile work to supplement. We outsource most of the design work. I have been
doing this since around May and I need to check the finances but I am either
slightly in the black or slightly in the red(this includes my living
expenses). At the current revenue I have a runway of like 50 years though so
I'm not too concerned.

We have a bunch of cool stuff cooking in development and have partnered with
some other companies on some stuff so hopefully we can stop the contract work
early next year.

These kids doing all these startups with little runway, no clear method of
generating revenue and basically no experience out in the valley are crazy
imo. I think the only people making real money are the VCs and a very few
lucky founders. It kind of seems exploitative to me but I'm not out there so
maybe it is much better than I think.

------
tobyjsullivan
My answer is that you are probably not hireable as a coder at the moment.
That's not to say you don't have a lot of value to offer and potential as a
future hireable coder.

To put it simply: You are good at developing your own ideas and shipping them
but that's not what a coder does. When a coder is hired, it is their job to
develop and ship other people's ideas.

One limitation you likely face is that your lack of programming prowess limits
your ideas or, at least, which of your ideas get developed. By the same token,
if I asked you to build Product X (say, a Google-like indexing engine), I'm
guessing you'd be hitting walls pretty quickly because your breadth of
knowledge is, frankly, limited.

If you want to become a good coder, you probably just need to fill in the
gaps. You need to take the time to learn the essentials of computers and
programming. Most devs get this through formal study but many also are self-
taught. The trick is you need to put in the effort to be self-taught. You need
to come at your education with the goal of learning a wide base of knowledge
instead of just learning what is needed to solve today's problem.

My personal recommendation for a starting point would be to read and
thoroughly study Programming Interviews Exposed: Secrets to Landing Your Next
Job (2nd Ed.). This book just offers a wide range of topics all of which need
to be mastered to be a "good" programmer and be able to handle many challenges
that are given to you.

[http://www.amazon.ca/Programming-Interviews-Exposed-
Secrets-...](http://www.amazon.ca/Programming-Interviews-Exposed-Secrets-
Landing/dp/047012167X)

------
plaguuuuuu
>I’ve created unique and intricate php heavy, mysql powered websites with ease

When I hit the site first time I got "banner-widget.php out of memory" or
something :P

~~~
RawData
yeah, this is just my personal blog...it's not geared up for the heavy hit of
traffic from HN that I didn't expect to get...I've beefed it up a bit, it
should be working now.

------
pnathan
Coders aren't fungible. Web dev isn't embedded systems isn't databases isn't
enterprise business isn't application dev isn't front-end JS.

So you need to isolate what you want to do. However, realize that I - and
others like me I've met - key off of theoretical grounding and consider that
the foundation to great software development practice. To interview
successfully with us - regardless of the position - , you need to be able to
speak comfortably about data structures, algorithms, big-O, and some level of
formal language theory. Loosely, that's 2-3 courses in the CS curricula.

With _your_ background, I would be looking for you to have spent some time to
grasp the theoretical concepts and be able to apply them in practice. I would
also be expecting you to have a rock-solid - hardcore - foundation of in-the-
trenches software development principles.

------
jrockway
If technical interviews are a problem that the author is aware of, why not
take action to shore up the missing knowledge? Take a few hours to read about
some data structure, then try implementing it. Read Programming Pearls.
Interview somewhere and see what they ask, then read more on those subjects.

~~~
marshray
I too was entirely self-taught and had very little opportunity to work with
other programmers, right up until I got a job writing system software.

I simply made it my priority to become obsessed with data structures,
algorithms, and software engineering. I read every such book I could find and
wrote code to implement things. It was harder back then, before the internet.
There were far fewer books at the bookstores. Nearly everyone told me I could
never be a software developer without a CS degree.

This is a solveable problem, if you really want to solve it.

------
Tichy
I frankly don't understand how you can build software without understanding
what you do.

Then again, can you FizzBuzz? :-)

~~~
herval
I've come across at least one person that felt into that description, in the
past. He was _most definitely_ un-hireable - if anyone spent _a second_
studying his (fake) past experience or his (non-existing) technical
ability/interest on learning - had no idea what he was doing, but somehow
managed to not just join a "big corp", but stay under the radar for _years_
until he got promoted to a management position (where I believe he is today).

------
herval
Judging by other posts on his blog ([http://www.flatplanetmedia.com/thats-
john-we-dont-know-what-...](http://www.flatplanetmedia.com/thats-john-we-dont-
know-what-he-does-here.html) / [http://www.flatplanetmedia.com/im-learning-
ruby-on-rails-bec...](http://www.flatplanetmedia.com/im-learning-ruby-on-
rails-because-im-weak-willed-and-stupid.html)), he's either using a "persona"
to try and get clicks from newbies (to buy the book he wrote for "PHP newbies
and marketing") or he likes the feeling of "being a complete incompetent, but
somehow managing to get paid" (a lot of self-derogatory posts there, most of
them including the usual "but whatever", "but I like to do like that", etc).

Fishy...

------
shuzchen
Have you actually tried to get hired? If you've never been through any
technical (or even non-technical) interviews, you'll likely have a hard time.

So are you Un-hireable? Probably yes. But can you become hireable? Absolutely
yes, but with necessary effort.

Start applying. With a list of successful projects like that, you'll get some
people taking the bait. Go through interviews, even if you'll fail. Especially
if you aren't even interested in working for them. You still get something out
of it (practice), which will help you the next time you interview again.
Eventually, that next time will be a place you actually want to work at.

(Also, listen to the other comments here about learning version control and
doing open source. Those will all be helpful.)

------
rickmb
I would say that an inability to communicate with other developers in the same
terms (including in code, because I suspect your code may look very different
from others) is a serious barrier to working in a team, no matter how
brilliant and talented you may be.

There's no question you can do the job, but it's a big question if you can do
the job together with other developers, or how much time and effort (not just
from you, but your coworkers) it would take to get there.

I say this as both a hiring manager and a self taught developer. As the
latter, the most important part of my development as a programmer was to learn
to express myself (and my code) in common terms and patterns so I could work
with others.

------
johncoogan
Really enjoyed your post. I'm in a similar situation and have been reading up
on how to learn the formal CS concepts necessary to ace a technical interview
and thought I'd share what I've found.

This answer on Quora summarizes the general topics to look into:
<http://qr.ae/1h6xx> More thorough summaries can be found here:
[http://www.starling-software.com/employment/programmer-
compe...](http://www.starling-software.com/employment/programmer-competency-
matrix.html) and here: <http://matt.might.net/articles/what-cs-majors-should-
know/>

------
columbo
I think you should look for marketing/digital agencies and showcase your
talents. I don't know anything about these companies but they seem to be
examples in your area of what I mean (<http://www.fusion92.com/home.aspx> |
<http://www.jbchicago.com/> | <http://www.thisisplanb.com/>).

It would be a good way for you to get more work, be involved with teams, start
to learn how to mentor and digital agencies/marketing companies tend to be
less about formal experience and more about unit productivity.

~~~
RawData
Good tip, I'll look into that!

------
kayge
> but I’d probably utterly fail any type of formal interview where they asked
> me to write or explain code on the spot.

If you've gotten any sort of software project to work the way you wanted it
to, which it sounds like you have, I doubt this quote is true. Any company
worth working for is more interested in hearing/watching you break down
problems into pieces and describe how to solve them. Often times this can be
done in 'pseudo-code'. If interviewers are going to nitpick your code for
trivial syntax issues (i.e. things that can be fixed with 10-seconds of
google-fu), there's a good chance you won't want to work for that company
anyway.

~~~
RawData
Hm that's a good point, I never thought of it in those terms...

------
jorts
I apologize, but this post bugs me. You can google code snippets but you can't
google how to do well in a programming interview? There are books for this.
There are tons of online resources. I wouldn't hire you on the simple fact
that you couldn't figure this out on your own. I can't imagine making such a
post that has my name attached to it, on the internet. That will make you even
more less likely to get a job. Based on what I saw on your website you should
be able to sell yourself a little better, even if you don't feel like you're a
good coder.

------
danso
I looked at your personal blog and came across your post about trying to learn
Rails:

[http://www.flatplanetmedia.com/im-learning-ruby-on-rails-
bec...](http://www.flatplanetmedia.com/im-learning-ruby-on-rails-because-im-
weak-willed-and-stupid.html)

How did that go? I wouldn't learn Rails just because it's the hot thing of the
month, but to understand why frameworks are valuable and to be able to use one
to quickly prototype client work. Are you handcoding your PHP sites?

~~~
RawData
Ruby seemed pretty easy. I flew threw the codecademy class in a couple hours
with no problems whatsoever. I never got around to playing with Rails tho...

Yeah, I hand code my php stuff.

------
danso
> _Frankly I don’t even know where to start. I’m most proficient in PHP, but I
> can pick up anything really. I breezed through the codecademy.com Ruby and
> Python tutorials in an afternoon but I’ve never done anything in Ruby or
> Python._

If you're experienced as you say you are, then you shouldn't be learning new
languages via tutorials...but rather through things like O'Reilly's "Cookbook"
series. That should get you up to speed much faster.

~~~
RawData
I've got a shelf of those books...I've always used them.

~~~
herval
How come you always "used books" and yet could never even *understand what
you're doing"?

This makes zero sense...

------
hcarvalhoalves
> I can build software that’s happily used by millions of people, but I
> couldn’t describe how I did it, and if I looked at the code later – I
> probably couldn’t make heads or tails out of it without really studying it
> for a while (comments? who has time to bother commenting code!).

Pretty much like every legacy project I've ever touched, wrote by people who
got the job. Sounds fine for me.

------
subpixel
The term "make things and show people" comes to mind. It's basically the way
many of the best tech jobs are landed. Instead of worrying about all the
things you don't know how to do, focus on the things you've made and the
myriad skills you gained in doing so.

Wish I could find the original article that quote comes from, I must be
mangling it. But you get the gist.

~~~
RawData
Yeah I've got a pretty long list of things I've built...software, web sites,
etc.

------
herval
The most scary thing is the author claims to be completely void of any theory
or even ability to explain simple things ("explain something as simple as a
nested array"?) one could learn in _a day_ with quick look at a "learn
whatever in 21 days"... but yet, he has _published a technical book_ on PHP.
Something smells in that story.

~~~
RawData
its for marketers...just explains VERY basic concepts...variables,
if/then/else...things like that. Aimed at affiliate marketers who want to
punch up their websites with a little PHP. I'd hardly call it a technical
manual. And besides, I can explain things when I have reference material in
front of me...but on the fly in an interview would be totally unable to.

------
gbaygon
Cache:
[http://webcache.googleusercontent.com/search?q=cache%3Ahttp%...](http://webcache.googleusercontent.com/search?q=cache%3Ahttp%3A%2F%2Fwww.flatplanetmedia.com%2Fam-
i-unhireable-as-a-
coder.html&oq=cache%3Ahttp%3A%2F%2Fwww.flatplanetmedia.com%2Fam-i-unhireable-
as-a-coder.html)

------
pekk
"the climate here in America has turned so decisively anti-small business that
not only is it not fun anymore; it’s almost dangerous."

In what way is this actually true?

I completely sympathize with people who have impostor syndrome but I am having
trouble seeing this long rant as anything but a 'pity-me' advertisement.

------
olaf
You are at an advantage, because your mind is not poisoned by unnecessary
baggage. "Just" build and offer stuff that works reliable, with better
quality. Demonstrate that, prove that, measure that. It's not the tools and
techniques that matter, it's the results.

------
christopherslee
On the flip side, if you have had success doing those things, why do you want
a "job" where someone tells you what to do? Maybe you just need to learn a
little bit about sales and marketing so that you can make money from your own
successful efforts?

~~~
RawData
I've done well for 16 years...it's time for a change.

~~~
Goopplesoft
If you dont mind me asking how large your revenues were at its peak? Or more
generically were you well of or dragging along?

------
ericmoritz
You sound like every contractor being hired everyday in the DC Metro area.

------
alexchamberlain
Read books. I'm a Maths grad now at my first Software Dev job. Yes, I'm a
Software Developer not a Coder.

You need to learn the basics. Use C/C++, learn why Java is crap and why PHP
takes up too much memory. Make sure you get a few Signal 11s and learn what
you did wrong. How do you protect yourself from it next time?

The particular choice of languages is irrelevant of course. The point is there
is a lot more to software development than hacking out code. There are
principles of development. There are advantages/disadvantages to each of the
tools we use. There are mathematical underpinnings of data structures. A brief
understanding of it all is important. A deeper understanding may be required.

~~~
propercoil
Java is crap? It was the first language i learned in uni and i would advice
anyone to start with it to get basic oo programing skills and design patterns
fast.

------
lukevdp
Only way to know for sure is to apply for some jobs and see what happens :)

I have no doubt you could get a job, the question is, can you get one doing
what you want that pays what you want

------
dccoolgai
Would you hire yourself as a coder? If so, then someone else will, too. If
not, build stuff (even if it sucks) until you would hire yourself. Game, set,
match.

~~~
RawData
I've built lots of stuff that doesn't suck. I'd still bomb a technical
interview.

~~~
liberatus
Step 1:

Throw out this attitude. It's utterly useless.

Step 2:

Go bomb five technical interviews and learn from them.

Step 3:

Ace the sixth.

~~~
sologoub
This applies to any type of interviews/beginnings. Since op listed himself as
an entrepreneur who has sold companies, I'd expect this concept to not be
novel. Probably, just a matter of regaining some confidence.

------
beatpanda
The short answer is "no".

The longer one is "probably brush up on formal CS stuff before you start going
to interviews, but you're probably fine in this hiring environment."

------
kami8845
Where's your GitHub

1\. Acquire GitHub

2\. Upload lots of nice code

3\. ???

4\. Employers are impressed

~~~
RawData
I've never understood GitHub...I just write code in notepad and then sftp it
into my server to deploy...why go through github?

~~~
krapp
I just started using Git and Github myself... and for me, github itself is
useful as an online backup for a repository (git itself being incredibly
useful in terms of organizing projects) and just having a github profile looks
better on your resume, etc than not having one. At the very least, your code
is right there to be looked at.

~~~
RawData
I don't want my code to be looked at though...it's proprietary. It powers the
software that I sell to make a living...why would I spread it around? Though I
get your general gist...

~~~
dwb
A git repository doesn't have to be public, though you do have to pay for
private repositories on GitHub. GitHub is great for the "network effects" of
it having a lot of developers on there, maybe wanting to help out with your
(public) software, but if you just want some free, private Git hosting,
<https://bitbucket.org> is fine.

