Stack OverflowWhat is the one programming skill you have always wanted to master but haven't had time?
[+303] [256] KevDog
[2008-09-23 14:30:38]
[ polls self-improvement skills ]

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.

I agree. RE is the only skill (that I know about) I should get better at. - kigurai
(1) you should move your answer into an answer - jjnguy
RegEx is a must know for every computer user. Don't procrastinate on this one any more! Google gave me a nice tutorial. - ragu.pattabi
Google gives me all the RegExes - too boring to waste time on! - JohnIdol
There is an eclipse regex plugin that ROCKS like ZOHAN just search for it in eclipseplugincentral - mugafuga
(3) Great book, I tore through the entire book in a couple of days. I couldn't put it down - Ben
Ionno...once you learn regexes, they seem pretty darn simple... but they're incredibly useful. Every single time you want to parse a string, they come in handy...which is almost every single app... - Mark
I read the first chapters, awesome book and a must buy if you want to learn regular expressions. - allenskd
Funny, I have that same book on my shelf and have yet to finnaly read it. - Neil N
I really hate this how-do-you-feel-subjective-reputation-bumping questions. Might as well ask what do you think the biggest programming challenge.. I bet that would get you a 1000 rep. - Adam Gent
@Adam, community wiki questions/asnwers don't generate reputation - Tom Gullen
Use RegexBuddy program (or similar) - nice tool for writing and learning regexp. - topright gamedev
[+387] [2008-09-23 14:33:49] Ferruccio [ACCEPTED]

Functional Programming.

(2) 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
(10) 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:… Why is everyone voting up these two words? - DV
What does your answer have to do with Functional Programming??? - Turambar
(3) 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
(2) 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. :) - Macke
(1) Since F# is out... functional programming is a must-have ;) - wishi
@DV The cognitive cost is lower, widening the audience. - Plynx
[+281] [2008-09-23 14:35:13] Wayne

Getting fully into automated unit testing

(6) I did want to do this, and I've done it now... highly recommended. - RickL
(1) 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
(1) The first time that I wrote a unit test which serendipitously exposed a bug in existing code, I was hooked. - Ferruccio
[+231] [2008-09-23 14:35:43] RickL

Games programming... 3d graphics particularly.

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.
(5) 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
[+183] [2008-09-23 14:40:00] Mark Cidade
  • Fully implementing a language (lexer + parser + (compiler|interpreter) [+ runtime])
  • Assembler/bytecode (it's as close to the [virtual] metal as it gets!)

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
(3) 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
(1) Every time I see a new language or a implementation of a language spec, I so want to throw in one my own! - Amit
(3) 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
[+150] [2008-09-23 14:34:15] torial

This is crazy, but writing device drivers :-)

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
(3) 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
[+146] [2008-09-23 14:46:27] TcKs

Artificial Intelligence -- specifically Neural networks.


This is not a programming field - JohnIdol
(1) ohhh yes it is ... or at least you can do useful work with simulated neural networks. example… - David Waters
On my list. Anyone recommend a book they've actually read? - Tim Matthews
(5) 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. - Reverend Gonzo
(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. - Reverend Gonzo
[+140] [2008-09-23 14:34:13] Mendelt

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

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
(1) 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
(3) 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 it 2. Write extensive unit tests!!! - Hershi
(10) 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
(1) 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
(22) Find programming! easy I threaded multi pfft. - Noon Silk
You guys should take a look at this function… - the_drow
[+138] [2008-09-23 14:35:49] ChronoPositron

Finding more free time to work on personal programming projects.

(14) Sometimes I have the time but I don't have the will - AntonioCS
Just quit the job. - topright gamedev
[+124] [2008-09-23 14:31:14] jjnguy

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

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.) - 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
(13) 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
(10) Go to you'll be amazed how fast you pick it up. - too much php
[+89] [2008-09-23 15:08:35] Daren Thomas

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

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
(10) 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
[+87] [2008-09-23 19:37:58] apathetic

Anger management. Yes, that is a programming skill.

