Page 2 of 2
Re: Struggling with Frameworks
Posted: Sat Nov 08, 2008 11:31 pm
by Luke
allspiritseve - you are right that it is possible to be a very good developer without ever have worked on a team, but I think what arborint (forgive me if I misinterpret) was trying to say is that working with other developers forces you into writing code in such a manner that other programmers can decipher it without a second look. It forces you to design a system rather than throw one together.
When you work in a group, you encounter problems you never had as a lone programmer. Problems such as when you write a function that makes perfect sense to you, but makes somebody else want to pull their hair out, or like when your coworker decides to download a version of your app and run it on his mac/safari application and he finds that it explodes. And these problems in turn make you a better programmer. They make your code cleaner, easier to read, better documented (whereas when working alone, its very unlikely that things will get documented properly), more portable, and just generally better.
EDIT:
Just to be perfectly clear: I am of the opinion that it is close to impossible to become an expert programmer by yourself
Re: Struggling with Frameworks
Posted: Sun Nov 09, 2008 6:46 am
by alex.barylski
I am of the opinion that it is close to impossible to become an expert programmer by yourself
I like Niels Bohr quote on being an expert. Technically it makes it impossible for anyone to ever be en expert as no one person can ever make all mistakes in any given field (except in trivial trades like basket weaving -- and I say that as someone who has never weaved a basket in his life so what do I know about basket weaving?).
Pilots have a saying I have always admired: Learn from others mistakes because you won't live long enough to make them all yourself.
In that industry it's very true.
Do not get me wrong...I see unlimited value and potential in working with others and especially learning from others mistakes (it's why I visit so many forums so frequently -- I learn a ton from just sitting back and listening to conversations). However for anyone to claim that loners do not become excellent programmers, is in my experience simply not the truth.
The best computer geeks I have ever known were stay at home types who avoided confrontation or collaboration at all costs because they prefered the comfort of a dark room, 2L coke and wide computer screen to human contact.
Obsessive behavior is not healthy on a social level (frequently these people are faux pas - spelling?) but true genius is rarely "normal".
Re: Struggling with Frameworks
Posted: Sun Nov 09, 2008 3:30 pm
by Christopher
allspiritseve wrote:I've never collaborated with other developers on a project, so I can't honestly refute this, but I feel like its not quite true. Sure, working with other developers will get you on the right track much quicker, but I'm a big fan of agile development and the "genius" of programming coming from building something simple that works and then refactoring it until it works well.
I think almost all solo programmers believe exactly as you do. The problem is that you can't refute it because you don't really know what "works well" means. Your quality scale goes from "my good" to "my good" with very little to base it against. You may think you are doing things quicker or better or well, but the reality is that if you stepped into a professional PHP shop tomorrow you would realize the quality of your own software is not that good. I know from first hand experience that mine is not very good.
allspiritseve wrote:The genius comes from the process though, and not from the developer... most of us won't have great revolutionary ideas off the top of our heads, but I think good ideas, best practices even, can evolve from a diligent agile development process. I may be wrong though.
I think one of the big insights in Agile is that you can't have a diligent development process with only one person. You can even have it with only programmers. It involves getting programmers away from their keyboards to interact and design. It involves integrating a diverse team as you spiral through solving the problem.
Re: Struggling with Frameworks
Posted: Sun Nov 09, 2008 5:17 pm
by Luke
I don't think I've ever discussed this topic with you Chris. I absolutely agree with you.
Re: Struggling with Frameworks
Posted: Sun Nov 09, 2008 9:08 pm
by allspiritseve
arborint wrote:I think one of the big insights in Agile is that you can't have a diligent development process with only one person. You can even have it with only programmers. It involves getting programmers away from their keyboards to interact and design. It involves integrating a diverse team as you spiral through solving the problem.
You may be right. As I said, I don't have the experience to say otherwise.
On a related note: I would like to get a involved with Skeleton, at least a little bit... I've been browsing around the forum, but haven't found a place to jump in yet. I think probably beginning of December or so, I'll be off for Christmas break and can spend a little more time coding.
Re: Struggling with Frameworks
Posted: Mon Nov 10, 2008 3:01 am
by Christopher
allspiritseve wrote:You may be right. As I said, I don't have the experience to say otherwise.
I have found that working with others can make the design experience very rewarding. If the individual programmers can be honest about the quirky things they want, be accepting of the quirky things others want, but mostly be open to letting the requirements drive the design -- then it can be a pretty fun experience. Occasionally frustrating and requiring patience, but I think superior to programming alone.
allspiritseve wrote:On a related note: I would like to get a involved with Skeleton, at least a little bit... I've been browsing around the forum, but haven't found a place to jump in yet. I think probably beginning of December or so, I'll be off for Christmas break and can spend a little more time coding.
Skeleton continues to be an experiment to see if we can create a framework that is lightweight and flexible enough that many different kinds of programmers can use it in their preferred style. Sort of a multi-stack framework. The problem, of course, is that the design of such a thing is very difficult. It is not there yet, so we are always looking for people interested in slogging through design challenges. Hopefully in December you can tackle something you are interested in. I know you have recently been thinking about Templates and Views. That is an area that needs some work...