I am sure that there are some other items which you think should be on this list... what are they, and why?
J.Ja
Discussion on:
View:
Show:
Good list, with the exception of nothing about database technologies. Without data, all you have is eye candy. Even YouTube is all about its data, including the indexing and searching capabilities.
But for most developers, SQL is a tertiary skill, so it is not deemed as very important. You did at least mention LINQ, but personally, I am very unimpressed with LINQ. It is perpetuating bad habits of application developers into their data access techniques.
But for most developers, SQL is a tertiary skill, so it is not deemed as very important. You did at least mention LINQ, but personally, I am very unimpressed with LINQ. It is perpetuating bad habits of application developers into their data access techniques.
I tend to agree. I think SQL is becoming an "assumed skill", much like "security". A foolish assumption, of course, but as more and more shops push the DB work to a DBA or replace DBAs entirely with various ORMs in the hands of developers (not exactly a good move, if you ask me), explicitly stating "SQL experience" on the resume is declining in ability to interest recruiters.
J.Ja
J.Ja
build a sql string from user input, or suck an entire database on to a client and then loop through it using ten nested if statements as a filter, and then update target records one by one, with no transaction in force.
Where would we be without that sort of thing?
Where would we be without that sort of thing?
Sql is insanely useful for building up websites and databases. Your website can go so much further with sql.
, five years before that as well.
Threading, parallelism and security, and adding more low level knowledge would be my additions.
I believe we are going to end up working a bit more out of our comfort zones than normal. Current downturn means hiring in some expensive one trick pony, is going to be a much harder sell, if you already have a guy who can muddle through.
Threading, parallelism and security, and adding more low level knowledge would be my additions.
I believe we are going to end up working a bit more out of our comfort zones than normal. Current downturn means hiring in some expensive one trick pony, is going to be a much harder sell, if you already have a guy who can muddle through.
On threading/parallelism, though, I am starting to back away from my stance a bit. To be honest, very little "mainstream" development taxes a CPU enough to really have this be useful, other than having a cancel button on the screen. As much as I find it facinating, most developers just don't have the need. It also speaks volumes about the kinds of work most of us are doing, too. 
J.Ja
J.Ja
I'm sure about the 'development skills' part, but I believe every developer should have business-level skills like people management, negotiation (communication) and project management. He / she becomes an entrepreneur for the company and is accountable to for every action involved.
What you describe are things that are considered "soft skills".
J.Ja
J.Ja
any good design technique?... i have seem some kind of 'programs' without any layer, any functional separation... and they become a mess sonner or later... i think that any MVC model would be great for building good software
I used to develop programs in Clipper and feel that something like MySQL might be a good fit for me. Is there enough mainstream demand for those skills? I'm guessing getting into some open source projects or doing some free work for a non profit, might give me the experience needed to get back into a programming job. I've been a 1 man IT shop for 8 years now and tired of it!
I've started playing with Haskell, a functional language. What's interesting about functional programmimng is that it appears to lend itself more readily to multi-threading than traditional programming languages like Java, C++ or c#. Considering today's multi-core chips, being able to use more than a single core could make someone very employable.
Ed -
You are absolutely right that FP (and Haskell in particular) lends itself well to parallelism! Indeed, there are many efforts along those lines. Erlang is an FP language designed for just that (often used, from what I hear, in telephone switch programming). Haskell has a parallel version of itself too, from what I know. The lack of "side effects" in FP eliminates huge swaths of problems like deadlocks and race conditions.
J.Ja
You are absolutely right that FP (and Haskell in particular) lends itself well to parallelism! Indeed, there are many efforts along those lines. Erlang is an FP language designed for just that (often used, from what I hear, in telephone switch programming). Haskell has a parallel version of itself too, from what I know. The lack of "side effects" in FP eliminates huge swaths of problems like deadlocks and race conditions.
J.Ja
Wow, you hit the nail on the head dude. Well done!
RT
www.anonymity.us.tc
RT
www.anonymity.us.tc
AMEN on the soft skills. Lots of IT departments tried so hard to live in little closets in basements somewhere, hiding behind group e-mail accounts and requesting full system definition before any code work could start. Those departments got outsourced, because, well, why not? New IT has to be flexible and integrated with the organization, so you see the needs yourselves and become the problem solvers. --spacefem
Ironically enough, one thing that attracted me to this industry when I was a kid was the image of the developers in the basement. I found against the "in the open" IT for a while, much to the detriment of my career. When I finally got the message, I started seeing a lot less friction at work and a lot more progress in my responsibilities and pay rates.
J.Ja
J.Ja
Yes I think there was a lot right with hiding away in the basement.
The costs are too high to make it a sensible strategy anymore but the loss of that separation has seen a decline in the thinking and developing time and therefore a decline in the quality of IT solutions.
I think the firm that manages a balance where IT is accessible when that's right but people or teams can withdraw into caves to get some real work done will reap the benefits.
I've never seen this done well myself. Anyone know of a firm getting this close to right?
The costs are too high to make it a sensible strategy anymore but the loss of that separation has seen a decline in the thinking and developing time and therefore a decline in the quality of IT solutions.
I think the firm that manages a balance where IT is accessible when that's right but people or teams can withdraw into caves to get some real work done will reap the benefits.
I've never seen this done well myself. Anyone know of a firm getting this close to right?
IT is a job that requires really long term (sometimes in the days, weeks, or months) or intense mental focus and concentration to do well. It also helps when only those who are most passionate about it are actually doing it. Moving "out of the caves" has hurt both ends of things. Another thing that hurt IT a lot was the demand for talent combined with the pay grades. People realized they could make a lot more money as an incompetant sys admin or developer who didn't care about their job, than they could as an accountant or office administrator with the same lack of ability.
J.Ja
J.Ja
I keep hearing about soft skills being a key to being hired in IT. I've been hearing the same tune for almost 30 years now. After 30 years you'd think that hiring managers would have managed to find the numbers that they need....
I think soft skills is one of those media promoted, HR initiated things that everyone says they need but no one hires for.
(Please note ... yes, I believe that IT needs soft skills (and more generally business skills) ... I just don't believe they are actually hiring for them.)
Glen Ford, PMP
http://www.trainingnow.ca
I think soft skills is one of those media promoted, HR initiated things that everyone says they need but no one hires for.
(Please note ... yes, I believe that IT needs soft skills (and more generally business skills) ... I just don't believe they are actually hiring for them.)
Glen Ford, PMP
http://www.trainingnow.ca
I think there are two sides to this. Yes, in many ways, few people truly "hire for" soft skills. At the same time, soft skills (or the lack of them) have an *immense* impact on your career in not-so-obvious ways.
People with soft skills get ahead, which is reflected on their resumes. Management always feels more comfortable with an average worker who is good with others than they do with a great worker who can't handle comunications, leadership, etc. And in all honesty, why *should* a technical genius be managing if 1) it means they spend less time doing what they like and are good at (technical work) and 2) they lack the ability to actually do their new role (manage) because they lack the needed skills? Plus, they interview much, MUCH better too... trust me. I've interviewed people afterwards where the concensus was, "smart person, but I would hate to be in a meeting with them, we won't hire." It's a shame. But that's how it is.
On the other hand, I wouldn't mind seeing a "return to the caves" for a lot of IT roles, which would in turn reduce the influence of soft skills on careers. But it is unlikely to happen any time soon.
J.Ja
People with soft skills get ahead, which is reflected on their resumes. Management always feels more comfortable with an average worker who is good with others than they do with a great worker who can't handle comunications, leadership, etc. And in all honesty, why *should* a technical genius be managing if 1) it means they spend less time doing what they like and are good at (technical work) and 2) they lack the ability to actually do their new role (manage) because they lack the needed skills? Plus, they interview much, MUCH better too... trust me. I've interviewed people afterwards where the concensus was, "smart person, but I would hate to be in a meeting with them, we won't hire." It's a shame. But that's how it is.
On the other hand, I wouldn't mind seeing a "return to the caves" for a lot of IT roles, which would in turn reduce the influence of soft skills on careers. But it is unlikely to happen any time soon.
J.Ja
I was certainly hired for at least my extensive experience in successfully applying some of my hard skills, to various problems. It took them nine months to find me and they knocked back a lot of people. Given the hard skills were quite obviously the recruiters default first choice for filtering out the unsuitable...
The desire for experience was explicit. Why they wanted it was only implied though.
One thing I would say is saying IT needs soft skills, particularly communication is a demonstration of the lack of them in business.
If you didn't understand me, say so. I'll get it across eventually. Communication is a two way process, the only way one side can be at fault is with a refusal to communicate.
Not telling me you didn't understand is a refusal. The other point is the more abstract and less techy I make an explanation, the further away from reality it is. This can leave a profound comprehension gap, if the business extrapolates from that misapprehension, who is at fault....
The desire for experience was explicit. Why they wanted it was only implied though.
One thing I would say is saying IT needs soft skills, particularly communication is a demonstration of the lack of them in business.
If you didn't understand me, say so. I'll get it across eventually. Communication is a two way process, the only way one side can be at fault is with a refusal to communicate.
Not telling me you didn't understand is a refusal. The other point is the more abstract and less techy I make an explanation, the further away from reality it is. This can leave a profound comprehension gap, if the business extrapolates from that misapprehension, who is at fault....
...at the very least.
I agree with the general gist of the article, but flash is a no go for alot more people than he gave credit. Hell, I know alot of people that run adblockplus just so they can dynamically disable flash (and ads, of course, which are generally flash based)
Since I am a web developer more than traditional programmer, I think he should have also included more knowledge of traditional languages, like C++ and the like.
Actually, I am not really sure who he was targeting with this article, because I know something of most (not all) of the technologies he listed. Granted, as I have said, I am a web designer at heart, so this stuff is my bread and butter.
I would like to jump into python and like, though.
I agree with the general gist of the article, but flash is a no go for alot more people than he gave credit. Hell, I know alot of people that run adblockplus just so they can dynamically disable flash (and ads, of course, which are generally flash based)
Since I am a web developer more than traditional programmer, I think he should have also included more knowledge of traditional languages, like C++ and the like.
Actually, I am not really sure who he was targeting with this article, because I know something of most (not all) of the technologies he listed. Granted, as I have said, I am a web designer at heart, so this stuff is my bread and butter.
I would like to jump into python and like, though.
I don't know, but does PHP really fall into this category? It doesn't seem to have the framework support Java or .NET has, and also not too many "professional" IDEs.
To a certain extent I think PHP does fall into this category. We're not talking about developing control systems for a nuclear power stations here as the rest of the items on the list lend themselves to Web based development. In this regard PHP is right up there if not top of the pile. Yes, PHP has its faults (loosely typed for one) but it does the job well when in the right hands. There are a number of frameworks like Cake PHP, Yii and even the Zend Framework.
Again, its horses for courses. If you're developing the public facing interface for a banking system I doubt you'd use PHP but for many other applications PHP is perfect.
As for a lack of professional IDEs the best for PHP by far is PHPEd. It has code completion, real time debugging and code profiling, SOAP wizards the lot. Realistically .NET has one IDE: the fantastic Visual Studio. I use both C#.Net and PHP interchangably depending on the project.
It doesn't matter which language/framework a dev knows as long as they know it in depth and can use it effectively.
Again, its horses for courses. If you're developing the public facing interface for a banking system I doubt you'd use PHP but for many other applications PHP is perfect.
As for a lack of professional IDEs the best for PHP by far is PHPEd. It has code completion, real time debugging and code profiling, SOAP wizards the lot. Realistically .NET has one IDE: the fantastic Visual Studio. I use both C#.Net and PHP interchangably depending on the project.
It doesn't matter which language/framework a dev knows as long as they know it in depth and can use it effectively.
Persoanlly, I am not a fan of PHP. I would have preferred it if Perl simply had a good templeting engine like the PHP system, and now that I am learning Ruby, I like it much better. At the same time, I can't deny that a huge amount of work gets done in PHP, and even if everyone stopped using it tomorrow, people would be maintaining PHP apps for a long, long time.
J.Ja
J.Ja
PHP rubs me the wrong way on a lot of levels. It's not like I despise PHP or anything like that. I'm more turned off by most of the PHP code I've looked at more than the PHP language itself, and I'm aware of that. Do I have quibbles with it at a technical/syntactic level? Sure. No more or less than I do with VB.Net, C#, Java, Ruby, etc. That's mostly personal preference anyways. My big turn off with PHP is that every time I've looked at the code for an application that was complex or had a lot of functionality, it looked like the developers are consistently forced to pick from some very bad options in order to work around PHP's (probably deliberate, since it is a scripting language) limitations. Things like how to approach customization of messages/text/etc., it lacks a proper resources system. Or instead of giving it a good namespacing/library system, people do these awful directory hierachies. Makes it very difficult to find anything!
J.Ja
J.Ja
is that everyone does everything the same way....like, well....microsoft.
You don't need to be a programmer if it's all just drag and drop and use our built in objects or else.
I think MS has proven that this just leads to overhead issues and well a mess as well.
I like PHP because you get to do just and only just what you want.
Sure there are lots of people who just don't care and write crap, but that's not PHPs fault unless you are saying that they should not allow certain things.
Got a limiter on your car for the speed limit do you :-P
I agree that MS is a giant monster and they do lots of good things, but I don't agree that one should just assume they know better in every circumstance.
You don't need to be a programmer if it's all just drag and drop and use our built in objects or else.
I think MS has proven that this just leads to overhead issues and well a mess as well.
I like PHP because you get to do just and only just what you want.
Sure there are lots of people who just don't care and write crap, but that's not PHPs fault unless you are saying that they should not allow certain things.
Got a limiter on your car for the speed limit do you :-P
I agree that MS is a giant monster and they do lots of good things, but I don't agree that one should just assume they know better in every circumstance.
PHP was a language designed to make easy the life of web developers. Many things that require special programming or the use of libraries are just there in PHP to be used. On top of that, the bottleneck these days are the band size and the database access (hard drive). Because of that, PHP performs similarly to other languages, because most PHP programs use databases.
So, all in all, it is a good language for quick development, and, with some careful coding, it may be close to C# or Java regarding maintainability.
However, PHP reminds me BASIC. Sure, it's easy to learn. Sure, you can do almost anything with BASIC. It's just that it makes too easy to develop horrible code that is hard to understand and maintain. Obviously, anybody can write horrible code in Java or C#, but the whole design and ethos of those languages is oriented to make encapsulation, OOP, etc., easier, and not more difficult to write.
So, all in all, it is a good language for quick development, and, with some careful coding, it may be close to C# or Java regarding maintainability.
However, PHP reminds me BASIC. Sure, it's easy to learn. Sure, you can do almost anything with BASIC. It's just that it makes too easy to develop horrible code that is hard to understand and maintain. Obviously, anybody can write horrible code in Java or C#, but the whole design and ethos of those languages is oriented to make encapsulation, OOP, etc., easier, and not more difficult to write.
you can do some high level stuff with php. It is built very much like Java and even c.
I do know a few people that run php as a true programming language, but it is usually for their personal machines, not for a business.
On the topic of Professional IDE's, notepad++(windows) and nano(GNU/Linux) are my IDE's for all my programming (as of right now)
I do know a few people that run php as a true programming language, but it is usually for their personal machines, not for a business.
On the topic of Professional IDE's, notepad++(windows) and nano(GNU/Linux) are my IDE's for all my programming (as of right now)
Coldfusion. Coldfusion covers points 2,3,and 4. It is stable, reliable, and proven. There are several free server implementations. There are tons of free and sophisticated applications at RIAForge. Check out SAVA CMS if you don't know what CF can do for you.
I am really surprised that you omit the mainframe developer skills so easily! Especially because there is so much COBOL out there, I doubt all .NET, JAVA and PHP code put together could even get close to the estimated 200 Billion lines of COBOL code in production systems.
It is a little misleading to omit such an important language in the "Big Three"!
It is a little misleading to omit such an important language in the "Big Three"!
The three languages mentioned are used on web technologies, which are the present and future. COBOL and mainframes are the past.
Mainframes can and still do some things much much better than any combination of PCs.
They will be about 'for ever'. Needing Cobol as a skill over the next five years isn't true. It would be more true to say that those businesses dependent on that environment are going to need to attract and groom new developers. Simply because that is cheaper than a replacement, I think they are going to have to go down the apprentice/sponsorship route though.
Saying that if you pick up cobol and mainframes, you will get a job and a good salary and be valued. I've a few mates who do it, money and perks are not to be sniffed at, I assure you.
They will be about 'for ever'. Needing Cobol as a skill over the next five years isn't true. It would be more true to say that those businesses dependent on that environment are going to need to attract and groom new developers. Simply because that is cheaper than a replacement, I think they are going to have to go down the apprentice/sponsorship route though.
Saying that if you pick up cobol and mainframes, you will get a job and a good salary and be valued. I've a few mates who do it, money and perks are not to be sniffed at, I assure you.
If you think there is no work going on in mainframes right now and continuing as far into the future as one can see in IT you are dead wrong.
Are they cool and exciting and all that jazz? No.
But for as long as the NSA runs M204 the security of the USA relies on tech developed before the first line of C was ever written.
If you think that the NSA couldn't make a case for as many billions as required to move to a new infrastructure if they wanted to do it you are fooling yourself. They stay with mainframes because they still do stuff no collection of PCs can do.
There are still huge aspects of the info tech of this planet that are run on mainframe technology and it needs people to work on it.
Will you get your face on the front of Wired or IPO out for a cool million? No. But you may have a secure job for a decade or decades so it's going to be the future (or part of the future) for more than a few IT grads every year for as far as we can see into the future.
Not to discount everything else happening but just to remember, all things in moderation.
Are they cool and exciting and all that jazz? No.
But for as long as the NSA runs M204 the security of the USA relies on tech developed before the first line of C was ever written.
If you think that the NSA couldn't make a case for as many billions as required to move to a new infrastructure if they wanted to do it you are fooling yourself. They stay with mainframes because they still do stuff no collection of PCs can do.
There are still huge aspects of the info tech of this planet that are run on mainframe technology and it needs people to work on it.
Will you get your face on the front of Wired or IPO out for a cool million? No. But you may have a secure job for a decade or decades so it's going to be the future (or part of the future) for more than a few IT grads every year for as far as we can see into the future.
Not to discount everything else happening but just to remember, all things in moderation.
I considered putting it in there. Why I skipped it, is because it is something which is only used in certain industries, amongst companies of a certain size. Every company out there has work for a .Net, J2EE, or PHP developer, even COBOL shops (someone's gotta write the Web site or the in-house something-or-other). But COBOL's reach is a bit limited.
That being said, I think that someone who learns COBOL today, gets a job at a bank or an insurance comapny, really learns their systems, and is happy to be working on the same giant application for a long time will have a great, stable, steady job that they can be quite happy with. Especially since many of the current COBOL programmers are retiring and it becomes more and more difficult to replace them, young people who learn it today are in for a smooth future.
J.Ja
That being said, I think that someone who learns COBOL today, gets a job at a bank or an insurance comapny, really learns their systems, and is happy to be working on the same giant application for a long time will have a great, stable, steady job that they can be quite happy with. Especially since many of the current COBOL programmers are retiring and it becomes more and more difficult to replace them, young people who learn it today are in for a smooth future.
J.Ja
Seriously, more buzzwords! That's what makes a Real Developer, right? Rails and agility with a bloated xml webservice please! BARF
Your "Real Developer" probably codes out of a cardboard box. Welcome to the "Real World".
So what does make a 'real developer' then?
How about something constructive instead of just throwing mud?
How about something constructive instead of just throwing mud?
Thanks for writing this post. I wasn't surprised about the first one, learning one the "Big Three" nor was I surprised about Mobile Development. Especially now that WordPress is a main component to blogs these days, learning PHP is very helpful. As well as learning mobile development for the iPhone and BlackBerry. I'm predicting we'll see a lot more of open-source development in the future.....
I agree that Web Development, Web Services, RIAs, and Mobile are key skill areas developers should be familiar with to remain relevant. However, I'd argue don't lead to a "Big 3" or "Dynamic Language" requirement as much as they lead to having at least one solid server-side platform you're efficient with and solid client-side skills. I'd suggest JavaScript is a foundational skill here, it's the only language you're almost guaranteed to have to grok a bit to work in a browser.
Tying client and server together effectively exposes a skill you left off -- serious security awareness. Building for the web and mobile and not exposing both your customers and company to serious risk means being security-minded at all times.
Tying client and server together effectively exposes a skill you left off -- serious security awareness. Building for the web and mobile and not exposing both your customers and company to serious risk means being security-minded at all times.
If you can't program in several langauages and several types of language, you are not that good. However JJs article was more of a how to make yourself acceptable in the market place as anything, and HR types put a real emphasis on choice of tool.....
Before you can make an impact with an employer you have to get them to give you a job.
Once you are through the elimination process of having enough of JJ's list to be considered further then extra skills and depth start going on the table but without some of the foundations JJ suggests the door is going to stay closed in your face in a lot of places.
Once HR agrees for you to be interviewed by fellow tech heads having the deep knowledge you suggest may bear fruit. But if the field is weak you'll get a job just on the possessing the basics while someone without the basics but a better technologist will not even get to the interview.
It may not be sensible but I think we all know it's more true than not.
Once you are through the elimination process of having enough of JJ's list to be considered further then extra skills and depth start going on the table but without some of the foundations JJ suggests the door is going to stay closed in your face in a lot of places.
Once HR agrees for you to be interviewed by fellow tech heads having the deep knowledge you suggest may bear fruit. But if the field is weak you'll get a job just on the possessing the basics while someone without the basics but a better technologist will not even get to the interview.
It may not be sensible but I think we all know it's more true than not.
Let's face it, while those of us who code well, generally enjoy it, the added side effect of putting food on the table is quite important.
I've been coding at lead/senior level since 1992, and I still get asked questions like but can you do OO, and are you familiar with the development lifecycle. The clues that you can do the job, need to be current and preferably highlighted 40pt bold underline and italic on the resume.
I've been coding at lead/senior level since 1992, and I still get asked questions like but can you do OO, and are you familiar with the development lifecycle. The clues that you can do the job, need to be current and preferably highlighted 40pt bold underline and italic on the resume.
- Keyboard Shortcuts:
- Prev
- Next
- Toggle

