(23) +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
[+86] [2008-09-23 14:38:41] Gordon Bell

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

(2) I love Regex, could not live without them!!! - Scott
(6) 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
(2) 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
(1) A 6kb regex? Ow. - Dean J
[+78] [2008-09-23 14:34:49] Jeff Hillman

Become a WinDbg [1] ninja.


These day I am really trying :) - Jacob T. Nielsen
(1) 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
(3) Have a look at this blog, maybe you will find it usefull - 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
[+71] [2008-09-24 11:20:01] Anders Sandvig

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


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
(14) 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
[+68] [2008-09-24 18:39:23] GertGregers

10-finger keyboard typing

(2) 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
(75) Thumb is a subclass of Finger. - Tim Matthews
(2) No No, thumb and finger(along with toes!) are both subclasses of digit appendage. - Neil N
(9) maybe 10 in octal...? - elcuco
I feel there are some cultural differences with respect to the meaning of "finger"? :) - Paggas
(31) 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
(10) and Finger is a subclass of SexAct - brian
(2) @brian: then I have 11. - Behrooz
@hasen: It's not an American thing, it's a Anatomy thing:… - BlueRaja - Danny Pflughoeft
[+57] [2008-09-23 15:25:04] Spears


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.

(1) 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
(2) 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
[+55] [2008-09-23 14:38:27] Len Holgate

Non-trivial assembly language programming.

(34) Is there any other kind?? - TonyOssa
(7) 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; - Len Holgate
Yep, it's way easier to learn assembly when you don't have to work with an operating system (IMO). - Wallacoloo
[+50] [2008-09-23 15:56:12] Serhat Özgel

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


(4) I've always wanted to design a distributed 3D renderer that would be akin to these. - Cristián Romo
[+46] [2008-09-23 14:58:17] grok

For me it would be writing compilers.

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

agreed, I really like compilers - Dan
[+45] [2008-09-23 15:07:17] GateKiller


Never learned it and always wanted to.

(1) 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
(1) A hard language to master but great to use once you get good at it... - Rui Curado
(20) Useful like a bullet in your foot. - Andrei Rinea
(1) I learned it, but never wanted to. =) - Sergio Acosta
it was my first language :) but I got spoiled by python .. - hasen j
(3) 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
(2) 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++. ;) - Macke
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
(1) @Sekhat that's some very unusual c++. a) we typically use some form of auto pointer -- typing delete is a bad smell. b) the if check is not necessary. c) NULL... hmmm... although many of c++ programs use it, 0 is preferred in many circles and NULL is more of a c thing. assuming new is even necessary in this case: most programs take the form (pseudocode) t_auto_pointer<t_object> variable(new t_object(argument)); and deletion is automatic. if you're going to criticize a language, you should at least base your points on normal, well written programs of said language =) - Justin
[+40] [2008-09-23 16:31:17] eswald

Unit testing for a web application.

[+37] [2008-09-24 11:23:38] Gordon Mackie JoanMiro

Don't laugh...

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
(24) You can learn it, but will cost you 3 sanity points. Do you still want to learn it? - troelskn
@troelskn: So true! - TrueWill
(1) 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
[+33] [2008-09-23 14:50:49] MattC

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

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
[+31] [2008-09-23 16:39:51] palmsey

Write a natural language parser.

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

(6) ooff, that's a hard one baby. Good luck with that. - KevDog
It's not that hard in Poplog. :p - glasnt
[+25] [2008-09-23 19:14:05] Brian G

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

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
[+24] [2008-09-23 15:34:59] Trevor Redfern

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

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
[+24] [2008-09-23 14:32:31] 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
(3) More of a "papal" skill, really. - Kyralessa
(13) just type iddqd - bobobobo
(1) Haha, looks like 6 people before me remember Doom! idspispopd idkfa FTW! - Chinmay Kanchi
(1) I was a Wolfenstein fan, myself. (Though I do remember idspispopd.) - Steve
[+23] [2008-09-23 14:34:04] Jeff Hillman

Becoming better at finding and fixing memory leaks.

(4) It's easy ... just use C# ;-) - Joel Martinez
(6) 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
(11) ... or stick with C++, but use RAII and boost::shared_ptr<T>. - j_random_hacker
(4) Or use valgrind - Ben
(4) RAII/shared_ptr rocks. Solves 99.9% of memory issues in C++. - Macke
[+21] [2008-09-23 14:37:09] Adam J. Forster

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

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
[+14] [2008-09-23 21:15:32] Tim

Artificial Intelligence and/or Genetic Programming

[+13] [2008-09-23 14:37:59] Joel Martinez

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

[+12] [2008-09-23 14:40:11] Seb Nilsson

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

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
[+12] [2008-09-23 14:41:24] MikeJ

Silverlight and WPF

(1) Always? Are you just 3 years old? - erikkallen
[+11] [2008-09-24 12:36:52] Vacant Space

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.

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
(1) JS on a server? Is that what happends when the Mayan calendar ends? - Neil N
[+11] [2008-09-23 20:44:41] Sukhbir S. Dadwal

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.

[+10] [2008-09-23 15:00:39] BlueGene

Delivering on schedule.

[+10] [2008-09-23 14:39:54] Kuvo

Decent recursion

(1) HA does that make you head go round circles ;) - Tim Matthews
(1) For me it's rather: Avoiding recursion. Recursion is much easier than putting stuff on stacks and building it by hand. - Frank
[+10] [2009-02-01 13:26:20] Paul Robinson

Understanding OpenGL

[+9] [2008-09-28 12:36:18] jnancheta

Using R [1] instead of coding statistics in C++.


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
[+9] [2008-09-23 16:01:46] J.J.

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

[+9] [2008-09-23 23:17:01] mliesen

F# and Haskell

[+9] [2008-09-24 02:41:04] interstar

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

[+8] [2008-09-23 15:55:12] Karl

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.

[+8] [2008-09-23 20:12:10] GreenO

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

[+8] [2008-09-24 13:17:44] Ryan Thames

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

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. - Macke
[+8] [2008-09-23 15:05:46] Jason Dufair

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.

[+8] [2008-09-23 14:36:25] Korbin

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

[+8] [2008-09-23 14:50:58] JK

Embarrassingly, really learning regular expressions.

[+8] [2008-12-22 21:35:59] too much php


Enough said ...

[+7] [2008-10-03 17:52:19] Kip


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.

[+7] [2008-09-23 14:55:31] moonshadow

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

[+7] [2008-09-23 14:44:29] KevDog

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.

[+7] [2008-09-23 15:10:18] user10059

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
[+6] [2008-09-23 15:53:07] Mayowa

Functional Programming

(2) Its just not the same when you say it - bobobobo
[+6] [2008-09-23 17:45:48] Giovanni Galbo

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

[+6] [2008-09-23 14:48:59] kitsune

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.

(3) 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
[+6] [2008-09-24 15:23:16] j0rd4n

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.

[+6] [2008-09-24 11:19:28] Anders Sandvig

Find a practical use for GPGPU programming [1] and true parallel programming.


What makes you think there is no practical use for that? - Nils
[+6] [2008-09-24 16:45:51] kae


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.

[+6] [2008-09-23 19:26:59] community_owned

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.

[+6] [2008-09-24 07:16:02] Andrew Hedges

COBOL (Just kidding)

[+6] [2008-12-31 16:12:20] George Jempty

Mental telepathy

[+6] [2010-02-14 12:40:42] Bob Kaufman

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.

[+5] [2009-10-28 16:34:14] presario

starting earlier...

[+5] [2010-08-11 10:57:58] rmx

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 Φ" ⊂ ω}

[+5] [2008-12-31 16:44:25] Xaisoft

Design Patterns.

[+5] [2008-10-23 14:04:43] Morgan Cheng

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

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

[+5] [2008-10-04 01:58:31] OnesimusUnbound

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

[+5] [2008-09-29 15:08:14] Jeremy Reagan

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

