
What does it take to be an expert in computer programming? - sonabinu
https://www.quora.com/Computer-Programming/What-does-it-take-to-be-an-expert-in-computer-programming
======
kjhughes
This is a transplanted answer to a Quora question:

[https://www.quora.com/Computer-Programming/What-does-it-
take...](https://www.quora.com/Computer-Programming/What-does-it-take-to-be-
an-expert-in-computer-programming)

The problem is that in the body of the Quora question, which is omitted in the
Forbes transplantation, the asker elaborates that he wants to master C++.
Without knowing that, the immediate reference to C++ makes no sense, nor does
step #1 saying to "become an expert in computer programming" when that sounds
like the exact question itself.

It's usually better to post the original article rather than a wrapper
article, especially when the wrapper contributes nothing and even confuses
matters.

Edit: BTW, answerer takes the notion of the value of being full stack and
blows it out to include all of computer science, computer engineering,
anthropology, sociology, psychology, literature, and poetry. Cute, and maybe
entertaining to some, but probably less than truly helpful. Become a
Renaissance man as a prerequisite? Sure, and pick up deity status too, ya
know, just in case.

~~~
maaaats
But Quora is often behind a login-wall. So linking there renders the link
unusable for many (including me).

~~~
kunil
I think it is changed, I just noticed a close button on that login-wall. Does
it unlock all?

~~~
StavrosK
Yeah, I just noticed that too, and managed to read the post.

------
Mc_Big_G
According to Toptal and Codility, if you want to be regarded as a top web
developer, you need to be able to complete 3 exercises similar to calculating
the area of the intersection of two rectangles, that may or may not intersect,
in 90 minutes . So, you should tailor your learning around that.

------
McUsr
Hello. I am glad this thread showed up, so I can post my all time favourite
link (so far) on the subject:

what makes great programmers different: [http://www.drdobbs.com/architecture-
and-design/what-makes-gr...](http://www.drdobbs.com/architecture-and-
design/what-makes-great-programmers-different/240001472)

------
ap22213
An expert in computer programming might make ~$180,000. But, a non-expert with
basic skills might make up to $120,000. Seems like a lot of work to get that
extra $60,000.

The industry should be paying the experts at least double what they are
currently making.

~~~
kjhughes
Or quadruple or more...

The industry -- all industries, in fact -- should be paying employees
commensurate with their contribution to the success of the firm. Explain how
to do that well and I'll nominate you to the Nobel Committee. In the meantime,
we have startups for realizing returns from out-sized contributions.

~~~
michaelochurch
_In the meantime, we have startups for realizing returns from out-sized
contributions._

I don't think they solve the problem anymore. The VC-funded ecosystem is just
another shitty corporate ladder (engineer => eng. manager => founder => angel
investor (i.e. rich) => VC). It's now a reputation economy that depends more
on pleasing the right people than on engineering excellence. Hot off the
press: [http://michaelochurch.wordpress.com/2013/07/09/three-
capital...](http://michaelochurch.wordpress.com/2013/07/09/three-capitalisms-
yeoman-corporate-and-supercapitalism/)

Most of how the current crop of startups defines engineering excellence is not
talent or CS expertise but "track record", especially if it involves "scaling"
(that's a business anti-intellectual's nomenclature for "hard stuff I don't
understand"). That has more to do with careerist maneuvering than any real
drive to understand the fundamentals of computer science, software
engineering, or anything else that's truly important.

I think that game's done. Yes, there are outsized returns due to the fact that
the real value potential of a talented software engineer is $500k-5M, but
engineers aren't going to capture the next 10 years of surplus in VC-istan.
Management will.

The opportunities are somewhere else. I'd like to see more action in the mid-
risk/mid-growth space that's currently underserved (too risky for bank loans,
not risky enough for VC):
[http://michaelochurch.wordpress.com/2013/03/26/gervais-
macle...](http://michaelochurch.wordpress.com/2013/03/26/gervais-
macleod-17-building-the-future-and-financing-lifestyle-businesses/)

------
benbruscella
1\. Become an expert in computer programming.

