views:

16387

answers:

255

For me, I've always wanted to finish the O'Reilly "Mastering Regular Expressions" book. When I need a Regexp, I manage to get the one I need eventually, but it takes more effort than it should.

Learning a specific technology or language always seems to bubble up ahead of this.

+113  A: 

Learn a scripting language like Ruby or Python. A nice scripting language under your sleeve can really increase productivity.

jjnguy
Don't wait up. I recommend ruby (disclaimer: I am completely biased towards ruby!) Try this sweet and short tutorial, and fall in love with programming again. (never mind the title.) http://pine.fm/LearnToProgram/
ragu.pattabi
Also, scripting languages (at least lua, python, ruby, perl, php) tend to emphasize using maps/dictionaries for everyday tasks - you will be enlightened!
Daren Thomas
Totally worth it. Even if your company wouldn't put out a ruby product to save its life, there are so many ways it can help your personal productivity. I've often done log file analysis and code generation with one-off ruby scripts, it gets a boring job done and impresses non-scripting colleagues.
marijne
thanks for the encouraging words
jjnguy
Ooh, ooh, can I plug powershell here? No? Oh, well...
Jay Bazuzi
Yes switched from NAnt to Python for my build scripts and found it much more productive and *fun* than trying to code conditional flow logic in XML. Never looked back.
Ray Vega
Go to http://diveintopython.org you'll be amazed how fast you pick it up.
too much php
+23  A: 

Infallibility.

Will Robertson
Brilliant! Is that an O'Reilly book or APress?
KevDog
Sounds like a good name for a server product.
Ferruccio
For server product, that would be "Infailability" :)
Ilya Ryzhenkov
More of a "papal" skill, really.
Kyralessa
just type iddqd
bobobobo
Haha, looks like 6 people before me remember Doom! idspispopd idkfa FTW!
Chinmay Kanchi
I was a Wolfenstein fan, myself. (Though I do remember idspispopd.)
Steve
+359  A: 

Functional Programming.

Ferruccio
Yeah, that makes sense with the new features in C# and with F# coming soon.
KevDog
Definately functional programming. I studied ML at university, but it completely baffled me. At the time so did Java, and now I don't have any trouble understanding those concepts. Time to take another look at functional programming.
Marc Gear
I just did my first major ML project last night for a class. It definitely was a challenge to my traditional thinking of program flow. Expressions!!
Zach
i totally agree with functional programming. it offers a complete change of perspective which helps you see problems in a new light
liangzan
While learning Haskell I came to realize this: to solve a software engineering problem, and to describe the solution in a given language; these are two separate programming skills. A pivotal moment in my ongoing quest for enlightenment.
Internet Friend
I started learning Common Lisp to learn functional programming. It really stretches your mind if you're not used to the paradigm.
Cristián Romo
My answer is much more complete:http://stackoverflow.com/questions/121351/what-is-the-one-programming-skill-you-have-always-wanted-to-master-but-havent-h?answer=173187#173187Why is everyone voting up these two words?
DV
What does your answer have to do with Functional Programming???
Turambar
I'm still far from mastering functional programming, but some of the functional stuff in the STL and Boost is starting to make sense. Even seems useful...
Ferruccio
I <3 functional programming :-P I wish I had more chances to actually use it, since in work I mostly write Java :-/ I wish I could find the time to re-read SICP and also finish reading Practical Common Lisp (and actually learning Common Lisp)
Dan
I want to vote this up not because I've always wanted to learn FP but because I want to use it more day to day... I'm no master but certainly no novice FPer. FP will make you the best coder possible in your own language. Do it!
Jared Updike
I wish the people going on about monads would stop having their head up their a** and start explaining things so that people who don't already understand everything about monads would get it.
Lasse V. Karlsen
When I was shown Haskell at Uni, it was like "hey, this is what programming is really about". Also, a few years later, I learnt to recurse templates in C++ and realized templates are just functional programming all over again. :)
Marcus Lindblom
Since F# is out... functional programming is a must-have ;)
wishi
@DV The cognitive cost is lower, widening the audience.
Plynx
+22  A: 

Becoming better at finding and fixing memory leaks.

Jeff Hillman
It's easy ... just use C# ;-)
Joel Martinez
That's like saying you want to become better at tuning a carburetor. Just switch to a fuel injection system (Java, C#, basically any modern language). Ignore that advice if you actually need to use languages without automatic GC on a daily basis. That is becoming more and more rare.
William Brendel
... or stick with C++, but use RAII and boost::shared_ptr<T>.
j_random_hacker
Or use valgrind
Ben
RAII/shared_ptr rocks. Solves 99.9% of memory issues in C++.
Marcus Lindblom
+134  A: 

Multithreaded programming is something that I sometimes have to use but know next to nothing about.

Mendelt
Multi-threaded programming is dangerous for beginners and difficult for experts. I think it needs better language/compiler support before this should be a main stream need.
Martin York
I agree that we need better high-level language constructs for this but abstractions over stuff like this are always leaky and sometimes you need to look under the hood to see what it's really doing.
Mendelt
With multi-core processors popping up everywhere, everyone (programmers, compilers, languages, etc.) has a lot of work to do.
Jay Bazuzi
Actually, having someone "knowing next to nothing about multithreading" write multi-threaded code sounds scary to me. It so easy to introduce subtle bugs and races even when you know what you're doing...1. You should take the time to learn it2. Write extensive unit tests!!!
Hershi
Both c# and java have more then enough langauge support to keep you well out of trouble. <q>"Write extensive unit tests!!!"</q> you would need theaded tests. Most race conditions are hard to reproduce, so you could have a unit test that passed 95% of the time and hit the run condition the other 5%.
David Waters
Hershi - I agree, this is scary. I expect even recent graduates to know now to write multi-threaded code!
Dmitri Nesteruk
Personally, I know enough theory, I know the differences between synchronization methods (semaphore, mutex, critical section, event). I just never had time to learn to use them properly, to measure what NEEDS to be synchronized and what doesn't. On the other hand - lockless thread-safe algorithms and structures is something that I've always wanted to learn and use.
Paulius Maruška
Find programming! easy I threaded multi pfft.
Noon Silk
You guys should take a look at this function http://stackoverflow.com/questions/12159/how-should-i-unit-test-threaded-code
the_drow
+145  A: 

This is crazy, but writing device drivers :-)

