I agree. Best way to learn a technology is to actually use it for some greater, useful purpose. Find a project for yourself, set a goal on what you want to accomplish (if the goal(s) haven't been set for you) and then do it with whatever technologies you think will (or assigned) accomplish the goal.
My financial data is handled by my accountant, my investing firms or whatever type of data being handled just like all my email. My whole house could burn down tonight and I wouldn't be set back in terms of data loss. It's one less thing I have to worry about. After probably a 100+ OS installs on dozen computers over the last two decades, I've looked for ways to not have to worry about what might happen to be on my computers that's important. Physical data possession has become a rather arcane, out-dated idea, IMO, especially nowadays with readily available broadband and ubiquitous Internet. I'll pay for the convenience of not having to worry about where my possessions are located and what I'll do if they get "lost".
What I want from a music download is for them to track what songs I have licensed/paid for and store that on their servers so I don't have to worry about keeping track of my song collection. I don't want to have to worry about whether I have a backup copy of 300 songs when my harddrive goes on the fritz and I don't want to have to spend a weekend figuring out what I need to save off and what can be erased when I decide to upgrade machines. I don't want to have to worry about how many times I've burned a song to CD. I don't EVER want to have to worry about having to re-purchase a song because I've lost my copy.
That's when I'll get involved in a music download service.
Kids have moved beyond the computer as a tool.
on
Do Kids Still Program?
·
· Score: 5, Insightful
I'm actually amazed at what kids are doing with computers today and at such a young age.
Kids are instant messaging and emailing their friends, creating articles on MySpace, creating nifty Flash movies, modding their favorite fps game and distributing their effort over the Internet for 1000s of others to enjoy. They are actually using computers for a purpose rather than as quirky, nerdy obsession
This is WAY more productive and creative than what my friends and I were doing with our computers in the 80s. Kids are not only creating (and hopefully learning along the way) but they are connecting with LOTS of other people in the process!
Perhaps us oldbies view the seemingly lack of interest in actually programming a computer as a problem because we come from a background where the computer was more about what it could potentially do for us rather than what it could actually do at the time. Programming was a necessity to fill that gap, often in relative seclusion and obscurity.
I'm sure our dads say the same thing about us young whipper-snappers not knowing the first thing about the cars we drive and nod knowingly to each other about what a tragedy that is.
Well said, kind of what I was thinking. People getting uptight at what they see as charity bashing by the evil MS/Gates clan are missing the reality of what dire shape the target group of people are in that this laptop is targeting. It would be akin to giving a homeless man on the street who hasn't eaten for days a free, yearly dialup Internet account.
Server hosting is big business which in many ways is protected by the throttled, meager upload speeds most US customers get with their 40$ broadband connection. Imagine what would happen to ISPs across the country if every consumer had direct, cheap access to 30mbit uploads like Japan or Korean consumers enjoy. Why bother spending monthly costs paying your ISP to manage or co-locate your web servers or other services when you could just hook it up to your home network.
20 years ago I remember taking a high school computer class. The teacher showed us, almost reverently, the 300 baud modem hooked up to one of the TRS-80 computers. I can still remember thinking how cool and impressive that was. None of the students were allowed to come near that "powerful" equipment.
Today, I have a 5mbit download cable modem and just finished a work order to have a dedicated, full T1 put into my house for my new company.
Amazing how times have changed. What hasn't changed is how cool it all still is.
They could (if they haven't already) hook up actors with mocap suits or whatever devices needed to translate live actor movements instantly onto the 3D avatars on the virtual stage to really speed things up.
Email, operating systems; these are tools. People don't need or want 30 kinds of hammers to do basically the same job nor do they really want to have to expend a lot of effort deciding which hammer to use.
Virtual worlds are entertainment. People want their entertainment to be unique and diverse with many choices and options. Suggesting virtual worlds will converge based on what happened to tools is like saying eventually there will be one generic movie that everyone will watch and enjoy rather than the 100s of different movies that come out each year.
Most likely, some of the common tools and systems to build these virtual worlds will converge and standardize just like every movie generally uses the same video and sound equipment to produce them and sometimes even the same plot structure; but, they will still remain inherently unique.
Not disagreeing that there were as many crappy games "back in the day" as there are today.
The difference is there were comparatively more genuinely fun games "back in the day" that really stood out as awesome accomplishments of entertainment than there are today. Most of today's game hits are graphical updates to past successes.
Sturgeon's Law certainly holds true that both then and now produce a lot of crappy games. The law says nothing about how great the good ones are.
Certainly it is hard to objectively evaluate the past and separate nostalgia from reality.
With that said, game graphics have advanced immensely in the past 20 years while game play has not. The problem lies in how these games are developed. Nearly 75% of a game budget goes towards graphics and technology and processes to support the graphics. The leftover goes towards rushing in content at the last minute and quickly hacking together gameplay to utilize all the coolio graphics.
Yes, there were many, many disappointing and crappy games "back in the day"; but, there were also many games that were completely mind blowing in how cool and inventive they were. Today, we have lots and lots of disappointing games sprinkled with a few games that are entertaining but nothing more than graphically updated re-hashes of past successes. Rarely do we actually see anything that totally surprises the masses with totally new, inventive and fun gameplay. We've seen a few such as Dance, Dance Revolution or The Sims or Guitar Hero.
If only there was as easy a way to measure game playability as these is to measure graphic differences.
This, I believe, hits at the root as to why we get so many multi-million dollar me-too efforts from big companies. The decision makers don't play games yet they are they ones that make the decisions on what gets created and published and what doesn't. These people don't understand gameplay because they haven't lived gaming; they have no connection with it. But they can see better graphics in the 5 minutes they spend in a board meeting skimming over game proposals.
Companies are relying more and more on awesome graphics to make up for a lack of innovative and fun gameplay. Most games 20yrs ago were more fun than new games today.
I've been developing a fairly complex multimedia application that runs on Windows, Mac OS X and Linux. Using the executable built using VC7 on my Windows XP machine, I am able to run that binary on an old Win98 machine that was built 7 years ago without a single change or recompile. When I get a machine loaded with Vista, I'm confident that exact same binary will also execute without issue.
That's pretty amazing when you think about it. And if I really wanted my applicaiton to run on Windows 95, I could simply recompile using VC6 and have one binary running on every Windows version from Win95 through Vista.
Compare that to Linux where I'm lucky to even get the binary from one distribution to work on the previous version of the same distribution much less a version of the same distribution from 7 years ago. And forget trying to get that binary to work on a different Linux distribution.
One caveat I would put forth is that projects that don't start with the philosophy of "The fastest way through a project is the right way" often get the incorrect idea that this is simply idealogical hooey. In order to really see this philosophy play out correctly you have to start with this as a core philosophy and not towards the end of the project when there simply isn't enough time to repair all the damage.
I've worked for 12 years in the computer industry, 8 of which were involved in the gaming sector. The biggest factor, I believe, to project failure has more to do with vision, passion and committment; the lack of proper process, tools and communication are more symptons resulting from the lack of vision, passion and committment rather than incompetence or ignorance of such tools and process.
The success of open source projects certainly has a lot to do with their committment to tools, process and communication. But more importantly, open source projects started as someone's dream. They had a vision of what it was they wanted to do and they were committed wholeheartedly to fullfilling that dream. When you have a strong vision of what your dream is, you will do what is best to fullfill that dream. Suddenly, meetings, discussions and tedious documentation and process are merely tools and steps towards accomplishing that dream. The people becoming involved with the open source project are there not because they have to fill time for a paycheck but because they too believe in the dream.
Contrast that with what most corporate projects are. Most corporate projects are forced on the employees with little discussion. The employees are mostly drones to carry out the tasks and orders of someone else's idea. Even worse is when you realize the people calling the shots, the ones that SHOULD be most passionate and have the strongest vision of the project don't really care or understand it since they are usually their to fill time for a paycheck just like the rest of of the company. Now all of a sudden tasks like communication, meetings and process become a real drag because you are no longer working towards a dream of yours, but, rather carrying out orders for someone else who most likely doesn't care much about the project either but still needs to look good to his/her boss.
There are so many criteria you have to consider that are so situational specific that it would be near impossible to write down the complete guideline. But I think there are a few solid guidelines to start with or consider.
1. Know what goals you have to meet. The eventual success or failure of a software project has more to do with having a strong vision of what it is you need to accomplish at the beginning regardless of platform or tool choices made before and during its development.
2. Be wary of selecting anything because it's cool. Many engineers, I think, fall into the trap of buying into cool toys rather than selecting mission critical tools.
3. Pick frameworks with a maturity directly proportional to the criticalness of the application you need to develop. If you are building something that is to be the the cornerstone of a company, you should pick well established frameworks that have a proven history and proven credibility to provide effective features. Conversely, feel free to experiment with less proven frameworks for applications that can afford to be less robust. A balance between sticking with tradition and building for the future does have to be taken into consideration.
4. Identify the top 3 features your application has to deliver and ensure your chosen framework excels at those features. Bells and whistles and future expansion are nice but make sure you take care of what's critical first before comparing extra features. This will help focus your evaluation and not get side-tracked by all the cool stuff a given framework might provide.
5. Experiment with possible options. There is no reason to select a framework based on paper analysis. Try as much to get your own hands-on experience.
6. If possible, interview other people who have used the framework in real applications. Get the opinions of people who have actually used your options in the real world. Don't let tech demos be your only guide.
I am a parent of two boys (8yr and 13yr respectively). My philosophy raising my kids has never been to hide things from them as a means to "protect them". I don't really buy into movie or video game ratings. Hiding things from your kids rather than teaching them to experiment, learn and think for themselves based on their personal experiences is doing them a disservice. It's the parenting equivalent of "security through obscurity" and in the long run is not security / parenting at all. Certainly, parents must not expose their kids to things they simply aren't ready to handle. I'm not handing the keys to my car to my 8yr old any time soon.
Parenting is about involvement; about giving your kids a safe space to learn, both from their successes as well as their mistakes. Hiding things from your kids is not involvement. Discussing topics with your kids is parenting. Allowing your kids the freedom to experience life and make their own choices and live with the consequences as a learning experience for future situations is what parenting is about. Simply safeguarding your kids from everything that might be potentially damaging is only setting the kids up for a future shock that will have far more dire outcomes than what they could have learned at home making small mistakes with the safety net of their parents.
My kids have been playing and using the computer since each were 5yrs old. My oldest learned his alphabet playing Quake because I refused to show him where the letters were on the keyboard nor would write down any of the commands but would simply spell them out and require him to figure it out. It was great motivation for him and a great learning experience. Yeah, the end result... shooting other people... wasn't exactly what I would have liked to see him doing with his time but I worked with him not against him.
Both of my sons have learned the value of being able to read and write while playing games such as DAoC, UO, WoW, Halo, Unreal despite not being that thrilled with such subjects in school. Both, I believe have learned the value and importance of communication. Spelling is not just that boring thing your teachers make you do at school. It's how you communicate with your fellow players online. Without the computer and the ability to play and interact online, I doubt either would have as much appreciation for reading and writing.
So, IMO, expose your kids to technology as soon as you can while your kids still listen to you and have the umbrella of the home to provide them a place to experiment with life. Stay involved with your kids, make them think on their own. I think the worst thing you could do is protect them by hiding things from them and pretend such things don't exist.
I agree. Best way to learn a technology is to actually use it for some greater, useful purpose. Find a project for yourself, set a goal on what you want to accomplish (if the goal(s) haven't been set for you) and then do it with whatever technologies you think will (or assigned) accomplish the goal.
My financial data is handled by my accountant, my investing firms or whatever type of data being handled just like all my email. My whole house could burn down tonight and I wouldn't be set back in terms of data loss. It's one less thing I have to worry about. After probably a 100+ OS installs on dozen computers over the last two decades, I've looked for ways to not have to worry about what might happen to be on my computers that's important. Physical data possession has become a rather arcane, out-dated idea, IMO, especially nowadays with readily available broadband and ubiquitous Internet. I'll pay for the convenience of not having to worry about where my possessions are located and what I'll do if they get "lost".
What I want from a music download is for them to track what songs I have licensed/paid for and store that on their servers so I don't have to worry about keeping track of my song collection. I don't want to have to worry about whether I have a backup copy of 300 songs when my harddrive goes on the fritz and I don't want to have to spend a weekend figuring out what I need to save off and what can be erased when I decide to upgrade machines. I don't want to have to worry about how many times I've burned a song to CD. I don't EVER want to have to worry about having to re-purchase a song because I've lost my copy.
That's when I'll get involved in a music download service.
I'm actually amazed at what kids are doing with computers today and at such a young age.
Kids are instant messaging and emailing their friends, creating articles on MySpace, creating nifty Flash movies, modding their favorite fps game and distributing their effort over the Internet for 1000s of others to enjoy. They are actually using computers for a purpose rather than as quirky, nerdy obsession
This is WAY more productive and creative than what my friends and I were doing with our computers in the 80s. Kids are not only creating (and hopefully learning along the way) but they are connecting with LOTS of other people in the process!
Perhaps us oldbies view the seemingly lack of interest in actually programming a computer as a problem because we come from a background where the computer was more about what it could potentially do for us rather than what it could actually do at the time. Programming was a necessity to fill that gap, often in relative seclusion and obscurity.
I'm sure our dads say the same thing about us young whipper-snappers not knowing the first thing about the cars we drive and nod knowingly to each other about what a tragedy that is.
Well said, kind of what I was thinking. People getting uptight at what they see as charity bashing by the evil MS/Gates clan are missing the reality of what dire shape the target group of people are in that this laptop is targeting. It would be akin to giving a homeless man on the street who hasn't eaten for days a free, yearly dialup Internet account.
Server hosting is big business which in many ways is protected by the throttled, meager upload speeds most US customers get with their 40$ broadband connection. Imagine what would happen to ISPs across the country if every consumer had direct, cheap access to 30mbit uploads like Japan or Korean consumers enjoy. Why bother spending monthly costs paying your ISP to manage or co-locate your web servers or other services when you could just hook it up to your home network.
20 years ago I remember taking a high school computer class. The teacher showed us, almost reverently, the 300 baud modem hooked up to one of the TRS-80 computers. I can still remember thinking how cool and impressive that was. None of the students were allowed to come near that "powerful" equipment.
Today, I have a 5mbit download cable modem and just finished a work order to have a dedicated, full T1 put into my house for my new company.
Amazing how times have changed. What hasn't changed is how cool it all still is.
They could (if they haven't already) hook up actors with mocap suits or whatever devices needed to translate live actor movements instantly onto the 3D avatars on the virtual stage to really speed things up.
Email, operating systems; these are tools. People don't need or want 30 kinds of hammers to do basically the same job nor do they really want to have to expend a lot of effort deciding which hammer to use.
Virtual worlds are entertainment. People want their entertainment to be unique and diverse with many choices and options. Suggesting virtual worlds will converge based on what happened to tools is like saying eventually there will be one generic movie that everyone will watch and enjoy rather than the 100s of different movies that come out each year.
Most likely, some of the common tools and systems to build these virtual worlds will converge and standardize just like every movie generally uses the same video and sound equipment to produce them and sometimes even the same plot structure; but, they will still remain inherently unique.
Not disagreeing that there were as many crappy games "back in the day" as there are today.
The difference is there were comparatively more genuinely fun games "back in the day" that really stood out as awesome accomplishments of entertainment than there are today. Most of today's game hits are graphical updates to past successes.
Sturgeon's Law certainly holds true that both then and now produce a lot of crappy games. The law says nothing about how great the good ones are.
Certainly it is hard to objectively evaluate the past and separate nostalgia from reality.
With that said, game graphics have advanced immensely in the past 20 years while game play has not. The problem lies in how these games are developed. Nearly 75% of a game budget goes towards graphics and technology and processes to support the graphics. The leftover goes towards rushing in content at the last minute and quickly hacking together gameplay to utilize all the coolio graphics.
Yes, there were many, many disappointing and crappy games "back in the day"; but, there were also many games that were completely mind blowing in how cool and inventive they were. Today, we have lots and lots of disappointing games sprinkled with a few games that are entertaining but nothing more than graphically updated re-hashes of past successes. Rarely do we actually see anything that totally surprises the masses with totally new, inventive and fun gameplay. We've seen a few such as Dance, Dance Revolution or The Sims or Guitar Hero.
If only there was as easy a way to measure game playability as these is to measure graphic differences.
This, I believe, hits at the root as to why we get so many multi-million dollar me-too efforts from big companies. The decision makers don't play games yet they are they ones that make the decisions on what gets created and published and what doesn't. These people don't understand gameplay because they haven't lived gaming; they have no connection with it. But they can see better graphics in the 5 minutes they spend in a board meeting skimming over game proposals.
Companies are relying more and more on awesome graphics to make up for a lack of innovative and fun gameplay. Most games 20yrs ago were more fun than new games today.
I've been developing a fairly complex multimedia application that runs on Windows, Mac OS X and Linux. Using the executable built using VC7 on my Windows XP machine, I am able to run that binary on an old Win98 machine that was built 7 years ago without a single change or recompile. When I get a machine loaded with Vista, I'm confident that exact same binary will also execute without issue.
That's pretty amazing when you think about it. And if I really wanted my applicaiton to run on Windows 95, I could simply recompile using VC6 and have one binary running on every Windows version from Win95 through Vista.
Compare that to Linux where I'm lucky to even get the binary from one distribution to work on the previous version of the same distribution much less a version of the same distribution from 7 years ago. And forget trying to get that binary to work on a different Linux distribution.
One caveat I would put forth is that projects that don't start with the philosophy of "The fastest way through a project is the right way" often get the incorrect idea that this is simply idealogical hooey. In order to really see this philosophy play out correctly you have to start with this as a core philosophy and not towards the end of the project when there simply isn't enough time to repair all the damage.
I've worked for 12 years in the computer industry, 8 of which were involved in the gaming sector. The biggest factor, I believe, to project failure has more to do with vision, passion and committment; the lack of proper process, tools and communication are more symptons resulting from the lack of vision, passion and committment rather than incompetence or ignorance of such tools and process.
The success of open source projects certainly has a lot to do with their committment to tools, process and communication. But more importantly, open source projects started as someone's dream. They had a vision of what it was they wanted to do and they were committed wholeheartedly to fullfilling that dream. When you have a strong vision of what your dream is, you will do what is best to fullfill that dream. Suddenly, meetings, discussions and tedious documentation and process are merely tools and steps towards accomplishing that dream. The people becoming involved with the open source project are there not because they have to fill time for a paycheck but because they too believe in the dream.
Contrast that with what most corporate projects are. Most corporate projects are forced on the employees with little discussion. The employees are mostly drones to carry out the tasks and orders of someone else's idea. Even worse is when you realize the people calling the shots, the ones that SHOULD be most passionate and have the strongest vision of the project don't really care or understand it since they are usually their to fill time for a paycheck just like the rest of of the company. Now all of a sudden tasks like communication, meetings and process become a real drag because you are no longer working towards a dream of yours, but, rather carrying out orders for someone else who most likely doesn't care much about the project either but still needs to look good to his/her boss.
Well said, very much what I was thinking.
I agree. As simple as can be while meeting one's needs.
There are so many criteria you have to consider that are so situational specific that it would be near impossible to write down the complete guideline. But I think there are a few solid guidelines to start with or consider.
1. Know what goals you have to meet. The eventual success or failure of a software project has more to do with having a strong vision of what it is you need to accomplish at the beginning regardless of platform or tool choices made before and during its development.
2. Be wary of selecting anything because it's cool. Many engineers, I think, fall into the trap of buying into cool toys rather than selecting mission critical tools.
3. Pick frameworks with a maturity directly proportional to the criticalness of the application you need to develop. If you are building something that is to be the the cornerstone of a company, you should pick well established frameworks that have a proven history and proven credibility to provide effective features. Conversely, feel free to experiment with less proven frameworks for applications that can afford to be less robust. A balance between sticking with tradition and building for the future does have to be taken into consideration.
4. Identify the top 3 features your application has to deliver and ensure your chosen framework excels at those features. Bells and whistles and future expansion are nice but make sure you take care of what's critical first before comparing extra features. This will help focus your evaluation and not get side-tracked by all the cool stuff a given framework might provide.
5. Experiment with possible options. There is no reason to select a framework based on paper analysis. Try as much to get your own hands-on experience.
6. If possible, interview other people who have used the framework in real applications. Get the opinions of people who have actually used your options in the real world. Don't let tech demos be your only guide.
I am a parent of two boys (8yr and 13yr respectively). My philosophy raising my kids has never been to hide things from them as a means to "protect them". I don't really buy into movie or video game ratings. Hiding things from your kids rather than teaching them to experiment, learn and think for themselves based on their personal experiences is doing them a disservice. It's the parenting equivalent of "security through obscurity" and in the long run is not security / parenting at all. Certainly, parents must not expose their kids to things they simply aren't ready to handle. I'm not handing the keys to my car to my 8yr old any time soon.
Parenting is about involvement; about giving your kids a safe space to learn, both from their successes as well as their mistakes. Hiding things from your kids is not involvement. Discussing topics with your kids is parenting. Allowing your kids the freedom to experience life and make their own choices and live with the consequences as a learning experience for future situations is what parenting is about. Simply safeguarding your kids from everything that might be potentially damaging is only setting the kids up for a future shock that will have far more dire outcomes than what they could have learned at home making small mistakes with the safety net of their parents.
My kids have been playing and using the computer since each were 5yrs old. My oldest learned his alphabet playing Quake because I refused to show him where the letters were on the keyboard nor would write down any of the commands but would simply spell them out and require him to figure it out. It was great motivation for him and a great learning experience. Yeah, the end result... shooting other people... wasn't exactly what I would have liked to see him doing with his time but I worked with him not against him.
Both of my sons have learned the value of being able to read and write while playing games such as DAoC, UO, WoW, Halo, Unreal despite not being that thrilled with such subjects in school. Both, I believe have learned the value and importance of communication. Spelling is not just that boring thing your teachers make you do at school. It's how you communicate with your fellow players online. Without the computer and the ability to play and interact online, I doubt either would have as much appreciation for reading and writing.
So, IMO, expose your kids to technology as soon as you can while your kids still listen to you and have the umbrella of the home to provide them a place to experiment with life. Stay involved with your kids, make them think on their own. I think the worst thing you could do is protect them by hiding things from them and pretend such things don't exist.