2\. Understand computer science.

3\. Understand computer engineering and architecture.

4\. Understand people.

5\. Understand bullshit.

Then, try programming a game from 20 years ago.

~~~
ExpiredLink
Truth is 2 is not important, 4 and 5 are most important.

~~~
benjamincburns
#2 is very important, and sadly very under valued. You'd be surprised how many
candidates I interview who don't understand the basic concepts behind time
complexity. I'm not even talking about big-O. I'm talking about the idea that
simple algorithms are dominated by a fundamental operation, and that in order
to make said algorithm faster you must reduce the number of times you perform
that fundamental operation.

So when I ask "if that method were performing too slowly, what would you do in
order to make it faster?" I'm often met with answers-phrased-as-questions like
"use Vector instead of ArrayList?" Or often the confident statement "use
HashMap" because apparently HashMap magically makes things faster... Except we
ask this question about a range query (aka checking "if x < y" instead of "if
x == y").

~~~
ExpiredLink
Sorry, but understanding basic data structures is not difficult. This cannot
be regarded as computer _science_. The examples he gives ("Recursive Towers of
Hanoi", ...) attract the wrong people - those who are deeply depressed after
their first year as 'real-world' programmer.

~~~
benjamincburns
I agree that understanding basic data structures _shouldn 't_ be difficult,
but for a remarkable number of candidates it apparently is. Further, basic
data structures is as much computer science as the "cell theory" is biology.
It's a set of fundamental concepts that's quite core to computer science.

------
jello4pres
I stopped reading when I saw that the first step to becoming an expert
programmer was to become an expert programmer.

~~~
bamurph
Recursion brah.

------
felipesabino
According to Peter Norvig, it takes time

[http://norvig.com/21-days.html](http://norvig.com/21-days.html)

------
eclecnant
"There are even serious discussions about whether C++ semantics can be
formalized, that is, whether it is mathematically possible."

Since it is mechanisable (several compilers exist), surely it is
"mathematically" possible to formalise the semantics. The question is maybe
rather whether there exists a mathematically _elegant_ formalisation? Glancing
at the formalisation of C in the K framework [1], I'm not sure the answer to
this question is positive.

[1]
[https://code.google.com/p/c-semantics/](https://code.google.com/p/c-semantics/)

------
esolyt
Why do I need to click the "Continue to Site" link to view the article? Is
there something wrong with my browser or that's the way the website is?

------
sengstrom
First prong of becoming an expert in computer programming is "becoming an
expert in computer programming"? How can I read this when there is a syntax
error in the third paragraph?

------
abeh
expert in computer programming == expert in computer programming + 4 other
things?!? This doesn't make sense.

~~~
benjamincburns
"You have to walk before you can run."

Or if that's too nebulous, remember that knowledge is a hierarchy and mastery
is a perception. In order for someone to perceive you as a master at a
particular skill, you must also be highly competent in a number of other
tangentially related skills.

~~~
derekp7
But with this article (and I somewhat agree with programming in general), you
have to become an expert at running before you can get really good at walking.
Then you can start to learn about the finer points of the crawling maneuver,
and when to apply it.

------
ishansharma
Why is Forbes discussing this? Amd even when it is, it seems like a link
baiting headline!

~~~
mahmud
Forbes licensed Quora content to boost its SEO?

~~~
sanukcm
Seems like some kind of mutually beneficial relationship.

Looks like Quora is a contributor to Forbes[1], but that no one gets paid[2].
At least that's what the answer that I can read without signing up for Quora
says...

[1] - [http://www.forbes.com/sites/quora/2013/07/08/what-does-it-
ta...](http://www.forbes.com/sites/quora/2013/07/08/what-does-it-take-to-be-
an-expert-in-computer-programming/)

[2] - [http://www.quora.com/Quora/When-a-Quora-users-content-is-
rep...](http://www.quora.com/Quora/When-a-Quora-users-content-is-reproduced-
on-Slate-or-Forbes-or-any-partner-for-that-matter-is-the-user-compensated)

