Live data from Hacker News

Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

news.ycombinator.com

81–90 of 114 posts

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#81
post #18

Whenever a question like this comes up among the people that I am mentoring, I like to show them the "T-Shaped Employee" section of the Valve Employee handbook [0]: "We value “T-shaped” people. That is, people who are both generalists (highly skilled at a broad set of valuable things—the top of the T) and also experts (among the best in their field within a narrow discipline—the vertical leg of the T). This recipe is…

I figure that a degree in CS + some curiosity would give one the horizontal knowlegde, and x years of employment in a specialised field would give the vertial knowlegde.

It's different horizontal

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#82
post #80

I would go with the sort of answer that dodges anything concrete: It's not about which specific things you do, it's about doing things that seem scary and unfamiliar. For some people, that means learning to write really tight low-level code for tiny hardware. For others, incorporating more advanced mathematical constructs. And for a third group, learning how to design a certain category of applications really well. T…

I would extend this further and suggest you challenge yourself by following your interests. If you happen upon a C++ graphics library that your favorite game is built upon, your curiosity will be enough to propel you forward and learn new things based purely on intrigue.

If ultimately you go the route of wanting to learn a particular programming paradigm, I would still encourage you to try to solve a problem that resonants with you personally. The problem itself becomes the method by which you learn programming and not the other way around.

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#83
post #53

Both are right, and they agree with each other. But you have to understand what they are talking about to get it. The point of Peter Norvig's advice is that once one has learned 3 different ways to do one thing, it is easier to abstract out the fundamental principles and think about when to take one approach or another. Which makes it easier to understand the actual game. Which leads into Rich Hickey's advice. Recogn…

I like that: strategy enables tactics. Much like logistics enables strategy.

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#84
post #32

Earlier quoted context omitted.

Not to me. It sounds like they want people who have a wide variety of shallow-ish knowledge (but still an actual understanding of whatever area it is), while also having very deep knowledge in one or two areas in particular. > It also makes me wonder about their ability to manage people with different skill levels and areas of expertise. And of course, having used Steam, I'm not at all surprised. Weird that that's th…

> (Half-life, Counter Strike, TF2, Left 4 Dead, Portal, DoTA2... it's actually hard to name them all). Actually, it's not that difficult. Of what you listed, only HL was original IP. Valve put a lot of work into digital distribution, and have pretty much owned the PC digital distribution market. With console and mobile gaming dwarfing the PC market, and big publishers like Ubisoft and EA getting into their own digita…

Speaking as someone in the game industry, Valve certainly has it's problems, but they aren't platform problems.

PC is stronger this generation than it was last generation, I'm not sure about the numbers but I suspect that it is ahead of both consoles, and it might be ahead of both of them combined, and I'd expect this to only be get more true. Porting to PC is pretty much just porting the parts that interact with the OS or GPU for this generation, due to both consoles using x86-64.

And mobile is a joke. market might be huge, there's a reason very few established game companies care about it at all. It's extremely unpredictable, and the expected price of games is far below what is realistic. Even if you make a hit, the amount of money you'll make is far from the amount of money you make from a hit on any other platform (hell, it doesn't even come close to the budget of most games). Honestly, I think the only way a company can hope to turn a profit on mobile is with IAP or shovelware (or both), and I don't see that displacing console or PC gaming any time soon.

I wouldn't mind seeing steam displaced, but I don't think it will be by EA or Ubisoft, largely due to the fact that they're both about as popular as Comcast, which seems to be due to them being massively out of touch.

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#85
post #71

Earlier quoted context omitted.

When people talk about learning algorithms, what do they mean? I recently spent a few hours reading about and implementing A* for the NPCs in a video game I'm working on. Are you talking about being able to write A* and other algorithms from scratch with no reference material?

First of all, you should know that there exists an A* , and what it can be used for. Second, you should know when to use A* or something else, the trade-offs etc. Third, you should know how to implement A* , when needed, with reference material (you'd be surprised how many programmers can't read/understand the reference material even when its given to them, or don't know enough programming to put it in code). Of cour…

Aside from as a learning experience or display of prowess, what's the point of implementing A* yourself?

In my experience, knowing which prebuilt algorithms and data structures to reach for matters more than being able to implement them myself. Not saying there isn't value in learning or that it doesn't help flex the problem solving muscles, but in most software domains, I think that practically speaking there are more important skills to focus on after you've mastered the basics of time and space complexity.

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#86
post #7

I think you're overemphasizing Hickey's first thought. His second boils down to "be careful to recognize the actual game involved. Programming mastery has little to do with languages" To me it sounds like he's saying "understand the underlying patterns and techniques that make good programs in any language" not "stick with one, and only one, language until you know it inside and out".

Exactly this. Hickey, after all, wrote Clojure. So, he's not against learning new languages, but his point is precisely what you state.

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#87
post #84

Earlier quoted context omitted.

> (Half-life, Counter Strike, TF2, Left 4 Dead, Portal, DoTA2... it's actually hard to name them all). Actually, it's not that difficult. Of what you listed, only HL was original IP. Valve put a lot of work into digital distribution, and have pretty much owned the PC digital distribution market. With console and mobile gaming dwarfing the PC market, and big publishers like Ubisoft and EA getting into their own digita…

Speaking as someone in the game industry, Valve certainly has it's problems, but they aren't platform problems. PC is stronger this generation than it was last generation, I'm not sure about the numbers but I suspect that it is ahead of both consoles, and it might be ahead of both of them combined, and I'd expect this to only be get more true. Porting to PC is pretty much just porting the parts that interact with the…

Respectfully I disagree with most of what you're written, wrt to growth.

When I see my friends 3 year old daughter playing Geometry Dash on his phone, I know that the PC can't compete with that.

PC ports are still and after thought. Games use a lobby system instead of dedicated servers. Only a few companies (Valve being one of them) target the PC market first. Pretty much every other AAA publisher looks at the PC market as an after thought.

Don't get me wrong, I'm a die hard PC gamer.

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#89
You have to learn the big concepts in computing. These include low-level details like how a Von Neumann architecture works, memory and pointers, I/O, how the OS, network, and file system work, etc. But it also includes useful abstractions such as data structures and ADTs, algorithm efficiency, objects, functional programming and lambda calculus, design patterns, and big-picture questions of what kind of system should I be building in the first place. (Should I build one big monolith? Should I break it down into pieces? How should they communicate? and so forth)

This will necessarily require familiarity with a variety of languages and ways of thinking about code. When you find a particular style of building software that suits you well, you can invest a lot of time in becoming expert at building that kind of system, making it run fast, and making it clean and maintainable. But you will also have a deep well of knowledge to draw from because you've looked at the computing field from a variety of perspectives.

In other words, both Hickey and Norvig are right, to an extent.

Re: Ask HN: Thoughts on Rich Hickey's advice on becoming a better developer?

#90

You can't master something by switching games all the time, by definition. "... switching games all the time ..." is the key. What does "all the time" mean? Does it mean not dipping your toe into new waters? Of course not; exploration also deepens your understanding of where you currently are. Does it mean never changing your path? Of course not, but changes in direction should be done mindfully, not at the whim of t…

Yes. Learning new languages and libraries is helpful to a point, but learning all new languages and libraries is a distraction.
Post reply on HN