[+5] [2008-10-01 11:24:08] RobS

Probably PowerShell

[+5] [2009-06-11 20:25:21] Chris B. Behrens

Continuous Integration / automated builds.

[+5] [2008-09-24 09:03:48] wheleph

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

[+5] [2008-09-23 22:08:51] Andrew Ingram

Basic game programming, collision detection etc

[+5] [2008-09-23 19:31:00] Scott


why should anyone waste his life? - Behrooz
[+5] [2008-09-23 19:36:07] Jerry

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 [1] 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.


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
[+5] [2008-09-25 15:33:49] Johan Pelgrim

Erlang [1]


[+5] [2008-09-23 14:43:53] kmilo

Learn to use a php framework.

Check out CodeIgniter - WarmWaffles
[+5] [2008-09-23 14:34:56] Patcouch22

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.

[+5] [2008-09-23 18:25:32] Adam Gibbins

Regex, hate the damn things :(

[+5] [2008-09-23 16:56:16] Tons0fun

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.

[+5] [2008-09-23 15:49:15] Mike Post

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

[+4] [2008-09-23 17:04:08] shoosh

Well, I guess its too late now.

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 - MarkJ
[+4] [2008-09-23 16:16:44] zvrba

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

[+4] [2008-09-23 16:16:57] glenatron

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.

[+4] [2008-09-23 14:44:12] Rui Vieira


[+4] [2008-09-23 14:42:26] Prakash

Assembly language for 80386, 80486 processors.

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

Havent gone further than 8085 in college

[+4] [2008-09-24 11:20:30] Anders Sandvig

Program a mechanical robot.

[+4] [2008-09-24 16:04:28] Mark Stock

Making better use of my time

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

[+4] [2008-09-23 23:57:38] Ash Kim

Model Driven Architecture.

[+4] [2009-05-18 11:47:46] Nicolas Dorier

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.

[+4] [2009-08-08 04:15:48] PTBNL

Real-time programming

[+4] [2009-04-09 00:46:57] Cory McCarty

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.

[+4] [2009-04-22 03:57:44] Ronnie

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

[+4] [2009-01-02 16:46:02] endian

Politics. Seriously.

(2) I do that. You will find that it's NP complete. - mstrobl
[+4] [2009-01-25 07:35:50] MachineCharmer

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

[+4] [2009-02-01 13:09:44] Sorskoot

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.

[+4] [2008-09-25 21:36:02] Christian Vest Hansen

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.

[+4] [2008-10-31 22:52:55] Yes Fish...

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

[+4] [2008-10-05 08:28:22] Ismael

Functional programming [1] and Haskell [2]


[+4] [2008-10-03 17:45:33] community_owned

The concept of Monads in functional programming.

[+4] [2010-05-22 13:35:37] user1111111

build an operating system

uouou i want that to - Adam Ramadhan
[+3] [2010-05-22 14:05:10] Marcus Adams

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

[+3] [2010-05-22 14:09:37] red7

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

[+3] [2010-02-14 12:49:53] KP65

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

[+3] [2009-10-09 22:35:10] fortran

Hardware description languages: VHDL or Verilog...

[+3] [2009-12-30 01:37:14] Andres

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, low-level DNA assembly :)

[+3] [2010-02-14 12:45:50] c0mrade

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


[+3] [2010-02-14 12:48:51] sagie

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

[+3] [2008-12-31 19:27:21] community_owned

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

(7) If you created an OS, why on earth something like Vista? ;) - Jonik
[+3] [2008-12-31 19:47:20] community_owned

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

[+3] [2008-12-10 16:28:18] Nathan Feger

Take the algorithms course, I never took in school.

[+3] [2008-09-25 22:30:54] CheeZe5

A functional language.

[+3] [2008-09-24 18:35:32] dysfunctor

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.

+1 for a statement that is both funny and true all rolled into one. - FastAl
[+3] [2008-09-26 03:17:30] community_owned

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

[+3] [2008-09-26 03:19:14] shiva

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

