Despite worries of how healthy the KFC bowls are, I love them. I mean how can you not? As I sit here leaning back sipping a mountain dew, just the though of KFC brings a smile to my face. If you haven't tried one yet, it's nothing earth shattering but it is still really really good.
My only complaint would be how small it is, I need two to fill me up.
Buying a car sucks! All the excitement that should come with a new car purchase evaporates as you begin to wonder if you got a good deal, how ethical were treated or you acted through the whole process. We're ( my wife and I) buying a car, and I keep get the feeling from the car dealer that I'm the bad guy. That I'm stealing food off their kids' plates. That I've gotten the best deal in town, neigh, the midwest and quite possibly the United States. I don't buy it, but really it leaves one with quite a bitter taste in their mouth. I just want our new car and to be done with it all.
As I'm writing this I can't help but think of the corollaries that exist between car dealers and software. Are we going to be thought of in the same negative manner and distrust that most people harbor towards car salesmen in 10 years? Look at the similarities. People rarely know what a car costs or how the car works. Same with software. The customer is trusting the software company that the product will do what it needs and that the cost is reasonable. Car salesmen try to sell you features you don't need. The same can be said of software. And the biggest similarity...the sour taste most people are left with after the whole process is over with
Just give me my car (software) and let us go our separate ways until I need a new car (feature/software).
I have two friends of interest for this post. Friend #1 has suffered some recent setbacks in the computer world. He's a good guy and graduated with a degree in MIS. He's not particulary strong in any area of computing and is looking to get settled in with .NET and web programming. Friend #2 isn't a computer guy but is very tech saavy. He can pick things up quickly and has no fear when it comes to technology and figuring things out. He's fiddled with action script (.as) files to change behavior of a flash system and has built html pages ect. #2 has expressed interest in learning .NET to further his career and change directions of his career path. The question both are asking is, "Where do I start?" and "What do I need to know?"
While these two questions are loaded they do represent someone who's eager to learn and do things correctly. Despite popular programs that do it all for you with drag-and-drop ease (ie. VS.NET 2005, VS.NET Express, Visual Web Developer, FrontPage, ect.) I tend to think the world doesn't need more of these kinds of programmers. The marketing drive that says anyone can do web application development is littering our job market with so-so people who freak out at a the sight of a code behind or, oh no, HTML, but I digress. Web developers are asked to know a lot. A lot! Just this morning I spoke with a DBA who's "specializes" solely in SQL Server. He was trying to diagnose a connectivity issue I was having. While I claim to be no expert at SQL, I was pointing him to things to try. Though the specializations exist out there, I think many of us, through personal drive or job requirements, know a lot more. For example the last six months my I use regularly for my job the following:
- C# within the ASP.NET framework
- HTML
- CSS (working to go to no-table layouts)
- JavaScript
- Flash with heavy action scripting
- T-SQL and SQL Server
The items could easily, as is in some cases, be someone's full-time job. For example, look at the top item, C#. To try to know C# means knowing security, OO design, design patterns, and a host of other things. Within C# you can write controls, web sites, windows forms application, console application. Each speciality could easily be someone's profession, all under the umbrella of C# developer.
So, back to #1 and #2. Where do I point them? Where should they start? In my view you can't have these (excluding flash) without the others and call yourself a skilled web application developer. The task to learn all of those things is duanting. I would ask all of your advice on where to point #1 and #2. Though they may be different for each, I tend to think they need to start in the same place. With so many ideas and most colleges being out of date with technology, where does one go for rock solid advice and training.
I myself have had to force myself more and more to get back to coding as I've been inundated with new technologies and/or ideas. I've been playing with Active Record lately and NHibernate. Those are tools though that ultimately a programmer uses. If I'm not programming, I'm just building my toolset but still have no skills. It's akin to me in my garage with with tools to overhaul my engine. I have tools, a lift, some new piston rings I want to install but when it comes down to it I don't know how to rebuild an engine. I can have all the tools in the world, but unless I have the understanding of how to rebuild an engine I will fail.
I want to point them, and as I'm writing this, myself, back to basics. Tools change. Yeah they're great, but the thing they do or service they provide needs to be verified by someone who has an understanding of what the tool is doing. If I use a code generation tool, I can't just trust that the output is what I need. I need to have an understanding of code to verify that the generated code is actually a good implementation of said code. Just last night, a friend who works in the avionics industry was talking about Rational Rose and how he has to go in there modify the generated code a lot because it isn't quite right.
All of this is simply to point out that I don't want to point #1 and #2 to tools. Good developers are good developers regardless of tools. A tool does not make a developer great. So what does?
So what's top priority to learn? Thoughts? Responses? Am I correct in my assertion above about tools?
P.S. I know nothing of cars. So, all the rebuilding engine jargon was something I just pulled out of my head.
< Rant >
I'm currently exploring/learning a number new "ideas" (ActiveRecord, Castle, MonoRail). I'm VERY discouraged by the thoroughness of the tutorials that exist out there for some of these very detailed topics. There are some good great tutorials out there. Conversely, there seem to be many more that assume the reader knows more than they probably do in actuality. This assumption on the part of the author ultimately lowers the quality of the tutorial. By very definition a tutorial is learning mechanism. I've seen one too many tutorials that give code snippets but no reason to why things are the way they are, where that code snippet should go (sometimes it doesn't matter, but sometimes it does), or make huge leaps that the reader would have no way to follow. If you're writing a tutorial, assume the reader knows nothing. Put yourself in the shoes of the reader. Does everything make sense? Flow well? Do you have a better understanding of the topic after the tutorial? If not go back and rewrite the offending areas. As a rule of thumb, always assume the reader knows less than you think they do. In other words, error on the side of over-describing a situation rather than under-describing.
< /Rant >