Sponsored by Dragon Age: Origins
Follow the Dragon Age: Origins development team on Twitter view!
twitter.com/DragonAge - EA presents BioWare's new dark fantasy epic Dragon Age: Origins. '9/10' from Game Informer.
327 Comments
- ihavebeenseen, on 04/02/2009, -3/+200This is a list for the last five years
- christoast, on 04/02/2009, -10/+192Developers, Developers, Developers, Developers
- Gonasadude, on 04/02/2009, -6/+121Any other programmers getting tired of the word developers being synonymous with 'web developers'?
- achacha, on 04/02/2009, -7/+89Those skills are, for the most part, what you should know now if you want a web developer job. Next 5 year skills will solely depend on what area of the code you will work in.
For most stability I would recommend sticking with java and C++.
Aiming at medical/business/financial industry (which are a good mix of java and C++), always need developers, they have lots of legacy code that is not going away (despite the shaky economy, law firms and pharma are doing fine and the big financial ones will recover). It's not going to be exciting, but probably stable and predictable.
The game industry (despite the long work hours and stress) is still growing and majority of games are written in C++. C++ despite what people think is not going anywhere for the next 20+ years, it's not new and fancy but rather well known and established and does what it is does quite well.
I can agree with mobile, that area is growing fast and mostly java and C++ for the most part.
Also embedded arena, it's niche but electronics and devices need people to develop code to run them, mostly written in C on 8 or 16 bit processors which were around in the 80s and 90s, so this area is usually crowded with the 40+ hackers but there is always room.
I would also add Silverlight to that list, as Microsoft heavy shops favor it (and there are a lot of big corps that are MS only). - fabkebab, on 04/02/2009, -1/+57Where did "security" go? That one always seems to appear on these lists
- elduquex26x, on 04/02/2009, -1/+53Procrastination is like masturbation..it's all good until you realize you ***** yourself.
- sorias, on 04/02/2009, -2/+46It didnt mention nunchuku skills, bow hunting skills, computer hacking skills...
- UMDSmith, on 04/02/2009, -0/+41A "good" developer just needs to have a strong backlog of coding in the traditional sense, and the ability to adapt to new semantics. Data structures have not fundamentally changed in the last 10 years, so the toolbox is in place. New methods have certainly made development easier, but it isn't hard to jump into any of the new methods if one has a strong background in C and java. After sitting on numerous hiring committees, I prefer looking for an energetic and motivated candidate with a decent backlog of experience, rather than someone who has all the buzzwords on paper.
- rwsmart, on 04/01/2009, -2/+43Dugg for mentioning "Hygiene" and "Code Cowboy" In the same paragraph.
- irisblaze, on 04/02/2009, -1/+41all a developer needs is the skill of fighting the temptation of digg, youtube, games and *cough* sex *cough* then we are good to go
- wobblejuice, on 04/02/2009, -0/+37Fighting procrastination has become my biggest daily challenge.
- enicholas, on 04/02/2009, -10/+46So... basically you hate it because it's not C?
Unsigned datatypes are only necessary to interface with other languages which use them. They aren't an inherent or even terribly valuable part of programming in general. If you are really concerned about one extra bit of precision, it's often a sign that your chosen data type doesn't have remotely enough of a safety margin to prevent overflows. And generally I'd prefer a signed number overflow to an unsigned number overflow, because unexpected negative values are more likely to fail fast than unexpectedly large positive values. I'm not disputing that they would be handy when interfacing with C data structures, but I don't think it's worth polluting yet another language with this misfeature simply because an older language had it.
Why the hell would you WANT inherent conversions from numbers to booleans? Is for (;;) or while (true) so much harder to type than while(1)? Is "!= 0" really too many extra keystrokes?
Unreachable code is an error... so on the very rare occasions that you actually WANT unreachable code, you either have to comment it out or do something like if (true) return instead of just return. Yeah, that's so incredibly difficult that I can completely understand your pain, especially with how common it is to want unreachable code.
Java's elimination of the preprocessor is one of the best design decisions ever made. More horrors have been visited on us by the C preprocessor than almost every other programming language mistake combined.
Inability to split classes is a double-edged sword. You have a point regarding too-long classes, but at the same time there's a definite advantage to knowing with 100% certainly that you are looking at the entire codebase for the class.
You're complaining about the size of compiled Java code? You realize Java compiles smaller than C / C++, right?
Swing is, on the whole, a relatively well-designed framework. I've run into just as many bugs in other frameworks of similar complexity, at least. The complaint about too-long variable names is common among C programmers, who evidently believe that ntohl() and atoi() are perfectly reasonable function names, but addMouseListener() isn't. And a 'with' block? Seriously?
So have you actually used a language other than C / C++? You sound like you need to get out more. - fyrestorm, on 04/02/2009, -1/+32This article is incredibly short sighted. To its credit, I see these types of articles all the time. The authors are apparently under the impression that most developers are WEB developers, which is simply not true. Many of these so called skills do not apply to non-web developers. Further, it is my opinion that a skilled developer should be agile enough to learn new languages and APIs in short order, so not having that specific knowledge is largely trivial.
- xsecretfiles, on 04/02/2009, -0/+24I'm a developer looking to get head in my field
- netneutrality, on 04/02/2009, -29/+51I can't bear Java. It drives me round the ***** twist.
- No unsigned datatypes (not even unsigned bytes!!). It's incredibly infuriating (and slow) having to do use larger types and do bitmasking all the time to simulate unsigned types.
- No implicit conversions from numeric types to booleans (so you can't do "while (1)" or "if (byte & 0x80)". If that doesn't get you hopping mad you need therapy to help you release your anger.
- Unreachable code is illegal and throws an unconditional compile error. All this does is screw up debugging attempts (e.g., trying to put a return statement at the top of a function to temporarily disable it). It's incredibly unhelpful.
- No preprocessor. Contrary to what Java purists say, there are some things that you simply cannot do without one, which is why there is such a market in external Java preprocessors.
- Inability to split code or classes. This is a huge ***** fault. The code for the standard Character class is one single file 5400 lines long because Java is too incompetent to allow you to use include files or to define functions separately from their declaration. JTable component? 9600 lines. The whole framework is full of these ridiculously long and unmanageable, unsplittable files.
- Inner and nested classes are in the same source file as their parent but turn up in separate compiled files. Since there might be hundreds of these if you're using them as a substitute for function pointers or closures (of which Java has none), this wastes several hundred extra kilobytes of space in a compiled JAR archive because it uses ZIP compression which can't compress redundancy across files. And this is supposed to be good for web deployment how?
- User interface framework is just GHASTLY. There are simply not words to describe how horrible working with user interfaces in Java is. Nothing's simple. Nothing works right. There are dozens of tiny appearance glitches in even the simplest UI. And it always involves ridiculously long variable names being referred to dozens of times in a row. This would be easier if Java supported a 'with' block, which it could, but it doesn't, because it's ***** ***** and lame.
I hate Java. I just wanted to take this opportunity to get that off my chest....... *phew* *breathes out* - vmpstr, on 04/02/2009, -2/+24I agree. I was looking forward to reading something interesting, but instead it's all about web web web. "many (if not most) shops did not have access to bug tracking systems, version control, and other such tools." Really? Maybe web development shops. Any non-web development company I've seen had these for a long time.
- serif69, on 04/02/2009, -0/+20omnitrick does a way better impersonation than nyx210.
- omnitrick, on 04/02/2009, -2/+22Developers, Developers, Developers, Developers
- dalittle, on 04/02/2009, -1/+21This is a terrible list and most of it is gray fluff. A great developer needs the same skills year after year.
1. Programming Languages - they are like tools in the tool box, the more you know the more you can use. Ansi C or assembly for speed, Perl for text processing, etc.
2. Software Patterns - if you don't know what that means do yourself a favor and read "Design Patterns" by the gang of four.
3. Use Cases (domain knowledge) - At least half of programming is collecting requirements and making sure what you are trying to build is going to be useful. Use cases are an actual method for collecting requirements and communicating with your Customer.
4. Mythical Man Month - there are tons of software management books, but I think this one is a must read.
5. What ever is not covered above is defiantly covered in Joels Test for Better Code. (http://www.joelonsoftware.com/articles/fog00000000 ... - PaulMassive, on 04/02/2009, -0/+18I think people just need to learn the principles of being a good programmer to be future proof. Being able to create good modular, reusable and efficient code. Once you have done that switching between languages shouldn't be too much of a problem.
- evilrevolution, on 04/02/2009, -2/+20exactly, i was hoping to see something new here so i could get learnin'
- sydouglas, on 04/02/2009, -0/+18Why all the hate for C# and .NET in general??? Please enlighten me..
- specialK16, on 04/02/2009, -0/+16*makes a wtf face, but starts clapping nevertheless*
- nyx210, on 04/02/2009, -10/+24Developers, Developers, Developers, Developers
- sodoh, on 04/02/2009, -2/+16To add to that list if your planning on doing Mac development (or iPhone) then Objective-C is one to learn as well.
- poonaka, on 04/02/2009, -1/+15"Swing is, on the whole, a relatively well-designed framework"
buried - merreborn, on 04/02/2009, -0/+14Oh man. If that's how you feel about java, I hope you never spend any time with PHP...
- lizard450, on 04/02/2009, -1/+14Dug down for incorrect title. This doesn't deal with the future. This is right now.
- dazparkour, on 04/02/2009, -1/+14I think you want to seek out a field with women in it - there shall you get the head you wish for.
- rotundo, on 04/02/2009, -0/+12Just focus on making a lot of money. The head will come.
- orlyfactor, on 04/02/2009, -1/+13So you're saying the technology behind about 90% of dynamically generated websites will just go *poof*? I think it's important to know one of these, Java has made me a lot of coin over the past 8 years and I don't see it going anywhere soon, especially with recent talks of IBM buying Sun.
- tibbon, on 04/02/2009, -0/+12Dear Author:
Please meet my friends Python and Ruby. They are competent languages to get most of your web development done. Popular places like Google and YouTube happen to use Python and Ruby is used by lots of cool things like Twitter. You don't need to know Java or PHP.
kthxbai - assman665, on 04/02/2009, -0/+11AAAHHHHHHHHH!!!! GET ON YOUR FEET! [/ballmer]
- densetsu23, on 04/02/2009, -4/+15M$
- jman2807, on 04/02/2009, -0/+10Exactly, being a computer science grad and applying for jobs, I've seen these as required skills on 9/10 applications.
- HawgFrog, on 04/02/2009, -0/+10Dugg for addressing mobile development. More and more people are accessing the web on mobile devices and it requires awareness of what will work, and what won't.
- jayselle, on 04/02/2009, -0/+10When you're unemployed and everyone wants Java or C# for web development you might change your tune.
I do agree that every solid developer should understand C though. It blows my mind how many "developers" don't understand basic data structures and why things are the way they are in higher level languages.
C++ isn't anything magical. SVN is just one of many SCM products. It's a good product especially for being open source. But often larger companies wrap up requirements, change management, SCM, build machines, etc, into more intergration solutions like TFS as the author mentioned. - MoneyShot, on 04/02/2009, -0/+10As much as I detest PHP, "no mainstream applications"? WTF do you think Digg is written in? Or Wikipedia? You're not likely to see it in non-web applications because it's designed solely for use on the web. You're not likely to see many web apps written in ASM either.
- arvaris, on 04/02/2009, -1/+11Mythical Man Month is a great book. I worked at a company that thought you could push up deadlines by just hiring contractors to help finish the project after it was already 75% done...we'd end up missing the original deadline and end up with a worse product than if they just let the best developers continue on their path.
- boricuaenigma, on 04/02/2009, -2/+11The hate stems from a company that many, mostly in the open source community, has such a disdain for Microsoft.
The points as to why it will be looked at negatively would be:
- You can do it for free in open source most of the time.
- You have Perl, Python, PHP, and Java to do the same you can do in .NET
- You have PostgreSQL and MySQL, plus others that can do the same job as SQL Server.
- You have lighttpd, Apache, and others that can do what IIS does.
- You have linux, freebsd and others that can do what Windows does. NOTE, this one statement could start a flame war.
I'm a purely open source developer, but I can still appreciate Microsoft stuff. At this stage, you go with what you like and just do it. Saying one if better than the other is fruitless. - Alexrrr, on 04/02/2009, -0/+9So Databases are no longer important? GREAT!....
Really... you must know your SQL, and since some say SQL is actually dying try learning something about ORM. And i agree that Design Patterns should be highly up on that list. - greeniemeani, on 04/02/2009, -1/+10If you think you need unsigned data types or a pre-proccessor for Java, you are doing something VERY wrong. If you actually need that kind of stuff, then you shouldn't be using Java in the first place.
Java's biggest domain is for web applications, not stuff were you are performing XOR's on unsigned integers or AND'ing with bytes you put in hexadecimal form. Java is meant for readability and ease of maintainability, and your above argument shows how clueless you are as to why Java was designed the way it was. - gamerscalling, on 04/02/2009, -0/+9Yeah, read them and said to myself, "So this is nothing new..." though I do know some developers that need to brush up on these, it can make it a pain to work with them with bad "hygiene" or a lack of an overall grasp of the project. Though I guess it is nice to hear some say I have been learning the right stuff every now and again. :)
- Rogor, on 04/02/2009, -2/+11As far as every IT business meeting ive been to in the past 6 months is concerned you also need to figure out how to compete against other developers in the 3rd world who are prepared to work for chickpeas and lentils on the offshoring sites elance, guru etc etc. Because almost every manager I know is looking to offshore their IT development in that way. Actually checkpeas arent as bad as they sound, they can be great with the right sauce and theres less side effects than beans.
- bffoley, on 04/02/2009, -0/+9I love it when some people go bonkers when they see someone say that PHP is anything but a horrendous language. It is one of the "Big Three" and will continue to be so for many years because its a decent language that's used in a ***** of places. Just because there's a lot of morons out there who write bad code with it doesnt mean the language itself sucks.
- arvaris, on 04/02/2009, -0/+9After looking for a job in NYC (and finally getting one), in order to get a non-junior level job you need all of these skills now. But it's not just knowing how to program in an object-oriented language; you must fully understand the paradigm and design patterns too.
Also, you aren't going anywhere unless you know SQL (most companies I interviewed with use SQL Server, though there were a few that wanted MySQL skills); and you have to know about optimizing queries, working with complicated stored procedures, triggers, user-defined functions, etc...
Fact is, if you don't know all the stuff on this list and a whole lot more, you're not going to be a Senior Developer any time soon. - iammzac, on 04/02/2009, -1/+9for the noobs: http://www.youtube.com/watch?v=8To-6VIJZRE
- Mayday, on 04/02/2009, -0/+8Both Java and C/C++ have advantages and disadvantages over one another. The better language depends on the task at hand. I do mainly OS level programming therefore C/C++ wins out because of the access I have to Unix libs and Windows dlls, but I have to say programming doesn't get much easier than Java and it's hard to beat its portability.
- eedok, on 04/02/2009, -0/+8if(true)return;
there a way to make unreachable code without breaking the compiler - Gonasadude, on 04/02/2009, -1/+9I don't refute your claim that Web app developers are developers as well. I'm just saying that every 'developer' story that hits digg is about Web Development.
-
Show 51 - 100 of 334 discussions




What is Digg?
The Digg Toolbar for Firefox lets you Digg, submit content, and keep track of Digg even when you're not on the Digg site. Download the official