Be a programmer, but not today
This author is pretty much correct, but I have to expand on it a bit. You can't become a good developer in 21 days, although if you are already experienced, you can learn a new language pretty fast. Probably you can't become a good developer in less than 5 years, and that's if you have a natural aptitude for it. Ten years of plugging away at something doesn't make you an expert either. I've played guitar for 20 years and I pretty much still suck at it, but I enjoy it and I am 100x better than I was after my first week of playing. The one thing I think this author and everyone who addresses this question, is missing is the suggestion that learning programming languages means anything at all. If you want to be a good developer, focusing on languages is not the way to go. Everything else I agree with but I would phrase it a different way:
1. Make sure you enjoy it. Good programmers really love coding. They are known for staying up for days on end to write code, because they are so excited about it that they can't sleep. BTW, it's not the coding that keeps me up at night, it's the pursuit of better ways to solve a problem. Very important: be a connoisseur of problem-solving, and methods of attack. A good programmer is just as likely to stay up all night solving a crossword as they are to be coding.
2. Talk. Be social. One thing that I wish would come back into vogue is the development-based user group. I'm talkin about local groups that get together in person. Online forums are great but no substitute for crowding around a screen and actually learning something in a group. Know programmers, meet them in person, have drinks. Get out in the real world and interact. Programmers are known for being an antisocial bunch, but the best programmers love to get together and share.
3. Practice, a lot. Start by building the hello world example to get a feel for whatever you're learning, but then go ahead and dive into something complex. Figure it out along the way, by using #1 and #2. When I learned C++, the first thing I made (after hello world) was a linear algebra class library. One of the first BASIC programs I ever completed was a version of Othello for the Vic-20. Do something like that... if you can't hack it, better that you learn that early. Getting bogged down with things you don't understand isn't the way to go, but learn concepts slowly and build them up into a complex program.
4. Get a degree... if you want to work as a programmer. Having a degree will help open up more opportunities... it's like Boot Camp for higher-level jobs. Your degree does not have to be in Computer Science, just have a degree in something. My degree is in Biology, with minors in CS and Math... this helps tremendously.
5. Debug - a lot. Debug your own code, upgrade your own code after a few years of ignoring it. Read lots of sample code and try to hack sample projects you find. Debug someone else's mistake. Answer questions on forums. Accidentally break something and then fix it. Knowing what can go wrong is half the battle of preventing it. Being able to handle the unexpected is the other half.
6. Know how computers work. You should have knowledge of what it means to write a computer instruction, and what will happen at the electronic level when your code is executed. Know how processors execute instructions, and know how data is transferred around to various parts of the system. Know the parts of the system, and be able to compare their differences and know about their similarities. A hard drive has a bunch of chips in it... what are they doing, and how are they different from the cpu or the gpu or the math co-processor chips? Those are the questions you should have knowledge of... not expert knowledge, but basic knowledge of how it works.
7. Learn 2 programming languages - SQL and something else. SQL is the most commonly used declarative language, and you will need to know it for most jobs. Don't just learn the language either, learn how to use it effectively and learn it along side another language so you can compare the declarative and procedural styles and learn which to use where. Your 'something-else' language will more than likely be obsolete by the time you become an expert in anything, so struggling to learn multiple languages is a waste of time. Learn what you need to be functional now, and focus on other languages when you have time. (So, learn SQL and C#, VB or Java)
8. Without focusing on multiple languages, learn the concepts that are common to all languages. The list from the article (class abstraction (OOP), functional abstraction, syntactic abstraction, declarative specification, co-routines, paralellism) can all be learned within the framework of C# and SQL. There is no reason to learn Lisp simply to understand syntax abstraction, since almost every language supports that feature to some extent. Lisp takes it to the extreme, and IMO, is not a well-balanced language for a beginner.
I disagree about learning an interactive language (although SQL can be good in that respect). I think a developer should get used to the 'code-compile-test-debug' cycle early on. My intern is struggling right now because he doesn't compile often enough... so when he finally does, he has introduced lots of errors, which sometimes compound each other. Learn the consequences of that behavior right up front.
When you are an expert, you will be able to learn a new language in 21 days, maybe less, so the book titles are misleading by making you think they are targeted to 'fast-track' beginners. If you've ever read one of those books, you would see what I mean... it basically starts by saying you need to know the basic concepts of programming as a prerequisite for understanding the book (usually). I learned C# in a few days, but I had years of experience with the concepts first. The "dummies" books are for beginners, and if you take a look at the Java for Dummies book and the Java in 21 days book (both of which I own), you can see that difference. One is focused on learning both the concepts and the language, while the other is focused on quickly learning the language, but assumes you understand the basics already.
So yeah, teach yourself a language in 21 days if you want to, but if you want to be a good developer, you're going to do a lot more than just learn a language or two.
Good luck!
Jasmine
At 7:55am, on Dec. 7th, 1941, Japanese forces cowardly (and brilliantly) surprise-attacked US soil for the first time in history at Pearl Harbor, HI and other locations in the islands. Over 2400 people died that day, and it led to a war in which thousands were killed or injured. Since then it has happened only one other time, also leading to a war in which thousands have died. For years, I have used 12/07/1941 07:55 as my "default date" whenever, as a programmer, I needed to set a default date. I do this in the hope that if someone looks at my code and wonders why I picked that date, they will look it up. Actually I hope nobody ever has to look this up. It should be in your mind as indelibly as 09/11/2001. Never forget. Here's some articles.

