Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Grind up on apps which solve business problems in underserved markets. The gold drops are better, the mobs easier to kill, and you'll get ganked less than in the hostile PVP zone of Stuff For Poor Twenty-something Men. Your support inbox may end up looking like Barrens chat; this is normal.

A note with regards to specs: you may be tempted to dump all your points into the Programming tree. Don't. It gets nerfed every few years anyhow, and respec costs will be murderous. Instead, spread some points into Soft Skills and Domain Expertise. Get the ult in Domain Expertise and you'll melt your competitors' faces regardless of their programming ability on virtually any raid except Next Google. (P.S. Expected rewards per hour on that raid are terrible, since everyone wipes. If you're good enough to do it you could AFK your way through any number of raids, pick one of them instead.)

Many developers get deeply into debates over who has the best class. "My class is better than your class" doesn't kill mobs, no matter how many times you repeat it.

Improving one's grinding skill can improve gold per hour marginally, but understanding the economic meta-game has a much, much better ROI.



The top comment on a post about how to become a better programmer effectively amounts to "Don't try to be a better programmer, instead do X, Y, and Z because that will make more money"?

I remember you saying somewhere that you're into optimizing businesses and money is a great way to keep score, and in light of that, this comment even makes sense, but please keep in mind that for some people becoming a better programmer is not about maximizing ROI.


In some ways, I see patio11 as the Sarah Palin of HN (in PR tactics, not brains).

Formula: show up, comment on everything to improve your personal brand, bend every conversation to your personal narrative, speak very authoritatively with flowery down-to-earth gosh darn folksy language, and stay sufficiently out of the way so you can't be harshly judged (half term gov = "microisv").

My opinion about this is proof in itself it works. I just get annoyed realizing other people have programmed my brain without my express consent.


I'm totally OK with that. FWIW, my comment is about being a better engineer: I simply don't think that programming skill uniquely makes one a better engineer when divorced from user needs or commercial considerations.


I think Patio is right to a certain degree. You can be the rock star of rock star programmers, but if you can't explain to me what you're doing, what it does in general (or for me) and why I or anyone else should use it, you're toast. This will depend on job to job and where you want to go, career wise, but I've found, in my current gig, having soft skills does pay off.

At its genesis, coding is problem solving. We are trying to solve someone's problem(s) using a computer. All the coding skills in the world won't help us come up with solutions to people's problems if we lack the ability to listen to the end user, translate their needs into code, and then explain to them why they need this and how it solves their problem. Also, I've found that developing your non coding skills also gives you different perspectives into problem solving.


I took two things away from what patio11 said.

One is to do things start to finish. Tests, deployment, faqs, code, marketing, polish, etc. You learn to appreciate the people and teams around you. You also gain useful skills.

The other is to emphasize learning the most for areas that have the largest payoff. For most programmers this means stuff that isn't programming. This dovetails nicely with an idea that CrossFit points out: Pullups make downhill skiers better. That exercise has no direct functional application to downhill skiing, but improving your big weaknesses in fitness often pays off more than perfecting your strengths.


I think your last point is heavily situation-dependent. What you really want to do is maximize the area of your Voronoi-diagram: the problem space for which you or resources you control are the best available solution. Sometimes the best way to do this is to eliminate a weakness, so that it's no longer a dealbreaker for people that wish to use you as a solution. But many times, the best way is to perfect your strengths, so that you're clearly better than the alternatives around you. People are willing to forgive and work around many weaknesses if you're very, very good at your strengths.


There are different ideas of what makes a "better programmer." To paint with a very broad brush, there's a divide between "A good programmer is somebody who makes good programs" and "A good programmer is somebody who knows how to do a lot of different programming tasks well and knows all the right techniques."

If having more experience with different kinds of code is your idea of being a better programmer, then the OP is sufficient and more power to you.

Other people feel that a programmer's purpose is to create useful things, and the programmer who creates more useful things is better. In this light, Patrick's comment is relevant, because a little bit more domain knowledge will usually improve your program more than prior experience implementing a B-tree database.


> The top comment on a post about how to become a better programmer effectively amounts to "Don't try to be a better programmer, instead do X, Y, and Z because that will make more money"?

I read it more as: don't be a better programmer, write better programs.


> The top comment on a post about how to become a better programmer effectively amounts to "Don't try to be a better programmer, instead do X, Y, and Z because that will make more money"?

You missed the part where he discussed learning what to program.

While folks who leave that decision to PHBs may have good skills, I think that knowing what to program is an important part of being a good-to-great programmer.


> The top comment on a post about how to become a better programmer effectively amounts to "Don't try to be a better programmer, instead do X, Y, and Z because that will make more money"?

You missed the part where he discussed learning what to program.

While folks who leave that decision to PHBs may have good skills, I think that knowing what to program is an important part of being a good-to-great programmer.


> Improving one's grinding skill can improve gold per hour marginally, but understanding the economic meta-game has a much, much better ROI.

Excellent advice. But, you're assuming the OP wants to play "business" game instead of "programming" game, which is not necessarily true, and is not implied in the post.


Also hone your communication skills until they are as razor sharp as the post above.