torial
that's second on my list ;)
Len Holgate
That's near the top of my list too.
Joshua Carmody
I would really like to learn how to do that too, especially graphics drivers.
Cristián Romo
That's on my list as well.
Iwasakabukiman
Top my list! Since I already know functional programming hehe!
chakrit
OS development is the closest thing on my list. Even wrote a very simple protected mode kernel, but couldn't get pre-emptive multi-threading working.. Then I gave up because I really don't have enough time these days :-(
Dan
Also on my list. I've already bought a book how to do that, but there is no time :(
Darth
@Cristián : Graphics drivers are quite an exercise in OS, hardware and spec reverse engineering though, at least for Windows/D3D. That part you may not like. Graphic chips have a huge interface real estate and expect a lot on your part.
joelr
+73  A: 

Become a WinDbg ninja.

Jeff Hillman
These day I am really trying :)
Jacob T. Nielsen
Me too! Recently I got fed up with my editor hanging, causing unsaved work to be lost, and decided to try debugging it with WinDbg. After a couple of hours I was able to pinpoint the WaitForMultipleObjects() call that was causing the hang despite no source code -- now I'm a WinDbg convert!
j_random_hacker
Have a look at this blog, maybe you will find it usefull http://blogs.msdn.com/tess/default.aspx
martin.malek
Love the whole 90s interface and matrix like blobs of dump data :D
Paolo
@martin.malek: Thanks for the blog link, looks useful. (I notice it's authored by Yet Another attractive young woman who enjoys low-level debugging... :-P)
j_random_hacker
Nice, this seems like a very intriguing topic and I had never heard of it before.
PRINCESS FLUFF
+4  A: 

I think it would be great to master stored procedures in SQL Server. I used them on a few projects a lot when I first discovered them but haven't really gone any further than that. I think mastering SQL in any way is an invaluable skill to have.

Patcouch22
+261  A: 

Getting fully into automated unit testing

Wayne
I did want to do this, and I've done it now... highly recommended.
RickL
Yeah, I'm the same as Rick. Its the best way to work by far. I've found that I more done working with unit tests than trying to debug on the fly, and I have a fully automated test suite to go with it.
Bazman
I've done automated unit testing, and eh, if you don't do it right, it seems like you're putting more effort into maintaining tests than writing good code. Now, Test Driven Design, that's an approach worth working towards.
Tchalvak
+1 I also want to get into to this!!
AntonioCS
The first time that I wrote a unit test which serendipitously exposed a bug in existing code, I was hooked.
Ferruccio
+216  A: 

Games programming... 3d graphics particularly.

RickL
First on my list :]
rafek
Mine as well. In particular, how to performs basic skeletal animation using only matrix transforms.
Cristián Romo
Tried the OpenGL thing on the iPhone -- I'm amazingly baffled by it, and have to remind myself that I've spent a decade working on the programming that I'm comfortable with now and I'm not gonna learn it overnight.
Mark S.
I would highly recommend the book "3D Math Primer for Graphics and Game Development" before starting graphics programing.
Corin
@Christian Romo: Everything in graphics is about interpolation, even that :-)
Jasper Bekkers
@Jasper I'd say this is also true of other types of simulations in general :)
joelr
@Cristian: you are a true masochist
bobobobo
My son's in high school - 3rd year programming - and he's creating multi-player on-line games. I am so jealous!
Ed Schembor
@Corin: One of many, many books on my list of stuff to read!
Chinmay Kanchi
I had this dream a while back..... but I am in web programming. It's hard to make the jump :(
AntonioCS
+127  A: 

Finding more free time to work on personal programming projects.

ChronoPositron
Sometimes I have the time but I don't have the will
AntonioCS
Just quit the job.
topright
+7  A: 

Faster at cranking out unit tests (so I don't have to put off writing them when time gets tight as it always does in a project).

Korbin
+20  A: 

It has to be unit and regression testing. I know the theory behind them, but not always when and how best to implement them.

Adam J. Forster
When - if you think there is a remote chance that requirements will change or enhancements will come. i.e. always :)How - language dependent but usually involves a unit test lib and a CI server.Learn it - it's very important for non trivial projects.
Geoff
Regression testing is boring stuff
JohnIdol
+12  A: 

Distributed Communication (such as WCF) ... I've used my share of soap web services, et al, but I don't feel that I've mastered the art of having systems talk to each other over the wire.

Edit: Since I've written this, I have gone on to learn and use WCF successfully ... quite happy with it :-)

Joel Martinez
+50  A: 

Non-trivial assembly language programming.

Len Holgate
Is there any other kind??
TonyOssa
Sure I can play with adders and simple loops (and call system calls) all day long, but actually go and make something usefull is a lot more complicated.
Luka Marinko
@TonyOssa: haha so true!
Dan
I find I need truly relocatable code just often enough to require me to use it.
Joshua
Looks like I may finally get around to this with embedded assembly language for AVR microcontrollers for my new robot project; http://www.lhexapod.com
Len Holgate
Yep, it's way easier to learn assembly when you don't have to work with an operating system (IMO).
Wallacoloo
+81  A: 

For sure, Regular Expressions. Have you ever seen the 6,343 character RegEx pattern for RFC822 validating email addresses? Abusive...

http://www.codinghorror.com/blog/archives/000214.html

Gordon Bell
I love Regex, could not live without them!!!
Scott
Regular expressions are complex enough to be considered a language in their own right. Learn them, and you can use them in almost any programming language. They give a great return on investment.
Liam
Even the most horrific-looking regex can be broken down into tiny steps that are easy enough to understand on their own. Once you know the rules and just break it down then they're not all that bad.
Wayne Koorts
A 6kb regex? Ow.
Dean J
+8  A: 

Decent recursion

Kuvo
HA does that make you head go round circles ;)
Tim Matthews
For me it's rather: Avoiding recursion. Recursion is much easier than putting stuff on stacks and building it by hand.
+172  A: 
  • Fully implementing a language (lexer + parser + (compiler|interpreter) [+ runtime])
  • Assembler/bytecode (it's as close to the [virtual] metal as it gets!)
Mark Cidade
I've been wanting to do this too, but it is a huge amount of work.
Christian Vest Hansen
This is top of my list at the moment. I have a few language ideas which I really want to develop into a full language with tools and runtime. Unfortunately, as Christian said, its a huge amount of work.
Dan
I've started on a CLI-on-a-CLR using Mono.Cecil
Mark Cidade
ANTLR will get you far for language impl. as long as u know what you're doing with the grammar.
Mark Cidade
Yeah. Language creation is tough, but fun.
luiscubal
Nice to see I'm not the only one haunted by this temptation. :-)
Jared Updike
Every time I see a new language or a implementation of a language spec, I so want to throw in one my own!
Amit
LLVM can help you to generate a language, including an interpreter/compiler. You end up generating an abstract instruction set, but it can be transliterated into the machine's instruction set on the fly.
AlBlue
+10  A: 

Inversion of Control and Dependency Injection... truly, not just the theoretical part.

Seb Nilsson
My suggestion would be to start small and do DI by hand - basic constructor injection. Once you see how easy that is and what benefits it provides, then start looking at some of the simpler IoC Container frameworks.
TrueWill
+11  A: 

Silverlight and WPF

MikeJ
Always? Are you just 3 years old?
erikkallen
+3  A: 

Assembly language for 80386, 80486 processors.

Really, Thought i'll learn for just the thrill.

Havent gone further than 8085 in college

Prakash
+4  A: 

Learn to use a php framework.

kmilo
Check out CodeIgniter
WarmWaffles
+3  A: 

Concurrency

Rui Vieira
+6  A: 

On the advice of jjnguy, here is my answer:

For me, I've always wanted to finish the O'Reilly "Mastering Regular Expressions" book. When I need a Regexp, I manage to get the one I need eventually, but it takes more effort than it should.

KevDog
+135  A: 

Artificial Intelligence -- specifically Neural networks.

TcKs
This is not a programming field
JohnIdol
David Waters
On my list. Anyone recommend a book they've actually read?
Tim Matthews
I've done a few neural networks, and I hope you're not expecting any magic bullets - neural networks crucially depend on excellent preprocessing. Really, they're just a nice technique for approximating a function. If that's what you're aiming for, great, but don't expect any cleverness...
Eamon Nerbonne
I wanted to learn AI but never got a change.
rjoshi
I'm taking a class on neural networks right now, and the book we're using is Graupe's Artifical Neural Networks. (Disclaimer: The author is my professor.)The last chapter sucks and was obviously written by an English-challenged graduate student, but the rest is pretty decent. What's really helpful is 1) There's the mathematical theory behind each network, which is helpful, but sometimes difficult to understand.2) There's also sample source code for each network (Matlab and C++ mostly) but they're great for understanding the network.
Milan Ramaiya
(continuing)3) Each chapter also has a case study showing results of a relatively minor character recognition problem, so you can understand how the networks.Personally, the case studies were perfect for understanding the capabilities and limits of each network, and the source code was really helpful in understanding how to implement it.Even if you don't write Matlab, it's a simple enough language that you should be able to understand the code.
Milan Ramaiya
+5  A: 