[+3] [2009-02-01 13:24:46] Jonik

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 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 [1] even the basics, which sucks.


[+3] [2009-02-01 12:41:38] Jonas Kölker

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.

[+3] [2009-01-02 16:48:49] Brent.Longborough

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

[+3] [2009-01-02 16:16:06] arshad

actionscript and Adobe AIR

[+3] [2009-01-02 16:44:35] Ubersoldat

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

[+3] [2009-04-22 04:37:45] Frank

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

[+3] [2009-05-05 12:37:33] Jon Harrop

Web programming.

[+3] [2009-04-22 03:48:33] RN

shell scripting

[+3] [2009-04-01 04:42:37] community_owned

CAB for Winforms and now Prism for WPF

[+3] [2009-09-29 11:01:18] mnml

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

[+3] [2009-05-20 10:41:44] AB Kolan

Objective C and some iPhone programming

[+3] [2009-07-07 07:58:09] community_owned

REALLY learning Emacs.

[+3] [2008-09-24 00:06:39] dlamblin

Stackless Python

[+3] [2008-09-24 01:47:35] Shiny

It's F# and dynamic language.

[+3] [2008-09-23 18:55:44] Electrons_Ahoy

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.

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
[+3] [2008-09-23 19:03:22] Crank

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.

[+3] [2008-09-24 15:48:46] Rayne

Functional programming.

[+3] [2008-09-25 06:17:08] Keith Nicholas

Template meta-programming in C++

[+3] [2008-09-25 08:45:10] David Waters


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

I realise there is already a perl listed in "script" answer but I believe it wants its own :) - David Waters
[+3] [2008-09-24 18:41:06] MSN



[+3] [2008-09-23 15:59:03] Zeus

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

wait... that's 3. oops!

I'll stick with Ruby.

[+3] [2008-09-23 15:19:27] K4emic

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.

(2) Sounds like the book is inaccurately titled then. - Gregg Lind
[+2] [2008-09-23 15:49:31] JB King

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.

[+2] [2008-09-23 15:56:27] dbrien

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

[+2] [2008-09-23 16:36:46] bruceatk

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

[+2] [2008-09-23 17:25:02] David Hill

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

[+2] [2008-09-23 18:28:52] ilitirit

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.

[+2] [2008-09-23 15:05:26] cretzel

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

[+2] [2008-09-23 14:51:01] Baltimark

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.

[+2] [2008-09-23 14:54:32] Bob Moore

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

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
[+2] [2008-09-24 18:05:23] Iwasakabukiman

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

[+2] [2008-09-25 08:06:15] Hershi

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

[+2] [2008-09-25 18:45:42] s_t_e_v_e

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.

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
[+2] [2008-09-25 21:05:29] Simon West

3D graphics programming.

[+2] [2008-09-24 14:16:51] fernandogarcez

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

[+2] [2008-09-24 13:30:56] DeeCee

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

Lua is also great as a stand-alone or embedded scriptiong language, with some advantages over Python or Ruby. Try it! - Rui Curado
[+2] [2008-09-24 10:35:59] user21524

Functional Programming

[+2] [2008-09-24 11:18:54] Anders Sandvig

Find a practical use for functional programming.

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
[+2] [2008-09-23 23:37:47] moffdub

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.

Yeah.. always wanted to learn that groovy old Smalltalk... - Rene Saarsoo
[+2] [2008-09-24 00:35:46] codemeit

A language compiler and interpreter.

[+2] [2008-09-24 01:39:03] docgnome

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

[+2] [2008-09-24 04:44:56] Steve Obbayi

game engine programming

[+2] [2008-09-24 05:24:45] MusiGenesis

D [1]


[+2] [2008-09-24 03:23:39] DanielHonig

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.

[+2] [2009-08-08 03:25:29] SilverNight

microsoft Silverlight

[+2] [2009-06-17 11:31:00] community_owned

Regular Expressions

[+2] [2009-05-18 11:53:27] Ridcully

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

[+2] [2009-05-18 11:56:39] Mike Dunlavey

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.

