And for new arguing pleasure... Learn programming in Ten Years...
-
http://www.norvig.com/21-days.html[^] Although I would like to support his learn 6 languages, being from a multi-language (computer that is) background. But I think that is likely to scare away more people. although I love this section: Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them). :doh: guilty... I will have to be better... don't want people learning my secrets.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
I'm not a big fan of the learn 6 languages thing, unless there is some definite logic to it; you have both an issue of diminishing returns and risking becoming a jack of all trades, master of none. (This pretty much describes my general skill set at most things; however, I can say I am a genuine expert at assembly language, C and C++ and most of the Windows API and MFC.) I do find his general argument refreshing, though. It does take time to become a genuine expert. One of my pet peeves are developers with two or three years experience passing themselves off as Senior Engineers. This isn't just a title thing, but how they insert themselves into development process and throw their weight around and ignore those people who really are experts. This isn't a regurgitating knowledge thing. It's experience over time. Nothing can speed that up. Nothing can replace it. For example, when I make time estimates, I'm not just making up numbers; among other things I'm comparing the task to several similar tasks in the past. Another great piece of advice he gives is to just write code. Play around. With few exceptions you can't destroy your computer doing that (though I did blow away a bios once on accident.) Few things astonish me more in software development than programmers who don't have test programs where they try various approaches and refine their algorithms. (I'm also surprised at how many developers haven't created what I call their bag-o-tricks--proven libraries and code snippets they can use on any project.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
http://www.norvig.com/21-days.html[^] Although I would like to support his learn 6 languages, being from a multi-language (computer that is) background. But I think that is likely to scare away more people. although I love this section: Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them). :doh: guilty... I will have to be better... don't want people learning my secrets.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
Bascally I think he's right. Learniung to program takes so long, no matter what language, because the language itself is the "starters vocabulary", no more. On the "code monkey skills" side: Language, Language Libraries, Patterns + Best practies, Pitfalls, Platform, Platform Libraries, Source Control, Project Management from soruce control to Install CD, IDE, Code Creation and Maintenance tools, Debugger. On the "Developer Skills" side: Specification, design, design tools, planning, quality control + testing, working in teams, and all the stuff I tend to forget :)
Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify!|Fold With Us! -
I'm not a big fan of the learn 6 languages thing, unless there is some definite logic to it; you have both an issue of diminishing returns and risking becoming a jack of all trades, master of none. (This pretty much describes my general skill set at most things; however, I can say I am a genuine expert at assembly language, C and C++ and most of the Windows API and MFC.) I do find his general argument refreshing, though. It does take time to become a genuine expert. One of my pet peeves are developers with two or three years experience passing themselves off as Senior Engineers. This isn't just a title thing, but how they insert themselves into development process and throw their weight around and ignore those people who really are experts. This isn't a regurgitating knowledge thing. It's experience over time. Nothing can speed that up. Nothing can replace it. For example, when I make time estimates, I'm not just making up numbers; among other things I'm comparing the task to several similar tasks in the past. Another great piece of advice he gives is to just write code. Play around. With few exceptions you can't destroy your computer doing that (though I did blow away a bios once on accident.) Few things astonish me more in software development than programmers who don't have test programs where they try various approaches and refine their algorithms. (I'm also surprised at how many developers haven't created what I call their bag-o-tricks--proven libraries and code snippets they can use on any project.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
For web development, you need at least 3 with current tools and techniques. Add to that a background in C/++ + a preference for python as a scripting language and it's easy to pick up 6 without meaning to. Even if they all do look like C++ :) I get the impression a good grounding in functional programming is going to be a plus in the next few years when making day to day use of the increasing parallelism available in modern processors.
Ryan
"Michael Moore and Mel Gibson are the same person, except for a few sit-ups. Moore thought his cheesy political blooper reel was going to tell people how to vote. Mel thought that his little gay SM movie about his imaginary friend was going to help him get to heaven." - Penn Jillette
-
For web development, you need at least 3 with current tools and techniques. Add to that a background in C/++ + a preference for python as a scripting language and it's easy to pick up 6 without meaning to. Even if they all do look like C++ :) I get the impression a good grounding in functional programming is going to be a plus in the next few years when making day to day use of the increasing parallelism available in modern processors.
Ryan
"Michael Moore and Mel Gibson are the same person, except for a few sit-ups. Moore thought his cheesy political blooper reel was going to tell people how to vote. Mel thought that his little gay SM movie about his imaginary friend was going to help him get to heaven." - Penn Jillette
Ryan Roberts wrote:
a good grounding in functional programming is going to be a plus in the next few years
Lots of applications already use SQL which is a functional language. Funny lots of people don't realize that till they try some other functional language that replaces the imperative languages.
-
http://www.norvig.com/21-days.html[^] Although I would like to support his learn 6 languages, being from a multi-language (computer that is) background. But I think that is likely to scare away more people. although I love this section: Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them). :doh: guilty... I will have to be better... don't want people learning my secrets.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
I agreed with him except when he offered Scheme as an initial language choice :omg:.
Software Zen:
delete this;
-
Ryan Roberts wrote:
a good grounding in functional programming is going to be a plus in the next few years
Lots of applications already use SQL which is a functional language. Funny lots of people don't realize that till they try some other functional language that replaces the imperative languages.
I think better terms are 'declarative' and 'procedural'... Many, many procedural-oriented programmers write horrible SQL because they don't understand that declarative nature. In SQL, you tell the computer what you want, and it figures out how to get it. In procedural languages you build what you want by describing how to create it... it's the other side of the coin. OOP languages combine those two concepts, but I think they tend to lean toward the procedural side of things. Bottom line is, people should know the difference between the two types of languages and not try to force one to be the other. I've seen a lot of 100-line SQL procs that could be reduced to single queries, simply by understanding the declarative nature of SQL.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for (freeware) JazzySiteMaps, a simple application to generate .Net and Google-style sitemaps! -
I think better terms are 'declarative' and 'procedural'... Many, many procedural-oriented programmers write horrible SQL because they don't understand that declarative nature. In SQL, you tell the computer what you want, and it figures out how to get it. In procedural languages you build what you want by describing how to create it... it's the other side of the coin. OOP languages combine those two concepts, but I think they tend to lean toward the procedural side of things. Bottom line is, people should know the difference between the two types of languages and not try to force one to be the other. I've seen a lot of 100-line SQL procs that could be reduced to single queries, simply by understanding the declarative nature of SQL.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for (freeware) JazzySiteMaps, a simple application to generate .Net and Google-style sitemaps!Jasmine2501 wrote:
I've seen a lot of 100-line SQL procs that could be reduced to single queries, simply by understanding the declarative nature of SQL
Which is why, even if you have C++/C# or whatever experts who can write SQL code, it is often beneficial to hire an actual SQL expert.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
http://www.norvig.com/21-days.html[^] Although I would like to support his learn 6 languages, being from a multi-language (computer that is) background. But I think that is likely to scare away more people. although I love this section: Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them). :doh: guilty... I will have to be better... don't want people learning my secrets.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
I started writing on this and it got so long I decided to just put in on my blog for today... http://smoothjazzy.blogspot.com/2006/12/be-programmer-but-not-today.html[^] I basically just re-iterate what that guy said, but there's some important differences.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for (freeware) JazzySiteMaps, a simple application to generate .Net and Google-style sitemaps! -
Jasmine2501 wrote:
I've seen a lot of 100-line SQL procs that could be reduced to single queries, simply by understanding the declarative nature of SQL
Which is why, even if you have C++/C# or whatever experts who can write SQL code, it is often beneficial to hire an actual SQL expert.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
I wouldn't say that it's necessary that they be two different people. I'm very good at switching between the two things. There are a lot of folks out there who claim 5 years experience with SQL, but what they really mean is that for the past 5 years, they have had the occasional need to write a SELECT statement into their ASP code. I spent a good 3 years writing nothing but SQL and that solidified my concepts in that area. There are not too many jobs out there right now where you can get that experience, because HR thinks SQL programming is 'collateral ability', and are happy to tack the DB responsibilities onto someone hired for a C# or VB position. As a result, they get crappy databases, but nobody ever knows about it until they bring in someone like me. Ideally, you would have a DB admin who was an expert at SQL programming and DB administration, but if you can find anyone at all who's an expert in SQL, you'll be better off, even if they are also your C++ programmer.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for (freeware) JazzySiteMaps, a simple application to generate .Net and Google-style sitemaps! -
Jeffry J. Brickley wrote:
guilty... I will have to be better... don't want people learning my secrets.
Yep, that's also part of that kind of work. Although I have to agree with the author that books in 7/21/... days and books in 24 hours aren't all that when you really want to learn how to build applications. On the other hand, I think these books are great when you have experience in building applications, but want to do something new or when you are assigned on a job that requires you to learn a new language.
WM. What about weapons of mass-construction? "You can always try to smash it with a wrench to fix that. It might actually work" - WillemM
I've written a number of 24 Hours books for Sams (including Teach Yourself Visual Basic 2005 in 24 Hours and Teach Yourself C# 2005 in 24 Hours), and I agree that none of these titles will make you an expert in 24 hours - or even get you close. The goal of these books is to provide adequate, useful, and hopefully entertaining instruction for you to learn the basics of a language and its tools and allow you to begin creating your own applications using the language; yu won't know all the answers as you stumble along with your own applications, but hopefully you will have learned enough of the basics to understand what's going on and how to find help or experiment to solve your own problems. These books serve a purpose, but I don't think anyone (publishers, authors, or readers) really believe that the books will make you an expert in the stated amount of time.
james commercial developer, author, speaker, dude. www.jamesfoxall.com
-
I'm not a big fan of the learn 6 languages thing, unless there is some definite logic to it; you have both an issue of diminishing returns and risking becoming a jack of all trades, master of none. (This pretty much describes my general skill set at most things; however, I can say I am a genuine expert at assembly language, C and C++ and most of the Windows API and MFC.) I do find his general argument refreshing, though. It does take time to become a genuine expert. One of my pet peeves are developers with two or three years experience passing themselves off as Senior Engineers. This isn't just a title thing, but how they insert themselves into development process and throw their weight around and ignore those people who really are experts. This isn't a regurgitating knowledge thing. It's experience over time. Nothing can speed that up. Nothing can replace it. For example, when I make time estimates, I'm not just making up numbers; among other things I'm comparing the task to several similar tasks in the past. Another great piece of advice he gives is to just write code. Play around. With few exceptions you can't destroy your computer doing that (though I did blow away a bios once on accident.) Few things astonish me more in software development than programmers who don't have test programs where they try various approaches and refine their algorithms. (I'm also surprised at how many developers haven't created what I call their bag-o-tricks--proven libraries and code snippets they can use on any project.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
Few things astonish me more in software development than programmers who don't have test programs where they try various approaches and refine their algorithms. (I'm also surprised at how many developers haven't created what I call their bag-o-tricks--proven libraries and code snippets they can use on any project.)
5... describes everyone in my group :^):(
led mike
-
I wouldn't say that it's necessary that they be two different people. I'm very good at switching between the two things. There are a lot of folks out there who claim 5 years experience with SQL, but what they really mean is that for the past 5 years, they have had the occasional need to write a SELECT statement into their ASP code. I spent a good 3 years writing nothing but SQL and that solidified my concepts in that area. There are not too many jobs out there right now where you can get that experience, because HR thinks SQL programming is 'collateral ability', and are happy to tack the DB responsibilities onto someone hired for a C# or VB position. As a result, they get crappy databases, but nobody ever knows about it until they bring in someone like me. Ideally, you would have a DB admin who was an expert at SQL programming and DB administration, but if you can find anyone at all who's an expert in SQL, you'll be better off, even if they are also your C++ programmer.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for (freeware) JazzySiteMaps, a simple application to generate .Net and Google-style sitemaps!