Objective C 2.0

sigh... I really really really can't get into it because my personal sense of aesthetics is violated by its syntax.

I promise to try harder tho.

kitsune
I hear you, my brother. I love using my Macs, but I just can't bring myself to spend much time on Obj-C as it causes me pain.That language needs so much syntactic sugar it would get diabetes if it were all added at once.
KevDog
Syntax aside, the entire idea of messaging vs. vtable method calling is kind of bizarre. I mean, I can send messages to a null reference, and that's not a run-time error? Apparently, there's a good reason for it, but it doesn't jibe with everything C/C++/C#. Null pointers are bad, mkay.
David Hill
Sending messages to nil is really useful, actually. It's pretty cool to be able to send a message to an arbitrary object, and not have everything explode when it turns out not to exist. Just takes it in stride.
Jonathan Sterling
A language either needs the ability to message `nil` or an implementation of the `Maybe` monad. You tell me which one is simpler.Of course, in a strongly, statically typed language, I'd prefer the monad solution. But messaging `nil` really jives with the Objective-C/Smalltalk philosophy.
Jonathan Sterling
A: 

I agree, Regex really..

Satish Motwani
+31  A: 

Python. Also motivation to do my own personal projects after 8 hours of programming at work.

MattC
http://garyvaynerchuk.com/2008/08/21/you-can-have-bothjobs/
Christopher Mahan
The funny thing is I recently quit WOW so I could focus more on my personal projects. Now I have a wicked Team Fortress 2 addiction instead. :(
MattC
+6  A: 

Embarrassingly, really learning regular expressions.

JK
http://weitz.de/regex-coach/
bobobobo
+1  A: 

I've never written an app that interfaces with a real DB.

I'm learning to do so on a web app that I'm writing. Everything I've done for work or fun has just used binary and text files for IO.

Baltimark
+1  A: 

Learn to write a recursive descent parser. I trained as an electronic engineer, and these uppity CS graduates with their compiler skills get right up my nose :-)

Bob Moore
The key is writing functions of the form boolean matchSomething(int *position, ...). It should attempt to match something at a given position and, if the match succeeds, return true and update the position value to the end of the match. Functions of this form compose into a recursive descent parser.
Paul
+6  A: 

Designing clean interfaces that are usable enough to actually survive past prototyping.

moonshadow
A: 

I've always wanted to get into gaming programming. It would be a far stretch from the COBOL I work with on a daily basis now, but I would still like to. I've written a few simple games in the past, but nothing like the 3d wonders they create today. I'm not really sure if I'd like it or not, but I would like to learn it.

CobolGuy
A: 
  • Assembly Not sure it relevant anymore generally, but someone has to write to the metal.... looks neat to but I realise you have to so much little stuff to get the big stuff done.

  • RegEx I wonder if another language would be better suited though. I don't think it is productive to edit or debug something that looks like random ascii characters.

Adrian
+43  A: 

For me it would be writing compilers.

I'm surprised aku hasn't closed this thread yet.

grok
agreed, I really like compilers
Dan
+8  A: 

Delivering on schedule.

BlueGene
+1  A: 

Learning as many of the new (mostly dynamic) languages for the JVM as possible, e.g. Groovy, JRuby, Scala, Jython, Newspeak, ...

cretzel
+7  A: 

Lisp macros. Meta-programming is my holy grail, to be able to have my code be exactly isomorphic to the problem I'm trying to solve.

Jason Dufair
+40  A: 

C++

Never learned it and always wanted to.

GateKiller
C++ was the first language I encounter that I felt could not be self-taught. I'm not talking about being able to use it, I'm talking about being completely competant with all facets including templates, multiple inheritance, etc.
Metro
A hard language to master but great to use once you get good at it...
Rui Curado
Useful like a bullet in your foot.
Andrei Rinea
I learned it, but never wanted to. =)
Sergio Acosta
it was my first language :) but I got spoiled by python ..
hasen j
Why bother nowadays?
Lucas Jones
It's still the fastest and one on the most flexible languages around, for which a wealth of excellent libraries exist, and with which almost all other languages have reasonable interop facilities?
Eamon Nerbonne
It's my first major language, started at age 13 (after basic and asm) and it still rules my world. Albeit having learnt Haskell, Ada, Java, Javascript, C# and Python afterwards, I still find them to be mostly subsets of C++. ;)
Marcus Lindblom
I too taught myself C++ in my teens after basic. I think it's good to see what all these modern languages are based on. It's also good to have to learn to manage memory yourself since relying on a garbage collector makes for lazy, sloppy code.
MattC
Lazy, sloppy code? Nah, lean and mean code that isn't littered with if (something != NULL) delete something
Sekhat
@Marcus, learn Lisp, then everything is a subset of Lisp instead :D
Thorbjørn Ravn Andersen
:-D I fail to see how python is a subset of C++. Don't get me wrong I love both languages. But this is nonsense.
Kugel
C++ has been my language of choice for more than 10 years. Unfortunately, the enormous number of intricate details you need to know to avoid pitfalls (esp. w.r.t. templates and overloading) really hurt the language. Even Bjarne Stroustrup says the language is too big and must become simpler in the future.
j_random_hacker
+85  A: 

Lisp / Scheme. I hear you feel enlightened after grokking it.

Daren Thomas
You stole mine. I was going to emphasize how important List would be for fending off the graybeards at work.
MusiGenesis
I love Scheme! I mean seriously love it. I now want to learn Common Lisp though.. Maybe I should look into polyphasic sleep..
Dan
My 2-cents: If you want to learn Lisp for "learning" the Lisp way, then learn Scheme, if you want to learn Lisp for software development, learn Common Lisp
Amit
Will I feel enlightened after learning clojure or should I go with scheme(first)
Esben Skov Pedersen
+6  A: 

test-driven programming and scrum

Scrum isn't a programming skill, but anyways: luckily there is not much to "master" about it - it's a simple framework. Getting your team to adopt it may be far from simple though, depending on the organization.
Jonik
+2  A: 

I never got the hang of C# and .NET and I know I'll have to catch up on it if I want to see myself as a webdev in a few years.

To all the people out there who wants to learn regular expressions, go look for "Sam's teach yourself regular expressions in 10 minutes", it's a good place to pick up the basics of it. I learned regex from that book in less than a week.

K4emic
Sounds like the book is inaccurately titled then.
Gregg Lind
+52  A: 