[+2] [2009-10-03 14:11:13] canadiancreed

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.

[+2] [2009-10-03 14:15:49] Olexiy

Writing bugless code.

[+2] [2009-10-03 14:35:43] stusmith

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

For sure, heh. +1 - Moshe
[+2] [2009-09-02 16:15:48] Felixyz

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


[+2] [2009-09-02 16:27:44] Andrew Lewis

more Design Patterns

[+2] [2009-09-02 16:44:07] Ken


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.

[+2] [2009-05-13 23:35:19] Norbert Hartl

virtual machine design

[+2] [2008-09-26 12:56:23] Sindri Traustason

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


[+2] [2008-10-05 08:20:08] I GIVE CRAP ANSWERS

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

+ I posted pretty much the same answer before seeing yours. The thing is, I've done it to some extent, but it's still heavy lifting. The book I got most out of is Manna & Waldinger "Deductive Foundations of Computer Programming". - Mike Dunlavey
[+2] [2008-10-03 18:04:57] community_owned

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

[+2] [2008-10-03 20:49:50] rshimoda

Working with prolog and building AI applications

[+2] [2008-10-17 04:53:12] JB King

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?

[+2] [2008-12-10 16:24:31] Cygwin98

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

[+2] [2008-12-31 19:50:09] Jim Blizard

Compiler building...particularly for building external DSLs

[+2] [2008-12-31 16:08:41] Brian

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

[+2] [2008-12-31 16:21:17] Rob

Learn PHP and python.

[+2] [2009-08-08 04:11:08] PTBNL

Mathematical Modeling

[+1] [2010-08-11 10:16:29] talonx

Linux Kernel hacking

[+1] [2010-08-11 10:25:44] binW

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.

[+1] [2010-02-14 12:50:43] Adrian Panasiuk

master back-in-time debuggers

[+1] [2010-01-05 15:09:45] Jus12

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

It is called chess engine, you should know that. - ralu
[+1] [2010-02-14 12:48:53] Adrian Panasiuk

find good static code analysis tools

[+1] [2010-01-05 15:20:38] Bruno Rothgiesser

Developing Firefox extensions.

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

[+1] [2010-01-05 15:30:39] Dean J

Dvorak, or some other optimized keyboard layout.

[+1] [2010-01-05 15:35:05] allenskd

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.

[+1] [2009-12-30 01:42:36] Larry Watanabe

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

[+1] [2009-11-17 13:22:58] user179168

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


[+1] [2009-11-20 21:54:54] Sergey

I'd like to learn C++ deeply.

[+1] [2009-10-09 22:14:29] Phil

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.

[0] [2009-10-09 22:17:02] mikez302

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

[0] [2009-10-09 22:20:34] yelinna

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

[0] [2009-09-29 10:57:55] systempuntoout

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

[0] [2009-09-02 16:19:35] Reuben Mallaby

Bug-free programming

[0] [2009-06-11 20:53:57] Mark

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

[0] [2009-06-17 11:17:12] Jahanzeb Farooq

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.

[0] [2009-08-08 03:39:17] Vivek

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

[0] [2009-04-01 04:49:24] Justice

Just getting the darn thing done.

[0] [2008-10-17 05:03:57] Vijay Dev

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 !

[0] [2008-12-10 16:34:25] MadKeithV

The scary thing is that I've done almost all of the top 10 items mentioned here!
One skill I'd like to master is writing good requirements - this is important when communicating with both the customer and the development team, and stuff that goes wrong there costs a LOT of money and time.

[0] [2008-12-22 21:06:02] Gerardo Contijoch

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

[0] [2008-12-31 15:57:18] Frank V

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


[0] [2008-10-03 01:15:04] Michael Petrotta

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.

[0] [2008-09-30 17:23:49] Knobloch

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

[0] [2008-09-26 01:46:44] rickumali

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

[0] [2008-09-26 04:22:55] community_owned

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.

[0] [2008-09-26 06:30:04] community_owned

Unit tests - makes scaling up projects so much easier.