Your support inbox may end up looking like Barrens chat; this is normal.

You mean you have hundreds of people asking where Mankrik's wife is?

More seriously - what do you mean?


That support will be a long, long slog of answering the same set of questions asked largely by people who are both less than expert at using computers and perhaps not their at their most eloquent or polite when urgently trying to complete a task.


The best advice I've read for this is to treat support emails as bug submissions. Questions about your company mean you don't have sufficient documentation, help, user interface, etc etc, and work should be put into shoring up those areas.

Obviously this idea doesn't eliminate all support requests, but I imagine it would reduce the deluge over time.


We solve this issue (for the most part) at my company using email templates for common questions... It works quite well too!


This could actually be an interesting machine learning problem. Train a system to classify incoming customer emails, and automatically respond with the email template that matches the class of question, and watch your support team get more and more free time.


Hilary Mason has a presentation about this, "How to Replace Yourself with a Very Small Shell Script"[1]. Recommended.

[1]: http://www.hilarymason.com/blog/ignitenyc-how-to-replace-you...


I believe Fog Creek has done something like that to classify which box to drop the customer emails in.


Honestly one of the benefits of getting into computer programming was to never get involved in tons of repetitive work.


If one person has a problem a multitude of people are going to have that problem, so yes hundreds of people asking about X.


Interesting WOW-style ramble.

How does what you recommend make you a better programmer? Coming from a business background, I'd say I already have relevant domain expertise and decent soft skills. I don't really see how spending yet more time on those strengths will do much to improve my very mediocre coding abilities.


Excellent comment. Far to many developers concentrate on becoming a better programmer to the complete exclusion of becoming a better software developer. Software development is all about how well you can deliver business value and the ability to program, although an important skill, is not the most important. It is simply one of many, many skills that are needed.

Like the comment above, my advice is learn how to deliver software instead of just program. Learn how to interact with customers and become an expert in your business' domain. In addition, learn how to solve real problems without using technology or programming.

Being a great programmer will get you in the door for an interview, but it is all the other soft skills that will get you the job (and the money that you want).


Yeah but if you've been building websites using MySQL for ten years and can't tell me what InnoDB is then all the domain knowledge in the world won't help you in an interview with me. My standards aren't really that high but I expect some depth.


Has it ever actually happened that a developer had 10 years experience building websites on MySQL, very strong domain expertise in some non-programming field, and no knowledge of InnoDB?


I don't know, but I'm sure it has. If your primary interface to MySQL is a GUI tool where you just click the "create table" button, type in a name and accept the other defaults, you could be using MyISAM tables without knowing anything about table types.

Don't forget, that 10 years of experience could just be 1 year repeated 10 times. A cardinal number of years doesn't always equate to increasing breadth of knowledge.


Of course it doesn't, but if 10 years of experience results in domain expertise somewhere else, but some cherry-picked detail about storage engines is missed then there is probably a good reason for it.

In my experience, someone with really strong domain expertise in something like bioinformatics, doesn't actually have 10 years building websites on MySQL.


Yes. It has happened many times. I talk to people who rate themselves highly in all things MySQL and can barely write a join and can't really explain anything about how it works.


That's not what I asked, though. It's easy to believe someone says they know MySQL but doesn't. It's the combination of all of them that I'm skeptical about.

1. Has built websites for 10 years

2. Websites have all been on MySQL

3. Is a verifiable domain expert in a field that is useful to you but isn't programming.


No I have had 1 and 2 though. I haven't really met anyone who tried to convince me they knew anything other than programming and databases to be honest. I'm also not sure how that would come up.


Can someone explain to me the Next Google metaphor? And is a raid a metaphor for a regular job in this case?

I'm also not that knowledgeable in MMORPG terms, but I do know things like "drops" and "PVP", and I can deduce other terms.


A raid in this sense is a start-up venture or any development job I guess. And the advice is to not try and develop the next Google because most attempts are unsuccessful. And that if you're capable of developing the next Google you should just spend your time doing something else because you wouldn't have to work very hard.


Can you make a similar list of achievements to aquire Soft Skills?


Is that really you, or are you outsourcing your HN comments now?

Just saying, it doesn't really sound like you.


It's mostly a joke playing on the years of my life wasted in WoW, except I'm totally not joking about anything I said.


Are you kidding? It's the most perfect response I can imagine. It follows the OP's metaphor even more rigorously than the OP does, it's useful and it's exactly right on every point. If that's outsourced, I would like to get me some of that cheap labor.


I don't know. I think it is him.

I used http://www.standards-schmandards.com/exhibits/rix/index.php and copy pasted the grandparent comment in - got a reading ease score of 58.

Copy pasted some answers from http://www.anyasq.com/227-i-made-bingo-card-creator - got a reading ease score of 59.

Close enough for government work, I think. I never knew that patio11 played World of Worldcraft?

Edit: Oops, just read the response above me, learn something new every day. And no serious critiques of my methodology please, it was just for humor's sake. :-)


You don't think he would have a little fun with the "leveling up" concept?

Have you seen this video? http://blip.tv/business-of-software/patrick-mckenzie-marketi...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: