41 Comments
- rodrigo74, on 10/12/2007, -1/+13"1) Learn Ruby and Ruby on Rails"
Yawn. Bye.
Wanna be a good developer? Stop focusing so much on the latest buzzword and try to develop your craftmanship, read some classics like "The mythical man month", "Code complete" and "The Pragmatic Programmer" instead; focus on the big picture. - paulmdx, on 10/12/2007, -1/+11For the record, the language is "assembly" not "assembler". An assembler is the program that converts assembly into machine code.
- dassin, on 10/12/2007, -2/+12Very peculiar. It seems well thought out and intelligent, yet you use "u" instead of "you" about 17 times.
- CaseyUCF, on 10/12/2007, -3/+12you're not that funny really.
- rarkai, on 10/12/2007, -2/+9I would have almost given you credibility if you had spelled "you" as "y-o-u" and not in AOL speak.
- bombay56, on 10/12/2007, -2/+9im not sure if "U" are trying to be funny, or are just an absolute retard. i would LOVE to see someone write an entire program and have it run the first time.
- cscalfani, on 10/12/2007, -1/+71 decent developer might produce what 20 average programmers produce, but they are hardly "worth" 20 times more.
If they were "worth" 20 times more, they'd be paid 20 times more. (Worth is in the eye of the one paying)
Unfortunately, they are not. - DonPMitchell, on 10/12/2007, -2/+7I have to agree, being a good developer has nothing to do with learning a particular language. I've been programming since 1972, and I have thought about this issue and talked with programmer friends about it. So here's my take:
1. Learn from masters. Don't just hang out with a few other "hackers" and praise each other's work. Look at code by good programmers or hang out with professional programmers. As a student, my friends and I read and discussed the coding of G.R. Mansfield, Cray's genius developer who wrote the KRONOS operating sytsem on the CDC 6600. I also spent a lot of time in Ken Thompson's code, hacking on V6 UNIX.
2. Critique your work. Friends who say "cool hack, dude" (or whatever young hackers say) are not helping you. Find a way to measure your improvement and get objective criticism.
3. Learn some useful computer science. If you're in college, I'd recommend minoring in CS, but not majoring (it's not really a very good education overall). Take algorithms. Take the compiler course. If you haven't written a compiler, you're still a virgin! Take the OS course. Don't expect to learn out to program in college, because there is no one there who is really a master, certainly not the professors. Outside of college, look at a clear intro to algorithms -- Sedgwick's "Algorithms in C" is a fine little book. Not the best algorithms book, but the best algorithms + programming book.
4. Do summer internships if you can. Start to get an idea of what professional programmers do.
5. Program for 10 years. Generally, that's how long it takes to become an "expert" at any complex task (but only if you are effectively making an effort to improve). See: http://scientificamerican.com/print_version.cfm?articleID=00010347-101C-14C1-8F9E83414B7F4945 - theredbicycle, on 10/12/2007, -2/+7Maybe English is your second language, but you really should spend some more time developing it. That hurt to read.
- ech0, on 10/12/2007, -2/+6"1 decent developer is worth more the 20 average ones."
thats not what the outsourcers are thinking - eplawless, on 10/12/2007, -1/+5I think you want here:
http://www.cssbeauty.com/jobs/
please don't post that sort of thing on Digg - transeunte, on 10/12/2007, -0/+4Everyone who thinks this guy's problem is just grammar: are you on crack?
- fenris6644, on 10/12/2007, -0/+4The only thing this guy could have done to discredit himself more than by putting RoR in his #1 would be to mention something about "Web 2.0" or some other meaningless buzzword. Here are 5 better reasons, off the top of my head:
(1) Make sure you truly understand OOP. And I'm not just saying know what classes, methods and properties are... I'm saying understand the difference between an interface and an abstract class, understand design patterns and where to use them... and when you find a massive switch statement or if/elseif/else blocks in your code, realiize that you could probably refactor into something that's more OO and less procedural... and that the guy who touches the code after you will thank you for it. Check out books like Domain Driven Design or Streamlined Object Modeling to understand how to reduce a real-world problem domain into a clean OO system.
(2) If you find yourself writing the same kind of code day-in and day-out at your job, spend a little extra time to write small apps that outside of your experience. If most of what you do is writing CRUD web apps, try building some apps with a rich front end (AJAX, Flex, whatever) instead. You'll see the difference in structure between a sychronous and asychronous app and also realize the similarities between "component-driven" web app frameworks (JSF, Tapestry) and GUI progrmaming and how different they are from your typical "action-based" MVC web apps. If you spend a lot of time working close to the database layer, consider moving business logic out of stored procedures and into application code that wraps the database and is exposed as web services. Try different approaches to the same problem and look for commonalities and differences.
(3) Read lots of books. Get a subscription to O'Reilly bookshelf if you think you can read a couple in a month. Spend time working through the code samples if you don't understand instead of skimming the chapters without absorbing anything.
(4) Using a framework doesn't mean you're going to understand how the code works under the hood, that's the other reason why I don't like the author's advice about RoR. In fact, if you jump into RoR and don't understand what it does (and doesn't do) for you then you're just going to get dumber instead of smarter. If you use an open-source library in one of your projects, spend a little time looking at the APIs and docs. At least look at how different classes and interfaces work together. If you find a limitation in a framework you don't like, try to extend the system and customize it. Working with others' code can be difficult but it's a good challenge. Don't just throw up your arms in disgust, and consider donating your code back to the community.
(5) Keep up on the industry news and understand how it relates to your short and long-term job prospects. Think strategically. Keep in mind that while everyone goes "OMFG" over Ruby on Rails that (1) most of it is being used in "Web 2.0" companies that will be gone in a year or two, and (2) you aren't gonna find many "uber leet RoR developer wanted" postings on Monster. C and C++ might be passe but there are plenty of jobs out there. Having C# and Java skills will keep you employed well into the forseeable future. Make sure you have fundamentals skills in place that keep you employable in the mainstream market and then go after a niche if you enjoy the technology. - theredbicycle, on 10/12/2007, -0/+3@transeunte "Everyone who thinks this guy's problem is just grammar: are you on crack?"
No, we just have to start with the basics first. - Bloodwine, on 10/12/2007, -0/+2MVC is not the end-all-be-all pattern. Sure it's great for web apps, but not for everything.
Here is my #1 tip to being a better developer: get at least a BSc in CompSci and pay attention in the classes, dangit. Sure you learn a lot on the job, but a good formal education helps shape your brain to where you are language-agnostic and develop more refined methods for handling problems and using the right tools for the job. - fenris6644, on 10/12/2007, -0/+2Oh, one other thought. There aren't really a whole lot of "easy ways" to be come a better developer. People who are good at what they do are usually that way because they enjoy what they're doing. If you don't have a passion for programming - if refactoring code into something slick and extensible doesn't bring a smile to your face - you might be in the wrong job.
- transeunte, on 10/12/2007, -0/+2The article is somewhat superficial, but point #4 is a good one:
"4) Understand customer wants != customer needs. Maybe this should be on the list of ‘5 easy ways to be a better product manager’ but it’s important for developers to understand it as well. Just because somebody asks for a feature doesn’t mean you should go and implement it, otherwise you can end up with a big mess of a product that’s just a collection of random features and doesn’t really solve the problem the customer has."
This is definitely true: customers often will tell you their solution, not their problem. It's up to you to figure out the solution, or eventually you will fix something that wasn't broken in the 1st place. I've seen many developers do whatever they were asked to do because they simply didn't want to think too much.
The next thing they would do was walk around the office telling other developers how dumb their client is. - codeblind, on 10/12/2007, -0/+2Maintaining an organized private code repository should be on the list. When I think of all the time I have spent re-solving the same problems, I could kick myself.
- DavidDigg, on 10/12/2007, -0/+1Without a doubt, this is the best of the 5 points. As GI Joe said, "knowing is half the battle." In software dev, that means knowing what what customer needs.
- echoic, on 10/12/2007, -0/+1Stopped reading at #1. Please kill yourself.
- asdren, on 10/12/2007, -0/+1I wholeheartedly agree about his #5) Passion
though that really applies for anything you do. - MrKite, on 10/12/2007, -0/+1I saw #1 and immediately buried the article. Ruby is a horrible language, especially when trying to teach programming. That's all we need is more lazy programmers.
- BlackCow, on 10/12/2007, -1/+2Here is a little lesson on Internet grammar. When you are writing a well thought out comment or informational comment spell you as "y-o-u" when you are talking to a friend casually through xfire or whatever chat program then you can spell it "u"
- Niels, on 10/12/2007, -4/+4to be a better developer you need only one thing... go to one of this:
http://video.google.com/videoplay?docid=-1668365808879026423&q=developers&hl=en
/mod down - Jokisageek, on 10/12/2007, -1/+1Why I really don't like this article :
IMHO : To be a better developer by learning a new language (1st advice of this article), or a particular language is totally crap... you either need to know algorithmic (at least understand complexity and common problems sorting, finding, etc.), or to know design patterns and your libraries (it can replace the lack of algorithmic knowledge), then get a methodology (XP / ball of mud etc. ;) ).
So 1st is an ad for ruby...
To read one particular daily something newspaper (2nd advice of this article) is as bad as first advice, just read the news of your specialties, to keep an eye on what is being done is obvious...
So 2nd in an ad for daily wtf...
The other ways to be a better developer seems really logical and can applied to every kind of science (or engineering for point 4).
OK ? This is lame :P - raccettura, on 10/12/2007, -1/+1"1 decent developer is worth more the 20 average ones."
One decent developer means I can get away with hiring 20 average ones to work with him/her. - mgainor, on 10/12/2007, -3/+3Nobody who practices any sort of language evangelism is a true great developer. The best point on this guy's list is #2, the one where he tells you to read a better site than his.
- armand_wall, on 10/12/2007, -0/+0If you know how to design great algorithms, chances are that you'll rock as a developer. If you are learning the very basics, consider using a tool such as Rockerfer (google it, it might me helpful).
- adolfojp, on 10/12/2007, -1/+1Ruby on rails is great as long as you don't need unicode.
If your users don't need characters like ñáéíóúü then it will do just fine.
If your user base expands to a world that does, then you have wasted all of that development time on a platform that is yet ready for the world.
(Yes, I know that you can do workarounds, but the workarounds themselves are not a solution to the unicode problem.) - rodrigo74, on 10/12/2007, -1/+1Nice advices, DonPMitchell, thanks.
Any good algorithm books you'd recommend? Now I'm curious. - rahmad04, on 10/12/2007, -2/+1thanks... wasn't aware of that resource.
- gravityboy, on 10/12/2007, -2/+1I agree with you in principle, but did you read why he recommended it? It was because he thinks it's a good example of how to code properly. You can disagree with this if you like, but the idea of learning a well done toolset and then picking up style and method from it is a good idea. I've developed my craftmanship far more by looking at how other people whose code I admire did their work than I ever did by reading books about it, although books are good too.
Also, the Pragmatic Programmers are huge on Ruby and RoR. - jboi, on 10/12/2007, -3/+2Your just a bunch of hypocrites, u read chat room English all day long, but when some foreigner posts some bad English under a topic, you burn his ass.
I only talk chat room English, "u" "you" sounds the same for me, big deal.
U guys should be glad this thing has a spelling checker, or it would be unreadable ... - velkymx, on 10/12/2007, -2/+1Learn RoR??? LOL how does that make you a better developer?
- ntufar, on 10/12/2007, -5/+3Why did you bury him? He is totally right even though he needs a spelling lesson.
- inactive, on 10/12/2007, -3/+0this domain is PATHETIC
Why did he not put the in the path too /jessica/steve/jessica/steve... - rahmad04, on 10/12/2007, -12/+3well... i've done this before, and i apologize in advance for cluttering this thread... i'm looking for a developer-designer to help me build a page that will serve as a counterpart to google (nuts as it may sound). i believe that if structured correctly this page will have a long term, sustainable lifespan, and will provide a good public service to boot. i have the url and the concept, what i need is a strong coder to help me develop the userflow and backend. my email address is my digg user name minus the numbers at gmail. interested parties, please contact me. again, sorry for cluttering the thread, but there really is no other way (to my knowledge) of tapping the digg community.
- jboi, on 10/12/2007, -35/+10ill give u my tips on how to be a developer:
- Learn assembler and c/c++, so u know atleast how a computer and a programming language work together.
- It doesn’t matter what language u pick after that, because u know machinecode and u know the language your programming language is written in which is probably C
- Benchmark your chosen computer language, it doesn't take long, but nobody does it.
U can weed out what API's are well implementent and which are bad or missing.
- Print the manual of your computer language and read it.
- Start coding, don't hit compile until your program is finished.
- Your program should run from the first time, without any errors.
- Only error u should get is from stuff u didn't implement yet.
- U never get the logic of an IF, FOR, WHILE, AND, OR, NOT statement wrong, if u do, u go home and take week off, because u seem to need some rest.
- If u want to learn how to write code, download code snippets from other people. Preferably from people who know what they are doing, from large programming teams. Read the code and learn from the masters.
- Projects are written down in detail on paper. The IDE stays closed until the paper is triple signed and approved. U only need to worry about writing lines of code and don't have to worry about how u need to write class X Y Z now and how u are going to build it. Because its already on paper, thought trough and a solid decision.
1 decent developer is worth more the 20 average ones.


What is Digg?
Browsing Digg on your phone just got easier with our enhancements to the