5 ms·
I suppose it also depends why you want to be a "good" developer and a "great" one. To me, developing software is largely a means to get to a goal. I enjoy it,
by windsurfer 17y ago
I suppose it also depends why you want to be a "good" developer and a "great" one.
To me, developing software is largely a means to get to a goal. I enjoy it, but only in the same way I enjoy cooking. I personally have no desire to "cook" in a factory for thousands of people. I only enjoy the creativity of creating meals, learning some cooking techniques, and of course eating it. The actual problem of 'how to create the meal' is not interesting in the same way when it scales up to thousands of orders.
In the same way, I personally have no desire to delve into creating search algorithms, complicated physics engines, or complex business logic. I would want to do the creative thinking to move those projects, but not the actual logic and development themselves.
- rbranson 17y agoRegarding cooking: You will never go much beyond a set of frustrating, memorized axioms unless you understand food science and chemistry. I feel as though it works the same way with programming.
- deleted 17y ago[deleted]
- evgen 17y agoYou don't need to know the details of a Maillard reaction to know how to saute. This is the difference between a visceral pursuit like cooking and an intellectual one like programming. Most of the people cooking great meals at well-respected restaurants have never read McGee (and probably don't read English very well at all) and would have no problem cooking a better meal than any recent CIA grad.
- dagw 17y agoI disagree. You need to know how food behaves, not why. You need to know how an onion will taste after different processes, not what molecular changes it's gone through. Equally being able to explain the maillard reaction or knowing what Myoglobin is won't help you cook a decent meal.
- andrewcooke 17y agohow do you separate the creative thinking from the logic? it's like being an architect but not caring how a building stands up. if you don't know whether there's an O(nlogn) solution then how do you know if your (creative) idea will scale? the idea that technical knowledge and creativity are separate is very restricting. it might seem like that at school when you're surrounded by idiots and the teacher has to cater to the lowest denominator, but to do good creative work in almost any field requires mastering the technical aspects.
- windsurfer 17y agoI would like to say that I understand Newtonian physics, but have difficulty creating a physics engine. I understand how to render a 3 dimensional environment on to a 2 dimensional screen, but I also have difficulty coding such functionality. Does this prevent me from creating a rich, 3D game? Not at all.
- andrewcooke 17y agoso you build on abstractions / tools created by others? another way of saying the same thing is to ask: why stop at algorithms? why not argue that a programmer needs to understand electronics, or the physics of semiconductors. i think that's a good point (and have voted you back up from zero :o) i do think i can make a different argument which makes a better case for maths, but i can also see a valid objection to that. i'll sketch it out anyway: abstractions / tools cannot make fundamental limitations go away; they can only hide them or present them in alternative ways. so at some point you still have to address limitations in your physics engine, or your renderer. if you refuse to understand the underlying maths then you are (1) very much at the mercy of the api / designer of the tool and (2) at a big disadvantage in looking for workarounds. the same idea more generally: maths (or logic; the two are closely related) is a very powerful language for dealing with complex systems. if you don't master that language then you are not going to be able to handle the same level of complexity as someone who can. the objection i see to that argument is that great art doesn't necessarily require breaking technical boundaries (it can even be motivated by constraints). so yes, i agree - you can make great art by using tools provided by people who understand the technicalities. i guess my only comeback to that is that the original title is "great developer" not "great artist"...
- nekopa 17y agoWanting to do the 'creative thinking' to move projects and ideas is the reason why I now find myself now teaching myself math and advanced math. I have ideas that I want to push through, and I will need people to help me with them, but I'm not going to be able to get the talent I need without being able to 'talk' to them in their language. Also it will help me to see and answer new problems that I am unable to now. This is especially relevant to me as most of the interesting ideas I have are regarding AI and machine learning. I am unable to teach myself from some great books and examples out there because, quite frankly, my math skills are non-existent. It is frustrating because I want to move forward, experiment further with these ideas, but can't do this using pure 'black-box' mentality. I need to understand whats in those black boxes so I can make my own.