Haskell

I would like to become proficient in functional programming. Coming from an OO background this would provide me with another perspective to solving coding problems.

Spear
Done Haskell.. Thank God for imperative languages. Functional programming is a nightmare, especially if you want to try your luck at GUIs with them :P
waqasahmed
I fail to see the point of trying one's luck at GUIs with a functional language. Though IIRC doesn't Franz make a GUI designer for Common Lisp? Anyway, functional programming is for writing actual program logic, not for putting stuff on the screen. :)
DanM
A: 

For me this is currently the application of machine learning techniques: the application of conditional probabilities, creating and using classifiers (eg: bayesean spam filtering), and genetic algorithms. I think I see a wide variety of situations where I see these being applicable, I just don't have the same internalized instinctual feel for how to apply them.

I also am working through getting better at SDLC basics (planning, estimation, creating specifications), and better engineering practices (test driven development, being diligent about using coverage analysis and profiling tools).

Kyle Burton
A: 

i know web dev but can't understand C / C# / C++

nice topic :)

A: 

AJAX frameworks and alternative architectures such as MVC

+22  A: 

Manipulating audio data. I love music and it would be fun to figure out how to generate effects, or generate algorithms to create music.

Trevor Redfern
I hear you, I took a signal analysis class in undergrad and would have loved to have done more in that area.
KevDog
It's over-rated.
MusiGenesis
Check out Audacity. It is open source so you can go dig in and see how it works.
Grant Johnson
Though I haven't done it, I think it actually wouldn't be too hard, seeing as audio is very describable mathematically.
Austin Kelley Way
A: 

I have always wanted learn enough about cryptography to build my own encryption/decryption scheme. Unfortunately, members of System.Security.Cryptography are just too darn easy to implement.

Kelly Adams
+4  A: 

ASP.NET: I do all sorts of application programming in .NET, but have just never ventured into the web world.

Mike Post
+1  A: 

Parallel programming computational complexity. I'm curious how this gets measured and what techniques are there for determining optimal efficiency of sorting n elements over m processors and other fun theoretical problems.

JB King
+4  A: 

Functional Programming

Mayowa
Its just not the same when you say it
bobobobo
+7  A: 

I'd like to learn neural networks and learning algorithms. It's something magic about them that I love and hate at the same time.

Karl
+46  A: 

Distributed computing. Being able to design & implement systems like world community grid or folding@home.

Serhat Özgel
I've always wanted to design a distributed 3D renderer that would be akin to these.
Cristián Romo
+1  A: 

I would like to fully understand the standard library in C++.

dbrien
+2  A: 

Ruby, also delving into F#. Even javascript I'd like to master.

wait... that's 3. oops!

I'll stick with Ruby.

Zeus
A: 

To use KISS, Keep It Simple Stupid. I'll like to use that phrase some more when I'm writing code or refactoring.

mslot
+8  A: 

Compiler Construction. I have built parts of a compiler(syntax tree's, and such), but never the whole thing.

J.J.
A: 

Assembly, FTW. I really dig those demo programs that can do wicked 3d stuff with audio and whatnot, but they only take up but a few K. Its awesome. I wish I had time!

Jurassic_C
+2  A: 

Haskell, monads. Hacking the GPUs and/or Cell processor. Programming a FPGA in VHDL or Verilog. Ah, you asked for THE ONE. Mathematics (category theory, abstract algebra).

zvrba
+3  A: 

Functional Programming - from time to time I pick up Paul Graham's LISP book and then shortly afterwards I discover it's simply too hard and give up for a year or two.

One day I'll be in a place when I'm ready for it, no question.

glenatron
+35  A: 

Unit testing for a web application.

eswald
+1  A: 

I have to admit that I upvoted about 6 of the answers here. I guess there is a lot that I would like to master and haven't spent the time.

My #1 would probably be Class Library Design. I feel like such a hack when it comes to designing a set of classes that work together. Is anyone ever happy with what they come up with?

Actually it's probably documentation, but I'll never get better at that. :)

bruceatk
+29  A: 

Write a natural language parser.

You could do a lot of cool stuff with it and I think you would learn a lot.

palmsey
ooff, that's a hard one baby. Good luck with that.
KevDog
It's not that hard in Poplog. :p
glasnt
+4  A: 

I would really like the ability to create and fully implement a programming language. Not because I would want it to become the next big language but just for the invaluable experience it would provide.

Tons0fun
+3  A: 

COM
Well, I guess its too late now.

shoosh
Ha, I lol'ed. Btw, if you can find the Don Box book Essential COM at a used book store, you should buy it. It's a great read, even if the technology isn't state-of-the-art anymore. Still, there are principles that apply to .Net developers, even today.
David Hill
Nah, not too late. Think how much money you could make right now if you were a COBOL Jedi? Old code never dies, but old coders do.
KevDog
Don Box book is 5 US$ inc shipping as I type this. Here's a link for the latest price http://www.abebooks.com/search/isbn/0201634465
MarkJ
+1  A: 

I always wanted to get really good at matrix-math and do some hot 3d programming. I'm too busy programming banking software. Boo!

David Hill
+5  A: 

I've always wanted to master Operating System programming... one day I'll get to it.....

Giovanni Galbo
+4  A: 

Regex, hate the damn things :(

Adam Gibbins
+1  A: 

I still haven't mastered any aspect of programming. I'm good at some things, better at others, but I'm not a master in any discipline.

ilitirit
A: 

The ability to turn mathematical definitions easily into working code.

max
+2  A: 

Perl. It seems like I constantly need to whip together some essentially disposable script to manipulate a text file, which Perl is more or less perfect for, but I always have to knock something together in C or Java since I've never found the time to grasp what Perl has going on. I've even had the Larry Wall Perl book sitting on my shelf for the last year, but just haven't had the time.

Electrons_Ahoy
I found that spending the time learning Perl was actaully net gain in that I've saved so much time being able to throw scripts together to solve immediate problems that it has paid back quite quickly. I work with Rational ClearCase and ClearQuest quite a bit and having regular expressions as first class programming constructs has made most of my problems trivial.
Alan Mullett
+2  A: 

Ability to understand low level properly. I was experimenting with assembler and processor instructions, but never developed something really useful although I was quite fascinated.

Crank
+23  A: 

Multi-threaded programming... Seems easy but very tricky to do it properly.

Brian G
Maybe it's a good thing you never learned. It will save you a lot of headache.
Anders Rune Jensen
The concurrent stuff in Java 6 helps a lot :)
Thorbjørn Ravn Andersen
+5  A: 

This is one of those, yea it would be nice, but will not happen. I always wanted to get back into the math behind programming, for those of you who toiled through Comp Sci all that discrete mathematics, linear algebra and the likes actually has some bearing on what we do on a day to day basis and actually helps quite a bit.

+4  A: 

JAVASCRIPT!!!!

Scott
why should anyone waste his life?
Behrooz
+4  A: 

For fun & adolescent nostalgia: 6502 assembly.

To expand how I think about programming, and finally get some of those Paul Graham essays: Lisp or Scheme. I want to have that profound enlightenment experience that ESR was talking about.

