thinking of it, I've also seen this as a typical difference between fresh CS graduates and those who have been programming for 10+ years. The latter would sometime take way longer to come up with clever math-oriented algorythms than the first, because the graduate has been trained for it and still has it fresh in memory, but experienced programmer would make up for that by being able to use the algorithms in all proper 'best practice' ways one can think of. Whereas the graduate would just slam it in somewhere and call it a day even though there are now x more dependencies and whatnot, you get the picture.
Organizing complexity is the most important skill in software development
11–20 of 286 posts
Re: Organizing complexity is the most important skill in software development
#12Organization is the hardest part for me personally in getting better as a developer. How to build a structure that is easy to change and extend. Any tips where to find good books or online sources?
Re: Organizing complexity is the most important skill in software development
#13Organization is the hardest part for me personally in getting better as a developer. How to build a structure that is easy to change and extend. Any tips where to find good books or online sources?
Re: Organizing complexity is the most important skill in software development
#14Re: Organizing complexity is the most important skill in software development
#15This can be reduced to: Do Not Program Yourself into a Corner
Re: Organizing complexity is the most important skill in software development
#16Re: Organizing complexity is the most important skill in software development
#17Re: Organizing complexity is the most important skill in software development
#18This is incredibly true. I once turned 60kLoC of classic ASP in VBScript into about 20kLoC of python/django including templates. And added a bunch of features that would have been impossible on the old code-base. It turned the job from hellish (features were impossible to add) to very nearly boring (there wasn't much to do anymore). So with this newfound freedom I built some machines to automate the data entry and on…
There's no way to interview for what you're looking for, but compilers seem to require both great organizational skills and some algorithmic chops. there's enough complexity you can't hide lack of one side or the other.
Anyway, asking about building and enhancing a compiler seems like one of the ways to get insight about how people grow code. Every program is a seed. Is this the kind of guy that will end up with a mighty oak tree, or kudzu in 10 years?
Re: Organizing complexity is the most important skill in software development
#19Re: Organizing complexity is the most important skill in software development
#20Organization is the hardest part for me personally in getting better as a developer. How to build a structure that is easy to change and extend. Any tips where to find good books or online sources?
You can learn how to create clean, readable methods and classes with a book (1).
You can learn how to refactor old methods and classes with a book (2).
You can learn how to organize a small team to allow fast iterations with many books.
But building a project lasting more than a few months with constant changes in the requirements, new developers every month, new SDKs and frameworks every 3 days, without the code rotting to death and everything going out of control is a different story, at least for me.
I guess you just learn by watching old guys do what they do after decades of experience...unless someone has a magic book for me?
(1) http://www.amazon.com/Clean-Code-Handbook-Software-Craftsman...
(2) http://www.amazon.com/Refactoring-Improving-Existing-Addison...