[0] [2008-09-26 09:16:21] Simon West

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.

[0] [2009-10-10 18:07:58] Jack Lloyd

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 [1]
  • 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


[0] [2009-12-30 02:25:55] fastcodejava

Want to learn how to write search engines.

[0] [2009-12-30 02:33:51] Chinmay Kanchi

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!

For the filesystem driver, take a look at FUSE - Draemon
[0] [2010-01-05 15:44:58] Newbie

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

[0] [2010-02-14 12:37:15] Adrian Panasiuk

profiling and optimization

[0] [2010-01-05 15:18:20] Viet

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

[0] [2010-05-18 04:35:59] this. __curious_geek

Compiler construction

[0] [2010-07-25 11:24:43] Adam Ramadhan

Ruby on Rails :| others ?

[0] [2010-05-22 13:54:39] Nils

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.

[0] [2011-01-07 03:41:42] Luke101

Always wanted to truelly learn ISAPI and DirectX

[0] [2011-01-07 04:04:58] Moshe

I have many answers to this question, but mainly, I would love to master a programming language so that I could know the answer to any question about it. That would account for many of my other desires that I have no time for.

Oh, i'd like to learn some spoke languages too. (SO I could write illegible comments in those langauges!

[0] [2008-09-24 04:18:41] tjjjohnson

Learn unit testing.

[0] [2008-09-24 04:30:25] Guillaume Gervais

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.

[0] [2008-09-24 06:42:50] Ian Suttle

Being a design pattern ninja.

[0] [2008-09-24 09:32:34] community_owned

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.

[0] [2008-09-24 01:51:27] Bruce Aldridge

unit testing

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
[0] [2008-09-24 02:39:08] Coder Blues

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.

[0] [2008-09-23 22:28:56] Imran


[0] [2008-09-23 23:07:29] AdamB

unix C/C++ with inline ASM

[0] [2008-09-23 23:41:07] origin

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

Unit testing will make you faster, because you will catch bugs earlier. - dysfunctor
[0] [2008-09-23 23:42:22] Chris Ballance

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

[0] [2008-09-23 21:41:29] jmissao

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

[0] [2008-09-23 19:40:05] Nathan Koop

Specific patterns & practices, IE Dependency Injection

[0] [2008-09-24 11:23:05] Mauro

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

[0] [2008-09-24 13:15:39] DaveF

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!

[0] [2008-09-24 13:35:57] community_owned

3d game programming.

[0] [2008-09-24 15:35:59] Jérôme Radix

Constraint Programming [1] / Constraint Satisfaction Problems [2]


[0] [2008-09-24 15:36:22] IanW

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.

[0] [2008-09-24 16:20:59] MADMap

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

[0] [2008-09-24 16:32:06] Jack Bolding

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

[0] [2008-09-25 17:44:28] community_owned

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.

[0] [2008-09-25 09:21:56] Presidenten

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

[0] [2008-09-24 18:39:53] community_owned

Scripting languages such as Python, Perl, and Lua.

[0] [2008-09-25 05:10:58] Chinmay

Regular Expressions...Damm always need google for it

[0] [2008-09-25 05:58:58] Dan Harper - Leopard CRM

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

[0] [2008-09-25 06:15:12] Krirk

I want to develop some web clawing application.

[0] [2008-09-23 14:55:39] CobolGuy

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.

[0] [2008-09-23 14:57:50] Adrian
  • 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.

[0] [2008-09-23 14:50:23] Satish Motwani

I agree, Regex really..

[0] [2008-09-23 18:46:09] max

The ability to turn mathematical definitions easily into working code.

[0] [2008-09-23 15:59:18] mslot

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

[0] [2008-09-23 16:07:02] Jurassic_C

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!

[0] [2008-09-23 15:48:29] Kelly Adams

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.

[0] [2008-09-23 15:28:11] Kyle Burton

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

[0] [2008-09-23 15:33:11] community_owned

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

nice topic :)

[0] [2008-09-23 15:34:23] community_owned

AJAX frameworks and alternative architectures such as MVC