To better myself professionally: Defensive and security-minded programming, particularly as it relates to web programming. I can make C#, Python or PHP do whatever I need it to, but sometimes my paranoia/obsession with security sometimes gets in the way of actually getting things done. In my own mind, I never reach a point where I think my systems are secure enough, and I keep researching for that next exploit which I wasn't previously aware of or is just out of my technical depth. Dog chasing tail kinda thing.

Also professionally: I've been avoiding SQL Server Integration Services, and I really should ramp up on that.

Jerry
6502 Assembly can be learned relatively easy in less that a week. Find a BBC-micro emulator (Beebem) and a manual and there you go :-)
Jasper Bekkers
+72  A: 

Anger management. Yes, that is a programming skill.

apathetic
+5 Insightful? :)
Christian Vest Hansen
Ohhhh yyyesss....
Andrei Rinea
I commonly will throw my keyboard across my desk when a program is not behaving as it should... But I'm careful enough that I've yet to buy another keyboard in over 5 years.
Earlz
A: 

Specific patterns & practices, IE Dependency Injection

Nathan Koop
+7  A: 

Object Oriented programming.. I can go line for line scripting all day but the whole OOP concept seems lost on me..

GreenO
+10  A: 

Design Patterns, there are many of em, and knowing the ins and outs is really helpful for any developer. My favorite book on the subject is Head First Design Patterns.

Sukhbir S. Dadwal
+12  A: 

Artificial Intelligence and/or Genetic Programming

Tim
A: 

Probably assembly...but that would demand a time I don't have right now.

jmissao
+4  A: 

Basic game programming, collision detection etc

Andrew Ingram
A: 

JavaScript

Imran
A: 

unix C/C++ with inline ASM

AdamB
+8  A: 

F# and Haskell

mliesen
+1  A: 

Smalltalk, the original OO language, would be nice to learn. I'd like someone to explain Ruby to me, because just reading about it, I don't see why I'd want to switch. Also, multi-threading, which is just plain hard. And of course, I'd like to learn how to make awesome 3D games.

moffdub
Yeah.. always wanted to learn that groovy old Smalltalk...
Rene Saarsoo
A: 

Unit testing. Seems really useful and required for lots of jobs, but I'm worried that it could make my coding even slower (I can rarely write over 200 lines of Java/C# a day).

origin
Unit testing will make you faster, because you will catch bugs earlier.
dysfunctor
A: 

Developing application(s) that leverage collective intelligence of large groups of people with a common interest of set of interests.

Chris Ballance
+3  A: 

Model Driven Architecture.

Ash Kim
+2  A: 

Stackless Python

dlamblin
+1  A: 

A language compiler and interpreter.

codemeit
+1  A: 

At the moment, Django and Catalyst. I've been becoming more interested in web frameworks lately.

docgnome
+2  A: 

It's F# and dynamic language.

Shiny
A: 

unit testing

Bruce Aldridge
Why do people mention this?! It's really trivial.. and takes no more then half a day..
Nils
its not the time involved, its the workflow and mindset change that goes along with it
Bruce Aldridge
A: 

There's so many...wait a minute...I guess I already know everything. :)

I would really like to study more about linux and other unix based systems like OS X. Kind of bored of the MS world.

Coder Blues
+7  A: 

Monads, Combinators, higher-order functional programming black-magic.

interstar
+1  A: 

I wold definetly say that after watching simon-peyton jones speak via google video a few times I'm quite inspired to learn Haskell. Not because I think it would lead to higher paying work, but because I believe it would help become a better programmer all around.

I'm learning a bit of Erlang at the moment and find it a bit easier to grasp than my first forays into learning Haskell, but with either of them the difficulty isn't the language, it is finding time to dedicate to learning these languages.

DanielHonig
A: 

Learn unit testing.

tjjjohnson
A: 

That's an excellent question!

I'd like to improve my OO skills. But that's likely to happen with my next internships and that's where my career is leading me. I have a Perl and Bash.

I would love to be able to think about an idea, out of nowhere, and be able to implement it. Like : "Wouldn't it be nice to have a program that can process and output ?", and then implement it.

I also would like to take the time to look into the source code of some OSS, like GNOME, Firefox, Pidgin, etc.

Guillaume Gervais
+1  A: 

game engine programming

Steve Obbayi
+1  A: 

D

MusiGenesis
A: 

Being a design pattern ninja.

Ian Suttle
+5  A: 

COBOL (Just kidding)

Andrew Hedges
+4  A: 

To improve algorithmic skills. (By reading Donald Knuth's "The Art of Computer Programming" (TAOCP))

wheleph
A: 

I've always dug C++ because of it's insane flexibility, but I never got around to actually learn it since I've always had Delphi and C# jobs.

+1  A: 

Functional Programming

+1  A: 

Find a practical use for functional programming.

Anders Sandvig
Well, no, that wasn't my intention. I would like to use functional programming, but I have not yet found any areas that I currently work with where using it would make things any easier.
Anders Sandvig
Now, that could of course be because I don't know functional programming well enough to know how or when to apply it. I'm not saying it's not usable, I'm just saying I don't know what to use it for.
Anders Sandvig
+4  A: 

Find a practical use for GPGPU programming and true parallel programming.

Anders Sandvig
What makes you think there is no practical use for that?
Nils
+64  A: 

Read The Art of Computer Programming, and say I understood everything without lying.

Anders Sandvig
I having it in my shelf for very long time and look at it every day saying to myself I will read it book soon.
Ali
Voted up although we all know that's absolutely impossible, don't we?
IlDan
That's gonna take awhile, as in while(true){keepGoing();} - to start with, give the once over on the cite list of Doctorates, along with the world-reach of the cite list, and consider that some of the cited work is available for various Master's Thesis subjects. Contrast that with someone who actually has to run a shop and work on practicalities vis-a-vis candidate Thesis subjects. If you can distinguish areas such as runs-up / runs-down being stronger random sieves, you will in my opinion be doing the work the Master would have us do.
Nicholas Jordan
It's probably not that hard to understand, since it's well written.. However takes too much time for me..
Nils
+3  A: 

Program a mechanical robot.

Anders Sandvig
A: 

the .Net GDI+ and accessing hardware through the HAL for device access (ever tried to write your own cd burning app?)

Mauro
+33  A: 

Don't laugh...
...XSLT

Gordon Mackie JoanMiro
That's nothing to be ashamed of. XSLT can be a powerful tool in many situations.
Anders Sandvig
I might be the only person on Earth outside the W3C but I like XSLT.
Jeff Mc
How can you like xslt?
Tim Matthews
I like it, too. However, I didn't use it for over two years now.
migu
You can learn it, but will cost you 3 sanity points. Do you still want to learn it?
troelskn
@troelskn: So true!
TrueWill
XSLT's great! I've yet to see a comparably useful tool for transforming xml (or really, tree structures).
Eamon Nerbonne
I just always learn XSLT/XPATH from scratch by example, make necessary piece working in Altova debugger, then release and immediatelly forget all I learned. It happened at least 3 times
RocketSurgeon
Almost ashamed to admit, I like it too. Cost > 3 sanity points (maybe some peripherals broken in anger too)
seanb
I learnt the basics of XSLT/XPath on W3Schools the other day - it's not that bad really (surprisingly good tutorials, I have to say).
Skilldrick
I started learning XSLT a few weeks ago and once you get the hang of it, it's pretty fun. The part that is frustrating is when you need to do something really basic that would be a joke to do in any programming language, that you cannot simply do in xslt... Oh well...
Gabriel
+9  A: 

Javascript looks like it is going to take over the world. I guess it's time to start learing it properly rather than just copying examples off blogs.

Vacant Space
In 5 years from now Javascript will probably be the programming language of choice for Browsers, Servers and Desktop applications as well as general scripting. I mean its object oriented, functional and easier to understand than Lisp or Haskell, based on events which is perfect for multithreaded ...
Robert Gould
JS on a server? Is that what happends when the Mayan calendar ends?
Neil N
A: 

Got to agree with KevDog, Regular Expressions! I can do the very basics but there are times when I need something more heavy duty and usually end up emailing my friendly Regular Expression guru.

So many things to learn, so little time!

DaveF
+7  A: 

I've always wanted to write or learn how to write my own compiler.

Ryan Thames
It's easier if you also write your own VM/interpreter for the byte code your compiler produces. Then you can do a fairly small language, instead of having to figure out register-allocation, stack sizes, etc just to do HelloWorld.
Marcus Lindblom
+1  A: 

Learning LUA (and become a famous WoW-Addons author) :)

