You don't need to master an entire language to evaluate the best tool for the job. Selecting the technology you will develop your expertise in is an interesting game of strategy. I think an obscure, neglected, but widely used language is a good bet if you want steady employment. I would learn RPG and COBOL but there is plenty of work available in web development so I'll stick with advanced JavaScript and pick up more PHP.
I don't know about C/C++ because I am a web developer but I have an arsenal of tools to document my projects. First I create a data dictionary to document the database design. Then I add XML comments to my code in Visual Studio 2005 to get Intellisense and to support automated code documentation. Then I create a few class diagrams in Visual Studio 2005. I recently found a web site that can generate a chart from a CSS file. I compile all my documentation into a help file or a help collection that integrates into the MSDN Library.
If the project uses any web services I create test scripts and add a web page to my help file to consume the web service (requires a XML to JSON proxy to avoid cross domain request restrictions). If there is time I also create videos about the project using After Effects. Seriously, I do most of this because documentation is for your own benefit.
"Whether you're designing the grand architecture of a whole enterprise system, or just the innards of a helper function."
Well I'm not doing anything like that. I work as a web developer. In the workplace you only have to do practical things like CRUD (Create, Read, Update, Delete) operations on the database through a browser interface. The most innovative thing I do is parse text with regular expressions to automate edits.
Software engineers are brilliant but sometimes they go about things in a comical way. Once I found a document written by a software engineer of a grand scheme to design (more like engineer) my company's web site. It was amazingly technical but our actual web site looks like crap, was only meant to be a brochure web site, and has never been completed.
Web application security is bad because it is not easy enough. I've encrypted social security numbers in two databases after inheriting applications that made no attempt to protect that data but I had to waste hours documenting the procedure for the IT department because it is just too complicated.
I resent that "burger-flippers-turned-programmers" crack because I used to work at McDonalds before becoming a VBScript programmer (ASP web developer). I think colleges should design their courses to train workplace programmers who need to know the.NET Framework and C# or VB. All the higher math and academic languages like Eiffel and LISP should only be taught to overachievers who aspire to be programmer gurus (aka software engineers).
Regarding: don't expect to have others basing work on your code. Does that sort of project still even exist?
This is exactly what I am looking for! I want to develop in a language where you absolutely cannot find anyone to take over or work on my code. In other words, I want job security!
Last night I downloaded and installed Eiffle Studio 5.7 and wrote my first Hello World program in Eiffle. After careful consideration, I have decided to concentrate on developing my expertise using this programming language.
It is a losing proposition to base your expertise on a common programming language or commonplace technology. I think I've wasted my time, effort, and genuis on developing solutions only to see my work taken over by some less experienced and talented developers because the company "has the software" and doesn't feel they need my expertise. Frequently this has disasterous results and significantly impacts work efficiency but management clearly does not value technical expertise or experience.
You don't need to master an entire language to evaluate the best tool for the job. Selecting the technology you will develop your expertise in is an interesting game of strategy. I think an obscure, neglected, but widely used language is a good bet if you want steady employment. I would learn RPG and COBOL but there is plenty of work available in web development so I'll stick with advanced JavaScript and pick up more PHP.
I don't know about C/C++ because I am a web developer but I have an arsenal of tools to document my projects. First I create a data dictionary to document the database design. Then I add XML comments to my code in Visual Studio 2005 to get Intellisense and to support automated code documentation. Then I create a few class diagrams in Visual Studio 2005. I recently found a web site that can generate a chart from a CSS file. I compile all my documentation into a help file or a help collection that integrates into the MSDN Library. If the project uses any web services I create test scripts and add a web page to my help file to consume the web service (requires a XML to JSON proxy to avoid cross domain request restrictions). If there is time I also create videos about the project using After Effects. Seriously, I do most of this because documentation is for your own benefit.
"Whether you're designing the grand architecture of a whole enterprise system, or just the innards of a helper function." Well I'm not doing anything like that. I work as a web developer. In the workplace you only have to do practical things like CRUD (Create, Read, Update, Delete) operations on the database through a browser interface. The most innovative thing I do is parse text with regular expressions to automate edits. Software engineers are brilliant but sometimes they go about things in a comical way. Once I found a document written by a software engineer of a grand scheme to design (more like engineer) my company's web site. It was amazingly technical but our actual web site looks like crap, was only meant to be a brochure web site, and has never been completed. Web application security is bad because it is not easy enough. I've encrypted social security numbers in two databases after inheriting applications that made no attempt to protect that data but I had to waste hours documenting the procedure for the IT department because it is just too complicated.
I resent that "burger-flippers-turned-programmers" crack because I used to work at McDonalds before becoming a VBScript programmer (ASP web developer). I think colleges should design their courses to train workplace programmers who need to know the .NET Framework and C# or VB. All the higher math and academic languages like Eiffel and LISP should only be taught to overachievers who aspire to be programmer gurus (aka software engineers).
I don't make $29 an hour as a programmer and I doubt that fast food managers make that kind of money.
Isn't dreamhost run by trolls?
Regarding: don't expect to have others basing work on your code. Does that sort of project still even exist?
This is exactly what I am looking for! I want to develop in a language where you absolutely cannot find anyone to take over or work on my code. In other words, I want job security!
Last night I downloaded and installed Eiffle Studio 5.7 and wrote my first Hello World program in Eiffle. After careful consideration, I have decided to concentrate on developing my expertise using this programming language. It is a losing proposition to base your expertise on a common programming language or commonplace technology. I think I've wasted my time, effort, and genuis on developing solutions only to see my work taken over by some less experienced and talented developers because the company "has the software" and doesn't feel they need my expertise. Frequently this has disasterous results and significantly impacts work efficiency but management clearly does not value technical expertise or experience.