Live data from Hacker News

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

news.ycombinator.com

11–20 of 114 posts

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

#11
No matter how deep you dive into Python / Django, you will not understand what's possible with Prolog. I think what Hickey is getting at is that you should be aware of what computers are capable of, not just Python / Django.

Re: parallelism, as a useful and simple exercise, try writing a load tester in Python and then try it in Go (simple program that hits yoursite.com as hard as your network connection will allow).

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

#12
post #8

I think you have to balance the two and not put all your eggs in the same basket. Choose one or two language and get mastery from these, but also look for other languages to learn from. That way, you'll have a balanced portfolio.

Also, maybe look at Valve's "T-shaped person". That can be a useful guideline.

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

#14
post #3

I don't think the two are mutually exclusive. You need both variety and focus to excel. The key is to know when to shift gear between the two modes. Why don't you just do whatever that you find fun and challenging? That's usually the best indicator of what you should do.

Yes. Donald Knuth sometimes quotes Huxley - a good education is learning something about everything and everything about something. There should be a center to studies or you're all over the place, but having extreme tunnel vision is not helpful either.

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

#15
There's no point learning 10 new languages if what you can do with it doesnt go far for example from a normal CRUD application/Hello World application. Just set appropriate goals. In the end what you will be very good at is creating CRUD applications. Be objective in what you will be learning. For example, being a backend developer, you can learn new tech that further augment your skills.

For example use Ruby/Rails on the backend or a web app, learn Objective-c to create an app that gets data from that RoR app, and maybe use go to create an API for a section that is performance heavy, etc... So that everything builds up. You need to establish goals.

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

#16
I don't see these contradicting each other. I'm also a huge Rich Hickey fan (my main language is Clojure at the moment), and he certainly has emphasized the benefits of a broad base of knowledge and experience in various talks.

But here he is saying that you can't only explore the breadth of programming, you also have to dive deep at some point and get the experience of mastery in something. I can't see either one disagreeing with the statement that you want to have some breadth of experience first but that mastery only comes afterwards from focus.

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

#17
I think what he's getting at is that to be a master programmer, you need to be master of something - and it doesn't really matter which language.

If you are thinking of learning a new language, ask yourself why. Is it because it's going to make you a better programmer? Is it because all the cool kids down at the Club House are talking about it? Is it because you're stuck with a problem in a language, and instead of overcoming that problem, you're just jumping to a new language hoping that language won't have any problems?

When you've really mastered one language, mastering a second one is much easier. Whereas if you learn the basics of one language, and then the basics of another, ad infinitum, you never really master anything.

Compare to learning to play musical instruments. Who is the better musician - somebody that can play Chopsticks on 20 instruments, or somebody that can play Brahams but only on the piano? The first has a lot more to learn than the second.

Finally, it's better to master a domain than a programming language. In the long run, it's more rewarding (personally and financially) to be the world's leading expert in, say, security in C++ than it is to be the world's 10,000th best developer in Ruby, Clojure, Go, etc.

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

#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 important for success at Valve. We often have to pass on people who are very strong generalists without expertise, or vice versa. An expert who is too narrow has difficulty collaborating. A generalist who doesn’t go deep enough in a single area ends up on the margins, not really contributing as an individual."

[0] - http://www.valvesoftware.com/company/Valve_Handbook_LowRes.p... page 46

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

#19
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".

Yes exactly that. In the same way you need a camera to be a photographer, and you need to be competent in its operation, but the endless search for a better camera is not what photography is about.
Post reply on HN