DeeCee
Lua is also great as a stand-alone or embedded scriptiong language, with some advantages over Python or Ruby. Try it!
Rui Curado
A: 

3d game programming.

+1  A: 

JavaScript would help me a lot in my actual work. With the todays web we can do almost anything with javascript.

fernandogarcez
+5  A: 

Finishing reading 'Code Complete' by McConnell - this book is brilliant but finding time to sit down and digest it all is difficult. I also would love to get into socket programming and distributed architectures.

j0rd4n
A: 

Like many previous posters I want to learn LISP as despite having both the Graham and the Seibel books I just haven't had the time to do anything with them. Also ARM7 assembly language programming as there are just so many powerful cheap microprocessors out there using this core that I really should be using.

IanW
+1  A: 

Functional programming.

Rayne
+3  A: 

Making better use of my time

Making time is the one programming skill I've always wanted to master but haven’t had time. ;)

Mark Stock
A: 

JavaSript :) I'm a little bit disgusted by this language, but I think to really learn it, might help me.

MADMap
A: 

SQL/Databases -- figuring out how to optimize reliably, how to work well with the very large datasets that are part of my day to day working life

Jack Bolding
+5  A: 

MVC!

I've seen enough to know the basics but I haven't had time to run through a simple implementation to see all the pieces together.

kae
+4  A: 

Time management!

KW
+1  A: 

I've been wanting to learn Ruby on Rails for a while now, but I never have the free time to do it.

Iwasakabukiman
+2  A: 

I'm already fluent in SQL, Javascript, RegExps, ASM, machine-learning algorithms, multi-threading and Unit Testing. I once wrote a compiler in Haskell, just for fun, dammit!

So what's missing? COBOL!

First I learn COBOL, then I get a life.

dysfunctor
+1 for a statement that is both funny and true all rolled into one.
FastAl
+59  A: 

10-finger keyboard typing

GertGregers
Where did you get the extra 2 fingers? Personally I only have 8. Just imagine how much easier it would be to type with 10.
Kibbee
Thumb is a subclass of Finger.
Tim Matthews
No No, thumb and finger(along with toes!) are both subclasses of digit appendage.
Neil N
maybe 10 in octal...?
elcuco
I feel there are some cultural differences with respect to the meaning of "finger"? :)
Paggas
wtf, Americans don't count "thumbs" as fingers?
hasen j
I think most Americans count the thumb as a finger. That said, I can't imagine doing my job without being to touch-type.
Dean J
and Finger is a subclass of SexAct
brian
@brian: then I have 11.
Behrooz
@hasen: It's not an American thing, it's a Anatomy thing: http://en.wikipedia.org/wiki/Thumb#As_one_of_five_digits.2C_and_as_companion_to_four_fingers
BlueRaja - Danny Pflughoeft
A: 

Scripting languages such as Python, Perl, and Lua.

+2  A: 

LISP.

MSN

MSN
A: 

Regular Expressions...Damm always need google for it

Chinmay
A: 

Rspec. I've got the handle on Ruby unit/functional tests, but Rspec syntax does my head in.

Dan Harper - Leopard CRM
A: 

I want to develop some web clawing application.

Krirk
+2  A: 

Template meta-programming in C++

Keith Nicholas
+1  A: 

Software reverse engineering, which means (for me):

  1. Better understanding of assembly
  2. Using IDA
  3. Enhanced debugging skills

This is very useful even when you don't really need to reverse engineer anything in your work, because it hones your debugging skills and furthers your understanding of program behavior, debugging, compilation, etc. to a very high level.

Plus, it's a fun challenge

Hershi
+2  A: 

Perl

I can read some perl and 2 or 3 times I have got good enough to write with out constant reference to the book, but I do not use frequently enough to be able to use easily. (Less then once a year).

David Waters
I realise there is already a perl listed in "script" answer but I believe it wants its own :)
David Waters
A: 

I would like to fully master how to program the grafics cards shaders.

Presidenten
+4  A: 

Erlang

Johan Pelgrim
A: 

I'd have to say writing compilers and parse systems. Never had those courses back in college and haven't been able to take the time to read through some of the bibliography I've been building since then about the topic. But, alas, there is always a new day tomorrow.

+1  A: 

I've wanted to hack into my car's ECU to be able to capture diagnostic codes, etc. I guess this falls under device driver programming.

s_t_e_v_e
Me too. In researching this I have found that for a few hundred bucks you can get a bluetooth enabled connector, and software for your Palm. That way you can read the stats while leaning under the hood, and drop your Treo into the fan blades! :-C
Chris Noe
+1  A: 

3D graphics programming.

Simon West
+2  A: 

I spend so much time finding stuff I want to learn more about, that I have hardly any left to actually sit down and learn them.

For the time being, I have these things on my mind:

  • Touch-typing. I type 50 wmp when I'm going fast... and yet I fell I'm not. It feels like my typing speed is holding me back at times, and I'd really like to improve on that.
  • Haskell. I'm drawn to this language; the syntax, the concepts, the power, the elegance. Still, the compiler keeps taunting my feeble attempts. But if learning a language isn't hard, then you wouldn't be learning, right?
  • Speed-reading. Much down the same line of touch-typing. Typing isn't even half the story of what programmers do; most of the time we read more than we type.
  • Join-calculous. A newcomer to the list. I think concurrency is an interesting problem domain, and I'm always interested in learning new abstractions that make dealing with concurrency easier.

Granted that list is fleeting and it is probably that I'll succeed in learning most of those items. But I also have one thing that I'd like to try but I'll probably never succeed at: Designing a general-purpose programming language.

Christian Vest Hansen
+2  A: 

A functional language.

CheeZe5
A: 

I wish I could "master" the programming involved for hand-held devices (cell phones, Palm Pilots, BlackBerrys).

rickumali
+2  A: 

Haskell, of course. I hope I can understand functional programming and ... become a computer scientist...

+2  A: 

javascript. The pace of growth in this scripting language has been impossible to keep track of. Every day there's something new out there

shiva
A: 

I've always wanted to know a protocal such as HTTP or TCP/IP inside out. I can get by on either one, but not an expert.

A: 

Unit tests - makes scaling up projects so much easier.

A: 