1. Make sure your skills are up to date, and you can prove it. That means, have a web site, an application, a game, something YOU developed or managed that you can put in the interviewers hands and show them. Be ready for coding tests or physical tests of your ability. If an employer doesn't do this, I think they are asking for trouble. Coders and Administrators can easily be tested on their abilities, and a good test result should be 50% or more of the hiring decision. I'm not talkin about certification-style tests here, I'm talking about actually having the person sit down and write some code, or perform some task where their performance can be measured. My HTML test covers only the ability to hand-code HTML. It has one question and a million answers, but the applicant either passes or fails the points we are judging on. Certifications are worthless in this regard, because they tend to measure knowledge, rather than ability. I've worked with more than a few developers who had certifications in things they still didn't know how to do.
4. If you are a woman, be aware of the double-standard. I find that female interviewers can be even more judgemental in this respect than the men. That is, female HR people are MORE prejudiced against women, than their male counterparts. I think also that men tend to see an attractive woman as a potential positive addition to the environment, while women are mostly indifferent about that aspect. Men like to have lovely women around. It's just a fact of life. If you're friendly and attractive, without going over the top, you will make headway with the men. I know this seems sexist, and it is, but it's realistic also. Attractive women have an advantage with male recruiters. However, if you cross the line from 'attractive' to 'sexy'... your hosed. Don't go there. Be professional... think Hillary Clinton. Women will face suspicion about their skills to a greater degree than men, so number 1 above is even more important for women.
I love America. I think it's the best country in the world. I love the spacious skies, the amber waves of grain, and all that. However, the greatest reason of all to love this country is under attack, and that's why I'm here to defend it as America's T-Girl. This is a little thing I call the American Ideal, embodied in the US Constitution, and the Bill of Rights. These ideals are being ignored on a daily basis, and not just by the politicians, by average Americans as well. There's a growing number of people in this country who simply don't understand what the most basic law of this land actually means.
I declared myself America's T-Girl simply because I can, but I do have a mission here. I want to show that "American" and "T-Girl" (or whatever word you want), are not incompatible terms. Our community is facing a huge challenge in the political and social arena, and we need to show the world that we are Americans, just like any others. We love our kids, go to church, pay taxes, worry about our careers, and go about our daily business. We deserve, as do all Americans, to be able to carry out our lives in peace. Some people do not think we deserve those rights. Those people have forgotten what country they live in, and I'm here to remind them that they live in the greatest country in the world!
I've been struggling with transgender issues all my life and I wasn't able to do anything about it for nearly 32 years, so I'm well aware that it's hard to get out of the closet. I participate in many email lists and groups designed to help various types of crossdressers with various issues. There's everything from fetish groups to hormone and surgery groups. I try to give the best I can to those forums because if it wasn't for the Internet, many of us would still be in the closet. If it wasn't for people communicating with me, I would never have been able to do the things I do now. However, sometimes these groups annoy me a little bit and I get a little touchy. What bugs me, for a whole bunch of reasons, is that people ask the same questions over and over again, and we post the same answers over and over again.








