

From Business Guy to Programmer - spencerfry
http://spencerfry.com/from-business-guy-to-programmer

======
aspir
To other biz dudes learning to code (I'm one as well): it's not as hard as you
might think. It can be frustrating though.

Understand that you may need to start slow, and you'll fight a lot of bugs.
Every few weeks, you'll seem to have a epiphany where "stuff makes more
sense." Take pride in those moments and seek them out. They're addicting as
hell.

The moments will be small at first. Working through an error message, reliably
using methods for the first time, figuring out how to prank your friends
(personally, this is a major non-financial/career fulfillment reason for
learning to code). Tell people about them, though it may be a little
embarrassing to say you fixed a typo after a hour long headache.

Then the epiphanies will get more substantial. Building a login system.
Debugging an email notifier. Figuring out you don't need rails scaffolding
anymore. Figuring out how to push more logic into the model and out of the
controller. Integrating some no-nonsense libraries and APIs. Tell your friends
about these -- you're earned it. Those first few hair-tearing periods were you
paying your dues.

Some point along the way, you'll start to see problems differently. You'll see
solutions instead.

I've always felt these moments were the equivalent of the "language dreams" my
old foreign language profs would talk about. When studying a new language,
you'll eventually have a dream where you converse in your studied language and
you know what's going on. When you start to see solutions in code, no matter
how technically skilled you are, you know you've reached a similar tipping
point.

~~~
hkmurakami
Just had one of these "aha" moments recently regarding Python List
Comprehensions [1]. It's definitely an amazing feeling to have struggled over
various ugly or half broken implementation for a few days, done research on
the task at hand, then suddenly, understand an elegant solution to the
problem.

[1] [http://stackoverflow.com/questions/2397141/how-to-
initialize...](http://stackoverflow.com/questions/2397141/how-to-initialize-a-
two-dimensional-array-in-python)

------
johngalt
Good for you, can't wait to see your progress. My favorite part about learning
programming? The utility gain is linear. A novice learning to use =if() in
excel is immediately more useful. At the top there is plenty of new ground for
experts to cover.

Contrast this to other fields that have a steep utility curve (novice
aerospace engineering?) or diminishing returns (accounting).

------
bomatson
Good luck, I've been doing similar the past six months.

My thoughts: ship product fast and make a lot of mistakes

Language? If you are learning RoR: Zed Shaw's LCTHW and Hartl's Rails Tutorial
are great. Learn to Program by Chris Pine is also a good starting point for
syntax, but focus on pair programming (where the real learning happens)

~~~
tsewlliw
As a fairly experienced programmer, where are all these business guys who are
so psyched about learning to code??? Any in AustinTX?

I would be seriously psyched to pair with a motivated total "noob" because I
remember how exhilarating the first few years are, and how great it is to have
your mind blown weekly or monthly by some subtle concept.

~~~
viandante
For us business guys (and the term is broad, there can be also quite
technical/numerical business guys...) is really a struggle convincing anybody
that we can code. Yes, we have small tiny demos laying in there (<shameless
plug><http://andemo.ep.io> </shameless plug>), or we hack some scripts for
fun, but we are not professionals! And it takes ages to become one alone.

Point is, it would be cool to have more chances. Even unpaid gigs or below
decency pay could help. But nothing of this around. Especially because it
should be remote. Hope somebody fixes this, if there is really a shortage of
programmers I mean.

~~~
bomatson
What challenges have you faced trying to work with startups on the web dev
level? Does it have to be remote?

~~~
viandante
The main challenge is that start ups, as it is normal, seems to look for top
people or with lots of experience. The second challenge is that even if they
would consider an unexperienced person, they would not do it remote. I am
pretty sure if I lived in the right 'hot' places I could find something, but I
don't.

It has to be remote as I live in a small city in Germany. I can't move out as
I need my job. I don't live my job as I have no idea if start ups would be for
me (that's why a remote work would be nice too, to get to know what the job
is...). But I noticed I get programming fast, so that's why I always look for
a chance to prove myself in there, maybe finance is not for me after all, who
knows.

------
aangjie
Ok, any advice for someone trying/considering the reverse?? Am an average
programmer a tad tired of programming and foraying into business by writing
functional spec, Business Justifications etc.... What are recommended readings
i must do?

~~~
tferris
Much easier to move from a tech guy to a business guy. Waht you mentioned
isn't real business (functional specs, business specs), rather work for office
drone and a must.

Business guy means taking risk, being persistant, able to sell and to network.
That's it.

~~~
spiredigital
> Business guy means taking risk, being persistant, able to sell and to
> network. That's it.

Taking risk doesn't make you a good at business. In fact, quite the opposite.
Great businessmen are experts at limiting their risk and identifying and
acting on high risk-to-reward opportunities.

One of the reasons so many businesses fail is the misguided notion that you
"must" take a lot of risk to start a business. So people take out a lot of
debt / make risky decisions because they believe it's just part of the whole
process. I think the best way to start a business and excel is to limit your
risk and bootstrap as much as possible.

However, I do agree with you on the other three... ;-)

~~~
tferris
I agree with you about limiting risk.

But I believe that 'risk' is a highly relative term. Spending three months on
a new idea and investing lets say 3,000 USD on this idea is ...

1\. for the average employed office drone a huge risk (at least that's how he
feels about it=>different value system)

2\. for a first time entrepreneur a risk (and objectively higher than for 1
because this guy doesn't have any incom)

3\. for a experienced entrepreneur its daily business and no risk at all

The principle is just don't go all in but keep on doing and risking.

------
goatcurious
I have seen both sides and, at the risk of oversimplifying, I feel the core is
the same for both programming and business.

For business guys: a good place to start is to gain a deep understanding of
how the app is built. At the core it is not much different than that financial
model you had built. It’s just written in a different 'language'. Start today:
have in depth conversations with your developers, understand how each element
interacts (more detailed is better). Learn what the developers are struggling
with, and try to solve those problems with them. Sometimes, you will pin point
the source of the problem before they do. That’s a good feeling. If and when
you decide to learn the language, this experience would be massively helpful.

For programmers wanting to learn the business aspects: The key lies in
developing a good hypothesis, and in constantly refining it based on what you
hear from the customers, competitors, market, investors, etc. Approach it like
coding; each hypothesis element is an object - it takes in some inputs and
throws some output. Check whether all elements are mutually exclusive and
collectively exhaustive. The process is not too different from developing that
app. Just make sure to not get caught in the details. Question everything
constantly - is this the most important thing and how. And yes, you will get
by wonderfully well if you ask others, nicely.

------
chao-
Definitely going to follow this. I get a pretty steady stream of business guys
who come to me wanting to be, in the words of one, 'less useless' on their
projects. I try to provide them with some ways to get started and help them
set some reasonable goals. Being able to see the real-time trials and
successes of someone doing precisely this would provide another meaningful
data point with which to improve that advice. And linking them to this might
help keep their perseverance up as they go down their own path.

While I recognize that there are probably ways to improve the business-side
utility of a 'business guy' (or gal) who feels 'useless' at times, that's not
something I am as qualified to help them fix. Furthermore, I'm always
heartened by someone who is interested in learning programming, as opposed to
not caring that they don't know what an API is or what MVC means, or even
pertains to.

------
aen
Familiar sentiments.

I've been a designer all my professional life and belonged to the find-a-
developer-for-idea-X category. I've been lucky to have had the help of really
good tech friends but it never felt right. It's like sculpting with a proxy. A
part of me yearns to feel the plaster and chisels with my own hands. So like
you I just did it.

I launched <http://mocku.ps/> a few months ago, by putting together everything
I learned from books and tutorials, asking on Stack Overflow, trial and error
and sleepless nights hunched over my code editor. I almost permanently pissed
off my wife.

Craving more now I'm on to my next project <http://paperi.st/>. It feels great
to be able to produce what's in your mind by yourself.

------
jsm
I am in the same boat. I started learning web development about 6 months ago.

The best way to learn is by making things. Many of my friends that have been
interested in learning to program and started using resources like codeacadmey
or the w3schools tutorials have ended up discouraged. I think they assumed
that those resources were designed such that you'd be a programmer as soon as
you diligently completed each lesson. My friends that assumed that ended up
bored and moved on to other things.

It's best to follow your curiosity. Work on projects even if other people are
out there doing the same thing better. I view everything as a learning
project. My first projects were <http://roommater.us> and <http://essayr.com>.

------
demian
I know a lot of business/programmer types, and most of them remind me of
Architects (not the IT or App ones, but the ones that makes buildings). They
(b/p types) also tend to take a kind of "Master Builder" road, kind of
"creative but profesional", with the potential too look beyond the product up
to society itself, even to the point of considering philosophical and
economical trends to 'get' how it 'all fits together'(the kind of humanistic
contextualization that Architects do).

More often than not, at least in my experience, they also tend to learn
design. Maybie not to the specialist level, but to be able to talk to them,
coordinate with them, and to get the 'feel' and articulate the vision of a
system.

------
tswartz
Good article. Good luck jumping into coding. As a non-tech co-founder I've
been considering this, but have always been worried that I'd pour my time into
this and not see great results. Looking forward to reading your 90day write-
up.

~~~
vibrunazo
> but have always been worried that I'd pour my time into this and not see
> great results

What exactly are you afraid of?

I, personally, think coding is a very important skill to have that can help
you achieve many new things, in pretty much any field. I'm interested to hear
exactly why you'd be worried otherwise.

~~~
stfu
I am in a quite similar position as the OP. I have a basic understanding of
code and structures, but in order to reach a level that feels "useful" I would
have to invest a considerably amount of time and dedication (by useful I am
talking of things that can't be "solved" by some guy from Fiverr or Vworker
for a handful of dollars). The question always looming is if it is smarter to
invest more time into improving your existing strength areas, use the time to
do something that is just "fun" (i.e. music, gaming, comment on HN etc), or
start with something completely new. And this is most often a really difficult
decision to make.

~~~
viscanti
It really depends what you want to do. Refining your skills a bit could
quickly get you to the point where you can build out a testable prototype for
a project.

Bill Gates (I believe), talked about the hardest role to fill in a company is
someone who is able to bridge the business side of things with the technical
side of things. Coming from a business side first, you have a shot at being
that guy.

There's a lot of noise now about how everyone should learn to program. I don't
think that's the case. It helps to be technologically literate (have a general
idea of what people are talking about and what's actually possible), but
actually programming isn't a necessity. It really depends on what you want to
do. I haven't met anyone yet who regrets learning to code. The problem solving
abilities you build when learning to code can help in a lot of other areas.
It's a time investment, but you'd be amazed what you can pick up from an hour
a day of consistent and focused learning/practice.

------
vibrunazo
> I plan to follow this up with an article on How I Learned To Program

Please post it here. I'd love to read that. And specially, share it with the
business guys I know :)

------
vladpetroff
Good luck, you're in for a wild ride :) An advice if I may - just jump into it
and build something, don't spend too much time on theory. After more than 20
years in programming I still find this approach the fastest way to learn a new
technology.

------
paulhauggis
It's much easier to become a business guy after you already know how to
program ;-)

------
killnine
Did I miss the statement of language choice?

~~~
spencerfry
Ruby, Ruby on Rails, and JavaScript (mainly JQuery). I'm just beginning to
learn HAML and SASS, but for now it's been ERB and straight CSS.

~~~
killnine
Thanks. I like your choices

------
AznHisoka
So what did you do over at Carbonmade?

~~~
spencerfry
Funny you should ask!

I wrote two articles about the specific things I did at Carbonmade as the CEO:

<http://spencerfry.com/whats-a-non-programmer-to-do> (This was actually based
on a 1,000 day old Hacker News comment of mine:
<http://news.ycombinator.com/item?id=779378>)

<http://spencerfry.com/whats-a-non-programmer-to-do-advanced>

~~~
apu
Hey, I just wanted to say that I've sent one or more of those links to dozens
of people over the past few years.

I know "business guys" take a lot of shit on programming-oriented forums like
this one, but as a technical guy myself, I found your post invaluable in
understanding what "the other half" do. And having recently done some big
launches (not quite a startup), I viscerally understand how important that
stuff is, despite most engineers' derision.

Thanks for the posts, and best of luck with learning to program!