I've always wanted to improve my time management. Once I get that super efficient I guess I'd be able to learn whatever new programming skills I need.

Simon West
+1  A: 

Brainfuck! Mastery I guess is writing a brainfuck compiler in brainfuck.

Sindri Traustason
+8  A: 

Using R instead of coding statistics in C++.

jnancheta
Holy cow, get on that! R is a simple install, has a really well written help system, and in general, is newbie friendly.
Gregg Lind
+1. I found it impenetrable
Draemon
+4  A: 

3D graphics, not just for video games but for Geographic Mapping.

Jeremy Reagan
A: 

I would like to get much better at exception handling - actually coming up with a way to gracefully handle exceptions rather than giving an error message to the end user that something bad happened. In many of my past projects, my manager was pushing me so hard to get the project done that all I "had time" to do was to notify that an error had happened and let the user try again...

Knobloch
+4  A: 

Probably PowerShell

RobS
A: 

I've always wanted to develop a tool with a really well-thought-out, clean, beautiful user interface. Take some time and get it right.

Michael Petrotta
+3  A: 

The concept of Monads in functional programming.

+6  A: 

Linux

OK so it's not exactly a programming skill but I've never taken the time to build and use a Linux system. All I know are the basic command-line commands.

Kip
+1  A: 

For me it would be JavaScript, coming from a Java, C++, C# background I just have a hard time wrapping my head around it.

+1  A: 

Working with prolog and building AI applications

rshimoda
+3  A: 

monad: it looks wonderful but I could not grasp the concept :(

OnesimusUnbound
+1  A: 

Become a master of either theorem proving, model checking or concurrency calculi.

jlouis
Mike Dunlavey
+3  A: 

Functional programming and Haskell

Ismael
+1  A: 

The proof of what is the relationship between P and NP would be an awesome thing to master and answer conclusively once and for all... mwahahahahaha....

After all, this is what we haven't mastered, right?

JB King
A: 

Python. I know a fair bit of Python and can understand well written programs easily with a bit of reference by my side. But I am yet to write some good Python code without referring to the manuals now and then. But yes, I consider reading manuals as part of the learning process and will master the snake one day sooner than later !

Vijay Dev
+4  A: 

I always want to learn F#, a functional program language on .NET.

I'm surprised that so many people share same mind with me.

Morgan Cheng
+3  A: 

Shaders, shadows, lighting and making the graphics look pretty. The concepts are easy to grasp but the code takes a lot more work. I'm a wannabe game developer and it's always demoralizing to see the next indie game looking as smooth and colorful as say, Mario Galaxy. I just keep telling myself that my stuff will sell as long as it's fun enough! paranoia paranoia

Yes Fish...
+1  A: 

Erlang and use it to do large-scale cloud computing stuff

Cygwin98
+2  A: 

Take the algorithms course, I never took in school.

Nathan Feger
A: 
MadKeithV
A: 

I always wanted to learn Ruby, C++ and WPF (sooner or later I will learn this).

I would like to master regular expressions and xslt too (I know a little about each but I always end up looking on internet about them because I don't know enough to do what I need to do).

Gerardo Contijoch
+7  A: 

C

Enough said ...

too much php
A: 

Pretty much anything in programming or computer science. .NET, C++, SQL, Sql Server, Functional programming, JavaScript, Unit Testing, Source Control, Object Oriented Analysis & Design, Design Patterns, Anything. I've learned a lot, but I've never mastered any of it. Even if I focused on just one, I don't think that I could ever truly master it... no matter how much time I spent on it...

Regards,
Frank

Frank V
+1  A: 

It's a toss-up between learning to code for Apple platforms and learning the x86 instruction set.

Brian
+5  A: 

Mental telepathy

George Jempty
+1  A: 

Learn PHP and python.

Rob
+4  A: 

Design Patterns.

Xaisoft
+2  A: 

Creating an OS like Windows Vista.......

If you created an OS, why on earth something like Vista? ;)
Jonik
+2  A: 

Get hot and heavy into JavaScripting and using Web frameworks to do cool things with Web pages. That would be FUN!

+1  A: 

Compiler building...particularly for building external DSLs

Jim Blizard
+2  A: 

actionscript and Adobe AIR

arshad
+2  A: 

C and hack into the Minix, Linux or BSD kernels.

Ubersoldat
+3  A: 

Politics. Seriously.

endian
I do that. You will find that it's NP complete.
mstrobl
+2  A: 

Designing, coding, and implementing a high-performance, high-function file system.

Brent.Longborough
+3  A: 

I want to do LINUX KERNEL PROGRAMMING but couldnt find time for it.

TheMachineCharmer
+2  A: 

Four years after learning C++ and Java (and even more years after learning python) and being able to be quite productive in all these languages, understand (1) what OOP really is; (2) whether it's everything it's been hyped up (in my life) to be; (3) what the real benefits of OOP are.

Jonas Kölker
+3  A: 

There's a long list of languages I used, but for some reason I never got my head around assembler. I always wanted to learn assembler. I used it a little when coding graphics stuff in c/c++ on DOS, but only small portions to speed things up. I've always wanted to do my own operating system. Not with other bootstrappers and such others wrote, but my own. Just to learn how it works. Another thing I always liked where those 4k intros. They're another reason to learn assembler.

I'm planning on learning F# and Python this year. I've worked with python a bit about 6 or 7 years ago and I believe it's improved a lot. I think a lot can be done with Python and Silverlight.

Sorskoot
+2  A: 

Not really a skill I've always wanted to master, but something that occasionally would be the perfect technique, and when that happens I really hope I mastered it:

XPath
...as well as XSLT, regular expressions, and fluent Python scripting.

The thing is, I have learned a bit of these to solve some particular problems, but I don't use them regularly enough to keep them in my head. So, the next time I need them, I usually have to re-learn even the basics, which sucks.

Jonik
+8  A: 

Understanding OpenGL

Paul Robinson
+2  A: 

CAB for Winforms and now Prism for WPF

A: 

Just getting the darn thing done.

Justice
+3  A: 

Test Driven Development. This is one of those things where it's really easy to learn the basic concepts, but much harder to get the hang of applying them in a real-world application. I think I'm right on the edge of it, but not there yet.

Cory McCarty
+2  A: 

shell scripting

RN
+3  A: 

Sitting down and coding without having a reference (google).

Ronnie
+2  A: 

Finally learning Python! I'm still doing scripting in Perl, but I had wanted to make the switch a long time back ...

+2  A: 

Web programming.

Jon Harrop
+1  A: 

virtual machine design

Norbert Hartl
+3  A: 

Artificial Intelligence, not the theory, but the practice... one can use a physic engine without knowing anything about physic (or with minimal knowledge). I want to work with AI the way I use physic engine.

Nicolas Dorier
+1  A: 

My bold answer is ... an operating system! I already bought the book of A. Tanenbaum, but didn't come much further than to read some of it. I think it's way too much to do for just one person and I don't want to end it like the hundreds of half-finished hobby OSes I found on the web. Although ...

Another topic would be to write some Android application, but here I'm missing any good idea on what that app. should do. If you have any ideas, let me know ...

Ridcully
+1  A: 

Theorem proving applied to software. I've tried many times, and gotten decent success, but it seems like it should be a lot easier than it is.

Mike Dunlavey
+2  A: 

Objective C and some iPhone programming

AB Kolan
+4  A: 

Continuous Integration / automated builds.

Chris B. Behrens
A: 

I keep trying to master Emacs and throw away all other text editors, but I just can't do it.

Mark
A: 

One thing I always wanted to do:

  • Writing a compiler or a simple operating system.

A few others:

  • Writing programs purely in C. C++ did not let me do so.
  • Applying design patterns.
Jahanzeb Farooq
+1  A: 

Regular Expressions

ev2000
+2  A: 

REALLY learning Emacs.

+1  A: 

microsoft Silverlight

SilverNight
A: 

I always wanted to master the 3d games programming language...i also started once but due to my hectic schdule.earlier college and now job i never made it up yet!!..but i will master it one day

Vivek
A: 

Mathematical Modeling

PTBNL
+3  A: 

Real-time programming

PTBNL
+1  A: 

Array programming: APL and/or the J language. It's very cool that Philippe Mougin worked some of the concepts into F-Script.

Felixyz
A: 

Bug-free programming

Reuben Mallaby
+1  A: 

more Design Patterns

Andrew Lewis
+1  A: 

Forth.

Both on its own merits, and because I've also wanted to write my own operating system and I think Forth looks like a better foundation than C.

Ken
A: 

Master any languages i use daily without the need of copy and paste from others' code.

systempuntoout
+2  A: 

developp apps in c99 faster than it takes to developp them in java

mnml
+1  A: 

Knowing java well enough that I could land into a senior dev role and go to town from start of project to finish and know what I was doing.

canadiancreed
+1  A: 

Writing bugless code.

Olexiy
A: 

Time management. Just never had the time to learn it.

stusmith
+1  A: 

Parallel programming. It is the future. However, I am tied up trying to master ASP.NET's huge API in .NET 3.5 (.NET 4 is coming soon while .NET 5.0 is in the early stages.) Plus, it is hard to convince people that matter to drive towards parallel computing when many customers' computers cannot support it.

Phil
A: 

I am not sure if this counts as a programming skill, but I would say vi or emacs.

mikez302
A: 

Binary Trees, Hashtables, coding in Bash for Linux, Threading and Haskell :(

yelinna
+2  A: 

Hardware description languages: VHDL or Verilog...

fortran
A: 

Can't give one answer to this question, these are just off the top of my head:

  • Logic programming
  • 3d graphics (more for visualization than for games)
  • Machine learning
  • Dynamic programming
  • Graph theory and algorithms (my knowledge about stops at A*)
  • FPGA development
  • OS programming
  • And finally, while I've used emacs for at least a decade, and read the info files on a regular basis, I'm sure there are at least 50 features of emacs I don't know about that I would find very useful if I did. Really learning an editor is always a good investment.

"The lyf so short, the craft so long to lerne" - Chaucer

Jack Lloyd
+4  A: 

starting earlier...

presario
+1  A: 

Game theory. It's not exactly a programming skill, but its applications are amazings

A: 

I'd like to learn C++ deeply.

Sergey
+2  A: 

I'd say Biology's DNA. The most pouplar programming language of life. I just managed to create a most beautiful new life, but I had to use a very high-level IDE (if you know what I mean). I'd love to learn the basics...bio-engineering, low-level DNA assembly :)

Andres
+1  A: 

3D Game Programming - like Quake, Final Fantasy etc.

Larry Watanabe
A: 

Want to learn how to write search engines.

fastcodejava
A: 

Stuff on my todo list:

  • Write a decent game. I've had some potentially kick-ass game ideas running around in my head, but every attempt to learn 3D game programming has been abortive so far (more because of lack of time than anything else)
  • Learn Lisp and APL
  • Write a filesystem driver
  • Write a simple OS

Looking at this list, it looks like I have enough to keep me occupied for the rest of my life!

Chinmay Kanchi
For the filesystem driver, take a look at FUSE
Draemon
A: 

make a chess game. (not the UI, but the AI)

Jus12
It is called chess engine, you should know that.
ralu
A: 

Learn to develop a new computer language. It's my dream to create a new computer language that can serve developers well.

Viet
+1  A: 

Developing Firefox extensions.

I had many ideas on new extensions to develop, but I haven't had the time yet...

Bruno Rothgiesser
+1  A: 

Dvorak, or some other optimized keyboard layout.

Dean J
+1  A: 

Learning Java, bought the book "Java How to Program, 7th edition" I understood things clearly but moving from a web scripting language (PHP) to this one seems like climbing a mountain. After learning Java and mastering it (so-so), make Android apps. I couldn't finish the book, there is just too much to cover =/ so I'm taking it slowly.

Make a game, one task that won't happen unless I find a group of people that shares the same vision.

Finally, a nightmare for me, javascript, I can't seem to stay sane everytime I start to practice. Bought the book "Simply Javascript" while the explanations were good, I couldn't bring myself to continue it for some reason.

allenskd
A: 

I want to have a more intensive look at esoteric programming languages like Brainfuck, Java2k or Whitespace.

Newbie
A: 

profiling and optimization

Adrian Panasiuk
+4  A: 

Javascript. And by Javascript I don't mean simple forms validation. I mean the kind of Javascript that makes sites like Facebook and Gmail feel like a desktop application, and a slick one at that.

Bob Kaufman
+1  A: 

I wonder what would Jon Skeet write here as an answer..

c0mrade
+1  A: 

As a server-side developer, I've always wanted to learn UI. Not just to draw some forms, But the whole client-side pack: UI patterns such as MVC, MVP, etc. Rendering & graphical objects.

Probobly it is just like learning any other programing skills, But never had time for it

sagie
+1  A: 

find good static code analysis tools

Adrian Panasiuk
+2  A: 

shell scripting...but im trying now lol to learn it

KP65
+1  A: 

master back-in-time debuggers

Adrian Panasiuk
A: 

Compiler construction

this. __curious_geek
+2  A: 

build an operating system

user1111111
uouou i want that to
Adam Ramadhan
A: 

Haven't found a post where somebody said things like "cutting edge" digital image processing, ai, rasterization, ray-tracing, etc..

If you tried out CS 5 you saw what technology nowadays can do.. (for example content aware resizing) However there is more to come, also very interesting is the use of "snakes" (google: snakes image processing) so digital image processing is surely something that I would like to have a look at.

Nils
+1  A: 

Graphics. I've mostly written Internet utilities, but if I knew graphics, I'd probably give a game a shot.

Marcus Adams
+1  A: 

To make lots of money out of a program that I've written. some people seem to manage it, but I've never quite been able.

If anyone has any books on how to do this I'd be interested to read them :-)

pm_2
A: 

Ruby on Rails :| others ?

Adam Ramadhan
A: 

Linux Kernel hacking

talonx
A: 

Learn all data structures.

Most of the DS that I know about are the ones I was taught at university. I hav always wanted to learn new ones. Having the right DS for your data makes the task a lot easy.

binW
+2  A: 

It has to be APL.

There's something enticing about the most extreme, terse and esoteric languages...

Most famously, Conway's Game of Life was written in one line of APL:

life ← {⊃ 1 ω ∨ . ∧ 3 4 = +/ +⌿ 1 0 ~ 1 ∘ . Θ 1 - ~1 Φ" ⊂ ω}
rmx